Move Input Hotkey Binds to 'Input Settings'

This commit is contained in:
twinaphex 2015-10-25 10:41:53 +01:00
parent e997171d3c
commit 640de49c1a
8 changed files with 75 additions and 4 deletions

View File

@ -84,6 +84,11 @@ static int deferred_push_playlist_settings_list(menu_displaylist_info_t *info)
return deferred_push_dlist(info, DISPLAYLIST_PLAYLIST_SETTINGS_LIST);
}
static int deferred_push_input_hotkey_binds_list(menu_displaylist_info_t *info)
{
return deferred_push_dlist(info, DISPLAYLIST_INPUT_HOTKEY_BINDS_LIST);
}
static int deferred_push_accounts_cheevos_list(menu_displaylist_info_t *info)
{
return deferred_push_dlist(info, DISPLAYLIST_ACCOUNTS_CHEEVOS_LIST);
@ -582,6 +587,9 @@ static int menu_cbs_init_bind_deferred_push_compare_label(menu_file_list_cbs_t *
case MENU_LABEL_DEFERRED_PLAYLIST_SETTINGS_LIST:
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_playlist_settings_list);
break;
case MENU_LABEL_DEFERRED_INPUT_HOTKEY_BINDS_LIST:
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_input_hotkey_binds_list);
break;
case MENU_LABEL_DEFERRED_ACCOUNTS_CHEEVOS_LIST:
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_accounts_cheevos_list);
break;

View File

@ -312,6 +312,12 @@ int generic_action_ok_displaylist_push(const char *path,
info_path = path;
info_label = menu_hash_to_str(MENU_LABEL_DEFERRED_INPUT_SETTINGS_LIST);
break;
case ACTION_OK_DL_INPUT_HOTKEY_BINDS_LIST:
info.directory_ptr = idx;
info.type = type;
info_path = path;
info_label = menu_hash_to_str(MENU_LABEL_DEFERRED_INPUT_HOTKEY_BINDS_LIST);
break;
case ACTION_OK_DL_PLAYLIST_SETTINGS_LIST:
info.directory_ptr = idx;
info.type = type;
@ -1600,6 +1606,13 @@ static int action_ok_push_playlist_settings_list(const char *path,
ACTION_OK_DL_PLAYLIST_SETTINGS_LIST);
}
static int action_ok_push_input_hotkey_binds_list(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx)
{
return generic_action_ok_displaylist_push(path, label, 0, 0, entry_idx,
ACTION_OK_DL_INPUT_HOTKEY_BINDS_LIST);
}
static int action_ok_push_user_binds_list(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx)
{
@ -1925,6 +1938,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs,
case MENU_LABEL_PLAYLIST_SETTINGS:
BIND_ACTION_OK(cbs, action_ok_push_playlist_settings_list);
break;
case MENU_LABEL_INPUT_HOTKEY_BINDS:
BIND_ACTION_OK(cbs, action_ok_push_input_hotkey_binds_list);
break;
case MENU_LABEL_ACCOUNTS_RETRO_ACHIEVEMENTS:
BIND_ACTION_OK(cbs, action_ok_push_accounts_cheevos_list);
break;

View File

@ -46,6 +46,12 @@ static const char *menu_hash_to_str_us_label(uint32_t hash)
return "deferred_input_settings_list";
case MENU_LABEL_ACCOUNTS_LIST:
return "accounts_list";
case MENU_LABEL_DEFERRED_INPUT_HOTKEY_BINDS_LIST:
return "deferred_input_hotkey_binds";
case MENU_LABEL_INPUT_HOTKEY_BINDS:
return "input_hotkey_binds";
case MENU_LABEL_INPUT_HOTKEY_BINDS_BEGIN:
return "input_hotkey_binds_begin";
case MENU_LABEL_INPUT_SETTINGS_BEGIN:
return "input_settings_begin";
case MENU_LABEL_PLAYLIST_SETTINGS_BEGIN:

View File

@ -42,6 +42,7 @@ enum
ACTION_OK_DL_PUSH_DEFAULT,
ACTION_OK_DL_DOWNLOADS_DIR,
ACTION_OK_DL_INPUT_SETTINGS_LIST,
ACTION_OK_DL_INPUT_HOTKEY_BINDS_LIST,
ACTION_OK_DL_PLAYLIST_SETTINGS_LIST,
ACTION_OK_DL_ACCOUNTS_LIST,
ACTION_OK_DL_ACCOUNTS_CHEEVOS_LIST,

View File

@ -33,6 +33,7 @@
#include "../config.features.h"
#include "../git_version.h"
#include "../file_ext.h"
#include "../input/input_common.h"
#ifdef __linux__
#include "../frontend/drivers/platform_linux.h"
@ -1478,6 +1479,9 @@ int menu_displaylist_parse_settings(void *data, menu_displaylist_info_t *info,
case PARSE_ONLY_UINT:
precond = ST_UINT;
break;
case PARSE_ONLY_BIND:
precond = ST_BIND;
break;
case PARSE_ONLY_BOOL:
precond = ST_BOOL;
break;
@ -1525,6 +1529,10 @@ int menu_displaylist_parse_settings(void *data, menu_displaylist_info_t *info,
if (type == ST_UINT)
break;
goto loop;
case PARSE_ONLY_BIND:
if (type == ST_BIND)
break;
goto loop;
case PARSE_ONLY_BOOL:
if (type == ST_BOOL)
break;
@ -1554,6 +1562,7 @@ loop:
if (menu_setting_get_type(setting) == precond)
time_to_exit = true;
break;
case PARSE_ONLY_BIND:
case PARSE_ONLY_FLOAT:
case PARSE_ONLY_BOOL:
case PARSE_ONLY_UINT:
@ -2330,6 +2339,7 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type)
case DISPLAYLIST_DATABASE_PLAYLISTS:
case DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL:
case DISPLAYLIST_VIDEO_FILTERS:
case DISPLAYLIST_INPUT_HOTKEY_BINDS_LIST:
case DISPLAYLIST_INPUT_SETTINGS_LIST:
case DISPLAYLIST_PLAYLIST_SETTINGS_LIST:
case DISPLAYLIST_AUDIO_FILTERS:
@ -2483,6 +2493,21 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type)
menu_hash_to_str(MENU_LABEL_CONTENT_HISTORY_SIZE), PARSE_ONLY_UINT, false);
info->need_push = true;
break;
case DISPLAYLIST_INPUT_HOTKEY_BINDS_LIST:
{
unsigned i;
for (i = 0; i < RARCH_BIND_LIST_END; i++)
{
const struct input_bind_map* keybind = (const struct input_bind_map*)
&input_config_bind_map[i];
ret = menu_displaylist_parse_settings(menu, info,
keybind->base, PARSE_ONLY_BIND, false);
(void)ret;
}
}
info->need_push = true;
break;
case DISPLAYLIST_INPUT_SETTINGS_LIST:
ret = menu_displaylist_parse_settings(menu, info,
menu_hash_to_str(MENU_LABEL_INPUT_MAX_USERS), PARSE_ONLY_UINT, false);
@ -2510,6 +2535,8 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type)
menu_hash_to_str(MENU_LABEL_INPUT_TURBO_PERIOD), PARSE_ONLY_UINT, false);
ret = menu_displaylist_parse_settings(menu, info,
menu_hash_to_str(MENU_LABEL_INPUT_DUTY_CYCLE), PARSE_ONLY_UINT, false);
ret = menu_displaylist_parse_settings(menu, info,
menu_hash_to_str(MENU_LABEL_INPUT_HOTKEY_BINDS), PARSE_ACTION, false);
{
unsigned user;

View File

@ -40,9 +40,10 @@ enum
PARSE_ONLY_UINT = (1 << 3),
PARSE_ONLY_BOOL = (1 << 4),
PARSE_ONLY_FLOAT = (1 << 5),
PARSE_ONLY_GROUP = (1 << 6),
PARSE_ONLY_SUB_GROUP = (1 << 7),
PARSE_SUB_GROUP = (1 << 8)
PARSE_ONLY_BIND = (1 << 6),
PARSE_ONLY_GROUP = (1 << 7),
PARSE_ONLY_SUB_GROUP = (1 << 8),
PARSE_SUB_GROUP = (1 << 9)
};
enum
@ -94,6 +95,7 @@ enum
DISPLAYLIST_USER_BINDS_LIST,
DISPLAYLIST_ACCOUNTS_LIST,
DISPLAYLIST_INPUT_SETTINGS_LIST,
DISPLAYLIST_INPUT_HOTKEY_BINDS_LIST,
DISPLAYLIST_PLAYLIST_SETTINGS_LIST,
DISPLAYLIST_ACCOUNTS_CHEEVOS_LIST,
DISPLAYLIST_LOAD_CONTENT_LIST,

