Create DEFERRED_DRIVER_SETTINGS_LIST

This commit is contained in:
twinaphex 2016-06-16 21:40:13 +02:00
parent 8fb7285577
commit fef0d968cd
8 changed files with 104 additions and 3 deletions

View File

@ -94,6 +94,11 @@ static int deferred_push_accounts_list(menu_displaylist_info_t *info)
return deferred_push_dlist(info, DISPLAYLIST_ACCOUNTS_LIST);
}
static int deferred_push_driver_settings_list(menu_displaylist_info_t *info)
{
return deferred_push_dlist(info, DISPLAYLIST_DRIVER_SETTINGS_LIST);
}
static int deferred_push_input_settings_list(menu_displaylist_info_t *info)
{
return deferred_push_dlist(info, DISPLAYLIST_INPUT_SETTINGS_LIST);
@ -816,6 +821,9 @@ static int menu_cbs_init_bind_deferred_push_compare_label(
case MENU_LABEL_DEFERRED_ACCOUNTS_LIST:
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_accounts_list);
break;
case MENU_LABEL_DEFERRED_DRIVER_SETTINGS_LIST:
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_driver_settings_list);
break;
case MENU_LABEL_DEFERRED_INPUT_SETTINGS_LIST:
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_input_settings_list);
break;

View File

