mirror of
https://github.com/libretro/RetroArch
synced 2025-02-20 06:40:18 +00:00
Create input_driver_state
This commit is contained in:
parent
c033546303
commit
db1087ad33
@ -124,8 +124,7 @@ static PyObject *py_read_input(PyObject *self, PyObject *args)
|
||||
return NULL;
|
||||
|
||||
if (!driver->block_libretro_input)
|
||||
res = driver->input->input_state(driver->input_data,
|
||||
py_binds, user - 1, RETRO_DEVICE_JOYPAD, 0, key);
|
||||
res = input_driver_state(py_binds, user - 1, RETRO_DEVICE_JOYPAD, 0, key);
|
||||
return PyBool_FromLong(res);
|
||||
}
|
||||
|
||||
@ -165,8 +164,7 @@ static PyObject *py_read_analog(PyObject *self, PyObject *args)
|
||||
if (user > MAX_USERS || user < 1 || index > 1 || id > 1)
|
||||
return NULL;
|
||||
|
||||
res = driver->input->input_state(driver->input_data,
|
||||
py_binds, user - 1, RETRO_DEVICE_ANALOG, index, id);
|
||||
res = input_driver_state(py_binds, user - 1, RETRO_DEVICE_ANALOG, index, id);
|
||||
return PyFloat_FromDouble((double)res / 0x7fff);
|
||||
}
|
||||
|
||||
|
@ -297,12 +297,10 @@ static void state_tracker_update_input(state_tracker_t *tracker)
|
||||
{
|
||||
for (i = 4; i < 16; i++)
|
||||
{
|
||||
state[0] |= (driver->input->input_state(
|
||||
driver->input_data, binds, 0,
|
||||
RETRO_DEVICE_JOYPAD, 0, buttons[i - 4]) ? 1 : 0) << i;
|
||||
state[1] |= (driver->input->input_state(
|
||||
driver->input_data, binds, 1,
|
||||
RETRO_DEVICE_JOYPAD, 0, buttons[i - 4]) ? 1 : 0) << i;
|
||||
state[0] |= (input_driver_state(
|
||||
binds, 0, RETRO_DEVICE_JOYPAD, 0, buttons[i - 4]) ? 1 : 0) << i;
|
||||
state[1] |= (input_driver_state(
|
||||
binds, 1, RETRO_DEVICE_JOYPAD, 0, buttons[i - 4]) ? 1 : 0) << i;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -214,3 +214,13 @@ retro_input_t input_driver_keys_pressed(void)
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int16_t input_driver_state(const struct retro_keybind **retro_keybinds,
|
||||
unsigned port, unsigned device, unsigned index, unsigned id)
|
||||
{
|
||||
driver_t *driver = driver_get_ptr();
|
||||
if (driver->input && driver->input_data && driver->input->set_rumble)
|
||||
return driver->input->input_state(driver->input_data, retro_keybinds,
|
||||
port, device, index, id);
|
||||
return 0;
|
||||
}
|
||||
|
@ -137,6 +137,9 @@ bool input_driver_set_rumble_state(unsigned port,
|
||||
|
||||
retro_input_t input_driver_keys_pressed(void);
|
||||
|
||||
int16_t input_driver_state(const struct retro_keybind **retro_keybinds,
|
||||
unsigned port, unsigned device, unsigned index, unsigned id);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -446,8 +446,7 @@ static int16_t input_state(unsigned port, unsigned device,
|
||||
if (!driver->block_libretro_input)
|
||||
{
|
||||
if (((id < RARCH_FIRST_META_KEY) || (device == RETRO_DEVICE_KEYBOARD)))
|
||||
res = driver->input->input_state(driver->input_data, libretro_input_binds, port,
|
||||
device, idx, id);
|
||||
res = input_driver_state(libretro_input_binds, port, device, idx, id);
|
||||
|
||||
#ifdef HAVE_OVERLAY
|
||||
if (port == 0)
|
||||
@ -525,14 +524,13 @@ static INLINE void input_poll_overlay(input_overlay_t *overlay_device, float opa
|
||||
RARCH_DEVICE_POINTER_SCREEN : RETRO_DEVICE_POINTER;
|
||||
|
||||
for (i = 0;
|
||||
driver->input->input_state(driver->input_data, NULL, 0, device, i,
|
||||
RETRO_DEVICE_ID_POINTER_PRESSED);
|
||||
input_driver_state(NULL, 0, device, i, RETRO_DEVICE_ID_POINTER_PRESSED);
|
||||
i++)
|
||||
{
|
||||
input_overlay_state_t polled_data;
|
||||
int16_t x = driver->input->input_state(driver->input_data, NULL, 0,
|
||||
int16_t x = input_driver_state(NULL, 0,
|
||||
device, i, RETRO_DEVICE_ID_POINTER_X);
|
||||
int16_t y = driver->input->input_state(driver->input_data, NULL, 0,
|
||||
int16_t y = input_driver_state(NULL, 0,
|
||||
device, i, RETRO_DEVICE_ID_POINTER_Y);
|
||||
|
||||
input_overlay_poll(overlay_device, &polled_data, x, y);
|
||||
|
@ -609,36 +609,36 @@ static int mouse_iterate(unsigned *action)
|
||||
return 0;
|
||||
}
|
||||
|
||||
menu->mouse.left = driver->input->input_state(driver->input_data,
|
||||
binds, 0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_LEFT);
|
||||
menu->mouse.right = driver->input->input_state(driver->input_data,
|
||||
binds, 0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_RIGHT);
|
||||
menu->mouse.wheelup = driver->input->input_state(driver->input_data,
|
||||
binds, 0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_WHEELUP);
|
||||
menu->mouse.wheeldown = driver->input->input_state(driver->input_data,
|
||||
binds, 0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_WHEELDOWN);
|
||||
menu->mouse.hwheelup = driver->input->input_state(driver->input_data,
|
||||
binds, 0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_HORIZ_WHEELUP);
|
||||
menu->mouse.hwheeldown = driver->input->input_state(driver->input_data,
|
||||
binds, 0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_HORIZ_WHEELDOWN);
|
||||
menu->mouse.dx = driver->input->input_state(driver->input_data,
|
||||
binds, 0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_X);
|
||||
menu->mouse.dy = driver->input->input_state(driver->input_data,
|
||||
binds, 0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_Y);
|
||||
menu->mouse.left = input_driver_state(binds, 0, RETRO_DEVICE_MOUSE,
|
||||
0, RETRO_DEVICE_ID_MOUSE_LEFT);
|
||||
menu->mouse.right = input_driver_state(binds, 0, RETRO_DEVICE_MOUSE,
|
||||
0, RETRO_DEVICE_ID_MOUSE_RIGHT);
|
||||
menu->mouse.wheelup = input_driver_state(binds, 0, RETRO_DEVICE_MOUSE,
|
||||
0, RETRO_DEVICE_ID_MOUSE_WHEELUP);
|
||||
menu->mouse.wheeldown = input_driver_state(binds, 0, RETRO_DEVICE_MOUSE,
|
||||
0, RETRO_DEVICE_ID_MOUSE_WHEELDOWN);
|
||||
menu->mouse.hwheelup = input_driver_state(binds, 0, RETRO_DEVICE_MOUSE,
|
||||
0, RETRO_DEVICE_ID_MOUSE_HORIZ_WHEELUP);
|
||||
menu->mouse.hwheeldown = input_driver_state(binds, 0, RETRO_DEVICE_MOUSE,
|
||||
0, RETRO_DEVICE_ID_MOUSE_HORIZ_WHEELDOWN);
|
||||
menu->mouse.dx = input_driver_state(binds, 0, RETRO_DEVICE_MOUSE,
|
||||
0, RETRO_DEVICE_ID_MOUSE_X);
|
||||
menu->mouse.dy = input_driver_state(binds, 0, RETRO_DEVICE_MOUSE,
|
||||
0, RETRO_DEVICE_ID_MOUSE_Y);
|
||||
|
||||
menu->mouse.x += menu->mouse.dx;
|
||||
menu->mouse.y += menu->mouse.dy;
|
||||
menu->mouse.x += menu->mouse.dx;
|
||||
menu->mouse.y += menu->mouse.dy;
|
||||
|
||||
if (menu->mouse.x < 5)
|
||||
menu->mouse.x = 5;
|
||||
menu->mouse.x = 5;
|
||||
if (menu->mouse.y < 5)
|
||||
menu->mouse.y = 5;
|
||||
menu->mouse.y = 5;
|
||||
if (menu->mouse.x > (int)menu->frame_buf.width - 5)
|
||||
menu->mouse.x = menu->frame_buf.width - 5;
|
||||
menu->mouse.x = menu->frame_buf.width - 5;
|
||||
if (menu->mouse.y > (int)menu->frame_buf.height - 5)
|
||||
menu->mouse.y = menu->frame_buf.height - 5;
|
||||
menu->mouse.y = menu->frame_buf.height - 5;
|
||||
|
||||
menu->mouse.scrollup = (menu->mouse.y == 5);
|
||||
menu->mouse.scrollup = (menu->mouse.y == 5);
|
||||
menu->mouse.scrolldown = (menu->mouse.y == (int)menu->frame_buf.height - 5);
|
||||
|
||||
if (menu->mouse.dx != 0 || menu->mouse.dy !=0 || menu->mouse.left
|
||||
|
@ -205,7 +205,7 @@ void menu_input_poll_bind_state(struct menu_bind_state *state)
|
||||
return;
|
||||
|
||||
memset(state->state, 0, sizeof(state->state));
|
||||
state->skip = driver->input->input_state(driver->input_data, NULL, 0,
|
||||
state->skip = input_driver_state(NULL, 0,
|
||||
RETRO_DEVICE_KEYBOARD, 0, RETROK_RETURN);
|
||||
|
||||
if (driver->input && driver->input_data && driver->input->get_joypad_driver)
|
||||
|
@ -864,11 +864,8 @@ static INLINE retro_input_t input_keys_pressed(void)
|
||||
if (!driver->block_libretro_input)
|
||||
{
|
||||
for (i = 0; i < settings->input.max_users; i++)
|
||||
{
|
||||
global->turbo_frame_enable[i] =
|
||||
driver->input->input_state(driver->input_data, binds, i,
|
||||
RETRO_DEVICE_JOYPAD, 0, RARCH_TURBO_ENABLE);
|
||||
}
|
||||
global->turbo_frame_enable[i] = input_driver_state(binds,
|
||||
i, RETRO_DEVICE_JOYPAD, 0, RARCH_TURBO_ENABLE);
|
||||
}
|
||||
|
||||
ret = input_driver_keys_pressed();
|
||||
|
Loading…
x
Reference in New Issue
Block a user