mirror of
https://github.com/libretro/RetroArch
synced 2025-03-28 19:20:35 +00:00
(input drivers) Cut down on code duplication
This commit is contained in:
parent
40c39de5e3
commit
f1cf5ceb82
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user