@ -413,6 +413,12 @@ int generic_action_ok_displaylist_push(const char *path,
info_path = path;
info_label = menu_hash_to_str_enum(MENU_ENUM_LABEL_DEFERRED_INPUT_SETTINGS_LIST);
break;
case ACTION_OK_DL_DRIVER_SETTINGS_LIST:
info.directory_ptr = idx;
info.type = type;
info_path = path;
info_label = menu_hash_to_str_enum(MENU_ENUM_LABEL_DEFERRED_DRIVER_SETTINGS_LIST);
break;
case ACTION_OK_DL_INPUT_HOTKEY_BINDS_LIST:
info.directory_ptr = idx;
info.type = type;
@ -2259,6 +2265,13 @@ static int action_ok_push_accounts_list(const char *path,
ACTION_OK_DL_ACCOUNTS_LIST);
}
static int action_ok_push_driver_settings_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_DRIVER_SETTINGS_LIST);
}
static int action_ok_push_input_settings_list(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx)
{
@ -2630,6 +2643,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs,
case MENU_ENUM_LABEL_INPUT_SETTINGS:
BIND_ACTION_OK(cbs, action_ok_push_input_settings_list);
break;
case MENU_ENUM_LABEL_DRIVER_SETTINGS:
BIND_ACTION_OK(cbs, action_ok_push_driver_settings_list);
break;
case MENU_ENUM_LABEL_PLAYLIST_SETTINGS:
BIND_ACTION_OK(cbs, action_ok_push_playlist_settings_list);
break;
@ -2861,6 +2877,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs,
case MENU_LABEL_INPUT_SETTINGS:
BIND_ACTION_OK(cbs, action_ok_push_input_settings_list);
break;
case MENU_LABEL_DRIVER_SETTINGS:
BIND_ACTION_OK(cbs, action_ok_push_driver_settings_list);
break;
case MENU_LABEL_PLAYLIST_SETTINGS:
BIND_ACTION_OK(cbs, action_ok_push_playlist_settings_list);
break;

View File

@ -90,6 +90,8 @@ static const char *menu_hash_to_str_us_label_enum(enum menu_hash_enums msg)
return "deferred_accounts_list";
case MENU_ENUM_LABEL_DEFERRED_INPUT_SETTINGS_LIST:
return "deferred_input_settings_list";
case MENU_ENUM_LABEL_DEFERRED_DRIVER_SETTINGS_LIST:
return "deferred_driver_settings_list";
case MENU_ENUM_LABEL_ACCOUNTS_LIST:
return "accounts_list";
case MENU_ENUM_LABEL_DEFERRED_INPUT_HOTKEY_BINDS_LIST:
@ -108,6 +110,8 @@ static const char *menu_hash_to_str_us_label_enum(enum menu_hash_enums msg)
return "deferred_playlist_settings";
case MENU_ENUM_LABEL_INPUT_SETTINGS:
return "input_settings";
case MENU_ENUM_LABEL_DRIVER_SETTINGS:
return "driver_settings";
case MENU_ENUM_LABEL_DEBUG_PANEL_ENABLE:
return "debug_panel_enable";
case MENU_ENUM_LABEL_HELP_SCANNING_CONTENT:

View File

@ -54,6 +54,7 @@ enum
ACTION_OK_DL_PUSH_DEFAULT,
ACTION_OK_DL_DOWNLOADS_DIR,
ACTION_OK_DL_INPUT_SETTINGS_LIST,
ACTION_OK_DL_DRIVER_SETTINGS_LIST,
ACTION_OK_DL_INPUT_HOTKEY_BINDS_LIST,
ACTION_OK_DL_PLAYLIST_SETTINGS_LIST,
ACTION_OK_DL_ACCOUNTS_LIST,

View File

@ -2172,6 +2172,9 @@ static int menu_displaylist_parse_settings_internal(void *data,
case PARSE_ONLY_FLOAT:
precond = ST_FLOAT;
break;
case PARSE_ONLY_STRING_OPTIONS:
precond = ST_STRING_OPTIONS;
break;
case PARSE_ONLY_GROUP:
default:
precond = ST_END_GROUP;
@ -2231,6 +2234,10 @@ static int menu_displaylist_parse_settings_internal(void *data,
if (type == ST_FLOAT)
break;
goto loop;
case PARSE_ONLY_STRING_OPTIONS:
if (type == ST_STRING_OPTIONS)
break;
goto loop;
}
if (flags & SD_FLAG_ADVANCED &&
@ -2257,6 +2264,7 @@ loop:
case PARSE_ONLY_BOOL:
case PARSE_ONLY_INT:
case PARSE_ONLY_UINT:
case PARSE_ONLY_STRING_OPTIONS:
case PARSE_ACTION:
time_to_exit = true;
break;
@ -2317,6 +2325,9 @@ static int menu_displaylist_parse_settings_internal_enum(void *data,
case PARSE_ONLY_FLOAT:
precond = ST_FLOAT;
break;
case PARSE_ONLY_STRING_OPTIONS:
precond = ST_STRING_OPTIONS;
break;
case PARSE_ONLY_GROUP:
default:
precond = ST_END_GROUP;
@ -2376,6 +2387,10 @@ static int menu_displaylist_parse_settings_internal_enum(void *data,
if (type == ST_FLOAT)
break;
goto loop;
case PARSE_ONLY_STRING_OPTIONS:
if (type == ST_STRING_OPTIONS)
break;
goto loop;
}
if (flags & SD_FLAG_ADVANCED &&
@ -2402,6 +2417,7 @@ loop:
case PARSE_ONLY_BOOL:
case PARSE_ONLY_INT:
case PARSE_ONLY_UINT:
case PARSE_ONLY_STRING_OPTIONS:
case PARSE_ACTION:
time_to_exit = true;
break;
@ -3631,6 +3647,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
case DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL:
case DISPLAYLIST_VIDEO_FILTERS:
case DISPLAYLIST_INPUT_HOTKEY_BINDS_LIST:
case DISPLAYLIST_DRIVER_SETTINGS_LIST:
case DISPLAYLIST_INPUT_SETTINGS_LIST:
case DISPLAYLIST_PLAYLIST_SETTINGS_LIST:
case DISPLAYLIST_AUDIO_FILTERS:
@ -3884,6 +3901,38 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
}
info->need_push = true;
break;
case DISPLAYLIST_DRIVER_SETTINGS_LIST:
ret = menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_INPUT_DRIVER,
PARSE_ONLY_STRING_OPTIONS, false);
ret = menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_JOYPAD_DRIVER,
PARSE_ONLY_STRING_OPTIONS, false);
ret = menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_VIDEO_DRIVER,
PARSE_ONLY_STRING_OPTIONS, false);
ret = menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_AUDIO_DRIVER,
PARSE_ONLY_STRING_OPTIONS, false);
ret = menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER,
PARSE_ONLY_STRING_OPTIONS, false);
ret = menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_CAMERA_DRIVER,
PARSE_ONLY_STRING_OPTIONS, false);
ret = menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_LOCATION_DRIVER,
PARSE_ONLY_STRING_OPTIONS, false);
ret = menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_MENU_DRIVER,
PARSE_ONLY_STRING_OPTIONS, false);
ret = menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_RECORD_DRIVER,
PARSE_ONLY_STRING_OPTIONS, false);
info->need_refresh = true;
info->need_push = true;
break;
case DISPLAYLIST_INPUT_SETTINGS_LIST:
ret = menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_INPUT_MAX_USERS,
@ -3943,8 +3992,8 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
info->need_push = true;
break;
case DISPLAYLIST_SETTINGS_ALL:
ret = menu_displaylist_parse_settings(menu, info,
menu_hash_to_str_enum(MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS), PARSE_ONLY_GROUP, false);
ret = menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_DRIVER_SETTINGS, PARSE_ACTION, false);
ret = menu_displaylist_parse_settings(menu, info,
menu_hash_to_str_enum(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), PARSE_ONLY_GROUP, false);
ret = menu_displaylist_parse_settings(menu, info,

View File

@ -41,7 +41,8 @@ enum menu_displaylist_parse_type
PARSE_ONLY_FLOAT = (1 << 6),
PARSE_ONLY_BIND = (1 << 7),
PARSE_ONLY_GROUP = (1 << 8),
PARSE_SUB_GROUP = (1 << 9)
PARSE_ONLY_STRING_OPTIONS = (1 << 9),
PARSE_SUB_GROUP = (1 << 10)
};
enum menu_displaylist_ctl_state
@ -97,6 +98,7 @@ enum menu_displaylist_ctl_state
DISPLAYLIST_ACHIEVEMENT_LIST,
DISPLAYLIST_USER_BINDS_LIST,
DISPLAYLIST_ACCOUNTS_LIST,
DISPLAYLIST_DRIVER_SETTINGS_LIST,
DISPLAYLIST_INPUT_SETTINGS_LIST,
DISPLAYLIST_INPUT_HOTKEY_BINDS_LIST,
DISPLAYLIST_PLAYLIST_SETTINGS_LIST,

