mirror of
https://github.com/libretro/RetroArch
synced 2025-04-01 04:20:27 +00:00
Refactor some code in menu_input.c
This commit is contained in:
parent
0a49e6d62b
commit
08c85f06ff
@ -367,16 +367,15 @@ static bool menu_input_custom_bind_keyboard_cb(void *data, unsigned code)
|
|||||||
return (menu->binds.begin <= menu->binds.last);
|
return (menu->binds.begin <= menu->binds.last);
|
||||||
}
|
}
|
||||||
|
|
||||||
int menu_input_set_keyboard_bind_mode(void *data,
|
static int menu_input_set_bind_mode_common(rarch_setting_t *setting,
|
||||||
enum menu_input_bind_mode type)
|
enum menu_input_bind_mode type)
|
||||||
{
|
{
|
||||||
struct retro_keybind *keybind = NULL;
|
struct retro_keybind *keybind = NULL;
|
||||||
rarch_setting_t *setting = (rarch_setting_t*)data;
|
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
menu_handle_t *menu = menu_driver_get_ptr();
|
menu_handle_t *menu = menu_driver_get_ptr();
|
||||||
menu_navigation_t *nav = menu_navigation_get_ptr();
|
menu_navigation_t *nav = menu_navigation_get_ptr();
|
||||||
|
|
||||||
if (!menu || !setting)
|
if (!setting)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
@ -410,10 +409,14 @@ int menu_input_set_keyboard_bind_mode(void *data,
|
|||||||
nav->selection_ptr);
|
nav->selection_ptr);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int menu_input_set_timeout(void)
|
||||||
|
{
|
||||||
|
menu_handle_t *menu = menu_driver_get_ptr();
|
||||||
|
|
||||||
menu->binds.timeout_end =
|
menu->binds.timeout_end = rarch_get_time_usec() +
|
||||||
rarch_get_time_usec() +
|
|
||||||
MENU_KEYBOARD_BIND_TIMEOUT_SECONDS * 1000000;
|
MENU_KEYBOARD_BIND_TIMEOUT_SECONDS * 1000000;
|
||||||
input_keyboard_wait_keys(menu,
|
input_keyboard_wait_keys(menu,
|
||||||
menu_input_custom_bind_keyboard_cb);
|
menu_input_custom_bind_keyboard_cb);
|
||||||
@ -421,49 +424,29 @@ int menu_input_set_keyboard_bind_mode(void *data,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int menu_input_set_keyboard_bind_mode(void *data,
|
||||||
|
enum menu_input_bind_mode type)
|
||||||
|
{
|
||||||
|
rarch_setting_t *setting = (rarch_setting_t*)data;
|
||||||
|
|
||||||
|
if (!setting)
|
||||||
|
return -1;
|
||||||
|
if (menu_input_set_bind_mode_common(setting, type) == -1)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return menu_input_set_timeout();
|
||||||
|
}
|
||||||
|
|
||||||
int menu_input_set_input_device_bind_mode(void *data,
|
int menu_input_set_input_device_bind_mode(void *data,
|
||||||
enum menu_input_bind_mode type)
|
enum menu_input_bind_mode type)
|
||||||
{
|
{
|
||||||
struct retro_keybind *keybind = NULL;
|
|
||||||
rarch_setting_t *setting = (rarch_setting_t*)data;
|
|
||||||
settings_t *settings = config_get_ptr();
|
|
||||||
menu_handle_t *menu = menu_driver_get_ptr();
|
menu_handle_t *menu = menu_driver_get_ptr();
|
||||||
menu_navigation_t *nav = menu_navigation_get_ptr();
|
rarch_setting_t *setting = (rarch_setting_t*)data;
|
||||||
|
|
||||||
if (!menu || !setting)
|
if (!setting)
|
||||||
|
return -1;
|
||||||
|
if (menu_input_set_bind_mode_common(setting, type) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
switch (type)
|
|
||||||
{
|
|
||||||
case MENU_INPUT_BIND_NONE:
|
|
||||||
return -1;
|
|
||||||
case MENU_INPUT_BIND_SINGLE:
|
|
||||||
keybind = (struct retro_keybind*)setting->value.keybind;
|
|
||||||
|
|
||||||
if (!keybind)
|
|
||||||
return -1;
|
|
||||||
menu->binds.begin = setting->bind_type;
|
|
||||||
menu->binds.last = setting->bind_type;
|
|
||||||
menu->binds.target = keybind;
|
|
||||||
menu->binds.user = setting->index_offset;
|
|
||||||
menu_list_push( menu->menu_list->menu_stack,
|
|
||||||
"",
|
|
||||||
"custom_bind",
|
|
||||||
MENU_SETTINGS_CUSTOM_BIND,
|
|
||||||
nav->selection_ptr);
|
|
||||||
break;
|
|
||||||
case MENU_INPUT_BIND_ALL:
|
|
||||||
menu->binds.target = &settings->input.binds
|
|
||||||
[setting->index_offset][0];
|
|
||||||
menu->binds.begin = MENU_SETTINGS_BIND_BEGIN;
|
|
||||||
menu->binds.last = MENU_SETTINGS_BIND_LAST;
|
|
||||||
menu_list_push( menu->menu_list->menu_stack,
|
|
||||||
"",
|
|
||||||
"custom_bind_all",
|
|
||||||
MENU_SETTINGS_CUSTOM_BIND,
|
|
||||||
nav->selection_ptr);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
menu_input_poll_bind_get_rested_axes(&menu->binds);
|
menu_input_poll_bind_get_rested_axes(&menu->binds);
|
||||||
menu_input_poll_bind_state(&menu->binds);
|
menu_input_poll_bind_state(&menu->binds);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user