diff --git a/input/drivers_joypad/gx_joypad.c b/input/drivers_joypad/gx_joypad.c index 09fa1808ab..2361ef24f6 100644 --- a/input/drivers_joypad/gx_joypad.c +++ b/input/drivers_joypad/gx_joypad.c @@ -268,39 +268,43 @@ static void gx_joypad_get_buttons(unsigned port, input_bits_t *state) static int16_t gx_joypad_axis_state(unsigned port, uint32_t joyaxis) { - int val = 0; - int axis = -1; - bool is_neg = false; - bool is_pos = false; - if (AXIS_NEG_GET(joyaxis) < 4) { - axis = AXIS_NEG_GET(joyaxis); - is_neg = true; + int16_t val = 0; + int16_t axis = AXIS_NEG_GET(joyaxis); + switch (axis) + { + case 0: + case 1: + val = analog_state[port][0][axis]; + break; + case 2: + case 3: + val = analog_state[port][1][axis - 2]; + break; + } + if (val < 0) + return val; } else if (AXIS_POS_GET(joyaxis) < 4) { - axis = AXIS_POS_GET(joyaxis); - is_pos = true; + int16_t val = 0; + int16_t axis = AXIS_POS_GET(joyaxis); + switch (axis) + { + case 0: + case 1: + val = analog_state[port][0][axis]; + break; + case 2: + case 3: + val = analog_state[port][1][axis - 2]; + break; + } + if (val > 0) + return val; } - - switch (axis) - { - case 0: - case 1: - val = analog_state[port][0][axis]; - break; - case 2: - case 3: - val = analog_state[port][1][axis - 2]; - break; - } - - if (is_neg && val > 0) - val = 0; - else if (is_pos && val < 0) - val = 0; - return val; + return 0; } static int16_t gx_joypad_axis(unsigned port, uint32_t joyaxis) diff --git a/input/drivers_joypad/ps3_joypad.c b/input/drivers_joypad/ps3_joypad.c index 24406dc9a8..b52a196c89 100644 --- a/input/drivers_joypad/ps3_joypad.c +++ b/input/drivers_joypad/ps3_joypad.c @@ -87,41 +87,43 @@ static void ps3_joypad_get_buttons(unsigned port_num, input_bits_t *state) static int16_t ps3_joypad_axis_state(unsigned port, uint32_t joyaxis) { - int val = 0; - int axis = -1; - bool is_neg = false; - bool is_pos = false; - if (AXIS_NEG_GET(joyaxis) < 4) { - axis = AXIS_NEG_GET(joyaxis); - is_neg = true; + int16_t val = 0; + int16_t axis = AXIS_NEG_GET(joyaxis); + switch (axis) + { + case 0: + case 1: + val = analog_state[port][0][axis]; + break; + case 2: + case 3: + val = analog_state[port][1][axis - 2]; + break; + } + if (val < 0) + return val; } else if (AXIS_POS_GET(joyaxis) < 4) { - axis = AXIS_POS_GET(joyaxis); - is_pos = true; + int16_t val = 0; + int16_t axis = AXIS_POS_GET(joyaxis); + switch (axis) + { + case 0: + case 1: + val = analog_state[port][0][axis]; + break; + case 2: + case 3: + val = analog_state[port][1][axis - 2]; + break; + } + if (val > 0) + return val; } - else - return 0; - - switch (axis) - { - case 0: - case 1: - val = analog_state[port][0][axis]; - break; - case 2: - case 3: - val = analog_state[port][1][axis - 2]; - break; - } - - if (is_neg && val > 0) - return 0; - else if (is_pos && val < 0) - return 0; - return val; + return 0; } static int16_t ps3_joypad_axis(unsigned port, uint32_t joyaxis) diff --git a/input/drivers_joypad/psp_joypad.c b/input/drivers_joypad/psp_joypad.c index 8b39d17cda..52139dd3b6 100644 --- a/input/drivers_joypad/psp_joypad.c +++ b/input/drivers_joypad/psp_joypad.c @@ -136,41 +136,43 @@ static void psp_joypad_get_buttons(unsigned port, input_bits_t *state) static int16_t psp_joypad_axis_state(unsigned port, uint32_t joyaxis) { - int val = 0; - int axis = -1; - bool is_neg = false; - bool is_pos = false; - if (AXIS_NEG_GET(joyaxis) < 4) { - axis = AXIS_NEG_GET(joyaxis); - is_neg = true; + int16_t val = 0; + int16_t axis = AXIS_NEG_GET(joyaxis); + switch (axis) + { + case 0: + case 1: + val = analog_state[port][0][axis]; + break; + case 2: + case 3: + val = analog_state[port][1][axis - 2]; + break; + } + if (val < 0) + return val; } else if (AXIS_POS_GET(joyaxis) < 4) { - axis = AXIS_POS_GET(joyaxis); - is_pos = true; + int16_t val = 0; + int16_t axis = AXIS_POS_GET(joyaxis); + switch (axis) + { + case 0: + case 1: + val = analog_state[port][0][axis]; + break; + case 2: + case 3: + val = analog_state[port][1][axis - 2]; + break; + } + if (val > 0) + return val; } - else - return 0; - - switch (axis) - { - case 0: - case 1: - val = analog_state[port][0][axis]; - break; - case 2: - case 3: - val = analog_state[port][1][axis - 2]; - break; - } - - if (is_neg && val > 0) - return 0; - else if (is_pos && val < 0) - return 0; - return val; + return 0; } static int16_t psp_joypad_axis(unsigned port, uint32_t joyaxis) diff --git a/input/drivers_joypad/qnx_joypad.c b/input/drivers_joypad/qnx_joypad.c index 7bfd754908..07dfea34bd 100644 --- a/input/drivers_joypad/qnx_joypad.c +++ b/input/drivers_joypad/qnx_joypad.c @@ -63,39 +63,43 @@ static int16_t qnx_joypad_axis_state( qnx_input_device_t *controller, unsigned port, uint32_t joyaxis) { - int val = 0; - int axis = -1; - bool is_neg = false; - bool is_pos = false; - if (AXIS_NEG_GET(joyaxis) < 4) { - axis = AXIS_NEG_GET(joyaxis); - is_neg = true; + int16_t val = 0; + int16_t axis = AXIS_NEG_GET(joyaxis); + switch (axis) + { + case 0: + case 1: + val = controller->analog0[axis]; + break; + case 2: + case 3: + val = controller->analog1[axis - 2]; + break; + } + if (val < 0) + return val; } else if (AXIS_POS_GET(joyaxis) < 4) { - axis = AXIS_POS_GET(joyaxis); - is_pos = true; + int16_t val = 0; + int16_t axis = AXIS_POS_GET(joyaxis); + switch (axis) + { + case 0: + case 1: + val = controller->analog0[axis]; + break; + case 2: + case 3: + val = controller->analog1[axis - 2]; + break; + } + if (val > 0) + return val; } - - switch (axis) - { - case 0: - case 1: - val = controller->analog0[axis]; - break; - case 2: - case 3: - val = controller->analog1[axis - 2]; - break; - } - - if (is_neg && val > 0) - return 0; - else if (is_pos && val < 0) - return 0; - return val; + return 0; } static int16_t qnx_joypad_axis(unsigned port, uint32_t joyaxis) diff --git a/input/drivers_joypad/sdl_dingux_joypad.c b/input/drivers_joypad/sdl_dingux_joypad.c index 7a124e8613..543fe5b630 100644 --- a/input/drivers_joypad/sdl_dingux_joypad.c +++ b/input/drivers_joypad/sdl_dingux_joypad.c @@ -517,49 +517,48 @@ static void sdl_dingux_joypad_get_buttons(unsigned port, input_bits_t *state) static int16_t sdl_dingux_joypad_axis_state(unsigned port, uint32_t joyaxis) { #if defined(SDL_DINGUX_HAS_ANALOG) - dingux_joypad_t *joypad = (dingux_joypad_t*)&dingux_joypad; - int val = 0; - int axis = -1; - bool is_neg = false; - bool is_pos = false; - - if (port != 0) - return 0; - - if (AXIS_NEG_GET(joyaxis) < 4) + if (port == 0) { - axis = AXIS_NEG_GET(joyaxis); - is_neg = true; + dingux_joypad_t *joypad = (dingux_joypad_t*)&dingux_joypad; + if (AXIS_NEG_GET(joyaxis) < 4) + { + int16_t val = 0; + int16_t axis = AXIS_NEG_GET(joyaxis); + switch (axis) + { + case 0: + case 1: + val = joypad->analog_state[0][axis]; + break; + case 2: + case 3: + val = joypad->analog_state[1][axis - 2]; + break; + } + if (val < 0) + return val; + } + else if (AXIS_POS_GET(joyaxis) < 4) + { + int16_t val = 0; + int16_t axis = AXIS_POS_GET(joyaxis); + switch (axis) + { + case 0: + case 1: + val = joypad->analog_state[0][axis]; + break; + case 2: + case 3: + val = joypad->analog_state[1][axis - 2]; + break; + } + if (val > 0) + return val; + } } - else if (AXIS_POS_GET(joyaxis) < 4) - { - axis = AXIS_POS_GET(joyaxis); - is_pos = true; - } - else - return 0; - - switch (axis) - { - case 0: - case 1: - val = joypad->analog_state[0][axis]; - break; - case 2: - case 3: - val = joypad->analog_state[1][axis - 2]; - break; - } - - if (is_neg && val > 0) - return 0; - else if (is_pos && val < 0) - return 0; - - return val; -#else - return 0; #endif + return 0; } static int16_t sdl_dingux_joypad_axis(unsigned port, uint32_t joyaxis) diff --git a/input/drivers_joypad/switch_joypad.c b/input/drivers_joypad/switch_joypad.c index 1c37258b40..d885338aa1 100644 --- a/input/drivers_joypad/switch_joypad.c +++ b/input/drivers_joypad/switch_joypad.c @@ -115,39 +115,43 @@ static void switch_joypad_get_buttons(unsigned port_num, input_bits_t *state) static int16_t switch_joypad_axis_state(unsigned port, uint32_t joyaxis) { - int val = 0; - int axis = -1; - bool is_neg = false; - bool is_pos = false; - if (AXIS_NEG_GET(joyaxis) < 4) { - axis = AXIS_NEG_GET(joyaxis); - is_neg = true; + int16_t val = 0; + int16_t axis = AXIS_NEG_GET(joyaxis); + switch(axis) + { + case 0: + case 1: + val = analog_state[port][0][axis]; + break; + case 2: + case 3: + val = analog_state[port][1][axis - 2]; + break; + } + if (val < 0) + return val; } else if (AXIS_POS_GET(joyaxis) < 4) { - axis = AXIS_POS_GET(joyaxis); - is_pos = true; + int16_t val = 0; + int16_t axis = AXIS_POS_GET(joyaxis); + switch(axis) + { + case 0: + case 1: + val = analog_state[port][0][axis]; + break; + case 2: + case 3: + val = analog_state[port][1][axis - 2]; + break; + } + if (val > 0) + return val; } - - switch(axis) - { - case 0: - case 1: - val = analog_state[port][0][axis]; - break; - case 2: - case 3: - val = analog_state[port][1][axis - 2]; - break; - } - - if (is_neg && val > 0) - return 0; - else if (is_pos && val < 0) - return 0; - return val; + return 0; } static int16_t switch_joypad_axis(unsigned port, uint32_t joyaxis)