(input drivers) Cut down on code duplication

This commit is contained in:
twinaphex 2021-04-11 16:31:46 +02:00
parent 40c39de5e3
commit f1cf5ceb82
4 changed files with 112 additions and 135 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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;
}

View File

@ -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)
{