View File

@ -22,6 +22,8 @@
extern "C" {
#endif
#define MENU_LABEL_INPUT_HOTKEY_BINDS_BEGIN 0x5a56139bU
#define MENU_LABEL_INPUT_SETTINGS 0x78b4a7c5U
#define MENU_LABEL_PLAYLIST_SETTINGS_BEGIN 0x80a8d2cbU
@ -188,6 +190,8 @@ extern "C" {
#define MENU_LABEL_VIDEO_MESSAGE_POS_Y 0xa133c369U
#define MENU_LABEL_VALUE_VIDEO_MESSAGE_POS_Y 0x4f2559beU
#define MENU_LABEL_DEFERRED_INPUT_HOTKEY_BINDS_LIST 0x10b41d97U
#define MENU_LABEL_INPUT_HOTKEY_BINDS 0x1b7ef2d7U
#define MENU_LABEL_VALUE_INPUT_HOTKEY_BINDS 0x1cb39c19U
#define MENU_LABEL_VALUE_FRAME_THROTTLE_SETTINGS 0x573b8837U

View File

@ -4854,7 +4854,7 @@ static bool setting_append_list_input_hotkey_options(
settings_t *settings = config_get_ptr();
START_GROUP(group_info,
menu_hash_to_str(MENU_LABEL_VALUE_INPUT_HOTKEY_BINDS),
menu_hash_to_str(MENU_LABEL_INPUT_HOTKEY_BINDS_BEGIN),
parent_group);
parent_group = menu_hash_to_str(MENU_LABEL_VALUE_SETTINGS);
@ -5062,6 +5062,13 @@ static bool setting_append_list_input_options(
START_SUB_GROUP(list, list_info, "Binds", group_info.name, subgroup_info, parent_group);
CONFIG_ACTION(
menu_hash_to_str(MENU_LABEL_INPUT_HOTKEY_BINDS),
menu_hash_to_str(MENU_LABEL_VALUE_INPUT_HOTKEY_BINDS),
group_info.name,
subgroup_info.name,
parent_group);
for (user = 0; user < MAX_USERS; user++)
{
static char binds_list[MAX_USERS][PATH_MAX_LENGTH];