Create menu_setting_find_enum
This commit is contained in:
parent
0ee7eeb450
commit
fef343ff9e
|
@ -2040,6 +2040,29 @@ static rarch_setting_t *menu_setting_find_internal(rarch_setting_t *setting,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static rarch_setting_t *menu_setting_find_internal_enum(rarch_setting_t *setting,
|
||||||
|
enum menu_hash_enums enum_idx)
|
||||||
|
{
|
||||||
|
for (; menu_setting_get_type(setting) != ST_NONE; menu_settings_list_increment(&setting))
|
||||||
|
{
|
||||||
|
const char *name = menu_setting_get_name(setting);
|
||||||
|
const char *short_description = menu_setting_get_short_description(setting);
|
||||||
|
|
||||||
|
if (setting->enum_idx == enum_idx && menu_setting_get_type(setting) <= ST_GROUP)
|
||||||
|
{
|
||||||
|
if (string_is_empty(short_description))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
if (setting->read_handler)
|
||||||
|
setting->read_handler(setting);
|
||||||
|
|
||||||
|
return setting;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* menu_setting_find:
|
* menu_setting_find:
|
||||||
* @settings : pointer to settings
|
* @settings : pointer to settings
|
||||||
|
@ -2064,6 +2087,18 @@ rarch_setting_t *menu_setting_find(const char *label)
|
||||||
return menu_setting_find_internal(setting, label, needle);
|
return menu_setting_find_internal(setting, label, needle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rarch_setting_t *menu_setting_find_enum(enum menu_hash_enums enum_idx)
|
||||||
|
{
|
||||||
|
rarch_setting_t *setting = NULL;
|
||||||
|
|
||||||
|
menu_entries_ctl(MENU_ENTRIES_CTL_SETTINGS_GET, &setting);
|
||||||
|
|
||||||
|
if (!setting || enum_idx == 0)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return menu_setting_find_internal_enum(setting, enum_idx);
|
||||||
|
}
|
||||||
|
|
||||||
int menu_setting_set_flags(rarch_setting_t *setting)
|
int menu_setting_set_flags(rarch_setting_t *setting)
|
||||||
{
|
{
|
||||||
if (!setting)
|
if (!setting)
|
||||||
|
|
|
@ -26,6 +26,8 @@
|
||||||
#include "../command.h"
|
#include "../command.h"
|
||||||
#include "../input/input_driver.h"
|
#include "../input/input_driver.h"
|
||||||
|
|
||||||
|
#include "menu_hash.h"
|
||||||
|
|
||||||
RETRO_BEGIN_DECLS
|
RETRO_BEGIN_DECLS
|
||||||
|
|
||||||
enum setting_type
|
enum setting_type
|
||||||
|
@ -286,6 +288,8 @@ int menu_setting_set(unsigned type, const char *label,
|
||||||
**/
|
**/
|
||||||
rarch_setting_t *menu_setting_find(const char *label);
|
rarch_setting_t *menu_setting_find(const char *label);
|
||||||
|
|
||||||
|
rarch_setting_t *menu_setting_find_enum(enum menu_hash_enums enum_idx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* setting_set_with_string_representation:
|
* setting_set_with_string_representation:
|
||||||
* @setting : pointer to setting
|
* @setting : pointer to setting
|
||||||
|
|
Loading…
Reference in New Issue