X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_state.c;h=68b7eb5838df2b8dc840f711dee9f317ecb3e68f;hb=91fa73f22d66ddca47d3402ffaac09cebfb36190;hp=f8b70e97105cf62ff91c44e1826e161af2926cb4;hpb=41e63805080267e9dbd100d30deac6ba0b34678e;p=freeglut diff --git a/src/freeglut_state.c b/src/freeglut_state.c index f8b70e9..68b7eb5 100644 --- a/src/freeglut_state.c +++ b/src/freeglut_state.c @@ -528,13 +528,21 @@ int FGAPIENTRY glutDeviceGet( GLenum eWhat ) #endif - case GLUT_JOYSTICK_POLL_RATE: case GLUT_HAS_JOYSTICK: + return fgJoystickDetect (); + case GLUT_OWNS_JOYSTICK: + return fgState.JoysticksInitialised; + + case GLUT_JOYSTICK_POLL_RATE: + return fgStructure.Window ? fgStructure.Window->State.JoystickPollRate : 0; + + /* The following two are only for Joystick 0 but this is an improvement */ case GLUT_JOYSTICK_BUTTONS: + return glutJoystickGetNumButtons ( 0 ); + case GLUT_JOYSTICK_AXES: - /* XXX WARNING: THIS IS A BIG LIE! */ - return 0; + return glutJoystickGetNumAxes ( 0 ); case GLUT_HAS_SPACEBALL: case GLUT_HAS_DIAL_AND_BUTTON_BOX: @@ -551,8 +559,7 @@ int FGAPIENTRY glutDeviceGet( GLenum eWhat ) return fgStructure.Window ? fgStructure.Window->State.IgnoreKeyRepeat : 0; case GLUT_DEVICE_KEY_REPEAT: - /* XXX WARNING: THIS IS A BIG LIE! */ - return GLUT_KEY_REPEAT_DEFAULT; + return fgState.KeyRepeat; default: fgWarning( "glutDeviceGet(): missing enum handle %d", eWhat );