mirror of
https://github.com/libretro/RetroArch
synced 2025-02-28 22:13:51 +00:00
Reafctor input_bind_dialog code
This commit is contained in:
parent
4c702c2d36
commit
a9b8114109
@ -137,7 +137,7 @@ int generic_menu_iterate(void *data, void *userdata, enum menu_action action)
|
||||
bind.s = menu->menu_state.msg;
|
||||
bind.len = sizeof(menu->menu_state.msg);
|
||||
|
||||
if (menu_input_ctl(MENU_INPUT_CTL_BIND_ITERATE, &bind))
|
||||
if (menu_input_key_bind_iterate(&bind))
|
||||
{
|
||||
menu_entries_pop_stack(&selection, 0, 0);
|
||||
menu_navigation_ctl(
|
||||
|
@ -202,13 +202,6 @@ bool menu_input_ctl(enum menu_input_ctl_state state, void *data)
|
||||
case MENU_INPUT_CTL_BIND_SINGLE:
|
||||
case MENU_INPUT_CTL_BIND_ALL:
|
||||
return menu_input_key_bind_set_mode(state, data);
|
||||
case MENU_INPUT_CTL_BIND_ITERATE:
|
||||
{
|
||||
menu_input_ctx_bind_t *bind = (menu_input_ctx_bind_t*)data;
|
||||
if (!bind)
|
||||
return false;
|
||||
return menu_input_key_bind_iterate(bind->s, bind->len);
|
||||
}
|
||||
default:
|
||||
case MENU_INPUT_CTL_NONE:
|
||||
break;
|
||||
|
@ -79,8 +79,7 @@ enum menu_input_ctl_state
|
||||
MENU_INPUT_CTL_DEINIT,
|
||||
MENU_INPUT_CTL_BIND_NONE,
|
||||
MENU_INPUT_CTL_BIND_SINGLE,
|
||||
MENU_INPUT_CTL_BIND_ALL,
|
||||
MENU_INPUT_CTL_BIND_ITERATE
|
||||
MENU_INPUT_CTL_BIND_ALL
|
||||
};
|
||||
|
||||
typedef struct menu_input_ctx_hitbox
|
||||
|
@ -383,7 +383,7 @@ bool menu_input_key_bind_set_min_max(menu_input_ctx_bind_limits_t *lim)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool menu_input_key_bind_iterate(char *s, size_t len)
|
||||
bool menu_input_key_bind_iterate(menu_input_ctx_bind_t *bind)
|
||||
{
|
||||
struct menu_bind_state binds;
|
||||
bool timed_out = false;
|
||||
@ -392,6 +392,9 @@ bool menu_input_key_bind_iterate(char *s, size_t len)
|
||||
int timeout =
|
||||
(menu_input_binds.timeout_end - current) / 1000000;
|
||||
|
||||
if (!bind)
|
||||
return false;
|
||||
|
||||
if (timeout <= 0)
|
||||
{
|
||||
input_driver_keyboard_mapping_set_block(false);
|
||||
@ -403,10 +406,10 @@ bool menu_input_key_bind_iterate(char *s, size_t len)
|
||||
timed_out = true;
|
||||
}
|
||||
|
||||
snprintf(s, len,
|
||||
snprintf(bind->s, bind->len,
|
||||
"[%s]\npress keyboard or joypad\n(timeout %d %s)",
|
||||
input_config_bind_map_get_desc(
|
||||
menu_input_binds.begin - MENU_SETTINGS_BIND_BEGIN),
|
||||
menu_input_binds.begin - MENU_SETTINGS_BIND_BEGIN),
|
||||
timeout,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SECONDS));
|
||||
|
||||
|
@ -45,7 +45,7 @@ bool menu_input_key_bind_set_mode(
|
||||
|
||||
bool menu_input_key_bind_set_min_max(menu_input_ctx_bind_limits_t *lim);
|
||||
|
||||
bool menu_input_key_bind_iterate(char *s, size_t len);
|
||||
bool menu_input_key_bind_iterate(menu_input_ctx_bind_t *bind);
|
||||
|
||||
RETRO_END_DECLS
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user