const SFG_StrokeChar** Characters; /* The characters mapping */\r
};\r
\r
+\r
+/* -- JOYSTICK-SPECIFIC STRUCTURES AND TYPES ------------------------------- */\r
+/* XXX It might be better to poll the operating system for the numbers of buttons and\r
+ * XXX axes and then dynamically allocate the arrays.\r
+ */\r
+#define _JS_MAX_BUTTONS 32\r
+\r
+#if TARGET_HOST_MACINTOSH\r
+# define _JS_MAX_AXES 9\r
+#endif\r
+\r
+#if TARGET_HOST_MAC_OSX\r
+# define _JS_MAX_AXES 16\r
+#endif\r
+\r
+#if TARGET_HOST_MS_WINDOWS && !defined(_WIN32_WCE)\r
+# define _JS_MAX_AXES 8\r
+#endif\r
+\r
+#if TARGET_HOST_POSIX_X11\r
+# define _JS_MAX_AXES 16\r
+#endif\r
+\r
+/*\r
+ * Definition of "SFG_Joystick" structure -- based on JS's "jsJoystick" object class.\r
+ * See "js.h" lines 80-178.\r
+ */\r
+typedef struct tagSFG_Joystick SFG_Joystick;\r
+struct tagSFG_Joystick\r
+{\r
+#if TARGET_HOST_MACINTOSH\r
+#define ISP_NUM_AXIS 9\r
+#define ISP_NUM_NEEDS 41\r
+ ISpElementReference isp_elem [ ISP_NUM_NEEDS ];\r
+ ISpNeed isp_needs [ ISP_NUM_NEEDS ];\r
+#endif\r
+\r
+#if TARGET_HOST_MAC_OSX\r
+ IOHIDDeviceInterface ** hidDev;\r
+ IOHIDElementCookie buttonCookies[41];\r
+ IOHIDElementCookie axisCookies[_JS_MAX_AXES];\r
+ long minReport[_JS_MAX_AXES],\r
+ maxReport[_JS_MAX_AXES];\r
+#endif\r
+\r
+#if TARGET_HOST_MS_WINDOWS && !defined(_WIN32_WCE)\r
+ JOYCAPS jsCaps;\r
+ JOYINFOEX js;\r
+ UINT js_id;\r
+#endif\r
+\r
+\r
+#if TARGET_HOST_POSIX_X11\r
+# if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)\r
+ struct os_specific_s *os;\r
+# endif\r
+\r
+# ifdef JS_NEW\r
+ struct js_event js;\r
+ int tmp_buttons;\r
+ float tmp_axes [ _JS_MAX_AXES ];\r
+# else\r
+ struct JS_DATA_TYPE js;\r
+# endif\r
+\r
+ char fname [ 128 ];\r
+ int fd;\r
+#endif\r
+\r
+ int id;\r
+ GLboolean error;\r
+ char name [ 128 ];\r
+ int num_axes;\r
+ int num_buttons;\r
+\r
+ float dead_band[ _JS_MAX_AXES ];\r
+ float saturate [ _JS_MAX_AXES ];\r
+ float center [ _JS_MAX_AXES ];\r
+ float max [ _JS_MAX_AXES ];\r
+ float min [ _JS_MAX_AXES ];\r
+};\r
+\r
+\r
+\r
/* -- GLOBAL VARIABLES EXPORTS --------------------------------------------- */\r
\r
/* Freeglut display related stuff (initialized once per session) */\r
* interspersed\r
*/\r
\r
-/* XXX It might be better to poll the operating system for the numbers of buttons and\r
- * XXX axes and then dynamically allocate the arrays.\r
- */\r
-#define _JS_MAX_BUTTONS 32\r
-\r
#if TARGET_HOST_MACINTOSH\r
-# define _JS_MAX_AXES 9\r
# include <InputSprocket.h>\r
#endif\r
\r
#if TARGET_HOST_MAC_OSX\r
-# define _JS_MAX_AXES 16\r
# include <mach/mach.h>\r
# include <IOKit/IOkitLib.h>\r
# include <IOKit/hid/IOHIDLib.h>\r
#endif\r
\r
#if TARGET_HOST_MS_WINDOWS && !defined(_WIN32_WCE)\r
-# define _JS_MAX_AXES 8\r
# include <windows.h>\r
# include <mmsystem.h>\r
# include <regstr.h>\r
#endif\r
\r
#if TARGET_HOST_POSIX_X11\r
-# define _JS_MAX_AXES 16\r
# ifdef HAVE_SYS_IOCTL_H\r
# include <sys/ioctl.h>\r
# endif\r
#endif\r
\r
/*\r
- * Definition of "SFG_Joystick" structure -- based on JS's "jsJoystick" object class.\r
- * See "js.h" lines 80-178.\r
- */\r
-typedef struct tagSFG_Joystick SFG_Joystick;\r
-struct tagSFG_Joystick\r
-{\r
-#if TARGET_HOST_MACINTOSH\r
-#define ISP_NUM_AXIS 9\r
-#define ISP_NUM_NEEDS 41\r
- ISpElementReference isp_elem [ ISP_NUM_NEEDS ];\r
- ISpNeed isp_needs [ ISP_NUM_NEEDS ];\r
-#endif\r
-\r
-#if TARGET_HOST_MAC_OSX\r
- IOHIDDeviceInterface ** hidDev;\r
- IOHIDElementCookie buttonCookies[41];\r
- IOHIDElementCookie axisCookies[_JS_MAX_AXES];\r
- long minReport[_JS_MAX_AXES],\r
- maxReport[_JS_MAX_AXES];\r
-#endif\r
-\r
-#if TARGET_HOST_MS_WINDOWS && !defined(_WIN32_WCE)\r
- JOYCAPS jsCaps;\r
- JOYINFOEX js;\r
- UINT js_id;\r
-#endif\r
-\r
-\r
-#if TARGET_HOST_POSIX_X11\r
-# if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)\r
- struct os_specific_s *os;\r
-# endif\r
-\r
-# ifdef JS_NEW\r
- struct js_event js;\r
- int tmp_buttons;\r
- float tmp_axes [ _JS_MAX_AXES ];\r
-# else\r
- struct JS_DATA_TYPE js;\r
-# endif\r
-\r
- char fname [ 128 ];\r
- int fd;\r
-#endif\r
-\r
- int id;\r
- GLboolean error;\r
- char name [ 128 ];\r
- int num_axes;\r
- int num_buttons;\r
-\r
- float dead_band[ _JS_MAX_AXES ];\r
- float saturate [ _JS_MAX_AXES ];\r
- float center [ _JS_MAX_AXES ];\r
- float max [ _JS_MAX_AXES ];\r
- float min [ _JS_MAX_AXES ];\r
-};\r
-\r
-/*\r
* Functions associated with the "jsJoystick" class in PLIB\r
*/\r
#if TARGET_HOST_MAC_OSX\r