Create menu_input_set_keyboard_bind_mode

This commit is contained in:
twinaphex 2015-04-14 13:40:20 +02:00
parent 44e8f920ad
commit fc7f9894b8
3 changed files with 21 additions and 16 deletions

View File

@ -352,7 +352,7 @@ bool menu_input_poll_find_trigger(struct menu_bind_state *state,
return false;
}
bool menu_input_custom_bind_keyboard_cb(void *data, unsigned code)
static bool menu_input_custom_bind_keyboard_cb(void *data, unsigned code)
{
menu_handle_t *menu = (menu_handle_t*)data;
@ -368,6 +368,22 @@ 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)
{
menu_handle_t *menu = menu_driver_get_ptr();
if (!menu)
return -1;
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);
return 0;
}
int menu_input_bind_iterate(void)
{
char msg[PATH_MAX_LENGTH];

View File

@ -65,8 +65,6 @@ void menu_input_poll_bind_state(struct menu_bind_state *state);
bool menu_input_poll_find_trigger(struct menu_bind_state *state,
struct menu_bind_state *new_state);
bool menu_input_custom_bind_keyboard_cb(void *data, unsigned code);
int menu_input_bind_iterate(void);
int menu_input_bind_iterate_keyboard(void);
@ -78,6 +76,8 @@ void menu_input_post_iterate(int *ret, menu_file_list_cbs_t *cbs, const char *pa
void menu_input_search_start(void);
int menu_input_set_keyboard_bind_mode(void);
#ifdef __cplusplus
}
#endif

View File

@ -876,13 +876,7 @@ static int setting_action_ok_bind_all(void *data, unsigned action)
menu->navigation.selection_ptr);
if (global->menu.bind_mode_keyboard)
{
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);
}
menu_input_set_keyboard_bind_mode();
else
{
menu_input_poll_bind_get_rested_axes(&menu->binds);
@ -1090,12 +1084,7 @@ static int setting_bind_action_ok(void *data, unsigned action)
menu->navigation.selection_ptr);
if (global->menu.bind_mode_keyboard)
{
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);
}
menu_input_set_keyboard_bind_mode();
else
{
menu_input_poll_bind_get_rested_axes(&menu->binds);