From 4ec13a48b186c92c293fce8d7f6e071b8586dba8 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 23 Jun 2000 16:21:55 +0000 Subject: applied joystick patch from Michael Champigny --- src/glut/glx/glut_input.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/glut/glx/glut_input.c b/src/glut/glx/glut_input.c index eea9634..007883d 100644 --- a/src/glut/glx/glut_input.c +++ b/src/glut/glx/glut_input.c @@ -159,7 +159,7 @@ tabletPosChange(GLUTwindow * window, int first, int count, int *data) } #endif /* !_WIN32 */ -int +static int __glutProcessDeviceEvents(XEvent * event) { #if !defined(_WIN32) @@ -264,18 +264,17 @@ __glutProcessDeviceEvents(XEvent * event) #else { JOYINFOEX info; - int njoyId = 0; - int nConnected = 0; - MMRESULT result; - - /* Loop through all possible joystick IDs until we get the error - JOYERR_PARMS. Count the number of times we get JOYERR_NOERROR - indicating an installed joystick driver with a joystick currently - attached to the port. */ - while ((result = joyGetPosEx(njoyId++,&info)) != JOYERR_PARMS) { - if (result == JOYERR_NOERROR) { - ++nConnected; /* The count of connected joysticks. */ - } + JOYCAPS joyCaps; + + if (joyGetPosEx(JOYSTICKID1,&info) != JOYERR_NOERROR) { + __glutHasJoystick = 1; + joyGetDevCaps(JOYSTICKID1, &joyCaps, sizeof(joyCaps)); + __glutNumJoystickButtons = joyCaps.wNumButtons; + __glutNumJoystickAxes = joyCaps.wNumAxes; + } else { + __glutHasJoystick = 0; + __glutNumJoystickButtons = 0; + __glutNumJoystickAxes = 0; } } #endif /* !_WIN32 */ -- cgit v1.1