SDL_GetJoystickAxis(): returns 0 on success, negative on error
This commit is contained in:
parent
1e39178bed
commit
fa312cee4d
|
@ -2274,11 +2274,13 @@ Sint16 SDL_GetGamepadAxis(SDL_Gamepad *gamepad, SDL_GamepadAxis axis)
|
|||
SDL_ExtendedGamepadBind *binding = &gamepad->bindings[i];
|
||||
if (binding->outputType == SDL_GAMEPAD_BINDTYPE_AXIS && binding->output.axis.axis == axis) {
|
||||
int value = 0;
|
||||
Sint16 val16 = 0;
|
||||
SDL_bool valid_input_range;
|
||||
SDL_bool valid_output_range;
|
||||
|
||||
if (binding->inputType == SDL_GAMEPAD_BINDTYPE_AXIS) {
|
||||
SDL_GetJoystickAxis(gamepad->joystick, binding->input.axis.axis, &value);
|
||||
SDL_GetJoystickAxis(gamepad->joystick, binding->input.axis.axis, &val16);
|
||||
value = val16;
|
||||
if (binding->input.axis.axis_min < binding->input.axis.axis_max) {
|
||||
valid_input_range = (value >= binding->input.axis.axis_min && value <= binding->input.axis.axis_max);
|
||||
} else {
|
||||
|
@ -2358,8 +2360,10 @@ Uint8 SDL_GetGamepadButton(SDL_Gamepad *gamepad, SDL_GamepadButton button)
|
|||
if (binding->outputType == SDL_GAMEPAD_BINDTYPE_BUTTON && binding->output.button == button) {
|
||||
if (binding->inputType == SDL_GAMEPAD_BINDTYPE_AXIS) {
|
||||
SDL_bool valid_input_range;
|
||||
int value = 0;
|
||||
SDL_GetJoystickAxis(gamepad->joystick, binding->input.axis.axis, &value);
|
||||
int value;
|
||||
Sint16 val16 = 0;
|
||||
SDL_GetJoystickAxis(gamepad->joystick, binding->input.axis.axis, &val16);
|
||||
value = val16;
|
||||
int threshold = binding->input.axis.axis_min + (binding->input.axis.axis_max - binding->input.axis.axis_min) / 2;
|
||||
if (binding->input.axis.axis_min < binding->input.axis.axis_max) {
|
||||
valid_input_range = (value >= binding->input.axis.axis_min && value <= binding->input.axis.axis_max);
|
||||
|
|
|
@ -227,7 +227,9 @@ void loop(void *arg)
|
|||
SDL_SetRenderDrawColor(screen, 0xFF, 0x00, 0x00, SDL_ALPHA_OPAQUE);
|
||||
for (i = 0; i < SDL_GetNumJoystickAxes(joystick); ++i) {
|
||||
/* Draw the X/Y axis */
|
||||
SDL_GetJoystickAxis(joystick, i, &x);
|
||||
Sint16 val16 = 0;
|
||||
SDL_GetJoystickAxis(joystick, i, &val16);
|
||||
x = val16;
|
||||
x += 32768;
|
||||
x *= SCREEN_WIDTH;
|
||||
x /= 65535;
|
||||
|
@ -238,7 +240,9 @@ void loop(void *arg)
|
|||
}
|
||||
++i;
|
||||
if (i < SDL_GetNumJoystickAxes(joystick)) {
|
||||
SDL_GetJoystickAxis(joystick, i, &y);
|
||||
val16 = 0;
|
||||
SDL_GetJoystickAxis(joystick, i, &val16);
|
||||
y = val16;
|
||||
y += 32768;
|
||||
} else {
|
||||
y = 32768;
|
||||
|
|
Loading…
Reference in a new issue