(Menu) Refactor menu_common_entries_init

This commit is contained in:
twinaphex 2014-08-27 23:12:55 +02:00
parent a1a9c8f3aa
commit e9ab80dec1
6 changed files with 528 additions and 242 deletions

View File

@ -25,7 +25,8 @@
void file_list_push(file_list_t *list,
const char *path, const char *label,
unsigned type, size_t directory_ptr)
unsigned type, size_t directory_ptr,
void *setting_list)
{
if (list->size >= list->capacity)
{
@ -41,7 +42,7 @@ void file_list_push(file_list_t *list,
list->list[list->size].label = strdup(label);
list->list[list->size].setting = NULL;
rarch_setting_t *setting_data = (rarch_setting_t *)setting_data_get_list();
rarch_setting_t *setting_data = (rarch_setting_t *)setting_list;
if (setting_data)
list->list[list->size].setting = (rarch_setting_t*)

View File

@ -46,7 +46,8 @@ typedef struct file_list
void file_list_free(file_list_t *list);
void file_list_push(file_list_t *userdata, const char *path,
const char *label, unsigned type, size_t current_directory_ptr);
const char *label, unsigned type, size_t current_directory_ptr,
void *setting_list);
void file_list_pop(file_list_t *list, size_t *directory_ptr);
void file_list_clear(file_list_t *list);

View File

@ -66,10 +66,14 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type)
{
file_list_clear(menu->selection_buf);
struct gfx_shader *shader = (struct gfx_shader*)shader_manager_get_current_shader(menu, menu_type);
struct gfx_shader *shader = (struct gfx_shader*)
shader_manager_get_current_shader(menu, menu_type);
if (shader)
for (i = 0; i < shader->num_parameters; i++)
file_list_push(menu->selection_buf, shader->parameters[i].desc, "", MENU_SETTINGS_SHADER_PARAMETER_0 + i, 0);
file_list_push(menu->selection_buf,
shader->parameters[i].desc, "",
MENU_SETTINGS_SHADER_PARAMETER_0 + i, 0, NULL);
menu->parameter_shader = shader;
break;
}
@ -82,18 +86,19 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type)
file_list_clear(menu->selection_buf);
file_list_push(menu->selection_buf, "Apply Shader Changes", "",
MENU_SETTINGS_SHADER_APPLY, 0);
file_list_push(menu->selection_buf, "Default Filter", "", MENU_SETTINGS_SHADER_FILTER, 0);
MENU_SETTINGS_SHADER_APPLY, 0, NULL);
file_list_push(menu->selection_buf, "Default Filter", "",
MENU_SETTINGS_SHADER_FILTER, 0, NULL);
file_list_push(menu->selection_buf, "Load Shader Preset", "",
MENU_SETTINGS_SHADER_PRESET, 0);
MENU_SETTINGS_SHADER_PRESET, 0, NULL);
file_list_push(menu->selection_buf, "Save As Shader Preset", "",
MENU_SETTINGS_SHADER_PRESET_SAVE, 0);
MENU_SETTINGS_SHADER_PRESET_SAVE, 0, NULL);
file_list_push(menu->selection_buf, "Parameters (Current)", "",
MENU_SETTINGS_SHADER_PARAMETERS, 0);
MENU_SETTINGS_SHADER_PARAMETERS, 0, NULL);
file_list_push(menu->selection_buf, "Parameters (Menu)", "",
MENU_SETTINGS_SHADER_PRESET_PARAMETERS, 0);
MENU_SETTINGS_SHADER_PRESET_PARAMETERS, 0, NULL);
file_list_push(menu->selection_buf, "Shader Passes", "",
MENU_SETTINGS_SHADER_PASSES, 0);
MENU_SETTINGS_SHADER_PASSES, 0, NULL);
for (i = 0; i < shader->passes; i++)
{
@ -101,89 +106,136 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type)
snprintf(buf, sizeof(buf), "Shader #%u", i);
file_list_push(menu->selection_buf, buf, "",
MENU_SETTINGS_SHADER_0 + 3 * i, 0);
MENU_SETTINGS_SHADER_0 + 3 * i, 0, NULL);
snprintf(buf, sizeof(buf), "Shader #%u Filter", i);
file_list_push(menu->selection_buf, buf, "",
MENU_SETTINGS_SHADER_0_FILTER + 3 * i, 0);
MENU_SETTINGS_SHADER_0_FILTER + 3 * i, 0, NULL);
snprintf(buf, sizeof(buf), "Shader #%u Scale", i);
file_list_push(menu->selection_buf, buf, "",
MENU_SETTINGS_SHADER_0_SCALE + 3 * i, 0);
MENU_SETTINGS_SHADER_0_SCALE + 3 * i, 0, NULL);
}
}
break;
case MENU_SETTINGS_GENERAL_OPTIONS:
file_list_clear(menu->selection_buf);
file_list_push(menu->selection_buf, "", "libretro_log_level", MENU_SETTINGS_LIBRETRO_LOG_LEVEL, 0);
file_list_push(menu->selection_buf, "", "log_verbosity", MENU_SETTINGS_LOGGING_VERBOSITY, 0);
file_list_push(menu->selection_buf, "", "perfcnt_enable", MENU_SETTINGS_PERFORMANCE_COUNTERS_ENABLE, 0);
file_list_push(menu->selection_buf, "", "game_history_size", MENU_CONTENT_HISTORY_SIZE, 0);
file_list_push(menu->selection_buf, "", "config_save_on_exit", MENU_SETTINGS_CONFIG_SAVE_ON_EXIT, 0);
file_list_push(menu->selection_buf, "", "core_specific_config", MENU_SETTINGS_PER_CORE_CONFIG, 0);
file_list_push(menu->selection_buf, "", "video_gpu_screenshot", MENU_SETTINGS_GPU_SCREENSHOT, 0);
file_list_push(menu->selection_buf, "", "dummy_on_core_shutdown", MENU_SETTINGS_LOAD_DUMMY_ON_CORE_SHUTDOWN, 0);
file_list_push(menu->selection_buf, "", "fps_show", MENU_SETTINGS_DEBUG_TEXT, 0);
file_list_push(menu->selection_buf, "", "fastforward_ratio", MENU_SETTINGS_FASTFORWARD_RATIO, 0);
file_list_push(menu->selection_buf, "", "slowmotion_ratio", MENU_SETTINGS_SLOWMOTION_RATIO, 0);
file_list_push(menu->selection_buf, "", "rewind_enable", MENU_SETTINGS_REWIND_ENABLE, 0);
file_list_push(menu->selection_buf, "", "rewind_granularity", MENU_SETTINGS_REWIND_GRANULARITY, 0);
file_list_push(menu->selection_buf, "", "block_sram_overwrite", MENU_SETTINGS_BLOCK_SRAM_OVERWRITE, 0);
file_list_push(menu->selection_buf, "", "libretro_log_level",
MENU_SETTINGS_LIBRETRO_LOG_LEVEL, 0, setting_data);
file_list_push(menu->selection_buf, "", "log_verbosity",
MENU_SETTINGS_LOGGING_VERBOSITY, 0, setting_data);
file_list_push(menu->selection_buf, "", "perfcnt_enable",
MENU_SETTINGS_PERFORMANCE_COUNTERS_ENABLE, 0, setting_data);
file_list_push(menu->selection_buf, "", "game_history_size",
MENU_CONTENT_HISTORY_SIZE, 0, setting_data);
file_list_push(menu->selection_buf, "", "config_save_on_exit",
MENU_SETTINGS_CONFIG_SAVE_ON_EXIT, 0, setting_data);
file_list_push(menu->selection_buf, "", "core_specific_config",
MENU_SETTINGS_PER_CORE_CONFIG, 0, setting_data);
file_list_push(menu->selection_buf, "", "video_gpu_screenshot",
MENU_SETTINGS_GPU_SCREENSHOT, 0, setting_data);
file_list_push(menu->selection_buf, "", "dummy_on_core_shutdown",
MENU_SETTINGS_LOAD_DUMMY_ON_CORE_SHUTDOWN, 0, setting_data);
file_list_push(menu->selection_buf, "", "fps_show",
MENU_SETTINGS_DEBUG_TEXT, 0, setting_data);
file_list_push(menu->selection_buf, "", "fastforward_ratio",
MENU_SETTINGS_FASTFORWARD_RATIO, 0, setting_data);
file_list_push(menu->selection_buf, "", "slowmotion_ratio",
MENU_SETTINGS_SLOWMOTION_RATIO, 0, setting_data);
file_list_push(menu->selection_buf, "", "rewind_enable",
MENU_SETTINGS_REWIND_ENABLE, 0, setting_data);
file_list_push(menu->selection_buf, "", "rewind_granularity",
MENU_SETTINGS_REWIND_GRANULARITY, 0, setting_data);
file_list_push(menu->selection_buf, "", "block_sram_overwrite",
MENU_SETTINGS_BLOCK_SRAM_OVERWRITE, 0, setting_data);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "autosave_interval")))
file_list_push(menu->selection_buf, "", "autosave_interval", MENU_SETTINGS_SRAM_AUTOSAVE, 0);
file_list_push(menu->selection_buf, "", "video_disable_composition", MENU_SETTINGS_WINDOW_COMPOSITING_ENABLE, 0);
file_list_push(menu->selection_buf, "", "pause_nonactive", MENU_SETTINGS_PAUSE_IF_WINDOW_FOCUS_LOST, 0);
file_list_push(menu->selection_buf, "", "savestate_auto_save", MENU_SETTINGS_SAVESTATE_AUTO_SAVE, 0);
file_list_push(menu->selection_buf, "", "savestate_auto_load", MENU_SETTINGS_SAVESTATE_AUTO_LOAD, 0);
file_list_push(menu->selection_buf, "", "autosave_interval",
MENU_SETTINGS_SRAM_AUTOSAVE, 0, setting_data);
file_list_push(menu->selection_buf, "", "video_disable_composition",
MENU_SETTINGS_WINDOW_COMPOSITING_ENABLE, 0, setting_data);
file_list_push(menu->selection_buf, "", "pause_nonactive",
MENU_SETTINGS_PAUSE_IF_WINDOW_FOCUS_LOST, 0, setting_data);
file_list_push(menu->selection_buf, "", "savestate_auto_save",
MENU_SETTINGS_SAVESTATE_AUTO_SAVE, 0, setting_data);
file_list_push(menu->selection_buf, "", "savestate_auto_load",
MENU_SETTINGS_SAVESTATE_AUTO_LOAD, 0, setting_data);
break;
case MENU_SETTINGS_VIDEO_OPTIONS:
file_list_clear(menu->selection_buf);
file_list_push(menu->selection_buf, "", "video_shared_context", MENU_SETTINGS_VIDEO_HW_SHARED_CONTEXT, 0);
file_list_push(menu->selection_buf, "", "video_shared_context",
MENU_SETTINGS_VIDEO_HW_SHARED_CONTEXT, 0, setting_data);
#if defined(GEKKO) || defined(__CELLOS_LV2__)
file_list_push(menu->selection_buf, "Screen Resolution", "", MENU_SETTINGS_VIDEO_RESOLUTION, 0);
file_list_push(menu->selection_buf, "Screen Resolution", "",
MENU_SETTINGS_VIDEO_RESOLUTION, 0, NULL);
#endif
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "video_viwidth")))
file_list_push(menu->selection_buf, "", "video_viwidth", MENU_SETTINGS_VIDEO_VIWIDTH, 0);
file_list_push(menu->selection_buf, "", "video_filter", MENU_SETTINGS_VIDEO_SOFTFILTER, 0);
file_list_push(menu->selection_buf, "", "video_viwidth",
MENU_SETTINGS_VIDEO_VIWIDTH, 0, setting_data);
file_list_push(menu->selection_buf, "", "video_filter",
MENU_SETTINGS_VIDEO_SOFTFILTER, 0, setting_data);
#if defined(__CELLOS_LV2__)
file_list_push(menu->selection_buf, "PAL60 Mode", "", MENU_SETTINGS_VIDEO_PAL60, 0);
file_list_push(menu->selection_buf, "PAL60 Mode", "",
MENU_SETTINGS_VIDEO_PAL60, 0, NULL);
#endif
file_list_push(menu->selection_buf, "", "video_smooth", MENU_SETTINGS_VIDEO_FILTER, 0);
file_list_push(menu->selection_buf, "", "video_smooth",
MENU_SETTINGS_VIDEO_FILTER, 0, setting_data);
#ifdef HW_RVL
file_list_push(menu->selection_buf, "VI Trap filtering", "", MENU_SETTINGS_VIDEO_SOFT_FILTER, 0);
file_list_push(menu->selection_buf, "VI Trap filtering", "",
MENU_SETTINGS_VIDEO_SOFT_FILTER, 0, NULL);
#endif
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "video_gamma")))
file_list_push(menu->selection_buf, "", "video_gamma", MENU_SETTINGS_VIDEO_GAMMA, 0);
file_list_push(menu->selection_buf, "", "video_gamma",
MENU_SETTINGS_VIDEO_GAMMA, 0, setting_data);
#ifdef _XBOX1
file_list_push(menu->selection_buf, "Soft filtering", "", MENU_SETTINGS_SOFT_DISPLAY_FILTER, 0);
file_list_push(menu->selection_buf, "Soft filtering", "",
MENU_SETTINGS_SOFT_DISPLAY_FILTER, 0, NULL);
#endif
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "video_filter_flicker")))
file_list_push(menu->selection_buf, "", "video_filter_flicker", MENU_SETTINGS_FLICKER_FILTER, 0);
file_list_push(menu->selection_buf, "", "video_scale_integer", MENU_SETTINGS_VIDEO_INTEGER_SCALE, 0);
file_list_push(menu->selection_buf, "", "aspect_ratio_index", MENU_SETTINGS_VIDEO_ASPECT_RATIO, 0);
file_list_push(menu->selection_buf, "Custom Ratio", "", MENU_SETTINGS_CUSTOM_VIEWPORT, 0);
file_list_push(menu->selection_buf, "", "video_filter_flicker",
MENU_SETTINGS_FLICKER_FILTER, 0, setting_data);
file_list_push(menu->selection_buf, "", "video_scale_integer",
MENU_SETTINGS_VIDEO_INTEGER_SCALE, 0, setting_data);
file_list_push(menu->selection_buf, "", "aspect_ratio_index",
MENU_SETTINGS_VIDEO_ASPECT_RATIO, 0, setting_data);
file_list_push(menu->selection_buf, "Custom Ratio", "",
MENU_SETTINGS_CUSTOM_VIEWPORT, 0, setting_data);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "video_fullscreen")))
file_list_push(menu->selection_buf, "", "video_fullscreen", MENU_SETTINGS_TOGGLE_FULLSCREEN, 0);
file_list_push(menu->selection_buf, "", "video_rotation", MENU_SETTINGS_VIDEO_ROTATION, 0);
file_list_push(menu->selection_buf, "", "video_vsync", MENU_SETTINGS_VIDEO_VSYNC, 0);
file_list_push(menu->selection_buf, "", "video_hard_sync", MENU_SETTINGS_VIDEO_HARD_SYNC, 0);
file_list_push(menu->selection_buf, "", "video_hard_sync_frames", MENU_SETTINGS_VIDEO_HARD_SYNC_FRAMES, 0);
file_list_push(menu->selection_buf, "", "video_fullscreen",
MENU_SETTINGS_TOGGLE_FULLSCREEN, 0, setting_data);
file_list_push(menu->selection_buf, "", "video_rotation",
MENU_SETTINGS_VIDEO_ROTATION, 0, setting_data);
file_list_push(menu->selection_buf, "", "video_vsync",
MENU_SETTINGS_VIDEO_VSYNC, 0, setting_data);
file_list_push(menu->selection_buf, "", "video_hard_sync",
MENU_SETTINGS_VIDEO_HARD_SYNC, 0, setting_data);
file_list_push(menu->selection_buf, "", "video_hard_sync_frames",
MENU_SETTINGS_VIDEO_HARD_SYNC_FRAMES, 0, setting_data);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "video_black_frame_insertion")))
file_list_push(menu->selection_buf, "", "video_black_frame_insertion", MENU_SETTINGS_VIDEO_BLACK_FRAME_INSERTION, 0);
file_list_push(menu->selection_buf, "", "video_swap_interval", MENU_SETTINGS_VIDEO_SWAP_INTERVAL, 0);
file_list_push(menu->selection_buf, "", "video_black_frame_insertion",
MENU_SETTINGS_VIDEO_BLACK_FRAME_INSERTION, 0, setting_data);
file_list_push(menu->selection_buf, "", "video_swap_interval",
MENU_SETTINGS_VIDEO_SWAP_INTERVAL, 0, setting_data);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "video_threaded")))
file_list_push(menu->selection_buf, "", "video_threaded", MENU_SETTINGS_VIDEO_THREADED, 0);
file_list_push(menu->selection_buf, "", "video_threaded",
MENU_SETTINGS_VIDEO_THREADED, 0, setting_data);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "video_scale")))
file_list_push(menu->selection_buf, "", "video_scale", MENU_SETTINGS_VIDEO_WINDOW_SCALE, 0);
file_list_push(menu->selection_buf, "", "video_crop_overscan", MENU_SETTINGS_VIDEO_CROP_OVERSCAN, 0);
file_list_push(menu->selection_buf, "", "video_monitor_index", MENU_SETTINGS_VIDEO_MONITOR_INDEX, 0);
file_list_push(menu->selection_buf, "", "video_refresh_rate", MENU_SETTINGS_VIDEO_REFRESH_RATE, 0);
file_list_push(menu->selection_buf, "", "video_refresh_rate_auto", MENU_SETTINGS_VIDEO_REFRESH_RATE_AUTO, 0);
file_list_push(menu->selection_buf, "", "video_scale",
MENU_SETTINGS_VIDEO_WINDOW_SCALE, 0, setting_data);
file_list_push(menu->selection_buf, "", "video_crop_overscan",
MENU_SETTINGS_VIDEO_CROP_OVERSCAN, 0, setting_data);
file_list_push(menu->selection_buf, "", "video_monitor_index",
MENU_SETTINGS_VIDEO_MONITOR_INDEX, 0, setting_data);
file_list_push(menu->selection_buf, "", "video_refresh_rate",
MENU_SETTINGS_VIDEO_REFRESH_RATE, 0, setting_data);
file_list_push(menu->selection_buf, "", "video_refresh_rate_auto",
MENU_SETTINGS_VIDEO_REFRESH_RATE_AUTO, 0, setting_data);
break;
case MENU_SETTINGS_FONT_OPTIONS:
file_list_clear(menu->selection_buf);
file_list_push(menu->selection_buf, "", "video_font_enable", MENU_SETTINGS_FONT_ENABLE, 0);
file_list_push(menu->selection_buf, "", "video_font_size", MENU_SETTINGS_FONT_SIZE, 0);
file_list_push(menu->selection_buf, "", "video_font_enable",
MENU_SETTINGS_FONT_ENABLE, 0, setting_data);
file_list_push(menu->selection_buf, "", "video_font_size",
MENU_SETTINGS_FONT_SIZE, 0, setting_data);
break;
case MENU_SETTINGS_CORE_OPTIONS:
file_list_clear(menu->selection_buf);
@ -195,10 +247,12 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type)
opts = core_option_size(g_extern.system.core_options);
for (i = 0; i < opts; i++)
file_list_push(menu->selection_buf,
core_option_get_desc(g_extern.system.core_options, i), "", MENU_SETTINGS_CORE_OPTION_START + i, 0);
core_option_get_desc(g_extern.system.core_options, i), "",
MENU_SETTINGS_CORE_OPTION_START + i, 0, NULL);
}
else
file_list_push(menu->selection_buf, "No options available.", "", MENU_SETTINGS_CORE_OPTION_NONE, 0);
file_list_push(menu->selection_buf, "No options available.", "",
MENU_SETTINGS_CORE_OPTION_NONE, 0, NULL);
break;
case MENU_SETTINGS_CORE_INFO:
{
@ -209,27 +263,34 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type)
{
snprintf(tmp, sizeof(tmp), "Core name: %s",
info->display_name ? info->display_name : "");
file_list_push(menu->selection_buf, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0);
file_list_push(menu->selection_buf, tmp, "",
MENU_SETTINGS_CORE_INFO_NONE, 0, NULL);
if (info->authors_list)
{
strlcpy(tmp, "Authors: ", sizeof(tmp));
string_list_join_concat(tmp, sizeof(tmp), info->authors_list, ", ");
file_list_push(menu->selection_buf, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0);
string_list_join_concat(tmp, sizeof(tmp),
info->authors_list, ", ");
file_list_push(menu->selection_buf, tmp, "",
MENU_SETTINGS_CORE_INFO_NONE, 0, NULL);
}
if (info->permissions_list)
{
strlcpy(tmp, "Permissions: ", sizeof(tmp));
string_list_join_concat(tmp, sizeof(tmp), info->permissions_list, ", ");
file_list_push(menu->selection_buf, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0);
string_list_join_concat(tmp, sizeof(tmp),
info->permissions_list, ", ");
file_list_push(menu->selection_buf, tmp, "",
MENU_SETTINGS_CORE_INFO_NONE, 0, NULL);
}
if (info->supported_extensions_list)
{
strlcpy(tmp, "Supported extensions: ", sizeof(tmp));
string_list_join_concat(tmp, sizeof(tmp), info->supported_extensions_list, ", ");
file_list_push(menu->selection_buf, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0);
string_list_join_concat(tmp, sizeof(tmp),
info->supported_extensions_list, ", ");
file_list_push(menu->selection_buf, tmp, "",
MENU_SETTINGS_CORE_INFO_NONE, 0, NULL);
}
if (info->firmware_count > 0)
@ -237,19 +298,24 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type)
core_info_list_update_missing_firmware(menu->core_info, info->path,
g_settings.system_directory);
file_list_push(menu->selection_buf, "Firmware: ", "", MENU_SETTINGS_CORE_INFO_NONE, 0);
file_list_push(menu->selection_buf, "Firmware: ", "",
MENU_SETTINGS_CORE_INFO_NONE, 0, NULL);
for (i = 0; i < info->firmware_count; i++)
{
if (info->firmware[i].desc)
{
snprintf(tmp, sizeof(tmp), " name: %s",
info->firmware[i].desc ? info->firmware[i].desc : "");
file_list_push(menu->selection_buf, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0);
file_list_push(menu->selection_buf, tmp, "",
MENU_SETTINGS_CORE_INFO_NONE, 0, NULL);
snprintf(tmp, sizeof(tmp), " status: %s, %s",
info->firmware[i].missing ? "missing" : "present",
info->firmware[i].optional ? "optional" : "required");
file_list_push(menu->selection_buf, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0);
info->firmware[i].missing ?
"missing" : "present",
info->firmware[i].optional ?
"optional" : "required");
file_list_push(menu->selection_buf, tmp, "",
MENU_SETTINGS_CORE_INFO_NONE, 0, NULL);
}
}
}
@ -257,144 +323,223 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type)
if (info->notes)
{
snprintf(tmp, sizeof(tmp), "Core notes: ");
file_list_push(menu->selection_buf, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0);
file_list_push(menu->selection_buf, tmp, "",
MENU_SETTINGS_CORE_INFO_NONE, 0, NULL);
for (i = 0; i < info->note_list->size; i++)
{
snprintf(tmp, sizeof(tmp), " %s", info->note_list->elems[i].data);
file_list_push(menu->selection_buf, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0);
snprintf(tmp, sizeof(tmp), " %s",
info->note_list->elems[i].data);
file_list_push(menu->selection_buf, tmp, "",
MENU_SETTINGS_CORE_INFO_NONE, 0, NULL);
}
}
}
else
file_list_push(menu->selection_buf, "No information available.", "", MENU_SETTINGS_CORE_OPTION_NONE, 0);
file_list_push(menu->selection_buf,
"No information available.", "",
MENU_SETTINGS_CORE_OPTION_NONE, 0, NULL);
}
break;
case MENU_SETTINGS_OPTIONS:
file_list_clear(menu->selection_buf);
file_list_push(menu->selection_buf, "", "Driver Options", MENU_SETTINGS_DRIVERS, 0);
file_list_push(menu->selection_buf, "", "General Options", MENU_SETTINGS_GENERAL_OPTIONS, 0);
file_list_push(menu->selection_buf, "", "Video Options", MENU_SETTINGS_VIDEO_OPTIONS, 0);
file_list_push(menu->selection_buf, "", "Driver Options",
MENU_SETTINGS_DRIVERS, 0, setting_data);
file_list_push(menu->selection_buf, "", "General Options",
MENU_SETTINGS_GENERAL_OPTIONS, 0, setting_data);
file_list_push(menu->selection_buf, "", "Video Options",
MENU_SETTINGS_VIDEO_OPTIONS, 0, setting_data);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "Shader Options")))
file_list_push(menu->selection_buf, "", "Shader Options", MENU_SETTINGS_SHADER_OPTIONS, 0);
file_list_push(menu->selection_buf, "", "Font Options", MENU_SETTINGS_FONT_OPTIONS, 0);
file_list_push(menu->selection_buf, "", "Audio Options", MENU_SETTINGS_AUDIO_OPTIONS, 0);
file_list_push(menu->selection_buf, "", "Input Options", MENU_SETTINGS_INPUT_OPTIONS, 0);
file_list_push(menu->selection_buf, "", "Shader Options",
MENU_SETTINGS_SHADER_OPTIONS, 0, setting_data);
file_list_push(menu->selection_buf, "", "Font Options",
MENU_SETTINGS_FONT_OPTIONS, 0, setting_data);
file_list_push(menu->selection_buf, "", "Audio Options",
MENU_SETTINGS_AUDIO_OPTIONS, 0, setting_data);
file_list_push(menu->selection_buf, "", "Input Options",
MENU_SETTINGS_INPUT_OPTIONS, 0, setting_data);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "Overlay Options")))
file_list_push(menu->selection_buf, "", "Overlay Options", MENU_SETTINGS_OVERLAY_OPTIONS, 0);
file_list_push(menu->selection_buf, "", "User Options", MENU_SETTINGS_USER_OPTIONS, 0);
file_list_push(menu->selection_buf, "", "Overlay Options",
MENU_SETTINGS_OVERLAY_OPTIONS, 0, setting_data);
file_list_push(menu->selection_buf, "", "User Options",
MENU_SETTINGS_USER_OPTIONS, 0, setting_data);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "Netplay Options")))
file_list_push(menu->selection_buf, "", "Netplay Options", MENU_SETTINGS_NETPLAY_OPTIONS, 0);
file_list_push(menu->selection_buf, "", "Path Options", MENU_SETTINGS_PATH_OPTIONS, 0);
file_list_push(menu->selection_buf, "", "Netplay Options",
MENU_SETTINGS_NETPLAY_OPTIONS, 0, setting_data);
file_list_push(menu->selection_buf, "", "Path Options",
MENU_SETTINGS_PATH_OPTIONS, 0, setting_data);
if (g_extern.main_is_init && !g_extern.libretro_dummy)
{
if (g_extern.system.disk_control.get_num_images)
file_list_push(menu->selection_buf, "Disk Options", "", MENU_SETTINGS_DISK_OPTIONS, 0);
file_list_push(menu->selection_buf, "Disk Options", "",
MENU_SETTINGS_DISK_OPTIONS, 0, NULL);
}
file_list_push(menu->selection_buf, "", "Privacy Options", MENU_SETTINGS_PRIVACY_OPTIONS, 0);
file_list_push(menu->selection_buf, "", "Privacy Options",
MENU_SETTINGS_PRIVACY_OPTIONS, 0, setting_data);
break;
case MENU_SETTINGS_PRIVACY_OPTIONS:
file_list_clear(menu->selection_buf);
file_list_push(menu->selection_buf, "", "camera_allow", MENU_SETTINGS_PRIVACY_CAMERA_ALLOW, 0);
file_list_push(menu->selection_buf, "", "location_allow", MENU_SETTINGS_PRIVACY_LOCATION_ALLOW, 0);
file_list_push(menu->selection_buf, "", "camera_allow",
MENU_SETTINGS_PRIVACY_CAMERA_ALLOW, 0, setting_data);
file_list_push(menu->selection_buf, "", "location_allow",
MENU_SETTINGS_PRIVACY_LOCATION_ALLOW, 0, setting_data);
break;
case MENU_SETTINGS_DISK_OPTIONS:
file_list_clear(menu->selection_buf);
file_list_push(menu->selection_buf, "Disk Index", "", MENU_SETTINGS_DISK_INDEX, 0);
file_list_push(menu->selection_buf, "Disk Image Append", "", MENU_SETTINGS_DISK_APPEND, 0);
file_list_push(menu->selection_buf, "Disk Index", "",
MENU_SETTINGS_DISK_INDEX, 0, setting_data);
file_list_push(menu->selection_buf, "Disk Image Append", "",
MENU_SETTINGS_DISK_APPEND, 0, setting_data);
break;
case MENU_SETTINGS_OVERLAY_OPTIONS:
file_list_clear(menu->selection_buf);
file_list_push(menu->selection_buf, "", "input_overlay", MENU_SETTINGS_OVERLAY_PRESET, 0);
file_list_push(menu->selection_buf, "", "input_overlay_opacity", MENU_SETTINGS_OVERLAY_OPACITY, 0);
file_list_push(menu->selection_buf, "", "input_overlay_scale", MENU_SETTINGS_OVERLAY_SCALE, 0);
file_list_push(menu->selection_buf, "", "input_overlay",
MENU_SETTINGS_OVERLAY_PRESET, 0, setting_data);
file_list_push(menu->selection_buf, "", "input_overlay_opacity",
MENU_SETTINGS_OVERLAY_OPACITY, 0, setting_data);
file_list_push(menu->selection_buf, "", "input_overlay_scale",
MENU_SETTINGS_OVERLAY_SCALE, 0, setting_data);
break;
case MENU_SETTINGS_USER_OPTIONS:
file_list_clear(menu->selection_buf);
file_list_push(menu->selection_buf, "", "netplay_nickname", MENU_SETTINGS_NETPLAY_NICKNAME, 0);
file_list_push(menu->selection_buf, "", "user_language", MENU_SETTINGS_USER_LANGUAGE, 0);
file_list_push(menu->selection_buf, "", "netplay_nickname",
MENU_SETTINGS_NETPLAY_NICKNAME, 0, setting_data);
file_list_push(menu->selection_buf, "", "user_language",
MENU_SETTINGS_USER_LANGUAGE, 0, setting_data);
break;
case MENU_SETTINGS_NETPLAY_OPTIONS:
file_list_clear(menu->selection_buf);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "netplay_enable")))
file_list_push(menu->selection_buf, "", "netplay_enable", MENU_SETTINGS_NETPLAY_ENABLE, 0);
file_list_push(menu->selection_buf, "", "netplay_enable",
MENU_SETTINGS_NETPLAY_ENABLE, 0, setting_data);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "netplay_mode")))
file_list_push(menu->selection_buf, "", "netplay_mode", MENU_SETTINGS_NETPLAY_MODE, 0);
file_list_push(menu->selection_buf, "", "netplay_mode",
MENU_SETTINGS_NETPLAY_MODE, 0, setting_data);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "netplay_spectator_mode_enable")))
file_list_push(menu->selection_buf, "", "netplay_spectator_mode_enable", MENU_SETTINGS_NETPLAY_SPECTATOR_MODE_ENABLE, 0);
file_list_push(menu->selection_buf, "", "netplay_spectator_mode_enable",
MENU_SETTINGS_NETPLAY_SPECTATOR_MODE_ENABLE, 0, setting_data);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "netplay_ip_address")))
file_list_push(menu->selection_buf, "", "netplay_ip_address", MENU_SETTINGS_NETPLAY_HOST_IP_ADDRESS, 0);
file_list_push(menu->selection_buf, "", "netplay_ip_address",
MENU_SETTINGS_NETPLAY_HOST_IP_ADDRESS, 0, setting_data);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "netplay_tcp_udp_port")))
file_list_push(menu->selection_buf, "", "netplay_tcp_udp_port", MENU_SETTINGS_NETPLAY_TCP_UDP_PORT, 0);
file_list_push(menu->selection_buf, "", "netplay_tcp_udp_port",
MENU_SETTINGS_NETPLAY_TCP_UDP_PORT, 0, setting_data);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "netplay_delay_frames")))
file_list_push(menu->selection_buf, "", "netplay_delay_frames", MENU_SETTINGS_NETPLAY_DELAY_FRAMES, 0);
file_list_push(menu->selection_buf, "", "netplay_delay_frames",
MENU_SETTINGS_NETPLAY_DELAY_FRAMES, 0, setting_data);
break;
case MENU_SETTINGS_PATH_OPTIONS:
file_list_clear(menu->selection_buf);
file_list_push(menu->selection_buf, "", "rgui_browser_directory", MENU_BROWSER_DIR_PATH, 0);
file_list_push(menu->selection_buf, "", "content_directory", MENU_CONTENT_DIR_PATH, 0);
file_list_push(menu->selection_buf, "", "assets_directory", MENU_ASSETS_DIR_PATH, 0);
file_list_push(menu->selection_buf, "", "rgui_config_directory", MENU_CONFIG_DIR_PATH, 0);
file_list_push(menu->selection_buf, "", "libretro_dir_path", MENU_LIBRETRO_DIR_PATH, 0);
file_list_push(menu->selection_buf, "", "libretro_info_path", MENU_LIBRETRO_INFO_DIR_PATH, 0);
file_list_push(menu->selection_buf, "", "game_history_path", MENU_CONTENT_HISTORY_PATH, 0);
file_list_push(menu->selection_buf, "", "video_filter_dir", MENU_FILTER_DIR_PATH, 0);
file_list_push(menu->selection_buf, "", "audio_filter_dir", MENU_DSP_FILTER_DIR_PATH, 0);
file_list_push(menu->selection_buf, "","rgui_browser_directory",
MENU_BROWSER_DIR_PATH, 0, setting_data);
file_list_push(menu->selection_buf, "", "content_directory",
MENU_CONTENT_DIR_PATH, 0, setting_data);
file_list_push(menu->selection_buf, "", "assets_directory",
MENU_ASSETS_DIR_PATH, 0, setting_data);
file_list_push(menu->selection_buf, "", "rgui_config_directory",
MENU_CONFIG_DIR_PATH, 0, setting_data);
file_list_push(menu->selection_buf, "", "libretro_dir_path",
MENU_LIBRETRO_DIR_PATH, 0, setting_data);
file_list_push(menu->selection_buf, "", "libretro_info_path",
MENU_LIBRETRO_INFO_DIR_PATH, 0, setting_data);
file_list_push(menu->selection_buf, "", "game_history_path",
MENU_CONTENT_HISTORY_PATH, 0, setting_data);
file_list_push(menu->selection_buf, "", "video_filter_dir",
MENU_FILTER_DIR_PATH, 0, setting_data);
file_list_push(menu->selection_buf, "", "audio_filter_dir",
MENU_DSP_FILTER_DIR_PATH, 0, setting_data);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "video_shader_dir")))
file_list_push(menu->selection_buf, "", "video_shader_dir", MENU_SHADER_DIR_PATH, 0);
file_list_push(menu->selection_buf, "", "savestate_directory", MENU_SAVESTATE_DIR_PATH, 0);
file_list_push(menu->selection_buf, "", "savefile_directory", MENU_SAVEFILE_DIR_PATH, 0);
file_list_push(menu->selection_buf, "", "video_shader_dir",
MENU_SHADER_DIR_PATH, 0, setting_data);
file_list_push(menu->selection_buf, "", "savestate_directory",
MENU_SAVESTATE_DIR_PATH, 0, setting_data);
file_list_push(menu->selection_buf, "", "savefile_directory",
MENU_SAVEFILE_DIR_PATH, 0, setting_data);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "overlay_directory")))
file_list_push(menu->selection_buf, "", "overlay_directory", MENU_OVERLAY_DIR_PATH, 0);
file_list_push(menu->selection_buf, "", "system_directory", MENU_SYSTEM_DIR_PATH, 0);
file_list_push(menu->selection_buf, "", "screenshot_directory", MENU_SCREENSHOT_DIR_PATH, 0);
file_list_push(menu->selection_buf, "", "joypad_autoconfig_dir", MENU_AUTOCONFIG_DIR_PATH, 0);
file_list_push(menu->selection_buf, "", "extraction_directory", MENU_EXTRACTION_DIR_PATH, 0);
file_list_push(menu->selection_buf, "", "overlay_directory",
MENU_OVERLAY_DIR_PATH, 0, setting_data);
file_list_push(menu->selection_buf, "", "system_directory",
MENU_SYSTEM_DIR_PATH, 0, setting_data);
file_list_push(menu->selection_buf, "", "screenshot_directory",
MENU_SCREENSHOT_DIR_PATH, 0, setting_data);
file_list_push(menu->selection_buf, "", "joypad_autoconfig_dir",
MENU_AUTOCONFIG_DIR_PATH, 0, setting_data);
file_list_push(menu->selection_buf, "", "extraction_directory",
MENU_EXTRACTION_DIR_PATH, 0, setting_data);
break;
case MENU_SETTINGS_INPUT_OPTIONS:
file_list_clear(menu->selection_buf);
file_list_push(menu->selection_buf, "Player", "", MENU_SETTINGS_BIND_PLAYER, 0);
file_list_push(menu->selection_buf, "Device", "", MENU_SETTINGS_BIND_DEVICE, 0);
file_list_push(menu->selection_buf, "Device Type", "", MENU_SETTINGS_BIND_DEVICE_TYPE, 0);
file_list_push(menu->selection_buf, "Analog D-pad Mode", "", MENU_SETTINGS_BIND_ANALOG_MODE, 0);
file_list_push(menu->selection_buf, "", "input_axis_threshold", MENU_SETTINGS_INPUT_AXIS_THRESHOLD, 0);
file_list_push(menu->selection_buf, "", "input_autodetect_enable", MENU_SETTINGS_DEVICE_AUTODETECT_ENABLE, 0);
file_list_push(menu->selection_buf, "Bind Mode", "", MENU_SETTINGS_CUSTOM_BIND_MODE, 0);
file_list_push(menu->selection_buf, "Configure All (RetroPad)", "", MENU_SETTINGS_CUSTOM_BIND_ALL, 0);
file_list_push(menu->selection_buf, "Default All (RetroPad)", "", MENU_SETTINGS_CUSTOM_BIND_DEFAULT_ALL, 0);
file_list_push(menu->selection_buf, "", "osk_enable", MENU_SETTINGS_ONSCREEN_KEYBOARD_ENABLE, 0);
file_list_push(menu->selection_buf, "Player", "",
MENU_SETTINGS_BIND_PLAYER, 0, NULL);
file_list_push(menu->selection_buf, "Device", "",
MENU_SETTINGS_BIND_DEVICE, 0, NULL);
file_list_push(menu->selection_buf, "Device Type", "",
MENU_SETTINGS_BIND_DEVICE_TYPE, 0, NULL);
file_list_push(menu->selection_buf, "Analog D-pad Mode", "",
MENU_SETTINGS_BIND_ANALOG_MODE, 0, NULL);
file_list_push(menu->selection_buf, "", "input_axis_threshold",
MENU_SETTINGS_INPUT_AXIS_THRESHOLD, 0, NULL);
file_list_push(menu->selection_buf, "", "input_autodetect_enable",
MENU_SETTINGS_DEVICE_AUTODETECT_ENABLE, 0, NULL);
file_list_push(menu->selection_buf, "Bind Mode", "",
MENU_SETTINGS_CUSTOM_BIND_MODE, 0, NULL);
file_list_push(menu->selection_buf, "Configure All (RetroPad)", "",
MENU_SETTINGS_CUSTOM_BIND_ALL, 0, NULL);
file_list_push(menu->selection_buf, "Default All (RetroPad)", "",
MENU_SETTINGS_CUSTOM_BIND_DEFAULT_ALL, 0, NULL);
file_list_push(menu->selection_buf, "", "osk_enable",
MENU_SETTINGS_ONSCREEN_KEYBOARD_ENABLE, 0, setting_data);
for (i = MENU_SETTINGS_BIND_BEGIN; i <= MENU_SETTINGS_BIND_ALL_LAST; i++)
file_list_push(menu->selection_buf, input_config_bind_map[i - MENU_SETTINGS_BIND_BEGIN].desc, "", i, 0);
file_list_push(menu->selection_buf,
input_config_bind_map[i - MENU_SETTINGS_BIND_BEGIN].desc,
"", i, 0, NULL);
break;
case MENU_SETTINGS_AUDIO_OPTIONS:
file_list_clear(menu->selection_buf);
file_list_push(menu->selection_buf, "", "audio_dsp_plugin", MENU_SETTINGS_AUDIO_DSP_FILTER, 0);
file_list_push(menu->selection_buf, "", "audio_enable", MENU_SETTINGS_AUDIO_ENABLE, 0);
file_list_push(menu->selection_buf, "", "audio_mute", MENU_SETTINGS_AUDIO_MUTE, 0);
file_list_push(menu->selection_buf, "", "audio_latency", MENU_SETTINGS_AUDIO_LATENCY, 0);
file_list_push(menu->selection_buf, "", "audio_sync", MENU_SETTINGS_AUDIO_SYNC, 0);
file_list_push(menu->selection_buf, "", "audio_rate_control_delta", MENU_SETTINGS_AUDIO_CONTROL_RATE_DELTA, 0);
file_list_push(menu->selection_buf, "", "audio_dsp_plugin",
MENU_SETTINGS_AUDIO_DSP_FILTER, 0, setting_data);
file_list_push(menu->selection_buf, "", "audio_enable",
MENU_SETTINGS_AUDIO_ENABLE, 0, setting_data);
file_list_push(menu->selection_buf, "", "audio_mute",
MENU_SETTINGS_AUDIO_MUTE, 0, setting_data);
file_list_push(menu->selection_buf, "", "audio_latency",
MENU_SETTINGS_AUDIO_LATENCY, 0, setting_data);
file_list_push(menu->selection_buf, "", "audio_sync",
MENU_SETTINGS_AUDIO_SYNC, 0, setting_data);
file_list_push(menu->selection_buf, "", "audio_rate_control_delta",
MENU_SETTINGS_AUDIO_CONTROL_RATE_DELTA, 0, setting_data);
#ifdef __CELLOS_LV2__
file_list_push(menu->selection_buf, "System BGM Control", "", MENU_SETTINGS_CUSTOM_BGM_CONTROL_ENABLE, 0);
file_list_push(menu->selection_buf, "System BGM Control", "",
MENU_SETTINGS_CUSTOM_BGM_CONTROL_ENABLE, 0, NULL);
#endif
file_list_push(menu->selection_buf, "", "audio_volume", MENU_SETTINGS_AUDIO_VOLUME, 0);
file_list_push(menu->selection_buf, "", "audio_device", MENU_SETTINGS_DRIVER_AUDIO_DEVICE, 0);
file_list_push(menu->selection_buf, "", "audio_volume",
MENU_SETTINGS_AUDIO_VOLUME, 0, setting_data);
file_list_push(menu->selection_buf, "", "audio_device",
MENU_SETTINGS_DRIVER_AUDIO_DEVICE, 0, setting_data);
break;
case MENU_SETTINGS_DRIVERS:
file_list_clear(menu->selection_buf);
file_list_push(menu->selection_buf, "", "video_driver", MENU_SETTINGS_DRIVER_VIDEO, 0);
file_list_push(menu->selection_buf, "", "audio_driver", MENU_SETTINGS_DRIVER_AUDIO, 0);
file_list_push(menu->selection_buf, "", "audio_resampler_driver", MENU_SETTINGS_DRIVER_AUDIO_RESAMPLER, 0);
file_list_push(menu->selection_buf, "", "input_driver", MENU_SETTINGS_DRIVER_INPUT, 0);
file_list_push(menu->selection_buf, "", "camera_driver", MENU_SETTINGS_DRIVER_CAMERA, 0);
file_list_push(menu->selection_buf, "", "location_driver", MENU_SETTINGS_DRIVER_LOCATION, 0);
file_list_push(menu->selection_buf, "", "menu_driver", MENU_SETTINGS_DRIVER_MENU, 0);
file_list_push(menu->selection_buf, "", "video_driver",
MENU_SETTINGS_DRIVER_VIDEO, 0, setting_data);
file_list_push(menu->selection_buf, "", "audio_driver",
MENU_SETTINGS_DRIVER_AUDIO, 0, setting_data);
file_list_push(menu->selection_buf, "", "audio_resampler_driver",
MENU_SETTINGS_DRIVER_AUDIO_RESAMPLER, 0, setting_data);
file_list_push(menu->selection_buf, "", "input_driver",
MENU_SETTINGS_DRIVER_INPUT, 0, setting_data);
file_list_push(menu->selection_buf, "", "camera_driver",
MENU_SETTINGS_DRIVER_CAMERA, 0, setting_data);
file_list_push(menu->selection_buf, "", "location_driver",
MENU_SETTINGS_DRIVER_LOCATION, 0, setting_data);
file_list_push(menu->selection_buf, "", "menu_driver",
MENU_SETTINGS_DRIVER_MENU, 0, setting_data);
break;
case MENU_SETTINGS_PERFORMANCE_COUNTERS:
file_list_clear(menu->selection_buf);
file_list_push(menu->selection_buf, "Frontend Counters", "", MENU_SETTINGS_PERFORMANCE_COUNTERS_FRONTEND, 0);
file_list_push(menu->selection_buf, "Core Counters", "", MENU_SETTINGS_PERFORMANCE_COUNTERS_LIBRETRO, 0);
file_list_push(menu->selection_buf, "Frontend Counters", "",
MENU_SETTINGS_PERFORMANCE_COUNTERS_FRONTEND, 0, NULL);
file_list_push(menu->selection_buf, "Core Counters", "",
MENU_SETTINGS_PERFORMANCE_COUNTERS_LIBRETRO, 0, NULL);
break;
case MENU_SETTINGS_PERFORMANCE_COUNTERS_LIBRETRO:
file_list_clear(menu->selection_buf);
@ -407,7 +552,8 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type)
for (i = 0; i < num; i++)
if (counters[i] && counters[i]->ident)
file_list_push(menu->selection_buf, counters[i]->ident, "", MENU_SETTINGS_LIBRETRO_PERF_COUNTERS_BEGIN + i, 0);
file_list_push(menu->selection_buf, counters[i]->ident, "",
MENU_SETTINGS_LIBRETRO_PERF_COUNTERS_BEGIN + i, 0, NULL);
}
break;
case MENU_SETTINGS_PERFORMANCE_COUNTERS_FRONTEND:
@ -421,52 +567,103 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type)
for (i = 0; i < num; i++)
if (counters[i] && counters[i]->ident)
file_list_push(menu->selection_buf, counters[i]->ident, "", MENU_SETTINGS_PERF_COUNTERS_BEGIN + i, 0);
file_list_push(menu->selection_buf, counters[i]->ident, "",
MENU_SETTINGS_PERF_COUNTERS_BEGIN + i, 0, NULL);
}
break;
case MENU_SETTINGS:
setting_data = (rarch_setting_t *)setting_data_get_mainmenu(true);
file_list_clear(menu->selection_buf);
#if defined(HAVE_DYNAMIC) || defined(HAVE_LIBRETRO_MANAGEMENT)
file_list_push(menu->selection_buf, "Core", "", MENU_SETTINGS_CORE, 0);
#endif
if (g_extern.history)
file_list_push(menu->selection_buf, "Load Content (History)", "", MENU_SETTINGS_OPEN_HISTORY, 0);
if ((current_setting = (rarch_setting_t*)
setting_data_find_setting(setting_data, "core_list")))
file_list_push(menu->selection_buf, "", "core_list",
MENU_SETTINGS_CORE, 0, setting_data);
if (menu->core_info && core_info_list_num_info_files(menu->core_info))
file_list_push(menu->selection_buf, "Load Content (Detect Core)", "", MENU_SETTINGS_OPEN_FILEBROWSER_DEFERRED_CORE, 0);
if ((current_setting = (rarch_setting_t*)
setting_data_find_setting(setting_data, "history_list")))
file_list_push(menu->selection_buf, "", "history_list",
MENU_SETTINGS_OPEN_HISTORY, 0, setting_data);
if (menu->info.library_name || g_extern.system.info.library_name)
{
char load_game_core_msg[64];
snprintf(load_game_core_msg, sizeof(load_game_core_msg), "Load Content (%s)",
menu->info.library_name ? menu->info.library_name : g_extern.system.info.library_name);
file_list_push(menu->selection_buf, load_game_core_msg, "", MENU_SETTINGS_OPEN_FILEBROWSER, 0);
}
if ((current_setting = (rarch_setting_t*)
setting_data_find_setting(setting_data, "detect_core_list")))
file_list_push(menu->selection_buf, "", "detect_core_list",
MENU_SETTINGS_OPEN_FILEBROWSER_DEFERRED_CORE, 0, setting_data);
file_list_push(menu->selection_buf, "Core Options", "", MENU_SETTINGS_CORE_OPTIONS, 0);
file_list_push(menu->selection_buf, "Core Information", "", MENU_SETTINGS_CORE_INFO, 0);
file_list_push(menu->selection_buf, "Settings", "", MENU_SETTINGS_OPTIONS, 0);
if ((current_setting = (rarch_setting_t*)
setting_data_find_setting(setting_data, "load_content")))
file_list_push(menu->selection_buf, "", "load_content",
MENU_SETTINGS_OPEN_FILEBROWSER, 0, setting_data);
if (g_extern.perfcnt_enable)
file_list_push(menu->selection_buf, "", "perfcnt_enable", MENU_SETTINGS_PERFORMANCE_COUNTERS, 0);
if ((current_setting = (rarch_setting_t*)
setting_data_find_setting(setting_data, "core_options")))
file_list_push(menu->selection_buf, "", "core_options",
MENU_SETTINGS_CORE_OPTIONS, 0, setting_data);
if (g_extern.main_is_init && !g_extern.libretro_dummy)
{
file_list_push(menu->selection_buf, "Save State", "", MENU_SETTINGS_SAVESTATE_SAVE, 0);
file_list_push(menu->selection_buf, "Load State", "", MENU_SETTINGS_SAVESTATE_LOAD, 0);
file_list_push(menu->selection_buf, "Take Screenshot", "", MENU_SETTINGS_SCREENSHOT, 0);
file_list_push(menu->selection_buf, "Resume Content", "", MENU_SETTINGS_RESUME_GAME, 0);
file_list_push(menu->selection_buf, "Restart Content", "", MENU_SETTINGS_RESTART_GAME, 0);
if ((current_setting = (rarch_setting_t*)
setting_data_find_setting(setting_data, "core_information")))
file_list_push(menu->selection_buf, "", "core_information",
MENU_SETTINGS_CORE_INFO, 0, setting_data);
}
#ifndef HAVE_DYNAMIC
file_list_push(menu->selection_buf, "Restart RetroArch", "", MENU_SETTINGS_RESTART_EMULATOR, 0);
#endif
file_list_push(menu->selection_buf, "RetroArch Config", "", MENU_SETTINGS_CONFIG, 0);
file_list_push(menu->selection_buf, "Save New Config", "", MENU_SETTINGS_SAVE_CONFIG, 0);
file_list_push(menu->selection_buf, "Help", "", MENU_START_SCREEN, 0);
file_list_push(menu->selection_buf, "Quit RetroArch", "", MENU_SETTINGS_QUIT_RARCH, 0);
if ((current_setting = (rarch_setting_t*)
setting_data_find_setting(setting_data, "settings")))
file_list_push(menu->selection_buf, "", "settings",
MENU_SETTINGS_OPTIONS, 0, setting_data);
if ((current_setting = (rarch_setting_t*)
setting_data_find_setting(setting_data, "performance_counters")))
file_list_push(menu->selection_buf, "", "performance_counters",
MENU_SETTINGS_PERFORMANCE_COUNTERS, 0, setting_data);
if ((current_setting = (rarch_setting_t*)
setting_data_find_setting(setting_data, "savestate")))
file_list_push(menu->selection_buf, "", "savestate",
MENU_SETTINGS_SAVESTATE_SAVE, 0, setting_data);
if ((current_setting = (rarch_setting_t*)
setting_data_find_setting(setting_data, "loadstate")))
file_list_push(menu->selection_buf, "", "loadstate",
MENU_SETTINGS_SAVESTATE_LOAD, 0, setting_data);
if ((current_setting = (rarch_setting_t*)
setting_data_find_setting(setting_data, "take_screenshot")))
file_list_push(menu->selection_buf, "", "take_screenshot",
MENU_SETTINGS_SCREENSHOT, 0, setting_data);
if ((current_setting = (rarch_setting_t*)
setting_data_find_setting(setting_data, "resume_content")))
file_list_push(menu->selection_buf, "", "resume_content",
MENU_SETTINGS_RESUME_GAME, 0, setting_data);
if ((current_setting = (rarch_setting_t*)
setting_data_find_setting(setting_data, "restart_content")))
file_list_push(menu->selection_buf, "", "restart_content",
MENU_SETTINGS_RESTART_GAME, 0, setting_data);
if ((current_setting = (rarch_setting_t*)
setting_data_find_setting(setting_data, "restart_retroarch")))
file_list_push(menu->selection_buf, "", "restart_retroarch",
MENU_SETTINGS_RESTART_EMULATOR, 0, setting_data);
if ((current_setting = (rarch_setting_t*)
setting_data_find_setting(setting_data, "configurations")))
file_list_push(menu->selection_buf, "", "configurations",
MENU_SETTINGS_CONFIG, 0, setting_data);
if ((current_setting = (rarch_setting_t*)
setting_data_find_setting(setting_data, "save_new_config")))
file_list_push(menu->selection_buf, "", "save_new_config",
MENU_SETTINGS_SAVE_CONFIG, 0, setting_data);
if ((current_setting = (rarch_setting_t*)
setting_data_find_setting(setting_data, "help")))
file_list_push(menu->selection_buf, "", "help",
MENU_START_SCREEN, 0, setting_data);
if ((current_setting = (rarch_setting_t*)
setting_data_find_setting(setting_data, "quit_retroarch")))
file_list_push(menu->selection_buf, "", "quit_retroarch",
MENU_SETTINGS_QUIT_RARCH, 0, setting_data);
break;
}
@ -1028,7 +1225,7 @@ static void menu_common_setting_push_current_menu(file_list_t *list, const char
switch (action)
{
case MENU_ACTION_OK:
file_list_push(list, path, "", type, directory_ptr);
file_list_push(list, path, "", type, directory_ptr, setting_data_get_list());
menu_clear_navigation(driver.menu);
driver.menu->need_refresh = true;
break;
@ -1097,7 +1294,8 @@ static int menu_settings_iterate(unsigned action, rarch_setting_t *setting)
{
const char *path = NULL;
file_list_get_at_offset(driver.menu->selection_buf, driver.menu->selection_ptr, &path, &driver.menu->info_selection, setting);
file_list_push(driver.menu->menu_stack, "", "", MENU_INFO_SCREEN, driver.menu->selection_ptr);
file_list_push(driver.menu->menu_stack, "", "",
MENU_INFO_SCREEN, driver.menu->selection_ptr, NULL);
}
break;
case MENU_ACTION_LEFT:
@ -1116,7 +1314,8 @@ static int menu_settings_iterate(unsigned action, rarch_setting_t *setting)
menu_common_setting_push_current_menu(driver.menu->menu_stack, label, type, driver.menu->selection_ptr, action);
else if (type == MENU_SETTINGS_CUSTOM_VIEWPORT && action == MENU_ACTION_OK)
{
file_list_push(driver.menu->menu_stack, "", "", type, driver.menu->selection_ptr);
file_list_push(driver.menu->menu_stack, "", "",
type, driver.menu->selection_ptr, NULL);
// Start with something sane.
rarch_viewport_t *custom = &g_extern.console.screen.viewports.custom_vp;
@ -1181,7 +1380,8 @@ static int menu_settings_iterate(unsigned action, rarch_setting_t *setting)
if (driver.menu->push_start_screen)
{
driver.menu->push_start_screen = false;
file_list_push(driver.menu->menu_stack, "", "", MENU_START_SCREEN, 0);
file_list_push(driver.menu->menu_stack, "", "", MENU_START_SCREEN, 0,
NULL);
}
return 0;
@ -1265,7 +1465,7 @@ static int menu_viewport_iterate(unsigned action, rarch_setting_t *setting)
{
file_list_push(driver.menu->menu_stack, "", "",
MENU_SETTINGS_CUSTOM_VIEWPORT,
driver.menu->selection_ptr);
driver.menu->selection_ptr, NULL);
}
break;
@ -1276,7 +1476,7 @@ static int menu_viewport_iterate(unsigned action, rarch_setting_t *setting)
{
file_list_push(driver.menu->menu_stack, "", "",
MENU_SETTINGS_CUSTOM_VIEWPORT_2,
driver.menu->selection_ptr);
driver.menu->selection_ptr, NULL);
}
break;
@ -1403,7 +1603,8 @@ static void menu_parse_and_resolve(unsigned menu_type)
else
strlcpy(fill_buf, core_name, sizeof(fill_buf));
file_list_push(driver.menu->selection_buf, fill_buf, "", MENU_FILE_PLAIN, 0);
file_list_push(driver.menu->selection_buf, fill_buf, "",
MENU_FILE_PLAIN, 0, NULL);
}
break;
case MENU_SETTINGS_DEFERRED_CORE:
@ -1417,19 +1618,29 @@ static void menu_parse_and_resolve(unsigned menu_type)
{
#if defined(GEKKO)
#ifdef HW_RVL
file_list_push(driver.menu->selection_buf, "sd:/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "usb:/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf,
"sd:/", "", menu_type, 0, NULL);
file_list_push(driver.menu->selection_buf,
"usb:/", "", menu_type, 0, NULL);
#endif
file_list_push(driver.menu->selection_buf, "carda:/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "cardb:/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf,
"carda:/", "", menu_type, 0, NULL);
file_list_push(driver.menu->selection_buf,
"cardb:/", "", menu_type, 0, NULL);
#elif defined(_XBOX1)
file_list_push(driver.menu->selection_buf, "C:", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "D:", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "E:", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "F:", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "G:", "", menu_type, 0);
file_list_push(driver.menu->selection_buf,
"C:", "", menu_type, 0, NULL);
file_list_push(driver.menu->selection_buf,
"D:", "", menu_type, 0, NULL);
file_list_push(driver.menu->selection_buf,
"E:", "", menu_type, 0, NULL);
file_list_push(driver.menu->selection_buf,
"F:", "", menu_type, 0, NULL);
file_list_push(driver.menu->selection_buf,
"G:", "", menu_type, 0, NULL);
#elif defined(_XBOX360)
file_list_push(driver.menu->selection_buf, "game:", "", menu_type, 0);
file_list_push(driver.menu->selection_buf,
"game:", "", menu_type, 0, NULL);
#elif defined(_WIN32)
unsigned drives = GetLogicalDrives();
char drive[] = " :\\";
@ -1437,30 +1648,49 @@ static void menu_parse_and_resolve(unsigned menu_type)
{
drive[0] = 'A' + i;
if (drives & (1 << i))
file_list_push(driver.menu->selection_buf, drive, "", menu_type, 0);
file_list_push(driver.menu->selection_buf,
drive, "", menu_type, 0, NULL);
}
#elif defined(__CELLOS_LV2__)
file_list_push(driver.menu->selection_buf, "/app_home/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_hdd0/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_hdd1/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/host_root/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb000/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb001/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb002/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb003/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb004/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb005/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb006/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf,
"/app_home/", "", menu_type, 0, NULL);
file_list_push(driver.menu->selection_buf,
"/dev_hdd0/", "", menu_type, 0, NULL);
file_list_push(driver.menu->selection_buf,
"/dev_hdd1/", "", menu_type, 0, NULL);
file_list_push(driver.menu->selection_buf,
"/host_root/", "", menu_type, 0, NULL);
file_list_push(driver.menu->selection_buf,
"/dev_usb000/", "", menu_type, 0, NULL);
file_list_push(driver.menu->selection_buf,
"/dev_usb001/", "", menu_type, 0, NULL);
file_list_push(driver.menu->selection_buf,
"/dev_usb002/", "", menu_type, 0, NULL);
file_list_push(driver.menu->selection_buf,
"/dev_usb003/", "", menu_type, 0, NULL);
file_list_push(driver.menu->selection_buf,
"/dev_usb004/", "", menu_type, 0, NULL);
file_list_push(driver.menu->selection_buf,
"/dev_usb005/", "", menu_type, 0, NULL);
file_list_push(driver.menu->selection_buf,
"/dev_usb006/", "", menu_type, 0, NULL);
#elif defined(PSP)
file_list_push(driver.menu->selection_buf, "ms0:/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "ef0:/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "host0:/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf,
"ms0:/", "", menu_type, 0, NULL);
file_list_push(driver.menu->selection_buf,
"ef0:/", "", menu_type, 0, NULL);
file_list_push(driver.menu->selection_buf,
"host0:/", "", menu_type, 0, NULL);
#elif defined(IOS)
file_list_push(driver.menu->selection_buf, "/var/mobile/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, g_defaults.core_dir, "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf,
"/var/mobile/", "", menu_type, 0, NULL);
file_list_push(driver.menu->selection_buf,
g_defaults.core_dir, "",menu_type, 0, NULL);
file_list_push(driver.menu->selection_buf, "/", "",
menu_type, 0, NULL);
#else
file_list_push(driver.menu->selection_buf, "/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/", "",
menu_type, 0, NULL);
#endif
return;
}
@ -1514,7 +1744,8 @@ static void menu_parse_and_resolve(unsigned menu_type)
dir_list_sort(list, true);
if (menu_common_type_is(menu_type) == MENU_FILE_DIRECTORY)
file_list_push(driver.menu->selection_buf, "<Use this directory>", "", MENU_FILE_USE_DIRECTORY, 0);
file_list_push(driver.menu->selection_buf, "<Use this directory>", "",
MENU_FILE_USE_DIRECTORY, 0, NULL);
list_size = list->size;
for (i = 0; i < list_size; i++)
@ -1537,7 +1768,7 @@ static void menu_parse_and_resolve(unsigned menu_type)
// Push menu_type further down in the chain.
// Needed for shader manager currently.
file_list_push(driver.menu->selection_buf, path, "",
is_dir ? menu_type : MENU_FILE_PLAIN, 0);
is_dir ? menu_type : MENU_FILE_PLAIN, 0, NULL);
}
if (driver.menu_ctx && driver.menu_ctx->backend->entries_init)
@ -1578,7 +1809,8 @@ static void menu_parse_and_resolve(unsigned menu_type)
core_info_list_get_supported_cores(driver.menu->core_info, driver.menu->deferred_path, &info, &list_size);
for (i = 0; i < list_size; i++)
{
file_list_push(driver.menu->selection_buf, info[i].path, "", MENU_FILE_PLAIN, 0);
file_list_push(driver.menu->selection_buf, info[i].path, "",
MENU_FILE_PLAIN, 0, NULL);
file_list_set_alt_at_offset(driver.menu->selection_buf, i, info[i].display_name);
}
file_list_sort_on_alt(driver.menu->selection_buf);
@ -2852,7 +3084,9 @@ static int menu_common_setting_set(unsigned id, unsigned action, rarch_setting_t
driver.menu->binds.target = bind;
driver.menu->binds.player = port;
file_list_push(driver.menu->menu_stack, "", "",
driver.menu->bind_mode_keyboard ? MENU_SETTINGS_CUSTOM_BIND_KEYBOARD : MENU_SETTINGS_CUSTOM_BIND, driver.menu->selection_ptr);
driver.menu->bind_mode_keyboard ?
MENU_SETTINGS_CUSTOM_BIND_KEYBOARD : MENU_SETTINGS_CUSTOM_BIND,
driver.menu->selection_ptr, NULL);
if (driver.menu->bind_mode_keyboard)
{
@ -2904,7 +3138,7 @@ static int menu_common_setting_set(unsigned id, unsigned action, rarch_setting_t
{
case MENU_START_SCREEN:
if (action == MENU_ACTION_OK)
file_list_push(driver.menu->menu_stack, "", "", MENU_START_SCREEN, 0);
file_list_push(driver.menu->menu_stack, "", "", MENU_START_SCREEN, 0, NULL);
break;
case MENU_SETTINGS_SAVESTATE_SAVE:
case MENU_SETTINGS_SAVESTATE_LOAD:
@ -3118,13 +3352,17 @@ static int menu_common_setting_set(unsigned id, unsigned action, rarch_setting_t
driver.menu->binds.last = MENU_SETTINGS_BIND_LAST;
if (driver.menu->bind_mode_keyboard)
{
file_list_push(driver.menu->menu_stack, "", "", MENU_SETTINGS_CUSTOM_BIND_KEYBOARD, driver.menu->selection_ptr);
file_list_push(driver.menu->menu_stack, "", "",
MENU_SETTINGS_CUSTOM_BIND_KEYBOARD,
driver.menu->selection_ptr, NULL);
driver.menu->binds.timeout_end = rarch_get_time_usec() + MENU_KEYBOARD_BIND_TIMEOUT_SECONDS * 1000000;
input_keyboard_wait_keys(driver.menu, menu_custom_bind_keyboard_cb);
}
else
{
file_list_push(driver.menu->menu_stack, "", "", MENU_SETTINGS_CUSTOM_BIND, driver.menu->selection_ptr);
file_list_push(driver.menu->menu_stack, "", "",
MENU_SETTINGS_CUSTOM_BIND,
driver.menu->selection_ptr, NULL);
menu_poll_bind_get_rested_axes(&driver.menu->binds);
menu_poll_bind_state(&driver.menu->binds);
}

View File

@ -259,7 +259,7 @@ void *menu_init(const void *data)
#ifdef HAVE_SHADER_MANAGER
menu->shader = (struct gfx_shader*)calloc(1, sizeof(struct gfx_shader));
#endif
file_list_push(menu->menu_stack, "", "", MENU_SETTINGS, 0);
file_list_push(menu->menu_stack, "", "", MENU_SETTINGS, 0, NULL);
menu_clear_navigation(menu);
menu->push_start_screen = g_settings.menu_show_start_screen;
g_settings.menu_show_start_screen = false;

View File

@ -1723,29 +1723,74 @@ static void general_write_handler(const void *data)
#define MAX_GAMMA_SETTING 1
#endif
rarch_setting_t *setting_data_get_mainmenu(void)
#ifdef HAVE_MENU
rarch_setting_t *setting_data_get_mainmenu(bool regenerate)
{
char load_game_core_msg[64];
int index = 0;
static rarch_setting_t* list = NULL;
int list_size = 10;
int list_size = 32;
static bool lists[32];
if (list)
return list;
{
if (regenerate)
{
free(list);
list = NULL;
}
else
return list;
}
list = (rarch_setting_t*)malloc(sizeof(rarch_setting_t) * list_size);
START_GROUP("Main Menu")
START_SUB_GROUP("State")
//CONFIG_BOOL(g_settings.camera.allow, "camera_allow", "Allow Camera", false, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
#if defined(HAVE_DYNAMIC) || defined(HAVE_LIBRETRO_MANAGEMENT)
CONFIG_BOOL(lists[0], "core_list", "Core", false, "...", "...", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
#endif
if (g_extern.history)
{
CONFIG_BOOL(lists[1], "history_list", "Load Content (History)", false, "...", "...", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
}
if (driver.menu && driver.menu->core_info && core_info_list_num_info_files(driver.menu->core_info))
{
CONFIG_BOOL(lists[2], "detect_core_list", "Load Content (Detect Core)", false, "...", "...", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
}
CONFIG_BOOL(lists[3], "load_content", "Load Content", false, "...", "...", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
CONFIG_BOOL(lists[4], "core_options", "Core Options", false, "...", "...", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
CONFIG_BOOL(lists[5], "core_information", "Core Information", false, "...", "...", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
CONFIG_BOOL(lists[6], "settings", "Settings", false, "...", "...", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
if (g_extern.perfcnt_enable)
{
CONFIG_BOOL(lists[7], "performance_counters", "Performance Counters", false, "...", "...", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
}
if (g_extern.main_is_init && !g_extern.libretro_dummy)
{
CONFIG_BOOL(lists[8], "savestate", "Save State", false, "...", "...", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
CONFIG_BOOL(lists[9], "loadstate", "Load State", false, "...", "...", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
CONFIG_BOOL(lists[10], "take_screenshot", "Take Screenshot", false, "", "", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
CONFIG_BOOL(lists[11], "resume_content", "Resume Content", false, "", "", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
CONFIG_BOOL(lists[12], "restart_content", "Restart Content", false, "", "", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
}
#ifndef HAVE_DYNAMIC
CONFIG_BOOL(lists[13], "restart_retroarch", "Restart RetroArch", false, "", "",GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
#endif
CONFIG_BOOL(lists[14], "configurations", "Configurations", false, "", "",GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
CONFIG_BOOL(lists[15], "save_new_config", "Save New Config", false, "", "",GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
CONFIG_BOOL(lists[16], "help", "Help", false, "", "",GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
CONFIG_BOOL(lists[17], "quit_retroarch", "Quit RetroArch", false, "", "",GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
END_SUB_GROUP()
END_GROUP()
END_GROUP()
rarch_setting_t terminator = { ST_NONE };
rarch_setting_t terminator = { ST_NONE };
APPEND(terminator);
/* flatten this array to save ourselves some kilobytes */
return (rarch_setting_t*)realloc(list, sizeof(rarch_setting_t) * index);
}
#endif
rarch_setting_t *setting_data_get_list(void)
{

View File

@ -58,7 +58,7 @@ typedef struct rarch_setting_t
{
enum setting_type type;
const char* name;
const char *name;
uint32_t size;
const char* short_description;
@ -169,6 +169,7 @@ rarch_setting_t setting_data_bind_setting(const char* name,
void setting_data_get_description(const void *data, char *msg,
size_t msg_sizeof);
rarch_setting_t* setting_data_get_mainmenu(bool regenerate);
rarch_setting_t* setting_data_get_list(void);
#ifdef __cplusplus