mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +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);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
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_navigation_t *nav = menu_navigation_get_ptr();
|
||||
|
||||
if (!menu || !setting)
|
||||
if (!setting)
|
||||
return -1;
|
||||
|
||||
switch (type)
|
||||
@ -410,10 +409,14 @@ int menu_input_set_keyboard_bind_mode(void *data,
|
||||
nav->selection_ptr);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int menu_input_set_timeout(void)
|
||||
{
|
||||
menu_handle_t *menu = menu_driver_get_ptr();
|
||||
|
||||
menu->binds.timeout_end =
|
||||
rarch_get_time_usec() +
|
||||
menu->binds.timeout_end = rarch_get_time_usec() +
|
||||
MENU_KEYBOARD_BIND_TIMEOUT_SECONDS * 1000000;
|
||||
input_keyboard_wait_keys(menu,
|
||||
menu_input_custom_bind_keyboard_cb);
|
||||
@ -421,49 +424,29 @@ int menu_input_set_keyboard_bind_mode(void *data,
|
||||
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,
|
||||
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_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;
|
||||
|
||||
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_state(&menu->binds);
|
||||
|
Loading…
x
Reference in New Issue
Block a user