diff --git a/input/drivers/cocoa_input.c b/input/drivers/cocoa_input.c index 9148469524..93f3b482fd 100644 --- a/input/drivers/cocoa_input.c +++ b/input/drivers/cocoa_input.c @@ -345,17 +345,19 @@ static int16_t cocoa_input_state(void *data, } break; case RETRO_DEVICE_ANALOG: + if (binds[port]) { int16_t ret = 0; #ifdef HAVE_MFI ret = input_joypad_analog(apple->sec_joypad, joypad_info, port, idx, id, binds[port]); #endif - if (!ret && binds[port]) + if (!ret) ret = input_joypad_analog(apple->joypad, joypad_info, port, idx, id, binds[port]); return ret; } + break; case RETRO_DEVICE_KEYBOARD: return (id < RETROK_LAST) && apple_key_state[rarch_keysym_lut[(enum retro_key)id]]; case RETRO_DEVICE_MOUSE: diff --git a/input/drivers/dinput.c b/input/drivers/dinput.c index 441569bec7..635d1209b2 100644 --- a/input/drivers/dinput.c +++ b/input/drivers/dinput.c @@ -635,10 +635,10 @@ static int16_t dinput_input_state(void *data, case RETRO_DEVICE_ANALOG: if (binds[port]) { - int16_t ret = dinput_pressed_analog(di, binds[port], idx, id); - if (!ret) - ret = input_joypad_analog(di->joypad, joypad_info, + int16_t ret = input_joypad_analog(di->joypad, joypad_info, port, idx, id, binds[port]); + if (!ret) + ret = dinput_pressed_analog(di, binds[port], idx, id); return ret; } break; diff --git a/input/drivers/linuxraw_input.c b/input/drivers/linuxraw_input.c index bd7337a1e7..ea32436526 100644 --- a/input/drivers/linuxraw_input.c +++ b/input/drivers/linuxraw_input.c @@ -161,11 +161,12 @@ static int16_t linuxraw_input_state(void *data, } break; case RETRO_DEVICE_ANALOG: + if (binds[port]) { - int16_t ret = linuxraw_analog_pressed(linuxraw, binds[port], idx, id); - if (!ret && binds[port]) - ret = input_joypad_analog(linuxraw->joypad, - joypad_info, port, idx, id, binds[port]); + int16_t ret = input_joypad_analog(linuxraw->joypad, + joypad_info, port, idx, id, binds[port]); + if (!ret) + ret = linuxraw_analog_pressed(linuxraw, binds[port], idx, id); return ret; } } diff --git a/input/drivers/rwebinput_input.c b/input/drivers/rwebinput_input.c index 6fc48951bc..31c528e7d8 100644 --- a/input/drivers/rwebinput_input.c +++ b/input/drivers/rwebinput_input.c @@ -565,13 +565,15 @@ static int16_t rwebinput_input_state(void *data, } break; case RETRO_DEVICE_ANALOG: + if (binds[port]) { - int16_t ret = rwebinput_analog_pressed( + int16_t ret = input_joypad_analog( + rwebinput->joypad, joypad_info, port, + idx, id, binds[port]); + if (!ret) + ret = rwebinput_analog_pressed( rwebinput, joypad_info, binds[port], idx, id); - if (!ret && binds[port]) - ret = input_joypad_analog(rwebinput->joypad, joypad_info, port, - idx, id, binds[port]); return ret; } case RETRO_DEVICE_KEYBOARD: diff --git a/input/drivers/sdl_input.c b/input/drivers/sdl_input.c index 2f84e47370..3db4eecb3c 100644 --- a/input/drivers/sdl_input.c +++ b/input/drivers/sdl_input.c @@ -235,10 +235,10 @@ static int16_t sdl_input_state(void *data, case RETRO_DEVICE_ANALOG: if (binds[port]) { - int16_t ret = sdl_analog_pressed(sdl, binds[port], idx, id); - if (!ret) - ret = input_joypad_analog(sdl->joypad, + int16_t ret = input_joypad_analog(sdl->joypad, joypad_info, port, idx, id, binds[port]); + if (!ret) + ret = sdl_analog_pressed(sdl, binds[port], idx, id); return ret; } break; diff --git a/input/drivers/udev_input.c b/input/drivers/udev_input.c index c7f1cba500..6345c44076 100644 --- a/input/drivers/udev_input.c +++ b/input/drivers/udev_input.c @@ -1048,11 +1048,12 @@ static int16_t udev_input_state(void *data, } break; case RETRO_DEVICE_ANALOG: + if (binds[port]) { - int16_t ret = udev_analog_pressed(binds[port], idx, id); - if (!ret && binds[port]) - ret = input_joypad_analog(udev->joypad, + int16_t ret = input_joypad_analog(udev->joypad, joypad_info, port, idx, id, binds[port]); + if (!ret) + ret = udev_analog_pressed(binds[port], idx, id); return ret; } case RETRO_DEVICE_KEYBOARD: diff --git a/input/drivers/uwp_input.c b/input/drivers/uwp_input.c index 7c6b97edc2..322952964d 100644 --- a/input/drivers/uwp_input.c +++ b/input/drivers/uwp_input.c @@ -215,6 +215,7 @@ static int16_t uwp_input_state(void *data, case RETRO_DEVICE_ANALOG: if (binds[port]) return uwp_pressed_analog(uwp, joypad_info, binds[port], port, index, id); + break; case RETRO_DEVICE_KEYBOARD: return (id < RETROK_LAST) && uwp_keyboard_pressed(id); diff --git a/input/drivers/wayland_input.c b/input/drivers/wayland_input.c index 2162723fe3..e869b87a88 100644 --- a/input/drivers/wayland_input.c +++ b/input/drivers/wayland_input.c @@ -333,12 +333,15 @@ static int16_t input_wl_state(void *data, } break; case RETRO_DEVICE_ANALOG: + if (binds[port]) { - int16_t ret = input_wl_analog_pressed(wl, binds[port], idx, id); - if (!ret && binds[port]) - ret = input_joypad_analog(wl->joypad, joypad_info, port, idx, id, binds[port]); + int16_t ret = input_joypad_analog( + wl->joypad, joypad_info, port, idx, id, binds[port]); + if (!ret) + ret = input_wl_analog_pressed(wl, binds[port], idx, id); return ret; } + break; case RETRO_DEVICE_KEYBOARD: return input_wl_state_kb(wl, binds, port, device, idx, id); case RETRO_DEVICE_MOUSE: diff --git a/input/drivers/x11_input.c b/input/drivers/x11_input.c index ee60cbf1f4..5a5c7600ee 100644 --- a/input/drivers/x11_input.c +++ b/input/drivers/x11_input.c @@ -351,12 +351,13 @@ static int16_t x_input_state(void *data, } break; case RETRO_DEVICE_ANALOG: + if (binds[port]) { - int16_t ret = x_pressed_analog(x11, binds[port], idx, id); - if (!ret && binds[port]) - ret = input_joypad_analog(x11->joypad, joypad_info, - port, idx, - id, binds[port]); + int16_t ret = input_joypad_analog(x11->joypad, joypad_info, + port, idx, + id, binds[port]); + if (!ret) + ret = x_pressed_analog(x11, binds[port], idx, id); return ret; } case RETRO_DEVICE_KEYBOARD: