Reintroduce setting_get_type

This commit is contained in:
twinaphex 2016-10-31 15:01:40 +01:00
parent 659235c572
commit 49479937d4
11 changed files with 37 additions and 26 deletions

View File

@ -1902,7 +1902,7 @@ int menu_cbs_init_bind_get_string_representation(menu_file_list_cbs_t *cbs,
if (cbs->setting)
{
switch (cbs->setting->type)
switch (setting_get_type(cbs->setting))
{
case ST_BOOL:
BIND_ACTION_GET_VALUE(cbs,

View File

@ -271,7 +271,7 @@ static int action_left_shader_filter_default(unsigned type, const char *label,
if (!setting)
return menu_cbs_exit();
return menu_action_handle_setting(setting,
setting->type, MENU_ACTION_LEFT, wraparound);
setting_get_type(setting), MENU_ACTION_LEFT, wraparound);
#else
return 0;
#endif
@ -417,7 +417,7 @@ static int menu_cbs_init_bind_left_compare_label(menu_file_list_cbs_t *cbs,
const char *parent_group = cbs->setting->parent_group;
if (string_is_equal(parent_group, msg_hash_to_str(MENU_ENUM_LABEL_MAIN_MENU))
&& (cbs->setting->type == ST_GROUP))
&& (setting_get_type(cbs->setting) == ST_GROUP))
{
BIND_ACTION_LEFT(cbs, action_left_mainmenu);
return 0;

View File

@ -1942,7 +1942,7 @@ static int action_ok_file_load(const char *path,
setting = menu_setting_find(menu_label);
if (setting && setting->type == ST_PATH)
if (setting_get_type(setting) == ST_PATH)
return action_ok_set_path(path, label, type, idx, entry_idx);
strlcpy(menu_path_new, menu_path, sizeof(menu_path_new));

View File

@ -285,7 +285,8 @@ static int action_right_shader_filter_default(unsigned type, const char *label,
rarch_setting_t *setting = menu_setting_find_enum(MENU_ENUM_LABEL_VIDEO_SMOOTH);
if (!setting)
return menu_cbs_exit();
return menu_action_handle_setting(setting, setting->type, MENU_ACTION_RIGHT,
return menu_action_handle_setting(setting,
setting_get_type(setting), MENU_ACTION_RIGHT,
wraparound);
#else
return 0;
@ -526,7 +527,7 @@ static int menu_cbs_init_bind_right_compare_label(menu_file_list_cbs_t *cbs,
const char *parent_group = cbs->setting->parent_group;
if (string_is_equal(parent_group, msg_hash_to_str(MENU_ENUM_LABEL_MAIN_MENU))
&& (cbs->setting->type == ST_GROUP))
&& (setting_get_type(cbs->setting) == ST_GROUP))
{
BIND_ACTION_RIGHT(cbs, action_right_scroll);
return 0;

View File

@ -61,7 +61,7 @@ static int action_select_default(const char *path, const char *label, unsigned t
if (cbs->setting)
{
switch (cbs->setting->type)
switch (setting_get_type(cbs->setting))
{
case ST_BOOL:
case ST_INT:

View File

@ -893,7 +893,7 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs,
const char *parent_group = cbs->setting->parent_group;
if (string_is_equal(parent_group, msg_hash_to_str(MENU_ENUM_LABEL_MAIN_MENU))
&& cbs->setting->type == ST_GROUP)
&& setting_get_type(cbs->setting) == ST_GROUP)
{
BIND_ACTION_GET_TITLE(cbs, action_get_title_group_settings);
return 0;

View File

@ -2221,7 +2221,7 @@ static int menu_displaylist_parse_settings_internal(void *data,
bool time_to_exit = false;
const char *short_description = setting->short_description;
const char *name = setting->name;
enum setting_type type = setting->type;
enum setting_type type = setting_get_type(setting);
rarch_setting_t **list = &setting;
switch (parse_type)
@ -2307,7 +2307,7 @@ loop:
case PARSE_GROUP:
case PARSE_ONLY_GROUP:
case PARSE_SUB_GROUP:
if (setting->type == precond)
if (setting_get_type(setting) == precond)
time_to_exit = true;
break;
case PARSE_ONLY_BIND:
@ -2408,7 +2408,7 @@ static int menu_displaylist_parse_settings_internal_enum(void *data,
bool time_to_exit = false;
const char *short_description = setting->short_description;
const char *name = setting->name;
enum setting_type type = setting->type;
enum setting_type type = setting_get_type(setting);
rarch_setting_t **list = &setting;
switch (parse_type)
@ -2494,7 +2494,7 @@ loop:
case PARSE_GROUP:
case PARSE_ONLY_GROUP:
case PARSE_SUB_GROUP:
if (setting->type == precond)
if (setting_get_type(setting) == precond)
time_to_exit = true;
break;
case PARSE_ONLY_BIND:

View File

@ -640,7 +640,7 @@ int menu_action_handle_setting(rarch_setting_t *setting,
if (!setting)
return -1;
switch (setting->type)
switch (setting_get_type(setting))
{
case ST_PATH:
if (action == MENU_ACTION_OK)
@ -690,9 +690,10 @@ static rarch_setting_t *menu_setting_find_internal(rarch_setting_t *setting,
uint32_t needle = msg_hash_calculate(label);
rarch_setting_t **list = &setting;
for (; setting->type != ST_NONE; (*list = *list + 1))
for (; setting_get_type(setting) != ST_NONE; (*list = *list + 1))
{
if (needle == setting->name_hash && setting->type <= ST_GROUP)
if ( (needle == setting->name_hash)
&& (setting_get_type(setting) <= ST_GROUP))
{
const char *name = setting->name;
const char *short_description = setting->short_description;
@ -717,9 +718,9 @@ static rarch_setting_t *menu_setting_find_internal_enum(rarch_setting_t *setting
enum msg_hash_enums enum_idx)
{
rarch_setting_t **list = &setting;
for (; setting->type != ST_NONE; (*list = *list + 1))
for (; setting_get_type(setting) != ST_NONE; (*list = *list + 1))
{
if (setting->enum_idx == enum_idx && setting->type <= ST_GROUP)
if (setting->enum_idx == enum_idx && setting_get_type(setting) <= ST_GROUP)
{
const char *short_description = setting->short_description;
if (string_is_empty(short_description))
@ -773,7 +774,7 @@ int menu_setting_set_flags(rarch_setting_t *setting)
if (!setting)
return 0;
switch (setting->type)
switch (setting_get_type(setting))
{
case ST_STRING_OPTIONS:
return MENU_SETTING_STRING_OPTIONS;
@ -821,7 +822,7 @@ void *setting_get_ptr(rarch_setting_t *setting)
if (!setting)
return NULL;
switch (setting->type)
switch (setting_get_type(setting))
{
case ST_BOOL:
return setting->value.target.boolean;
@ -6308,7 +6309,7 @@ bool menu_setting_free(void *data)
return false;
/* Free data which was previously tagged */
for (; setting->type != ST_NONE; (*list = *list + 1))
for (; setting_get_type(setting) != ST_NONE; (*list = *list + 1))
for (values = setting->free_flags, n = 0; values != 0; values >>= 1, n++)
if (values & 1)
switch (1 << n)
@ -6450,7 +6451,7 @@ bool menu_setting_ctl(enum menu_setting_ctl_state state, void *data)
flags = setting->flags;
if (setting->type != ST_ACTION)
if (setting_get_type(setting) != ST_ACTION)
return false;
if (!setting->change_handler)

View File

@ -45,7 +45,7 @@ enum menu_entry_type menu_entry_get_type(uint32_t i)
if (setting)
{
switch (setting->type)
switch (setting_get_type(setting))
{
case ST_BOOL:
return MENU_ENTRY_BOOL;

View File

@ -103,6 +103,13 @@ bool settings_list_append(rarch_setting_t **list,
return true;
}
enum setting_type setting_get_type(rarch_setting_t *setting)
{
if (!setting)
return ST_NONE;
return setting->type;
}
unsigned setting_get_bind_type(rarch_setting_t *setting)
{
if (!setting)
@ -309,7 +316,7 @@ int setting_set_with_string_representation(rarch_setting_t* setting,
max = setting->max;
flags = setting->flags;
switch (setting->type)
switch (setting_get_type(setting))
{
case ST_INT:
sscanf(value, "%d", setting->value.target.integer);
@ -463,7 +470,7 @@ static void setting_reset_setting(rarch_setting_t* setting)
if (!setting)
return;
switch (setting->type)
switch (setting_get_type(setting))
{
case ST_BOOL:
*setting->value.target.boolean = setting->default_value.boolean;
@ -486,7 +493,7 @@ static void setting_reset_setting(rarch_setting_t* setting)
case ST_DIR:
if (setting->default_value.string)
{
if (setting->type == ST_STRING)
if (setting_get_type(setting) == ST_STRING)
setting_set_with_string_representation(setting, setting->default_value.string);
else
fill_pathname_expand_special(setting->value.target.string,
@ -2020,7 +2027,7 @@ static int setting_generic_action_ok_linefeed(void *data, bool wraparound)
(void)wraparound;
switch (setting->type)
switch (setting_get_type(setting))
{
case ST_UINT:
cb = menu_input_st_uint_cb;

View File

@ -414,6 +414,8 @@ void settings_data_list_current_add_free_flags(
rarch_setting_info_t *list_info,
unsigned values);
enum setting_type setting_get_type(rarch_setting_t *setting);
rarch_setting_t setting_terminator_setting(void);
RETRO_END_DECLS