47 int i, current_button = 0, button_bits = 0;
49 joystick=axis=button=-1;
53 printf (
"+----------------------------------------------\n" ) ;
54 printf (
"| Btns " ) ;
56 for (
i = 0 ;
i < jss->getJoystick()->getNumAxes() ;
i++ )
57 printf (
"Ax:%3d ",
i ) ;
64 printf (
"+----------------------------------------------\n" ) ;
70 jss->getJoystick()->read ( &button_iv[jss->getCurrentJoystickId()],
71 axes_iv[jss->getCurrentJoystickId()] ) ;
72 }
while( jss->nextJoystick() );
80 jss->getJoystick()->read ( ¤t_button, axes ) ;
82 if(pretty_display) printf (
"| %04x ", current_button ) ;
84 for (
i = 0 ;
i < jss->getJoystick()->getNumAxes();
i++ ) {
86 delta = axes[
i] - axes_iv[jss->getCurrentJoystickId()][
i];
87 if(pretty_display) printf (
"%+.3f ", delta ) ;
89 if( fabs(delta) > axis_threshold ) {
91 joystick=jss->getCurrentJoystickId();
93 axis_positive=(delta>0);
94 }
else if( current_button != 0 ) {
96 joystick=jss->getCurrentJoystickId();
97 button_bits=current_button;
103 for ( ;
i < 8 ;
i++ )
108 }
while( jss->nextJoystick() && !gotit);
114 SGTimeStamp::sleepForMSec(1);
116 if(button_bits != 0) {
117 for(
int i=0;
i<=31;
i++) {
118 if( ( button_bits & (1u <<
i) ) > 0 ) {
134 jss->firstJoystick();
136 jss->getJoystick()->read ( NULL,
137 axes_iv[jss->getCurrentJoystickId()] ) ;
138 for (
i = 0;
i < jss->getJoystick()->getNumAxes();
i++ ) {
139 dead_band[jss->getCurrentJoystickId()][
i] = 0;
141 }
while( jss->nextJoystick() );
143 SGTimeStamp clock = SGTimeStamp::now();
147 for (
int j = 9; j >= 0; j--) {
150 jss->firstJoystick();
153 jss->getJoystick()->read ( NULL, axes ) ;
155 for (
i = 0 ;
i < jss->getJoystick()->getNumAxes();
i++ ) {
157 delta = axes[
i] - axes_iv[jss->getCurrentJoystickId()][
i];
158 if (fabs(delta) > dead_band[jss->getCurrentJoystickId()][
i])
159 dead_band[jss->getCurrentJoystickId()][
i] = delta;
162 }
while( jss->nextJoystick());
164 SGTimeStamp::sleepForMSec(1);
165 }
while (clock.elapsedMSec() < 1000);
170 cout << endl << endl;
172 jss->firstJoystick();
174 for (
i = 0;
i < jss->getJoystick()->getNumAxes();
i++ ) {
175 jss->getJoystick()->setDeadBand(
i, dead_band[jss->getCurrentJoystickId()][
i]);
176 printf(
"Joystick %i, axis %i: %f\n", jss->getCurrentJoystickId(),
i, dead_band[jss->getCurrentJoystickId()][
i]);
178 }
while( jss->nextJoystick() );