|
|
@ -49,49 +49,27 @@ |
|
|
|
#if defined(_WIN32) |
|
|
|
#include <conio.h> // Windows only, no stardard library |
|
|
|
#else |
|
|
|
|
|
|
|
// Provide kbhit() function in non-Windows platforms |
|
|
|
#include <stdio.h> |
|
|
|
#include <termios.h> |
|
|
|
#include <unistd.h> |
|
|
|
#include <fcntl.h> |
|
|
|
|
|
|
|
// Check if a key has been pressed |
|
|
|
static int kbhit(void) |
|
|
|
{ |
|
|
|
struct termios oldt, newt; |
|
|
|
int ch; |
|
|
|
int oldf; |
|
|
|
|
|
|
|
tcgetattr(STDIN_FILENO, &oldt); |
|
|
|
newt = oldt; |
|
|
|
newt.c_lflag &= ~(ICANON | ECHO); |
|
|
|
tcsetattr(STDIN_FILENO, TCSANOW, &newt); |
|
|
|
oldf = fcntl(STDIN_FILENO, F_GETFL, 0); |
|
|
|
fcntl(STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK); |
|
|
|
|
|
|
|
ch = getchar(); |
|
|
|
|
|
|
|
tcsetattr(STDIN_FILENO, TCSANOW, &oldt); |
|
|
|
fcntl(STDIN_FILENO, F_SETFL, oldf); |
|
|
|
|
|
|
|
if (ch != EOF) |
|
|
|
{ |
|
|
|
ungetc(ch, stdin); |
|
|
|
return 1; |
|
|
|
} |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
// Get pressed character |
|
|
|
static char getch() { return getchar(); } |
|
|
|
|
|
|
|
// Required for kbhit() function in non-Windows platforms |
|
|
|
#include <stdio.h> |
|
|
|
#include <termios.h> |
|
|
|
#include <unistd.h> |
|
|
|
#include <fcntl.h> |
|
|
|
#endif |
|
|
|
|
|
|
|
#define KEY_ESCAPE 27 |
|
|
|
|
|
|
|
int main() |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
// Module Functions Declaration |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
#if !defined(_WIN32) |
|
|
|
static int kbhit(void); // Check if a key has been pressed |
|
|
|
static char getch(); // Get pressed character |
|
|
|
#endif |
|
|
|
|
|
|
|
//------------------------------------------------------------------------------------ |
|
|
|
// Program main entry point |
|
|
|
//------------------------------------------------------------------------------------ |
|
|
|
int main(int argc, char *argv[]) |
|
|
|
{ |
|
|
|
// Initialization |
|
|
|
//-------------------------------------------------------------------------------------- |
|
|
@ -113,17 +91,10 @@ int main() |
|
|
|
{ |
|
|
|
if (kbhit()) key = getch(); |
|
|
|
|
|
|
|
if (key == 's') |
|
|
|
{ |
|
|
|
PlaySound(fxWav); |
|
|
|
key = 0; |
|
|
|
} |
|
|
|
|
|
|
|
if (key == 'd') |
|
|
|
{ |
|
|
|
PlaySound(fxOgg); |
|
|
|
key = 0; |
|
|
|
} |
|
|
|
if ((key == 's') || (key == 'S')) PlaySound(fxWav); |
|
|
|
if ((key == 'd') || (key == 'D')) PlaySound(fxOgg); |
|
|
|
|
|
|
|
key = 0; |
|
|
|
|
|
|
|
UpdateMusicStream(music); |
|
|
|
} |
|
|
@ -140,3 +111,39 @@ int main() |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
// Module Functions Definition |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
#if !defined(_WIN32) |
|
|
|
// Check if a key has been pressed |
|
|
|
static int kbhit(void) |
|
|
|
{ |
|
|
|
struct termios oldt, newt; |
|
|
|
int ch; |
|
|
|
int oldf; |
|
|
|
|
|
|
|
tcgetattr(STDIN_FILENO, &oldt); |
|
|
|
newt = oldt; |
|
|
|
newt.c_lflag &= ~(ICANON | ECHO); |
|
|
|
tcsetattr(STDIN_FILENO, TCSANOW, &newt); |
|
|
|
oldf = fcntl(STDIN_FILENO, F_GETFL, 0); |
|
|
|
fcntl(STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK); |
|
|
|
|
|
|
|
ch = getchar(); |
|
|
|
|
|
|
|
tcsetattr(STDIN_FILENO, TCSANOW, &oldt); |
|
|
|
fcntl(STDIN_FILENO, F_SETFL, oldf); |
|
|
|
|
|
|
|
if (ch != EOF) |
|
|
|
{ |
|
|
|
ungetc(ch, stdin); |
|
|
|
return 1; |
|
|
|
} |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
// Get pressed character |
|
|
|
static char getch() { return getchar(); } |
|
|
|
#endif |