void joydefs_calibrate() { int i; int temp_values[MAX_AXES]; char title[50]; char text[256]; //added/killed on 10/17/98 by Hans de Goede for joystick/mouse # fix //-killed- int nsticks = 0; //end this section kill - Hans joydefs_calibrate_flag = 0; if (!joy_present) { nm_messagebox( NULL, 1, TXT_OK, TXT_NO_JOYSTICK ); return; } if (j_joystick[0].version) { joycal_message ("No Calibration", "calibration not required for\njoystick v1.x"); return; } for (i = 0; i < j_num_axes; i += 2) { sprintf (title, "js%d Calibration", j_axis[i].joydev); sprintf (text, "center joystick %d", j_axis[i].joydev); joycal_message (title, text); joystick_read_raw_axis (JOY_ALL_AXIS, temp_values); j_axis[i].center_val = temp_values[i]; j_axis[i + 1].center_val = temp_values[i + 1]; sprintf (text, "move joystick %d to the upper left", j_axis[i].joydev); joycal_message (title, text); joystick_read_raw_axis (JOY_ALL_AXIS, temp_values); j_axis[i].min_val = temp_values[i]; j_axis[i + 1].min_val = temp_values[i + 1]; sprintf (text, "move joystick %d to the lower right", j_axis[i].joydev); joycal_message (title, text); joystick_read_raw_axis (JOY_ALL_AXIS, temp_values); j_axis[i].max_val = temp_values[i]; j_axis[i + 1].max_val = temp_values[i + 1]; } WriteConfigFile (); }
// -------------------------------------------------------------- // joy_get_pos() // // input: x => OUTPUT PARAMETER: x-axis position of stick (-1 to 1) // y => OUTPUT PARAMETER: y-axis position of stick (-1 to 1) // z => OUTPUT PARAMETER: z-axis (throttle) position of stick (-1 to 1) // r => OUTPUT PARAMETER: rudder position of stick (-1 to 1) // // return: success => 1 // failure => 0 // int joy_get_pos(int *x, int *y, int *z, int *rx) { int axis[JOY_NUM_AXES]; if (x) *x = 0; if (y) *y = 0; if (z) *z = 0; if (rx) *rx = 0; if (joy_num_sticks < 1) return 0; joystick_read_raw_axis( 6, axis ); // joy_get_scaled_reading will return a value represents the joystick pos from -1 to +1 if (x && joystick.axis_valid[0]) *x = joy_get_scaled_reading(axis[0], 0); if (y && joystick.axis_valid[1]) *y = joy_get_scaled_reading(axis[1], 1); if (z && joystick.axis_valid[2]) *z = joy_get_unscaled_reading(axis[2], 2); if (rx && joystick.axis_valid[3]) *rx = joy_get_scaled_reading(axis[3], 3); if (x) Joy_last_x_reading = *x; if (y) Joy_last_y_reading = *y; return 1; }
void joy_set_lr() { joystick.present_mask = joystick_read_raw_axis( JOY_ALL_AXIS+JOY_EXT_AXIS, joystick.axis_max ); if ( joystick.present_mask & 3 ) joy_present = 1; else joy_present = 0; }
void joy_set_cen() { joystick.present_mask = JOY_ALL_AXIS; // Assume they're all present joystick.present_mask = joystick_read_raw_axis( JOY_ALL_AXIS, joystick.axis_center ); if ( joystick.present_mask & 3 ) joy_present = 1; else joy_present = 0; }
ubyte joy_read_stick( ubyte masks, int *axis ) { ubyte flags; int raw_axis[7]; if ((!joy_installed)||(!joy_present)) { axis[0] = 0; axis[1] = 0; axis[2] = 0; axis[3] = 0; axis[4] = 0; axis[5] = 0; axis[6] = 0; return 0; } flags=joystick_read_raw_axis( masks, raw_axis ); if ( flags & JOY_1_X_AXIS ) axis[0] = joy_get_scaled_reading( raw_axis[0], 0 ); else axis[0] = 0; if ( flags & JOY_1_Y_AXIS ) axis[1] = joy_get_scaled_reading( raw_axis[1], 1 ); else axis[1] = 0; if ( flags & JOY_1_Z_AXIS ) axis[2] = joy_get_scaled_reading( raw_axis[2], 2 ); else axis[2] = 0; if ( flags & JOY_1_R_AXIS ) axis[4] = joy_get_scaled_reading( raw_axis[4], 4 ); else axis[4] = 0; if ( flags & JOY_1_U_AXIS ) axis[5] = joy_get_scaled_reading( raw_axis[5], 5 ); else axis[5] = 0; if ( flags & JOY_1_V_AXIS ) axis[6] = joy_get_scaled_reading( raw_axis[6], 6 ); else axis[6] = 0; if ( flags & JOY_1_POV ) axis[3] = joy_get_scaled_reading( raw_axis[3], 3 ); else axis[3] = 0; return flags; }
void joy_get_pos(int *x, int *y) { int axis[MAX_AXES]; if (!num_joysticks) { *x=*y=0; return; } joystick_read_raw_axis (JOY_ALL_AXIS, axis); *x = joy_get_scaled_reading( axis[0], 0 ); *y = joy_get_scaled_reading( axis[1], 1 ); }
void joy_set_cen() { switch (SpecialDevice) { case TACTILE_CYBERNET: //@@ CyberImpact_CalibCenter(); break; } joystick.present_mask = joystick_read_raw_axis( JOY_ALL_AXIS+JOY_EXT_AXIS, joystick.axis_center ); if ( joystick.present_mask & 3 ) joy_present = 1; else joy_present = 0; }
void joy_get_pos( int *x, int *y ) { ubyte flags; int axis[JOY_NUM_AXES]; if ((!joy_installed)||(!joy_present)) { *x=*y=0; return; } flags=joystick_read_raw_axis( JOY_1_X_AXIS+JOY_1_Y_AXIS, axis ); if ( flags & JOY_1_X_AXIS ) *x = joy_get_scaled_reading( axis[0], 0 ); else *x = 0; if ( flags & JOY_1_Y_AXIS ) *y = joy_get_scaled_reading( axis[1], 1 ); else *y = 0; }
int joy_init(int joyid) //HH: added joyid parameter { int i; int temp_axis[JOY_NUM_AXES]; //changed - orulz JOYCAPS pjc; if (FindArg( "-nojoystick" )) return 0; atexit(joy_close); //HH: we are a bit lazy :). Errors are ignored, so we are even double-lazy :) joy_flush(); memset(&joystick, 0, sizeof(joystick)); for (i=0; i<MAX_BUTTONS; i++) joystick.buttons[i].last_state = 0; if ( !joy_installed ) { joy_present = 0; joy_installed = 1; joystick.max_timer = 65536; joystick.read_count = 0; joystick.last_value = 0; } joystick.present_mask = JOY_ALL_AXIS; // Assume they're all present joystick.present_mask = joystick_read_raw_axis( JOY_ALL_AXIS, temp_axis ); if ( joystick.present_mask & 3 ) joy_present = 1; else joy_present = 0; //HH: Main Win32 joystick initialization, incl. reading cal. stuff if (joyGetDevCaps(joyid, &pjc, sizeof(pjc))!=JOYERR_NOERROR) { return 0; } if (joySetThreshold(joyid, pjc.wXmax/256)!=JOYERR_NOERROR) { return 0; } joystick.max_timer = pjc.wPeriodMax; joystick.axis_min[0] = pjc.wXmin; joystick.axis_min[1] = pjc.wYmin; //orulz: // joystick.axis_min[2] = pjc.wZmin; // //HH: joystick.axis_min[3] = pov-stuff // joystick.axis_min[4] = pjc.wRmin; // joystick.axis_min[5] = pjc.wUmin; // joystick.axis_min[6] = pjc.wVmin; joystick.axis_min[2] = pjc.wRmin; joystick.axis_min[3] = pjc.wZmin; joystick.axis_min[4] = pjc.wUmin; joystick.axis_min[5] = pjc.wVmin; joystick.axis_max[0] = pjc.wXmax; joystick.axis_max[1] = pjc.wYmax; //orulz: // joystick.axis_max[2] = pjc.wZmax; // //HH: joystick.axis_max[3] = pov-stuff // joystick.axis_max[4] = pjc.wRmax; // joystick.axis_max[5] = pjc.wUmax; // joystick.axis_max[6] = pjc.wVmax; joystick.axis_max[2] = pjc.wRmax; joystick.axis_max[3] = pjc.wZmax; joystick.axis_max[4] = pjc.wUmax; joystick.axis_max[5] = pjc.wVmax; joystick.axis_center[0] = hh_average(pjc.wXmax,pjc.wXmin); joystick.axis_center[1] = hh_average(pjc.wYmax,pjc.wYmin); //orulz: // joystick.axis_center[2] = hh_average(pjc.wZmax,pjc.wZmin); // joystick.axis_center[3] = JOY_POVCENTERED; // joystick.axis_center[4] = hh_average(pjc.wRmax,pjc.wRmin); // joystick.axis_center[5] = hh_average(pjc.wUmax,pjc.wUmin); // joystick.axis_center[6] = hh_average(pjc.wVmax,pjc.wVmin); joystick.axis_center[2] = hh_average(pjc.wRmax,pjc.wRmin); joystick.axis_center[3] = hh_average(pjc.wZmax,pjc.wZmin); joystick.axis_center[4] = hh_average(pjc.wUmax,pjc.wUmin); joystick.axis_center[5] = hh_average(pjc.wVmax,pjc.wVmin); joystick.present_mask = JOY_1_X_AXIS | JOY_1_Y_AXIS; if (pjc.wCaps & JOYCAPS_HASZ) joystick.present_mask |= JOY_1_Z_AXIS; // if (pjc.wCaps & JOYCAPS_HASPOV) joystick.present_mask |= JOY_1_POV; if (pjc.wCaps & JOYCAPS_HASR) joystick.present_mask |= JOY_1_R_AXIS; if (pjc.wCaps & JOYCAPS_HASU) joystick.present_mask |= JOY_1_U_AXIS; if (pjc.wCaps & JOYCAPS_HASV) joystick.present_mask |= JOY_1_V_AXIS; return joy_present; }
void joy_set_cen() { joystick_read_raw_axis( 2, joystick.axis_center ); }