diff --git a/input/drivers/dinput.c b/input/drivers/dinput.c index 38e249a667..76a42fb40a 100644 --- a/input/drivers/dinput.c +++ b/input/drivers/dinput.c @@ -444,6 +444,41 @@ static int16_t dinput_lightgun_aiming_state( return 0; } +static unsigned dinput_retro_id_to_rarch(unsigned id) +{ + switch (id) + { + 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; +} + static int16_t dinput_input_state( void *data, const input_device_driver_t *joypad, @@ -711,47 +746,7 @@ static int16_t dinput_input_state( case RETRO_DEVICE_ID_LIGHTGUN_DPAD_RIGHT: case RETRO_DEVICE_ID_LIGHTGUN_PAUSE: { - unsigned new_id = 0; - settings = config_get_ptr(); - switch (id) - { - case RETRO_DEVICE_ID_LIGHTGUN_TRIGGER: - new_id = RARCH_LIGHTGUN_TRIGGER; - break; - case RETRO_DEVICE_ID_LIGHTGUN_RELOAD: - new_id = RARCH_LIGHTGUN_RELOAD; - break; - case RETRO_DEVICE_ID_LIGHTGUN_AUX_A: - new_id = RARCH_LIGHTGUN_AUX_A; - break; - case RETRO_DEVICE_ID_LIGHTGUN_AUX_B: - new_id = RARCH_LIGHTGUN_AUX_B; - break; - case RETRO_DEVICE_ID_LIGHTGUN_AUX_C: - new_id = RARCH_LIGHTGUN_AUX_C; - break; - case RETRO_DEVICE_ID_LIGHTGUN_START: - new_id = RARCH_LIGHTGUN_START; - break; - case RETRO_DEVICE_ID_LIGHTGUN_SELECT: - new_id = RARCH_LIGHTGUN_SELECT; - break; - case RETRO_DEVICE_ID_LIGHTGUN_DPAD_UP: - new_id = RARCH_LIGHTGUN_DPAD_UP; - break; - case RETRO_DEVICE_ID_LIGHTGUN_DPAD_DOWN: - new_id = RARCH_LIGHTGUN_DPAD_DOWN; - break; - case RETRO_DEVICE_ID_LIGHTGUN_DPAD_LEFT: - new_id = RARCH_LIGHTGUN_DPAD_LEFT; - break; - case RETRO_DEVICE_ID_LIGHTGUN_DPAD_RIGHT: - new_id = RARCH_LIGHTGUN_DPAD_RIGHT; - break; - case RETRO_DEVICE_ID_LIGHTGUN_PAUSE: - new_id = RARCH_LIGHTGUN_START; - break; - } + unsigned new_id = dinput_retro_id_to_rarch(id); if (binds[port][new_id].valid) { if (button_is_pressed(joypad, @@ -765,12 +760,16 @@ static int16_t dinput_input_state( [(enum retro_key)binds[port][new_id].key]] & 0x80 ) return 1; - else if ( + else + { + settings = config_get_ptr(); + if ( settings->uints.input_mouse_index[port] == 0 && dinput_mouse_button_pressed( di, port, binds[port][new_id].mbutton) ) return 1; + } } } break; diff --git a/input/drivers/udev_input.c b/input/drivers/udev_input.c index 0decec68f1..5f0f43c5e7 100644 --- a/input/drivers/udev_input.c +++ b/input/drivers/udev_input.c @@ -970,31 +970,31 @@ static unsigned udev_retro_id_to_rarch(unsigned id) switch (id) { case RETRO_DEVICE_ID_LIGHTGUN_DPAD_RIGHT: - return RARCH_LIGHTGUN_DPAD_RIGHT; + return RARCH_LIGHTGUN_DPAD_RIGHT; case RETRO_DEVICE_ID_LIGHTGUN_DPAD_LEFT: - return RARCH_LIGHTGUN_DPAD_LEFT; + return RARCH_LIGHTGUN_DPAD_LEFT; case RETRO_DEVICE_ID_LIGHTGUN_DPAD_UP: - return RARCH_LIGHTGUN_DPAD_UP; + return RARCH_LIGHTGUN_DPAD_UP; case RETRO_DEVICE_ID_LIGHTGUN_DPAD_DOWN: - return RARCH_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; + 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; + return RARCH_LIGHTGUN_AUX_A; case RETRO_DEVICE_ID_LIGHTGUN_AUX_B: - return RARCH_LIGHTGUN_AUX_B; + return RARCH_LIGHTGUN_AUX_B; case RETRO_DEVICE_ID_LIGHTGUN_AUX_C: - return RARCH_LIGHTGUN_AUX_C; + return RARCH_LIGHTGUN_AUX_C; case RETRO_DEVICE_ID_LIGHTGUN_START: - return RARCH_LIGHTGUN_START; + return RARCH_LIGHTGUN_START; default: - break; + break; } return 0; diff --git a/input/drivers/winraw_input.c b/input/drivers/winraw_input.c index 86de1f5822..5210ee9c6e 100644 --- a/input/drivers/winraw_input.c +++ b/input/drivers/winraw_input.c @@ -665,6 +665,41 @@ static int16_t winraw_input_lightgun_state( return 0; } +static unsigned winraw_retro_id_to_rarch(unsigned id) +{ + switch (id) + { + 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; +} + static int16_t winraw_input_state( void *data, const input_device_driver_t *joypad, @@ -815,91 +850,34 @@ static int16_t winraw_input_state( break; /*buttons*/ case RETRO_DEVICE_ID_LIGHTGUN_TRIGGER: - return winraw_input_lightgun_state(wr, mouse, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_TRIGGER); case RETRO_DEVICE_ID_LIGHTGUN_RELOAD: - return winraw_input_lightgun_state(wr, mouse, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_RELOAD); case RETRO_DEVICE_ID_LIGHTGUN_AUX_A: - return winraw_input_lightgun_state(wr, mouse, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_AUX_A); case RETRO_DEVICE_ID_LIGHTGUN_AUX_B: - return winraw_input_lightgun_state(wr, mouse, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_AUX_B); case RETRO_DEVICE_ID_LIGHTGUN_AUX_C: - return winraw_input_lightgun_state(wr, mouse, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_AUX_C); case RETRO_DEVICE_ID_LIGHTGUN_START: - return winraw_input_lightgun_state(wr, mouse, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_START); case RETRO_DEVICE_ID_LIGHTGUN_SELECT: - return winraw_input_lightgun_state(wr, mouse, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_SELECT); case RETRO_DEVICE_ID_LIGHTGUN_DPAD_UP: - return winraw_input_lightgun_state(wr, mouse, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_DPAD_UP); case RETRO_DEVICE_ID_LIGHTGUN_DPAD_DOWN: - return winraw_input_lightgun_state(wr, mouse, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_DPAD_DOWN); case RETRO_DEVICE_ID_LIGHTGUN_DPAD_LEFT: - return winraw_input_lightgun_state(wr, mouse, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_DPAD_LEFT); case RETRO_DEVICE_ID_LIGHTGUN_DPAD_RIGHT: - return winraw_input_lightgun_state(wr, mouse, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_DPAD_RIGHT); + case RETRO_DEVICE_ID_LIGHTGUN_PAUSE: /* deprecated */ + { + unsigned new_id = winraw_retro_id_to_rarch(id); + return winraw_input_lightgun_state(wr, mouse, joypad, + joypad_info, + binds, + keyboard_mapping_blocked, + port, device, idx, new_id); + } /*deprecated*/ case RETRO_DEVICE_ID_LIGHTGUN_X: + if (mouse) + return mouse->dlt_x; + break; case RETRO_DEVICE_ID_LIGHTGUN_Y: if (mouse) - { - switch (id) - { - case RETRO_DEVICE_ID_LIGHTGUN_X: - return mouse->dlt_x; - case RETRO_DEVICE_ID_LIGHTGUN_Y: - return mouse->dlt_y; - } - } + return mouse->dlt_y; break; - case RETRO_DEVICE_ID_LIGHTGUN_PAUSE: - return winraw_input_lightgun_state(wr, mouse, joypad, - joypad_info, - binds, - keyboard_mapping_blocked, - port, device, idx, RARCH_LIGHTGUN_START); } break; } diff --git a/input/drivers/x11_input.c b/input/drivers/x11_input.c index bec22d3085..97ba4aac5e 100644 --- a/input/drivers/x11_input.c +++ b/input/drivers/x11_input.c @@ -112,31 +112,31 @@ static unsigned x_retro_id_to_rarch(unsigned id) switch (id) { case RETRO_DEVICE_ID_LIGHTGUN_DPAD_RIGHT: - return RARCH_LIGHTGUN_DPAD_RIGHT; + return RARCH_LIGHTGUN_DPAD_RIGHT; case RETRO_DEVICE_ID_LIGHTGUN_DPAD_LEFT: - return RARCH_LIGHTGUN_DPAD_LEFT; + return RARCH_LIGHTGUN_DPAD_LEFT; case RETRO_DEVICE_ID_LIGHTGUN_DPAD_UP: - return RARCH_LIGHTGUN_DPAD_UP; + return RARCH_LIGHTGUN_DPAD_UP; case RETRO_DEVICE_ID_LIGHTGUN_DPAD_DOWN: - return RARCH_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; + 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; + return RARCH_LIGHTGUN_AUX_A; case RETRO_DEVICE_ID_LIGHTGUN_AUX_B: - return RARCH_LIGHTGUN_AUX_B; + return RARCH_LIGHTGUN_AUX_B; case RETRO_DEVICE_ID_LIGHTGUN_AUX_C: - return RARCH_LIGHTGUN_AUX_C; + return RARCH_LIGHTGUN_AUX_C; case RETRO_DEVICE_ID_LIGHTGUN_START: - return RARCH_LIGHTGUN_START; + return RARCH_LIGHTGUN_START; default: - break; + break; } return 0; @@ -382,7 +382,7 @@ static int16_t x_input_state( case RETRO_DEVICE_ID_LIGHTGUN_AUX_B: case RETRO_DEVICE_ID_LIGHTGUN_AUX_C: case RETRO_DEVICE_ID_LIGHTGUN_START: - case RETRO_DEVICE_ID_LIGHTGUN_SELECT: + case RETRO_DEVICE_ID_LIGHTGUN_SELECT: case RETRO_DEVICE_ID_LIGHTGUN_DPAD_UP: case RETRO_DEVICE_ID_LIGHTGUN_DPAD_DOWN: case RETRO_DEVICE_ID_LIGHTGUN_DPAD_LEFT: @@ -398,8 +398,8 @@ static int16_t x_input_state( if (binds[port][new_id].valid) { if (button_is_pressed(joypad, - joypad_info, binds[port], - new_id)) + joypad_info, binds[port], + new_id)) return 1; else if (settings->uints.input_mouse_index[port] == 0) {