FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickFunc" );
fgInitialiseJoysticks ();
+ if ( ( ( fgStructure.CurrentWindow->State.JoystickPollRate < 0 ) ||
+ !FETCH_WCB(*fgStructure.CurrentWindow,Joystick) ) && /* Joystick callback was disabled */
+ ( callback && ( pollInterval >= 0 ) ) ) /* but is now enabled */
+ ++fgState.NumActiveJoysticks;
+ else if ( ( ( fgStructure.CurrentWindow->State.JoystickPollRate >= 0 ) &&
+ FETCH_WCB(*fgStructure.CurrentWindow,Joystick) ) && /* Joystick callback was enabled */
+ ( !callback || ( pollInterval < 0 ) ) ) /* but is now disabled */
+ --fgState.NumActiveJoysticks;
+
SET_CALLBACK( Joystick );
fgStructure.CurrentWindow->State.JoystickPollRate = pollInterval;
void FGAPIENTRY glutSpaceballMotionFunc( void (* callback)( int, int, int ) )
{
FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSpaceballMotionFunc" );
+ fgInitialiseSpaceball();
+
SET_CALLBACK( SpaceMotion );
}
void FGAPIENTRY glutSpaceballRotateFunc( void (* callback)( int, int, int ) )
{
FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSpaceballRotateFunc" );
+ fgInitialiseSpaceball();
+
SET_CALLBACK( SpaceRotation );
}
void FGAPIENTRY glutSpaceballButtonFunc( void (* callback)( int, int ) )
{
FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSpaceballButtonFunc" );
+ fgInitialiseSpaceball();
+
SET_CALLBACK( SpaceButton );
}