some function renaming, etc (John Fay)
[freeglut] / src / freeglut_joystick.c
index 6bdccf5..1115076 100644 (file)
@@ -39,7 +39,7 @@
 #    include "config.h"
 #endif
 
-#include "../include/GL/freeglut.h"
+#include <GL/freeglut.h>
 #include "freeglut_internal.h"
 
 /*
@@ -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 <sys/ioctl.h>
 #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 <usbhid.h>
 #            if __FreeBSD_version < 500000
 #                include <libusbhid.h>
 #            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 <usbhid.h>
 #            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;
         }
     }
 
@@ -738,7 +730,7 @@ static void fghJoystickRawRead( SFG_Joystick* joy, int* buttons, float* axes )
 
             if ( buttons != NULL ) *buttons = joy->tmp_buttons;
             if ( axes    != NULL )
-                memcpy ( axes, joy->tmp_axes, sizeof(float) * num_axes );
+                memcpy ( axes, joy->tmp_axes, sizeof(float) * joy->num_axes );
 
             return;
         }
@@ -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<jsJoystick*>(vjs)->parseElement ( (CFDictionaryRef) element );        
+      static_cast<jsJoystick*>(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 )
 {