From 033cf569e458842d0a48ebaa2e25bf545a450fc3 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Fri, 18 Mar 2016 22:31:14 +0100 Subject: [PATCH] Add MENU_SETTING_CTL_NEW --- menu/menu_entries.c | 2 +- menu/menu_setting.c | 12 ++++++++++-- menu/menu_setting.h | 12 +----------- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/menu/menu_entries.c b/menu/menu_entries.c index a56088c004..eb3eac1dda 100644 --- a/menu/menu_entries.c +++ b/menu/menu_entries.c @@ -657,7 +657,7 @@ bool menu_entries_ctl(enum menu_entries_ctl_state state, void *data) menu_entries_list_settings = NULL; break; case MENU_ENTRIES_CTL_SETTINGS_INIT: - menu_entries_list_settings = menu_setting_new(); + menu_setting_ctl(MENU_SETTING_CTL_NEW, &menu_entries_list_settings); if (!menu_entries_list_settings) return false; diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 2ec43e843d..b70b583c75 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -7400,7 +7400,7 @@ static bool menu_setting_free(void *data) * Returns: settings list composed of all requested * settings on success, otherwise NULL. **/ -rarch_setting_t *menu_setting_new(void) +static rarch_setting_t *menu_setting_new(void) { rarch_setting_t terminator = { ST_NONE }; rarch_setting_t* list = NULL; @@ -7569,9 +7569,17 @@ bool menu_setting_ctl(enum menu_setting_ctl_state state, void *data) if (!(flags & SD_FLAG_BROWSER_ACTION)) return false; } - return true; + break; case MENU_SETTING_CTL_FREE: return menu_setting_free(data); + case MENU_SETTING_CTL_NEW: + { + rarch_setting_t **setting = (rarch_setting_t**)data; + if (!setting) + return false; + *setting = menu_setting_new(); + } + break; case MENU_SETTING_CTL_NONE: default: break; diff --git a/menu/menu_setting.h b/menu/menu_setting.h index 94b3465ac0..8962483d17 100644 --- a/menu/menu_setting.h +++ b/menu/menu_setting.h @@ -67,6 +67,7 @@ enum menu_setting_ctl_state { MENU_SETTING_CTL_NONE = 0, MENU_SETTING_CTL_FREE, + MENU_SETTING_CTL_NEW, MENU_SETTING_CTL_IS_OF_PATH_TYPE }; @@ -318,17 +319,6 @@ void menu_setting_get_label(void *data, char *s, size_t len, unsigned *w, unsigned type, const char *menu_label, const char *label, unsigned idx); -/** - * setting_new: - * @mask : Bitmask of settings to include. - * - * Request a list of settings based on @mask. - * - * Returns: settings list composed of all requested - * settings on success, otherwise NULL. - **/ -rarch_setting_t* menu_setting_new(void); - int menu_action_handle_setting(rarch_setting_t *setting, unsigned type, unsigned action, bool wraparound);