mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
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;
|
||||
}
|
||||
|
||||
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:
|
||||
* @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);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
if (!setting)
|
||||
|
@ -26,6 +26,8 @@
|
||||
#include "../command.h"
|
||||
#include "../input/input_driver.h"
|
||||
|
||||
#include "menu_hash.h"
|
||||
|
||||
RETRO_BEGIN_DECLS
|
||||
|
||||
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_enum(enum menu_hash_enums enum_idx);
|
||||
|
||||
/**
|
||||
* setting_set_with_string_representation:
|
||||
* @setting : pointer to setting
|
||||
|
Loading…
x
Reference in New Issue
Block a user