From 05a26238755092ffd8aa9795e2fd7cc1d521183c Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 11 Apr 2021 06:37:49 +0200 Subject: [PATCH] (udev input) Cut down on code duplication --- input/drivers/udev_input.c | 139 +++++++++++++------------------------ 1 file changed, 47 insertions(+), 92 deletions(-) diff --git a/input/drivers/udev_input.c b/input/drivers/udev_input.c index 154e0c27fc..0decec68f1 100644 --- a/input/drivers/udev_input.c +++ b/input/drivers/udev_input.c @@ -965,33 +965,38 @@ static int16_t udev_pointer_state(udev_input_t *udev, return 0; } -static int16_t udev_input_lightgun_state( - udev_input_t *udev, - const input_device_driver_t *joypad, - rarch_joypad_info_t *joypad_info, - const struct retro_keybind **binds, - bool keyboard_mapping_blocked, - unsigned port, - unsigned device, - unsigned idx, - unsigned id) +static unsigned udev_retro_id_to_rarch(unsigned id) { - if (!keyboard_mapping_blocked) - if ((binds[port][id].key < RETROK_LAST) - && udev_keyboard_pressed(udev, binds[port] - [id].key) ) - return 1; - if (binds[port][id].valid) + switch (id) { - unsigned new_id = id; - if (button_is_pressed(joypad, - joypad_info, binds[port], - new_id) - || udev_mouse_button_pressed(udev, port, - binds[port][new_id].mbutton) - ) - return 1; + case RETRO_DEVICE_ID_LIGHTGUN_DPAD_RIGHT: + return RARCH_LIGHTGUN_DPAD_RIGHT; + case RETRO_DEVICE_ID_LIGHTGUN_DPAD_LEFT: + return RARCH_LIGHTGUN_DPAD_LEFT; + case RETRO_DEVICE_ID_LIGHTGUN_DPAD_UP: + return RARCH_LIGHTGUN_DPAD_UP; + case RETRO_DEVICE_ID_LIGHTGUN_DPAD_DOWN: + return RARCH_LIGHTGUN_DPAD_DOWN; + case RETRO_DEVICE_ID_LIGHTGUN_SELECT: + return RARCH_LIGHTGUN_SELECT; + case RETRO_DEVICE_ID_LIGHTGUN_PAUSE: + return RARCH_LIGHTGUN_START; + case RETRO_DEVICE_ID_LIGHTGUN_RELOAD: + return RARCH_LIGHTGUN_RELOAD; + case RETRO_DEVICE_ID_LIGHTGUN_TRIGGER: + return RARCH_LIGHTGUN_TRIGGER; + case RETRO_DEVICE_ID_LIGHTGUN_AUX_A: + return RARCH_LIGHTGUN_AUX_A; + case RETRO_DEVICE_ID_LIGHTGUN_AUX_B: + return RARCH_LIGHTGUN_AUX_B; + case RETRO_DEVICE_ID_LIGHTGUN_AUX_C: + return RARCH_LIGHTGUN_AUX_C; + case RETRO_DEVICE_ID_LIGHTGUN_START: + return RARCH_LIGHTGUN_START; + default: + break; } + return 0; } @@ -1118,71 +1123,34 @@ static int16_t udev_input_state( /*buttons*/ case RETRO_DEVICE_ID_LIGHTGUN_TRIGGER: - return udev_input_lightgun_state(udev, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_TRIGGER); case RETRO_DEVICE_ID_LIGHTGUN_RELOAD: - return udev_input_lightgun_state(udev, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_RELOAD); case RETRO_DEVICE_ID_LIGHTGUN_AUX_A: - return udev_input_lightgun_state(udev, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_AUX_A); case RETRO_DEVICE_ID_LIGHTGUN_AUX_B: - return udev_input_lightgun_state(udev, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_AUX_B); case RETRO_DEVICE_ID_LIGHTGUN_AUX_C: - return udev_input_lightgun_state(udev, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_AUX_C); case RETRO_DEVICE_ID_LIGHTGUN_START: - return udev_input_lightgun_state(udev, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_START); case RETRO_DEVICE_ID_LIGHTGUN_SELECT: - return udev_input_lightgun_state(udev, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_SELECT); case RETRO_DEVICE_ID_LIGHTGUN_DPAD_UP: - return udev_input_lightgun_state(udev, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_DPAD_UP); case RETRO_DEVICE_ID_LIGHTGUN_DPAD_DOWN: - return udev_input_lightgun_state(udev, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_DPAD_DOWN); case RETRO_DEVICE_ID_LIGHTGUN_DPAD_LEFT: - return udev_input_lightgun_state(udev, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_DPAD_LEFT); case RETRO_DEVICE_ID_LIGHTGUN_DPAD_RIGHT: - return udev_input_lightgun_state(udev, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_DPAD_RIGHT); + case RETRO_DEVICE_ID_LIGHTGUN_PAUSE: /* deprecated */ + id = udev_retro_id_to_rarch(id); + if (!keyboard_mapping_blocked) + if ((binds[port][id].key < RETROK_LAST) + && udev_keyboard_pressed(udev, binds[port] + [id].key)) + return 1; + if (binds[port][id].valid) + { + unsigned new_id = id; + if (button_is_pressed(joypad, + joypad_info, binds[port], + new_id) + || udev_mouse_button_pressed(udev, port, + binds[port][new_id].mbutton) + ) + return 1; + } /*deprecated*/ case RETRO_DEVICE_ID_LIGHTGUN_X: { @@ -1198,19 +1166,6 @@ static int16_t udev_input_state( return udev_mouse_get_y(mouse); } break; - case RETRO_DEVICE_ID_LIGHTGUN_PAUSE: - if (binds[port][RARCH_LIGHTGUN_START].valid) - { - unsigned new_id = RARCH_LIGHTGUN_START; - if (button_is_pressed(joypad, - joypad_info, binds[port], - new_id) - || udev_mouse_button_pressed(udev, port, - binds[port][new_id].mbutton) - ) - return 1; - } - break; } break; }