Splitting platform-specific code out of "fgJoystickClose" function
authorJohn F. Fay <johnffay@nettally.com>
Sun, 29 Jan 2012 03:38:11 +0000 (03:38 +0000)
committerJohn F. Fay <johnffay@nettally.com>
Sun, 29 Jan 2012 03:38:11 +0000 (03:38 +0000)
git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@1017 7f0cb862-5218-0410-a997-914c9d46530a

src/Common/freeglut_joystick.c
src/mswin/freeglut_joystick_mswin.c

index 17eeb00..416091f 100644 (file)
@@ -455,6 +455,9 @@ static void fghJoystickAddHatElement ( SFG_Joystick* joy, CFDictionaryRef hat );
 #endif\r
 \r
 \r
+/* External function declarations (mostly platform-specific) */\r
+extern void fgPlatformJoystickClose ( int ident );\r
+\r
 /*\r
  * The static joystick structure pointer\r
  */\r
@@ -1619,49 +1622,57 @@ void fgInitialiseJoysticks ( void )
 /*\r
  *\r
  */\r
-void fgJoystickClose( void )\r
-{\r
-    int ident ;\r
-    for( ident = 0; ident < MAX_NUM_JOYSTICKS; ident++ )\r
-    {\r
-        if( fgJoystick[ ident ] )\r
-        {\r
 \r
 #if TARGET_HOST_MACINTOSH\r
-            ISpSuspend( );\r
-            ISpStop( );\r
-            ISpShutdown( );\r
+void fgPlatformJoystickClose ( int ident )\r
+{\r
+    ISpSuspend( );\r
+    ISpStop( );\r
+    ISpShutdown( );\r
+}\r
 #endif\r
 \r
 #if TARGET_HOST_MAC_OSX\r
-            ( *( fgJoystick[ ident ]->hidDev ) )->\r
-                close( fgJoystick[ ident ]->hidDev );\r
-#endif\r
-\r
-#if TARGET_HOST_MS_WINDOWS && !defined(_WIN32_WCE)\r
-            /* Do nothing special */\r
+void fgPlatformJoystickClose ( int ident )\r
+{\r
+    ( *( fgJoystick[ ident ]->hidDev ) )->\r
+        close( fgJoystick[ ident ]->hidDev );\r
+}\r
 #endif\r
 \r
 #if TARGET_HOST_POSIX_X11\r
+void fgPlatformJoystickClose ( int ident )\r
+{\r
 #if defined( __FreeBSD__ ) || defined(__FreeBSD_kernel__) || defined( __NetBSD__ )\r
-            if( fgJoystick[ident]->os )\r
-            {\r
-                if( ! fgJoystick[ ident ]->error )\r
-                    close( fgJoystick[ ident ]->os->fd );\r
+    if( fgJoystick[ident]->os )\r
+    {\r
+        if( ! fgJoystick[ ident ]->error )\r
+            close( fgJoystick[ ident ]->os->fd );\r
 #ifdef HAVE_USB_JS\r
-                if( fgJoystick[ ident ]->os->hids )\r
-                    free (fgJoystick[ ident ]->os->hids);\r
-                if( fgJoystick[ ident ]->os->hid_data_buf )\r
-                    free( fgJoystick[ ident ]->os->hid_data_buf );\r
+        if( fgJoystick[ ident ]->os->hids )\r
+            free (fgJoystick[ ident ]->os->hids);\r
+        if( fgJoystick[ ident ]->os->hid_data_buf )\r
+            free( fgJoystick[ ident ]->os->hid_data_buf );\r
 #endif\r
-                free( fgJoystick[ident]->os );\r
-            }\r
+        free( fgJoystick[ident]->os );\r
+       }\r
 #endif\r
 \r
-            if( ! fgJoystick[ident]->error )\r
-                close( fgJoystick[ ident ]->fd );\r
+    if( ! fgJoystick[ident]->error )\r
+         close( fgJoystick[ ident ]->fd );\r
+}\r
 #endif\r
 \r
+\r
+void fgJoystickClose( void )\r
+{\r
+    int ident ;\r
+    for( ident = 0; ident < MAX_NUM_JOYSTICKS; ident++ )\r
+    {\r
+        if( fgJoystick[ ident ] )\r
+        {\r
+                       fgPlatformJoystickClose ( ident );\r
+\r
             free( fgJoystick[ ident ] );\r
             fgJoystick[ ident ] = NULL;\r
             /* show joystick has been deinitialized */\r
index e69de29..2aad217 100644 (file)
@@ -0,0 +1,38 @@
+/*\r
+ * freeglut_joystick_mswin.c\r
+ *\r
+ * The Windows-specific mouse cursor related stuff.\r
+ *\r
+ * Copyright (c) 2012 Stephen J. Baker. All Rights Reserved.\r
+ * Written by John F. Fay, <fayjf@sourceforge.net>\r
+ * Creation date: Sat Jan 28, 2012\r
+ *\r
+ * Permission is hereby granted, free of charge, to any person obtaining a\r
+ * copy of this software and associated documentation files (the "Software"),\r
+ * to deal in the Software without restriction, including without limitation\r
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,\r
+ * and/or sell copies of the Software, and to permit persons to whom the\r
+ * Software is furnished to do so, subject to the following conditions:\r
+ *\r
+ * The above copyright notice and this permission notice shall be included\r
+ * in all copies or substantial portions of the Software.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\r
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
+ */\r
+\r
+#include <GL/freeglut.h>\r
+#include "../Common/freeglut_internal.h"\r
+\r
+\r
+#if !defined(_WIN32_WCE)\r
+void fgPlatformJoystickClose ( int ident )\r
+{\r
+    /* Do nothing special */\r
+}\r
+#endif\r
+\r