X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_joystick.c;h=1115076b675a429b9baa20790883de6701c46d49;hb=006650e1dd72e73249d41e2bcea8b1668262a999;hp=478e28742d205991a698a8aa1b885d78a0bc02ff;hpb=65e03872c287ab34ae76bd1831a3786d5e986b72;p=freeglut diff --git a/src/freeglut_joystick.c b/src/freeglut_joystick.c index 478e287..1115076 100644 --- a/src/freeglut_joystick.c +++ b/src/freeglut_joystick.c @@ -73,9 +73,7 @@ #if TARGET_HOST_UNIX_X11 # define _JS_MAX_AXES 16 # if defined(__FreeBSD__) || defined(__NetBSD__) -/* - * XXX The below hack is done until freeglut's autoconf is updated. - */ +/* XXX The below hack is done until freeglut's autoconf is updated. */ # define HAVE_USB_JS 1 # include @@ -133,17 +131,13 @@ #define JS_TRUE 1 #define JS_FALSE 0 -/* - * BSD defines from "jsBSD.cxx" around lines 42-270 - */ +/* BSD defines from "jsBSD.cxx" around lines 42-270 */ #if defined(__NetBSD__) || defined(__FreeBSD__) # ifdef HAVE_USB_JS # if defined(__NetBSD__) -/* - * XXX The below hack is done until freeglut's autoconf is updated. - */ +/* XXX The below hack is done until freeglut's autoconf is updated. */ # define HAVE_USBHID_H 1 # ifdef HAVE_USBHID_H # include @@ -154,9 +148,7 @@ # if __FreeBSD_version < 500000 # include # else -/* - * XXX The below hack is done until freeglut's autoconf is updated. - */ +/* XXX The below hack is done until freeglut's autoconf is updated. */ # define HAVE_USBHID_H 1 # include # endif @@ -445,14 +437,14 @@ io_object_t ioDevices[K_NUM_DEVICES]; static void fghJoystickFindDevices ( SFG_Joystick* joy, mach_port_t ); static CFDictionaryRef fghJoystickGetCFProperties ( SFG_Joystick* joy, io_object_t ); -void fghJoystickEnumerateElements ( SFG_Joystick* joy, CFTypeRef element ); +static void fghJoystickEnumerateElements ( SFG_Joystick* joy, CFTypeRef element ); /* callback for CFArrayApply */ static void fghJoystickElementEnumerator ( SFG_Joystick* joy, void *element, void* vjs ); -void fghJoystickParseElement ( SFG_Joystick* joy, CFDictionaryRef element ); +static void fghJoystickParseElement ( SFG_Joystick* joy, CFDictionaryRef element ); -void fghJoystickAddAxisElement ( SFG_Joystick* joy, CFDictionaryRef axis ); -void fghJoystickAddButtonElement ( SFG_Joystick* joy, CFDictionaryRef button ); -void fghJoystickAddHatElement ( SFG_Joystick* joy, CFDictionaryRef hat ); +static void fghJoystickAddAxisElement ( SFG_Joystick* joy, CFDictionaryRef axis ); +static void fghJoystickAddButtonElement ( SFG_Joystick* joy, CFDictionaryRef button ); +static void fghJoystickAddHatElement ( SFG_Joystick* joy, CFDictionaryRef hat ); #endif @@ -530,7 +522,7 @@ static void fghJoystickRawRead( SFG_Joystick* joy, int* buttons, float* axes ) IOHIDEventStruct hidEvent; (*(joy->hidDev))->getElementValue ( joy->hidDev, buttonCookies[i], &hidEvent ); if ( hidEvent.value ) - *buttons |= 1 << i; + *buttons |= 1 << i; } } @@ -892,7 +884,7 @@ static CFDictionaryRef fghJoystickGetCFProperties ( SFG_Joystick *joy, io_object IOReturn rv; CFMutableDictionaryRef cfProperties; -#if 0 +#if 0 /* comment copied from darwin/SDL_sysjoystick.c */ /* Mac OS X currently is not mirroring all USB properties to HID page so need to look at USB device page also * get dictionary for usb properties: step up two levels and get CF dictionary for USB properties @@ -913,7 +905,7 @@ static CFDictionaryRef fghJoystickGetCFProperties ( SFG_Joystick *joy, io_object } #endif - rv = IORegistryEntryCreateCFProperties( ioDev /*parent2*/, + rv = IORegistryEntryCreateCFProperties( ioDev /*parent2*/, &cfProperties, kCFAllocatorDefault, kNilOptions); if (rv != kIOReturnSuccess || !cfProperties) { fgWarning ( "%s", "error getting device properties"); @@ -930,7 +922,7 @@ static void fghJoystickElementEnumerator ( SFG_Joystick *joy, void *element, voi return; } - static_cast(vjs)->parseElement ( (CFDictionaryRef) element ); + static_cast(vjs)->parseElement ( (CFDictionaryRef) element ); } /** element enumerator function : pass NULL for top-level*/ @@ -939,7 +931,7 @@ static void fghJoystickEnumerateElements ( SFG_Joystick *joy, CFTypeRef element assert(CFGetTypeID(element) == CFArrayGetTypeID()); CFRange range = {0, CFArrayGetCount ((CFArrayRef)element)}; - CFArrayApplyFunction((CFArrayRef) element, range, + CFArrayApplyFunction((CFArrayRef) element, range, &fghJoystickElementEnumerator, joy ); } @@ -951,7 +943,7 @@ static void fghJoystickParseElement ( SFG_Joystick *joy, CFDictionaryRef element long type, page, usage; CFNumberGetValue((CFNumberRef) - CFDictionaryGetValue ((CFDictionaryRef) element, CFSTR(kIOHIDElementTypeKey)), + CFDictionaryGetValue ((CFDictionaryRef) element, CFSTR(kIOHIDElementTypeKey)), kCFNumberLongType, &type); switch ( typ e) { @@ -962,7 +954,7 @@ static void fghJoystickParseElement ( SFG_Joystick *joy, CFDictionaryRef element CFNumberGetValue( (CFNumberRef) refUsage, kCFNumberLongType, &usage ); CFNumberGetValue( (CFNumberRef) refPage, kCFNumberLongType, &page ); - if (page == kHIDPage_GenericDesktop) { + if (page == kHIDPage_GenericDesktop) { switch ( usage ) /* look at usage to determine function */ { case kHIDUsage_GD_X: @@ -1000,7 +992,7 @@ static void fghJoystickParseElement ( SFG_Joystick *joy, CFDictionaryRef element default: break; - } + } } static void fghJoystickAddAxisElement ( SFG_Joystick *joy, CFDictionaryRef axis ) @@ -1009,17 +1001,17 @@ static void fghJoystickAddAxisElement ( SFG_Joystick *joy, CFDictionaryRef axis int index = joy->num_axes++; CFNumberGetValue ((CFNumberRef) - CFDictionaryGetValue ( axis, CFSTR(kIOHIDElementCookieKey) ), + CFDictionaryGetValue ( axis, CFSTR(kIOHIDElementCookieKey) ), kCFNumberLongType, &cookie); axisCookies[index] = (IOHIDElementCookie) cookie; CFNumberGetValue ((CFNumberRef) - CFDictionaryGetValue ( axis, CFSTR(kIOHIDElementMinKey) ), + CFDictionaryGetValue ( axis, CFSTR(kIOHIDElementMinKey) ), kCFNumberLongType, &lmin); CFNumberGetValue ((CFNumberRef) - CFDictionaryGetValue ( axis, CFSTR(kIOHIDElementMaxKey) ), + CFDictionaryGetValue ( axis, CFSTR(kIOHIDElementMaxKey) ), kCFNumberLongType, &lmax); joy->min[index] = lmin; @@ -1033,7 +1025,7 @@ static void fghJoystickAddButtonElement ( SFG_Joystick *joy, CFDictionaryRef but { long cookie; CFNumberGetValue ((CFNumberRef) - CFDictionaryGetValue ( button, CFSTR(kIOHIDElementCookieKey) ), + CFDictionaryGetValue ( button, CFSTR(kIOHIDElementCookieKey) ), kCFNumberLongType, &cookie); joy->buttonCookies[num_buttons++] = (IOHIDElementCookie) cookie; @@ -1145,9 +1137,7 @@ static void fghJoystickOpen( SFG_Joystick* joy ) joy->name[ 0 ] = '\0'; #if TARGET_HOST_MACINTOSH - /* - * XXX FIXME: get joystick name in Mac - */ + /* XXX FIXME: get joystick name in Mac */ err = ISpStartup( ); @@ -1254,7 +1244,7 @@ static void fghJoystickOpen( SFG_Joystick* joy ) } /* create device interface */ - rv = IOCreatePlugInInterfaceForService( ioDevices[ joy->id ], + rv = IOCreatePlugInInterfaceForService( ioDevices[ joy->id ], kIOHIDDeviceUserClientTypeID, kIOCFPlugInInterfaceID, &plugin, &score ); @@ -1266,7 +1256,7 @@ static void fghJoystickOpen( SFG_Joystick* joy ) } pluginResult = ( *plugin )->QueryInterface( - plugin, + plugin, CFUUIDGetUUIDBytes(kIOHIDDeviceInterfaceID), &( LPVOID )joy->hidDev ); @@ -1289,7 +1279,7 @@ static void fghJoystickOpen( SFG_Joystick* joy ) props = getCFProperties( ioDevices[ joy->id ] ); /* recursively enumerate all the bits */ - CFTypeRef topLevelElement = + CFTypeRef topLevelElement = CFDictionaryGetValue( props, CFSTR( kIOHIDElementKey ) ); enumerateElements( topLevelElement ); @@ -1349,9 +1339,7 @@ static void fghJoystickOpen( SFG_Joystick* joy ) joy->max[ 0 ] = ( float )joy->jsCaps.wXmax; } - /* - * Guess all the rest judging on the axes extremals - */ + /* Guess all the rest judging on the axes extremals */ for( i = 0; i < joy->num_axes; i++ ) { joy->center [ i ] = ( joy->max[ i ] + joy->min[ i ] ) * 0.5f; @@ -1466,9 +1454,7 @@ static void fghJoystickOpen( SFG_Joystick* joy ) #endif #if defined( __linux__ ) - /* - * Default for older Linux systems. - */ + /* Default for older Linux systems. */ joy->num_axes = 2; joy->num_buttons = 32; @@ -1486,15 +1472,13 @@ static void fghJoystickOpen( SFG_Joystick* joy ) if( joy->error ) return; - /* - * Set the correct number of axes for the linux driver - */ + /* Set the correct number of axes for the linux driver */ # ifdef JS_NEW - /* Melchior Franz's fixes for big-endian Linuxes since writing - * to the upper byte of an uninitialized word doesn't work. - * 9 April 2003 + /* Melchior Franz's fixes for big-endian Linuxes since writing + * to the upper byte of an uninitialized word doesn't work. + * 9 April 2003 */ - ioctl( joy->fd, JSIOCGAXES, &u ); + ioctl( joy->fd, JSIOCGAXES, &u ); joy->num_axes = u; ioctl( joy->fd, JSIOCGBUTTONS, &u ); joy->num_buttons = u; @@ -1514,7 +1498,7 @@ static void fghJoystickOpen( SFG_Joystick* joy ) counter = 0; do - { + { fghJoystickRawRead( joy, NULL, joy->center ); counter++; } while( !joy->error && @@ -1741,7 +1725,6 @@ void fgJoystickPollWindow( SFG_Window* window ) /* * PWO: These jsJoystick class methods have not been implemented. - * We might consider adding such functions to freeglut-2.0. */ int glutJoystickGetNumAxes( int ident ) {