From e9ab80dec117efb57090f954b3fbffe97795243a Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 27 Aug 2014 23:12:55 +0200 Subject: [PATCH] (Menu) Refactor menu_common_entries_init --- file_list.c | 5 +- file_list.h | 3 +- frontend/menu/backend/menu_common_backend.c | 700 +++++++++++++------- frontend/menu/menu_common.c | 2 +- settings_data.c | 57 +- settings_data.h | 3 +- 6 files changed, 528 insertions(+), 242 deletions(-) diff --git a/file_list.c b/file_list.c index 011183835c..79383e5c2c 100644 --- a/file_list.c +++ b/file_list.c @@ -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*) diff --git a/file_list.h b/file_list.h index 88d4550620..7697ec6271 100644 --- a/file_list.h +++ b/file_list.h @@ -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); diff --git a/frontend/menu/backend/menu_common_backend.c b/frontend/menu/backend/menu_common_backend.c index f1371e2488..fb50df925e 100644 --- a/frontend/menu/backend/menu_common_backend.c +++ b/frontend/menu/backend/menu_common_backend.c @@ -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, "", "", MENU_FILE_USE_DIRECTORY, 0); + file_list_push(driver.menu->selection_buf, "", "", + 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); } diff --git a/frontend/menu/menu_common.c b/frontend/menu/menu_common.c index 8089e95aa6..6607d7b4f0 100644 --- a/frontend/menu/menu_common.c +++ b/frontend/menu/menu_common.c @@ -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; diff --git a/settings_data.c b/settings_data.c index 5600e456b4..fea5f864ed 100644 --- a/settings_data.c +++ b/settings_data.c @@ -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) { diff --git a/settings_data.h b/settings_data.h index acee54d7fa..ca725d6c85 100644 --- a/settings_data.h +++ b/settings_data.h @@ -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