(Menu) Start moving settings descriptions to settings_data.c

This commit is contained in:
twinaphex 2014-07-27 04:30:06 +02:00
parent 1c105faa8c
commit f211b3a466
3 changed files with 111 additions and 74 deletions

View File

@ -580,9 +580,11 @@ static void menu_common_entries_init(void *data, unsigned menu_type)
static int menu_info_screen_iterate(unsigned action)
{
char msg[1024];
char msg[PATH_MAX];
rarch_setting_t *current_setting;
rarch_setting_t *setting_data = (rarch_setting_t *)setting_data_get_list();
if (!driver.menu)
if (!driver.menu || !setting_data)
return 0;
if (driver.video_data && driver.menu_ctx && driver.menu_ctx->render)
@ -591,77 +593,32 @@ static int menu_info_screen_iterate(unsigned action)
switch (driver.menu->info_selection)
{
case MENU_SETTINGS_WINDOW_COMPOSITING_ENABLE:
snprintf(msg, sizeof(msg),
"-- Forcibly disable composition.\n"
"Only valid on Windows Vista/7 for now.");
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "video_disable_composition")))
setting_data_get_description(current_setting, msg, sizeof(msg));
break;
case MENU_SETTINGS_LIBRETRO_LOG_LEVEL:
snprintf(msg, sizeof(msg),
"-- Sets log level for libretro cores \n"
"(GET_LOG_INTERFACE). \n"
" \n"
" If a log level issued by a libretro \n"
" core is below libretro_log level, it \n"
" is ignored.\n"
" \n"
" DEBUG logs are always ignored unless \n"
" verbose mode is activated (--verbose).\n"
" \n"
" DEBUG = 0\n"
" INFO = 1\n"
" WARN = 2\n"
" ERROR = 3"
);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "libretro_log_level")))
setting_data_get_description(current_setting, msg, sizeof(msg));
break;
case MENU_SETTINGS_LOGGING_VERBOSITY:
snprintf(msg, sizeof(msg),
"-- Enable or disable verbosity level \n"
"of frontend.");
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "log_verbosity")))
setting_data_get_description(current_setting, msg, sizeof(msg));
break;
case MENU_SETTINGS_PERFORMANCE_COUNTERS_ENABLE:
snprintf(msg, sizeof(msg),
"-- Enable or disable frontend \n"
"performance counters.");
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "perfcnt_enable")))
setting_data_get_description(current_setting, msg, sizeof(msg));
break;
case MENU_SYSTEM_DIR_PATH:
snprintf(msg, sizeof(msg),
"-- System Directory. \n"
" \n"
"Sets the 'system' directory.\n"
"Implementations can query for this\n"
"directory to load BIOSes, \n"
"system-specific configs, etc.");
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "system_directory")))
setting_data_get_description(current_setting, msg, sizeof(msg));
break;
case MENU_START_SCREEN:
snprintf(msg, sizeof(msg),
" -- Show startup screen in menu.\n"
"Is automatically set to false when seen\n"
"for the first time.\n"
" \n"
"This is only updated in config if\n"
"'Config Save On Exit' is set to true.\n");
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "rgui_show_start_screen")))
setting_data_get_description(current_setting, msg, sizeof(msg));
break;
case MENU_SETTINGS_CONFIG_SAVE_ON_EXIT:
snprintf(msg, sizeof(msg),
" -- Flushes config to disk on exit.\n"
"Useful for menu as settings can be\n"
"modified. Overwrites the config.\n"
" \n"
"#include's and comments are not \n"
"preserved. \n"
" \n"
"By design, the config file is \n"
"considered immutable as it is \n"
"likely maintained by the user, \n"
"and should not be overwritten \n"
"behind the user's back."
#if defined(RARCH_CONSOLE) || defined(RARCH_MOBILE)
"\nThis is not not the case on \n"
"consoles however, where \n"
"looking at the config file \n"
"manually isn't really an option."
#endif
);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "config_save_on_exit")))
setting_data_get_description(current_setting, msg, sizeof(msg));
break;
case MENU_SETTINGS_OPEN_FILEBROWSER:
snprintf(msg, sizeof(msg),
@ -1481,7 +1438,10 @@ static int menu_info_screen_iterate(unsigned action)
}
if (driver.video_data && driver.menu_ctx && driver.menu_ctx->render_messagebox)
driver.menu_ctx->render_messagebox(msg);
{
if (*msg && msg[0] != '\0')
driver.menu_ctx->render_messagebox(msg);
}
if (action == MENU_ACTION_OK)
file_list_pop(driver.menu->menu_stack, &driver.menu->selection_ptr);

