+ }
+ if(button_bits != 0) {
+ for(int i=0;i<=31;i++) {
+ if( ( button_bits & (1 << i) ) > 0 ) {
+ button=i;
+ break;
+ }
+ }
+ }
+
+ return 0;
+}
+
+void jsInput::findDeadBand() {
+
+ float delta;
+ int i;
+ float dead_band[MAX_JOYSTICKS][_JS_MAX_AXES];
+
+ jss->firstJoystick();
+ do {
+ jss->getJoystick()->read ( NULL,
+ axes_iv[jss->getCurrentJoystickId()] ) ;
+ for ( i = 0; i < jss->getJoystick()->getNumAxes(); i++ ) {
+ dead_band[jss->getCurrentJoystickId()][i] = 0;
+ }
+ } while( jss->nextJoystick() );
+
+ ulClock clock;
+ cout << 10;
+ cout.flush();
+
+ for (int j = 9; j >= 0; j--) {
+ double start_time = clock.getAbsTime();
+ do {
+ jss->firstJoystick();
+ do {
+
+ jss->getJoystick()->read ( NULL, axes ) ;
+
+ for ( i = 0 ; i < jss->getJoystick()->getNumAxes(); i++ ) {
+
+ delta = axes[i] - axes_iv[jss->getCurrentJoystickId()][i];
+ if (fabs(delta) > dead_band[jss->getCurrentJoystickId()][i])
+ dead_band[jss->getCurrentJoystickId()][i] = delta;
+ }
+
+ } while( jss->nextJoystick());
+
+ ulMilliSecondSleep(1);
+ clock.update();
+ } while (clock.getAbsTime() - start_time < 1.0);
+
+ cout << " - " << j;
+ cout.flush();
+ }
+ cout << endl << endl;
+
+ jss->firstJoystick();
+ do {
+ for ( i = 0; i < jss->getJoystick()->getNumAxes(); i++ ) {
+ jss->getJoystick()->setDeadBand(i, dead_band[jss->getCurrentJoystickId()][i]);
+ printf("Joystick %i, axis %i: %f\n", jss->getCurrentJoystickId(), i, dead_band[jss->getCurrentJoystickId()][i]);
+ }
+ } while( jss->nextJoystick() );