View File

@ -124,6 +124,8 @@ enum menu_hash_enums
MENU_ENUM_LABEL_INPUT_SETTINGS_BEGIN,
MENU_ENUM_LABEL_DEFERRED_INPUT_SETTINGS_LIST,
MENU_ENUM_LABEL_DEFERRED_DRIVER_SETTINGS_LIST,
MENU_ENUM_LABEL_DEFERRED_USER_BINDS_LIST,
MENU_ENUM_LABEL_CHEEVOS_USERNAME,
@ -956,7 +958,10 @@ enum menu_hash_enums
MENU_ENUM_LABEL_VALUE_JOYPAD_AUTOCONFIG_DIR,
MENU_ENUM_LABEL_INPUT_AUTODETECT_ENABLE,
MENU_ENUM_LABEL_VALUE_INPUT_AUTODETECT_ENABLE,
MENU_ENUM_LABEL_DRIVER_SETTINGS,
MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS,
MENU_ENUM_LABEL_VALUE_CORE_SETTINGS,
MENU_ENUM_LABEL_VALUE_CONFIGURATION_SETTINGS,
MENU_ENUM_LABEL_VALUE_LOGGING_SETTINGS,
@ -2395,6 +2400,10 @@ enum menu_hash_enums
#define CB_CORE_THUMBNAILS_DOWNLOAD 0xc9d6519fU
#define MENU_LABEL_DRIVER_SETTINGS 0x1d9550e1U
#define MENU_LABEL_DEFERRED_DRIVER_SETTINGS_LIST 0xaa5efefcU
const char *menu_hash_to_str_de_enum(enum menu_hash_enums msg);
int menu_hash_get_help_de(uint32_t hash, char *s, size_t len);

View File

@ -3848,6 +3848,15 @@ static bool setting_append_list(
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_REBOOT);
#endif
CONFIG_ACTION(
list, list_info,
menu_hash_to_str_enum(MENU_ENUM_LABEL_DRIVER_SETTINGS),
menu_hash_to_str_enum(MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS),
&group_info,
&subgroup_info,
parent_group);
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_DRIVER_SETTINGS);
CONFIG_ACTION(
list, list_info,
menu_hash_to_str_enum(MENU_ENUM_LABEL_INPUT_SETTINGS),