View File

@ -347,9 +347,9 @@ rarch_setting_t setting_data_group_setting(enum setting_type type, const char* n
return result;
}
rarch_setting_t setting_data_float_setting(const char* name, const char* description, float* target, float default_value, const char *group, const char *subgroup, change_handler_t change_handler, change_handler_t read_handler)
rarch_setting_t setting_data_float_setting(const char* name, const char* short_description, float* target, float default_value, const char *group, const char *subgroup, change_handler_t change_handler, change_handler_t read_handler)
{
rarch_setting_t result = { ST_FLOAT, name, sizeof(float), description, group, subgroup };
rarch_setting_t result = { ST_FLOAT, name, sizeof(float), short_description, group, subgroup };
result.change_handler = change_handler;
result.read_handler = read_handler;
result.value.fraction = target;
@ -357,9 +357,9 @@ rarch_setting_t setting_data_float_setting(const char* name, const char* descrip
return result;
}
rarch_setting_t setting_data_bool_setting(const char* name, const char* description, bool* target, bool default_value, const char *group, const char *subgroup, change_handler_t change_handler, change_handler_t read_handler)
rarch_setting_t setting_data_bool_setting(const char* name, const char* short_description, bool* target, bool default_value, const char *group, const char *subgroup, change_handler_t change_handler, change_handler_t read_handler)
{
rarch_setting_t result = { ST_BOOL, name, sizeof(bool), description, group, subgroup };
rarch_setting_t result = { ST_BOOL, name, sizeof(bool), short_description, group, subgroup };
result.change_handler = change_handler;
result.read_handler = read_handler;
result.value.boolean = target;
@ -367,9 +367,9 @@ rarch_setting_t setting_data_bool_setting(const char* name, const char* descript
return result;
}
rarch_setting_t setting_data_int_setting(const char* name, const char* description, int* target, int default_value, const char *group, const char *subgroup, change_handler_t change_handler, change_handler_t read_handler)
rarch_setting_t setting_data_int_setting(const char* name, const char* short_description, int* target, int default_value, const char *group, const char *subgroup, change_handler_t change_handler, change_handler_t read_handler)
{
rarch_setting_t result = { ST_INT, name, sizeof(int), description, group, subgroup };
rarch_setting_t result = { ST_INT, name, sizeof(int), short_description, group, subgroup };
result.change_handler = change_handler;
result.read_handler = read_handler;
result.value.integer = target;
@ -377,9 +377,9 @@ rarch_setting_t setting_data_int_setting(const char* name, const char* descripti
return result;
}
rarch_setting_t setting_data_uint_setting(const char* name, const char* description, unsigned int* target, unsigned int default_value, const char *group, const char *subgroup, change_handler_t change_handler, change_handler_t read_handler)
rarch_setting_t setting_data_uint_setting(const char* name, const char* short_description, unsigned int* target, unsigned int default_value, const char *group, const char *subgroup, change_handler_t change_handler, change_handler_t read_handler)
{
rarch_setting_t result = { ST_UINT, name, sizeof(unsigned int), description, group, subgroup };
rarch_setting_t result = { ST_UINT, name, sizeof(unsigned int), short_description, group, subgroup };
result.change_handler = change_handler;
result.read_handler = read_handler;
result.value.unsigned_integer = target;
@ -388,11 +388,11 @@ rarch_setting_t setting_data_uint_setting(const char* name, const char* descript
}
rarch_setting_t setting_data_string_setting(enum setting_type type,
const char* name, const char* description, char* target,
const char* name, const char* short_description, char* target,
unsigned size, const char* default_value,
const char *group, const char *subgroup, change_handler_t change_handler, change_handler_t read_handler)
{
rarch_setting_t result = { type, name, size, description, group, subgroup };
rarch_setting_t result = { type, name, size, short_description, group, subgroup };
result.change_handler = change_handler;
result.read_handler = read_handler;
@ -402,11 +402,11 @@ rarch_setting_t setting_data_string_setting(enum setting_type type,
}
rarch_setting_t setting_data_bind_setting(const char* name,
const char* description, struct retro_keybind* target,
const char* short_description, struct retro_keybind* target,
uint32_t index, const struct retro_keybind* default_value,
const char *group, const char *subgroup)
{
rarch_setting_t result = { ST_BIND, name, 0, description, group, subgroup };
rarch_setting_t result = { ST_BIND, name, 0, short_description, group, subgroup };
result.value.keybind = target;
result.default_value.keybind = default_value;
@ -414,6 +414,81 @@ rarch_setting_t setting_data_bind_setting(const char* name,
return result;
}
void setting_data_get_description(const void *data, char *msg, size_t sizeof_msg)
{
const rarch_setting_t *setting = (const rarch_setting_t*)data;
if (!setting)
return;
if (!strcmp(setting->name, "video_disable_composition"))
snprintf(msg, sizeof_msg,
"-- Forcibly disable composition.\n"
"Only valid on Windows Vista/7 for now.");
else if (!strcmp(setting->name, "libretro_log_level"))
snprintf(msg, sizeof_msg,
"-- Sets log level for libretro cores \n"
"(GET_LOG_INTERFACE). \n"
" \n"
" If a log level issued by a libretro \n"
" core is below libretro_log level, it \n"
" is ignored.\n"
" \n"
" DEBUG logs are always ignored unless \n"
" verbose mode is activated (--verbose).\n"
" \n"
" DEBUG = 0\n"
" INFO = 1\n"
" WARN = 2\n"
" ERROR = 3"
);
else if (!strcmp(setting->name, "log_verbosity"))
snprintf(msg, sizeof_msg,
"-- Enable or disable verbosity level \n"
"of frontend.");
else if (!strcmp(setting->name, "perfcnt_enable"))
snprintf(msg, sizeof_msg,
"-- Enable or disable frontend \n"
"performance counters.");
else if (!strcmp(setting->name, "system_directory"))
snprintf(msg, sizeof_msg,
"-- System Directory. \n"
" \n"
"Sets the 'system' directory.\n"
"Implementations can query for this\n"
"directory to load BIOSes, \n"
"system-specific configs, etc.");
else if (!strcmp(setting->name, "rgui_show_start_screen"))
snprintf(msg, sizeof_msg,
" -- Show startup screen in menu.\n"
"Is automatically set to false when seen\n"
"for the first time.\n"
" \n"
"This is only updated in config if\n"
"'Config Save On Exit' is set to true.\n");
else if (!strcmp(setting->name, "config_save_on_exit"))
snprintf(msg, sizeof_msg,
" -- Flushes config to disk on exit.\n"
"Useful for menu as settings can be\n"
"modified. Overwrites the config.\n"
" \n"
"#include's and comments are not \n"
"preserved. \n"
" \n"
"By design, the config file is \n"
"considered immutable as it is \n"
"likely maintained by the user, \n"
"and should not be overwritten \n"
"behind the user's back."
#if defined(RARCH_CONSOLE) || defined(RARCH_MOBILE)
"\nThis is not not the case on \n"
"consoles however, where \n"
"looking at the config file \n"
"manually isn't really an option."
#endif
);
}
static void general_read_handler(const void *data)
{
const rarch_setting_t *setting = (const rarch_setting_t*)data;

View File

@ -116,6 +116,8 @@ rarch_setting_t setting_data_string_setting(enum setting_type type, const char*
rarch_setting_t setting_data_bind_setting(const char* name, const char* description, struct retro_keybind* target, uint32_t index,
const struct retro_keybind* default_value, const char *group, const char *subgroup);
void setting_data_get_description(const void *data, char *msg, size_t msg_sizeof);
// These functions operate only on RetroArch's main settings list
rarch_setting_t* setting_data_get_list(void);