X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_joystick.c;h=547c83963ac2aed677ad47e3554ef8bdecc187b6;hb=30971e75717f3d7b826714fbbb1171dfaf9164cf;hp=7548a88efffa90d6fa118c71ca4ffee5b5c155da;hpb=2586d5c2ebd7cc9c788c8f68d2f2e8871f5438f5;p=freeglut diff --git a/src/freeglut_joystick.c b/src/freeglut_joystick.c index 7548a88..547c839 100644 --- a/src/freeglut_joystick.c +++ b/src/freeglut_joystick.c @@ -59,7 +59,7 @@ # include #endif -#if TARGET_HOST_WIN32 +#if TARGET_HOST_MS_WINDOWS && !defined(_WIN32_WCE) # define _JS_MAX_AXES 8 # include # include @@ -67,7 +67,7 @@ #endif -#if TARGET_HOST_UNIX_X11 +#if TARGET_HOST_POSIX_X11 # define _JS_MAX_AXES 16 # if HAVE_SYS_IOCTL_H # include @@ -80,7 +80,7 @@ /* XXX The below hack is done until freeglut's autoconf is updated. */ # define HAVE_USB_JS 1 -# if defined(__FreeBSD__) && __FreeBSD_version >= 500000 +# if defined(__FreeBSD__) # include # else /* @@ -385,14 +385,14 @@ struct tagSFG_Joystick maxReport[_JS_MAX_AXES]; #endif -#if TARGET_HOST_WIN32 +#if TARGET_HOST_MS_WINDOWS && !defined(_WIN32_WCE) JOYCAPS jsCaps; JOYINFOEX js; UINT js_id; #endif -#if TARGET_HOST_UNIX_X11 +#if TARGET_HOST_POSIX_X11 # if defined(__FreeBSD__) || defined(__NetBSD__) struct os_specific_s *os; # endif @@ -455,7 +455,7 @@ static SFG_Joystick *fgJoystick [ MAX_NUM_JOYSTICKS ]; */ static void fghJoystickRawRead( SFG_Joystick* joy, int* buttons, float* axes ) { -#if TARGET_HOST_WIN32 +#if TARGET_HOST_MS_WINDOWS && !defined(_WIN32_WCE) MMRESULT status; #else int status; @@ -531,7 +531,7 @@ static void fghJoystickRawRead( SFG_Joystick* joy, int* buttons, float* axes ) } #endif -#if TARGET_HOST_WIN32 +#if TARGET_HOST_MS_WINDOWS && !defined(_WIN32_WCE) status = joyGetPosEx( joy->js_id, &joy->js ); if ( status != JOYERR_NOERROR ) @@ -597,7 +597,7 @@ static void fghJoystickRawRead( SFG_Joystick* joy, int* buttons, float* axes ) } #endif -#if TARGET_HOST_UNIX_X11 +#if TARGET_HOST_POSIX_X11 # if defined(__FreeBSD__) || defined(__NetBSD__) if ( joy->os->is_analog ) { @@ -656,9 +656,9 @@ static void fghJoystickRawRead( SFG_Joystick* joy, int* buttons, float* axes ) if (usage > 0 && usage < _JS_MAX_BUTTONS + 1) { if (d) - joy->os->cache_buttons |= (1 << usage - 1); + joy->os->cache_buttons |= (1 << ( usage - 1 )); else - joy->os->cache_buttons &= ~(1 << usage - 1); + joy->os->cache_buttons &= ~(1 << ( usage - 1 )); } } } @@ -975,11 +975,11 @@ static void fghJoystickAddHatElement ( SFG_Joystick *joy, CFDictionaryRef button } #endif -#if TARGET_HOST_WIN32 +#if TARGET_HOST_MS_WINDOWS && !defined(_WIN32_WCE) /* Inspired by http://msdn.microsoft.com/archive/en-us/dnargame/html/msdn_sidewind3d.asp */ -# if defined(_MSC_VER) +# if FREEGLUT_LIB_PRAGMAS # pragma comment (lib, "advapi32.lib") # endif @@ -1039,7 +1039,7 @@ static int fghJoystickGetOEMProductName ( SFG_Joystick* joy, char *buf, int buf_ static void fghJoystickOpen( SFG_Joystick* joy ) { - int i; + int i = 0; #if TARGET_HOST_MACINTOSH OSStatus err; #endif @@ -1053,17 +1053,22 @@ static void fghJoystickOpen( SFG_Joystick* joy ) CFDictionaryRef props; CFTypeRef topLevelElement; #endif -#if TARGET_HOST_UNIX_X11 +#if TARGET_HOST_POSIX_X11 # if defined( __FreeBSD__ ) || defined( __NetBSD__ ) char *cp; # endif # ifdef JS_NEW unsigned char u; # else - int counter; +# if defined( __linux__ ) + int counter = 0; +# endif # endif #endif + /* Silence gcc, the correct #ifdefs would be too fragile... */ + (void)i; + /* * Default values (for no joystick -- each conditional will reset the * error flag) @@ -1222,7 +1227,7 @@ static void fghJoystickOpen( SFG_Joystick* joy ) CFRelease( props ); #endif -#if TARGET_HOST_WIN32 +#if TARGET_HOST_MS_WINDOWS && !defined(_WIN32_WCE) joy->js.dwFlags = JOY_RETURNALL; joy->js.dwSize = sizeof( joy->js ); @@ -1284,7 +1289,7 @@ static void fghJoystickOpen( SFG_Joystick* joy ) } #endif -#if TARGET_HOST_UNIX_X11 +#if TARGET_HOST_POSIX_X11 #if defined( __FreeBSD__ ) || defined( __NetBSD__ ) for( i = 0; i < _JS_MAX_AXES; i++ ) joy->os->cache_axes[ i ] = 0.0f; @@ -1530,7 +1535,7 @@ static void fghJoystickInit( int ident ) } #endif -#if TARGET_HOST_WIN32 +#if TARGET_HOST_MS_WINDOWS && !defined(_WIN32_WCE) switch( ident ) { case 0: @@ -1548,7 +1553,7 @@ static void fghJoystickInit( int ident ) } #endif -#if TARGET_HOST_UNIX_X11 +#if TARGET_HOST_POSIX_X11 # if defined( __FreeBSD__ ) || defined( __NetBSD__ ) fgJoystick[ ident ]->id = ident; fgJoystick[ ident ]->error = GL_FALSE; @@ -1581,15 +1586,14 @@ static void fghJoystickInit( int ident ) */ void fgInitialiseJoysticks ( void ) { - /* Initialization courtesy of OpenGLUT -- do we want it? */ - if( !fgState.JoysticksInitialised ) - { - int ident ; - for ( ident = 0; ident < MAX_NUM_JOYSTICKS; ident++ ) - fghJoystickInit( ident ); + if( !fgState.JoysticksInitialised ) + { + int ident ; + for ( ident = 0; ident < MAX_NUM_JOYSTICKS; ident++ ) + fghJoystickInit( ident ); - fgState.JoysticksInitialised = GL_TRUE; - } + fgState.JoysticksInitialised = GL_TRUE; + } } /* @@ -1614,11 +1618,11 @@ void fgJoystickClose( void ) close( fgJoystick[ ident ]->hidDev ); #endif -#if TARGET_HOST_WIN32 +#if TARGET_HOST_MS_WINDOWS && !defined(_WIN32_WCE) /* Do nothing special */ #endif -#if TARGET_HOST_UNIX_X11 +#if TARGET_HOST_POSIX_X11 #if defined( __FreeBSD__ ) || defined( __NetBSD__ ) if( fgJoystick[ident]->os ) { @@ -1680,21 +1684,18 @@ void fgJoystickPollWindow( SFG_Window* window ) */ int fgJoystickDetect( void ) { - int ident; - - fgInitialiseJoysticks (); + int ident; - if ( !fgJoystick ) - return 0; + fgInitialiseJoysticks (); - if ( !fgState.JoysticksInitialised ) - return 0; + if ( !fgState.JoysticksInitialised ) + return 0; - for( ident=0; identerror ) - return 1; + for( ident=0; identerror ) + return 1; - return 0; + return 0; } /*