Should be entirely superficial changes to code style:
* Fit lines to 80 columns. (It does get tiresome seeing long lines forced to break by the right-hand border of windows...(^&) * Eliminated say-nothing-new comments. * Made formatting more consistant in spots. * Eliminated some hard TAB characters. git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@263 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
parent
126e447121
commit
1b7f3df686
@ -25,12 +25,13 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PWO: this is not exactly what Steve Baker has done for PLIB, as I had to convert
|
* PWO: This is not exactly what Steve Baker has done for PLIB, as I had to
|
||||||
* it from C++ to C. And I've also reformatted it a bit (that's my little
|
* convert it from C++ to C. And I've also reformatted it a bit (that's
|
||||||
* personal deviation :]) I don't really know if it is still portable...
|
* my little personal deviation :]) I don't really know if it is still
|
||||||
|
* portable...
|
||||||
* Steve: could you please add some comments to the code? :)
|
* Steve: could you please add some comments to the code? :)
|
||||||
*
|
*
|
||||||
* FreeBSD port - courtesy of Stephen Montgomery-Smith <stephen@math.missouri.edu>
|
* FreeBSD port by Stephen Montgomery-Smith <stephen@math.missouri.edu>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(__FreeBSD__) || defined(__NetBSD__)
|
#if defined(__FreeBSD__) || defined(__NetBSD__)
|
||||||
@ -85,7 +86,7 @@
|
|||||||
# ifndef JS_DATA_TYPE
|
# ifndef JS_DATA_TYPE
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Not Windoze and no joystick driver...
|
* Not Windoze and no (known) joystick driver...
|
||||||
*
|
*
|
||||||
* Well - we'll put these values in and that should
|
* Well - we'll put these values in and that should
|
||||||
* allow the code to at least compile. The JS open
|
* allow the code to at least compile. The JS open
|
||||||
@ -219,8 +220,11 @@ static void fghJoystickRawRead ( SFG_Joystick* joy, int* buttons, float* axes )
|
|||||||
/*
|
/*
|
||||||
* Use the old values
|
* Use the old values
|
||||||
*/
|
*/
|
||||||
if( buttons ) *buttons = joy->tmp_buttons;
|
if( buttons )
|
||||||
if( axes ) memcpy( axes, joy->tmp_axes, sizeof(float) * joy->num_axes );
|
*buttons = joy->tmp_buttons;
|
||||||
|
if( axes )
|
||||||
|
memcpy( axes, joy->tmp_axes,
|
||||||
|
sizeof(float) * joy->num_axes );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -283,7 +287,8 @@ static float fghJoystickFudgeAxis( SFG_Joystick* joy, float value, int axis )
|
|||||||
{
|
{
|
||||||
if( value < joy->center[ axis ] )
|
if( value < joy->center[ axis ] )
|
||||||
{
|
{
|
||||||
float xx = (value - joy->center[ axis ]) / (joy->center[ axis ] - joy->min[ axis ]);
|
float xx = (value - joy->center[ axis ]) / (joy->center[ axis ] -
|
||||||
|
joy->min[ axis ]);
|
||||||
|
|
||||||
if( xx < -joy->saturate[ axis ] )
|
if( xx < -joy->saturate[ axis ] )
|
||||||
return( -1.0f );
|
return( -1.0f );
|
||||||
@ -291,13 +296,15 @@ static float fghJoystickFudgeAxis( SFG_Joystick* joy, float value, int axis )
|
|||||||
if( xx > -joy->dead_band [ axis ] )
|
if( xx > -joy->dead_band [ axis ] )
|
||||||
return( 0.0f );
|
return( 0.0f );
|
||||||
|
|
||||||
xx = (xx + joy->dead_band[ axis ]) / (joy->saturate[ axis ] - joy->dead_band[ axis ]);
|
xx = (xx + joy->dead_band[ axis ]) / (joy->saturate[ axis ] -
|
||||||
|
joy->dead_band[ axis ]);
|
||||||
|
|
||||||
return( ( xx < -1.0f ) ? -1.0f : xx );
|
return( ( xx < -1.0f ) ? -1.0f : xx );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
float xx = (value - joy->center [ axis ]) / (joy->max[ axis ] - joy->center[ axis ]);
|
float xx = (value - joy->center [ axis ]) / (joy->max[ axis ] -
|
||||||
|
joy->center[ axis ]);
|
||||||
|
|
||||||
if( xx > joy->saturate[ axis ] )
|
if( xx > joy->saturate[ axis ] )
|
||||||
return 1.0f ;
|
return 1.0f ;
|
||||||
@ -305,7 +312,8 @@ static float fghJoystickFudgeAxis( SFG_Joystick* joy, float value, int axis )
|
|||||||
if( xx < joy->dead_band[ axis ] )
|
if( xx < joy->dead_band[ axis ] )
|
||||||
return 0.0f ;
|
return 0.0f ;
|
||||||
|
|
||||||
xx = (xx - joy->dead_band[ axis ]) / (joy->saturate[ axis ] - joy->dead_band[ axis ]);
|
xx = (xx - joy->dead_band[ axis ]) / (joy->saturate[ axis ] -
|
||||||
|
joy->dead_band[ axis ]);
|
||||||
|
|
||||||
return( ( xx > 1.0f ) ? 1.0f : xx );
|
return( ( xx > 1.0f ) ? 1.0f : xx );
|
||||||
}
|
}
|
||||||
@ -350,25 +358,43 @@ static void fghJoystickOpen( SFG_Joystick* joy )
|
|||||||
|
|
||||||
memset( &jsCaps, 0, sizeof(jsCaps) );
|
memset( &jsCaps, 0, sizeof(jsCaps) );
|
||||||
|
|
||||||
joy->error = (joyGetDevCaps( joy->js_id, &jsCaps, sizeof(jsCaps) ) != JOYERR_NOERROR);
|
joy->error =
|
||||||
joy->num_axes = (jsCaps.wNumAxes < _JS_MAX_AXES ) ? jsCaps.wNumAxes : _JS_MAX_AXES;
|
(joyGetDevCaps( joy->js_id, &jsCaps, sizeof(jsCaps) ) !=
|
||||||
|
JOYERR_NOERROR);
|
||||||
|
joy->num_axes =
|
||||||
|
(jsCaps.wNumAxes < _JS_MAX_AXES ) ? jsCaps.wNumAxes : _JS_MAX_AXES;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* WARNING - Fall through case clauses!!
|
* WARNING - Fall through case clauses!!
|
||||||
*/
|
*/
|
||||||
switch( joy->num_axes )
|
switch( joy->num_axes )
|
||||||
{
|
{
|
||||||
case 6 : joy->min[ 5 ] = (float) jsCaps.wVmin; joy->max[ 5 ] = (float) jsCaps.wVmax;
|
case 6:
|
||||||
case 5 : joy->min[ 4 ] = (float) jsCaps.wUmin; joy->max[ 4 ] = (float) jsCaps.wUmax;
|
joy->min[ 5 ] = (float) jsCaps.wVmin;
|
||||||
case 4 : joy->min[ 3 ] = (float) jsCaps.wRmin; joy->max[ 3 ] = (float) jsCaps.wRmax;
|
joy->max[ 5 ] = (float) jsCaps.wVmax;
|
||||||
case 3 : joy->min[ 2 ] = (float) jsCaps.wZmin; joy->max[ 2 ] = (float) jsCaps.wZmax;
|
case 5:
|
||||||
case 2 : joy->min[ 1 ] = (float) jsCaps.wYmin; joy->max[ 1 ] = (float) jsCaps.wYmax;
|
joy->min[ 4 ] = (float) jsCaps.wUmin;
|
||||||
case 1 : joy->min[ 0 ] = (float) jsCaps.wXmin; joy->max[ 0 ] = (float) jsCaps.wXmax; break;
|
joy->max[ 4 ] = (float) jsCaps.wUmax;
|
||||||
|
case 4:
|
||||||
|
joy->min[ 3 ] = (float) jsCaps.wRmin;
|
||||||
|
joy->max[ 3 ] = (float) jsCaps.wRmax;
|
||||||
|
case 3:
|
||||||
|
joy->min[ 2 ] = (float) jsCaps.wZmin;
|
||||||
|
joy->max[ 2 ] = (float) jsCaps.wZmax;
|
||||||
|
case 2:
|
||||||
|
joy->min[ 1 ] = (float) jsCaps.wYmin;
|
||||||
|
joy->max[ 1 ] = (float) jsCaps.wYmax;
|
||||||
|
case 1:
|
||||||
|
joy->min[ 0 ] = (float) jsCaps.wXmin;
|
||||||
|
joy->max[ 0 ] = (float) jsCaps.wXmax;
|
||||||
|
break;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* I guess we have no axes at all
|
* I guess we have no axes at all
|
||||||
*/
|
*/
|
||||||
default: joy->error = TRUE; break;
|
default:
|
||||||
|
joy->error = TRUE;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -500,15 +526,9 @@ static void fghJoystickOpen( SFG_Joystick* joy )
|
|||||||
*/
|
*/
|
||||||
void fgJoystickInit( int ident )
|
void fgJoystickInit( int ident )
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
* Make sure we don't get reinitialized
|
|
||||||
*/
|
|
||||||
if( fgJoystick != NULL )
|
if( fgJoystick != NULL )
|
||||||
fgError( "illegal attemp to initialize joystick device" );
|
fgError( "illegal attemp to initialize joystick device" );
|
||||||
|
|
||||||
/*
|
|
||||||
* Have the global joystick structure created
|
|
||||||
*/
|
|
||||||
fgJoystick = (SFG_Joystick *)calloc( sizeof(SFG_Joystick), 1 );
|
fgJoystick = (SFG_Joystick *)calloc( sizeof(SFG_Joystick), 1 );
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
@ -527,9 +547,6 @@ void fgJoystickInit( int ident )
|
|||||||
sprintf( fgJoystick->fname, "/dev/js%d", ident );
|
sprintf( fgJoystick->fname, "/dev/js%d", ident );
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
/*
|
|
||||||
* Let's try opening the joystick device now:
|
|
||||||
*/
|
|
||||||
fghJoystickOpen( fgJoystick );
|
fghJoystickOpen( fgJoystick );
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -560,21 +577,11 @@ void fgJoystickPollWindow( SFG_Window* window )
|
|||||||
float axes[ _JS_MAX_AXES ];
|
float axes[ _JS_MAX_AXES ];
|
||||||
int buttons;
|
int buttons;
|
||||||
|
|
||||||
/*
|
|
||||||
* Make sure the joystick device is initialized, the window seems valid
|
|
||||||
* and that there is a joystick callback hooked to it:
|
|
||||||
*/
|
|
||||||
freeglut_return_if_fail( fgJoystick != NULL && window != NULL );
|
freeglut_return_if_fail( fgJoystick != NULL && window != NULL );
|
||||||
freeglut_return_if_fail( window->Callbacks.Joystick != NULL );
|
freeglut_return_if_fail( window->Callbacks.Joystick != NULL );
|
||||||
|
|
||||||
/*
|
|
||||||
* Poll the joystick now:
|
|
||||||
*/
|
|
||||||
fghJoystickRead( fgJoystick, &buttons, axes );
|
fghJoystickRead( fgJoystick, &buttons, axes );
|
||||||
|
|
||||||
/*
|
|
||||||
* Execute the freeglut joystick callback now
|
|
||||||
*/
|
|
||||||
fgSetWindow (window);
|
fgSetWindow (window);
|
||||||
window->Callbacks.Joystick(
|
window->Callbacks.Joystick(
|
||||||
buttons,
|
buttons,
|
||||||
@ -608,7 +615,3 @@ void fgJoystickPollWindow( SFG_Window* window )
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*** END OF FILE ***/
|
/*** END OF FILE ***/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user