Create input_driver_state

This commit is contained in:
twinaphex 2015-03-23 03:04:05 +01:00
parent c033546303
commit db1087ad33
8 changed files with 49 additions and 45 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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