From 5da1ffd24a61822a3f34c9adcfb7d5e067b115a9 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 4 Nov 2013 01:49:25 +0100 Subject: [PATCH] (RGUI) Combine rgui populate_entries functions into one function and move it outside rgui.c to menu_settings.c --- frontend/menu/menu_common.h | 1 + frontend/menu/menu_settings.c | 212 +++++++++++++++++++++++++++ frontend/menu/rgui.c | 260 ++-------------------------------- 3 files changed, 227 insertions(+), 246 deletions(-) diff --git a/frontend/menu/menu_common.h b/frontend/menu/menu_common.h index 6ad1ff5515..d2ca773f33 100644 --- a/frontend/menu/menu_common.h +++ b/frontend/menu/menu_common.h @@ -376,6 +376,7 @@ int menu_set_settings(unsigned setting, unsigned action); void menu_set_settings_label(char *type_str, size_t type_str_size, unsigned *w, unsigned type); void menu_key_event(bool down, unsigned keycode, uint32_t character, uint16_t key_modifiers); +void menu_set_settings_populate_entries(void *data, unsigned menu_type); #ifdef HAVE_RMENU void rgui_init_textures(void); diff --git a/frontend/menu/menu_settings.c b/frontend/menu/menu_settings.c index 990ffa1c70..c8429684f7 100644 --- a/frontend/menu/menu_settings.c +++ b/frontend/menu/menu_settings.c @@ -1066,6 +1066,217 @@ int menu_set_settings(unsigned setting, unsigned action) return 0; } +void menu_set_settings_populate_entries(void *data, unsigned menu_type) +{ + rgui_handle_t *rgui = (rgui_handle_t*)data; + unsigned i, last; + + switch (menu_type) + { +#ifdef HAVE_SHADER_MANAGER + case RGUI_SETTINGS_SHADER_OPTIONS: + rgui_list_clear(rgui->selection_buf); + rgui_list_push(rgui->selection_buf, "Apply Shader Changes", + RGUI_SETTINGS_SHADER_APPLY, 0); + rgui_list_push(rgui->selection_buf, "Default Filter", RGUI_SETTINGS_SHADER_FILTER, 0); + rgui_list_push(rgui->selection_buf, "Load Shader Preset", + RGUI_SETTINGS_SHADER_PRESET, 0); + rgui_list_push(rgui->selection_buf, "Shader Passes", + RGUI_SETTINGS_SHADER_PASSES, 0); + + for (i = 0; i < rgui->shader.passes; i++) + { + char buf[64]; + + snprintf(buf, sizeof(buf), "Shader #%u", i); + rgui_list_push(rgui->selection_buf, buf, + RGUI_SETTINGS_SHADER_0 + 3 * i, 0); + + snprintf(buf, sizeof(buf), "Shader #%u Filter", i); + rgui_list_push(rgui->selection_buf, buf, + RGUI_SETTINGS_SHADER_0_FILTER + 3 * i, 0); + + snprintf(buf, sizeof(buf), "Shader #%u Scale", i); + rgui_list_push(rgui->selection_buf, buf, + RGUI_SETTINGS_SHADER_0_SCALE + 3 * i, 0); + } + break; +#endif + case RGUI_SETTINGS_VIDEO_OPTIONS: + rgui_list_clear(rgui->selection_buf); +#ifdef HAVE_SHADER_MANAGER + rgui_list_push(rgui->selection_buf, "Shader Options", RGUI_SETTINGS_SHADER_OPTIONS, 0); +#endif +#ifdef GEKKO + rgui_list_push(rgui->selection_buf, "Screen Resolution", RGUI_SETTINGS_VIDEO_RESOLUTION, 0); +#endif +#ifndef HAVE_SHADER_MANAGER + rgui_list_push(rgui->selection_buf, "Default Filter", RGUI_SETTINGS_VIDEO_FILTER, 0); +#endif +#ifdef HW_RVL + rgui_list_push(rgui->selection_buf, "VI Trap filtering", RGUI_SETTINGS_VIDEO_SOFT_FILTER, 0); + rgui_list_push(rgui->selection_buf, "Gamma", RGUI_SETTINGS_VIDEO_GAMMA, 0); +#endif + rgui_list_push(rgui->selection_buf, "Integer Scale", RGUI_SETTINGS_VIDEO_INTEGER_SCALE, 0); + rgui_list_push(rgui->selection_buf, "Aspect Ratio", RGUI_SETTINGS_VIDEO_ASPECT_RATIO, 0); + rgui_list_push(rgui->selection_buf, "Custom Ratio", RGUI_SETTINGS_CUSTOM_VIEWPORT, 0); +#if !defined(RARCH_CONSOLE) && !defined(RARCH_MOBILE) + rgui_list_push(rgui->selection_buf, "Toggle Fullscreen", RGUI_SETTINGS_TOGGLE_FULLSCREEN, 0); +#endif + rgui_list_push(rgui->selection_buf, "Rotation", RGUI_SETTINGS_VIDEO_ROTATION, 0); + rgui_list_push(rgui->selection_buf, "VSync", RGUI_SETTINGS_VIDEO_VSYNC, 0); + rgui_list_push(rgui->selection_buf, "Hard GPU Sync", RGUI_SETTINGS_VIDEO_HARD_SYNC, 0); + rgui_list_push(rgui->selection_buf, "Hard GPU Sync Frames", RGUI_SETTINGS_VIDEO_HARD_SYNC_FRAMES, 0); + rgui_list_push(rgui->selection_buf, "Black Frame Insertion", RGUI_SETTINGS_VIDEO_BLACK_FRAME_INSERTION, 0); + rgui_list_push(rgui->selection_buf, "VSync Swap Interval", RGUI_SETTINGS_VIDEO_SWAP_INTERVAL, 0); +#ifdef HAVE_THREADS + rgui_list_push(rgui->selection_buf, "Threaded Driver", RGUI_SETTINGS_VIDEO_THREADED, 0); +#endif +#if !defined(RARCH_CONSOLE) && !defined(RARCH_MOBILE) + rgui_list_push(rgui->selection_buf, "Windowed Scale (X)", RGUI_SETTINGS_VIDEO_WINDOW_SCALE_X, 0); + rgui_list_push(rgui->selection_buf, "Windowed Scale (Y)", RGUI_SETTINGS_VIDEO_WINDOW_SCALE_Y, 0); +#endif + rgui_list_push(rgui->selection_buf, "Crop Overscan (reload)", RGUI_SETTINGS_VIDEO_CROP_OVERSCAN, 0); + rgui_list_push(rgui->selection_buf, "Estimated Monitor FPS", RGUI_SETTINGS_VIDEO_REFRESH_RATE_AUTO, 0); + break; + case RGUI_SETTINGS_CORE_OPTIONS: + rgui_list_clear(rgui->selection_buf); + + if (g_extern.system.core_options) + { + size_t i, opts; + + opts = core_option_size(g_extern.system.core_options); + for (i = 0; i < opts; i++) + rgui_list_push(rgui->selection_buf, + core_option_get_desc(g_extern.system.core_options, i), RGUI_SETTINGS_CORE_OPTION_START + i, 0); + } + else + rgui_list_push(rgui->selection_buf, "No options available.", RGUI_SETTINGS_CORE_OPTION_NONE, 0); + break; + case RGUI_SETTINGS_OPTIONS: + rgui_list_clear(rgui->selection_buf); + rgui_list_push(rgui->selection_buf, "Rewind", RGUI_SETTINGS_REWIND_ENABLE, 0); + rgui_list_push(rgui->selection_buf, "Rewind Granularity", RGUI_SETTINGS_REWIND_GRANULARITY, 0); +#ifdef HAVE_SCREENSHOTS + rgui_list_push(rgui->selection_buf, "GPU Screenshots", RGUI_SETTINGS_GPU_SCREENSHOT, 0); +#endif + rgui_list_push(rgui->selection_buf, "Config Save On Exit", RGUI_SETTINGS_CONFIG_SAVE_ON_EXIT, 0); +#if defined(HAVE_THREADS) && !defined(RARCH_CONSOLE) + rgui_list_push(rgui->selection_buf, "SRAM Autosave", RGUI_SETTINGS_SRAM_AUTOSAVE, 0); +#endif + rgui_list_push(rgui->selection_buf, "Show Framerate", RGUI_SETTINGS_DEBUG_TEXT, 0); + break; + case RGUI_SETTINGS_DISK_OPTIONS: + rgui_list_clear(rgui->selection_buf); + rgui_list_push(rgui->selection_buf, "Disk Index", RGUI_SETTINGS_DISK_INDEX, 0); + rgui_list_push(rgui->selection_buf, "Disk Image Append", RGUI_SETTINGS_DISK_APPEND, 0); + break; + case RGUI_SETTINGS_PATH_OPTIONS: + rgui_list_clear(rgui->selection_buf); + rgui_list_push(rgui->selection_buf, "Browser Directory", RGUI_BROWSER_DIR_PATH, 0); + rgui_list_push(rgui->selection_buf, "Config Directory", RGUI_CONFIG_DIR_PATH, 0); +#ifdef HAVE_DYNAMIC + rgui_list_push(rgui->selection_buf, "Core Directory", RGUI_LIBRETRO_DIR_PATH, 0); +#endif + rgui_list_push(rgui->selection_buf, "Core Info Directory", RGUI_LIBRETRO_INFO_DIR_PATH, 0); +#ifdef HAVE_SHADER_MANAGER + rgui_list_push(rgui->selection_buf, "Shader Directory", RGUI_SHADER_DIR_PATH, 0); +#endif + rgui_list_push(rgui->selection_buf, "Savestate Directory", RGUI_SAVESTATE_DIR_PATH, 0); + rgui_list_push(rgui->selection_buf, "Savefile Directory", RGUI_SAVEFILE_DIR_PATH, 0); +#ifdef HAVE_OVERLAY + rgui_list_push(rgui->selection_buf, "Overlay Directory", RGUI_OVERLAY_DIR_PATH, 0); +#endif + rgui_list_push(rgui->selection_buf, "System Directory", RGUI_SYSTEM_DIR_PATH, 0); +#ifdef HAVE_SCREENSHOTS + rgui_list_push(rgui->selection_buf, "Screenshot Directory", RGUI_SCREENSHOT_DIR_PATH, 0); +#endif + break; + case RGUI_SETTINGS_INPUT_OPTIONS: + rgui_list_clear(rgui->selection_buf); +#ifdef HAVE_OVERLAY + rgui_list_push(rgui->selection_buf, "Overlay Preset", RGUI_SETTINGS_OVERLAY_PRESET, 0); + rgui_list_push(rgui->selection_buf, "Overlay Opacity", RGUI_SETTINGS_OVERLAY_OPACITY, 0); + rgui_list_push(rgui->selection_buf, "Overlay Scale", RGUI_SETTINGS_OVERLAY_SCALE, 0); +#endif + rgui_list_push(rgui->selection_buf, "Player", RGUI_SETTINGS_BIND_PLAYER, 0); + rgui_list_push(rgui->selection_buf, "Device", RGUI_SETTINGS_BIND_DEVICE, 0); + rgui_list_push(rgui->selection_buf, "Device Type", RGUI_SETTINGS_BIND_DEVICE_TYPE, 0); + + rgui_list_push(rgui->selection_buf, "Configure All (RetroPad)", RGUI_SETTINGS_CUSTOM_BIND_ALL, 0); + rgui_list_push(rgui->selection_buf, "Default All (RetroPad)", RGUI_SETTINGS_CUSTOM_BIND_DEFAULT_ALL, 0); + + if (rgui->current_pad == 0) + rgui_list_push(rgui->selection_buf, "RGUI Menu Toggle", RGUI_SETTINGS_BIND_MENU_TOGGLE, 0); + + last = (driver.input && driver.input->set_keybinds) ? RGUI_SETTINGS_BIND_R3 : RGUI_SETTINGS_BIND_LAST; + for (i = RGUI_SETTINGS_BIND_BEGIN; i <= last; i++) + rgui_list_push(rgui->selection_buf, input_config_bind_map[i - RGUI_SETTINGS_BIND_BEGIN].desc, i, 0); + break; + case RGUI_SETTINGS_AUDIO_OPTIONS: + rgui_list_clear(rgui->selection_buf); + rgui_list_push(rgui->selection_buf, "Mute Audio", RGUI_SETTINGS_AUDIO_MUTE, 0); + rgui_list_push(rgui->selection_buf, "Rate Control Delta", RGUI_SETTINGS_AUDIO_CONTROL_RATE_DELTA, 0); + break; + case RGUI_SETTINGS_DRIVERS: + rgui_list_clear(rgui->selection_buf); + rgui_list_push(rgui->selection_buf, "Video driver", RGUI_SETTINGS_DRIVER_VIDEO, 0); + rgui_list_push(rgui->selection_buf, "Audio driver", RGUI_SETTINGS_DRIVER_AUDIO, 0); + rgui_list_push(rgui->selection_buf, "Input driver", RGUI_SETTINGS_DRIVER_INPUT, 0); + break; + case RGUI_SETTINGS: + rgui_list_clear(rgui->selection_buf); + +#if defined(HAVE_DYNAMIC) || defined(HAVE_LIBRETRO_MANAGEMENT) + rgui_list_push(rgui->selection_buf, "Core", RGUI_SETTINGS_CORE, 0); +#endif + if (rgui->history) + rgui_list_push(rgui->selection_buf, "Load Game (History)", RGUI_SETTINGS_OPEN_HISTORY, 0); + + if (rgui->core_info && core_info_list_num_info_files(rgui->core_info)) + rgui_list_push(rgui->selection_buf, "Load Game (Detect Core)", RGUI_SETTINGS_OPEN_FILEBROWSER_DEFERRED_CORE, 0); + + if (rgui->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 Game (%s)", + rgui->info.library_name ? rgui->info.library_name : g_extern.system.info.library_name); + rgui_list_push(rgui->selection_buf, load_game_core_msg, RGUI_SETTINGS_OPEN_FILEBROWSER, 0); + } + + rgui_list_push(rgui->selection_buf, "Core Options", RGUI_SETTINGS_CORE_OPTIONS, 0); + rgui_list_push(rgui->selection_buf, "Video Options", RGUI_SETTINGS_VIDEO_OPTIONS, 0); + rgui_list_push(rgui->selection_buf, "Audio Options", RGUI_SETTINGS_AUDIO_OPTIONS, 0); + rgui_list_push(rgui->selection_buf, "Input Options", RGUI_SETTINGS_INPUT_OPTIONS, 0); + rgui_list_push(rgui->selection_buf, "Path Options", RGUI_SETTINGS_PATH_OPTIONS, 0); + rgui_list_push(rgui->selection_buf, "Settings", RGUI_SETTINGS_OPTIONS, 0); + rgui_list_push(rgui->selection_buf, "Drivers", RGUI_SETTINGS_DRIVERS, 0); + + if (g_extern.main_is_init && !g_extern.libretro_dummy) + { + if (g_extern.system.disk_control.get_num_images) + rgui_list_push(rgui->selection_buf, "Disk Options", RGUI_SETTINGS_DISK_OPTIONS, 0); + rgui_list_push(rgui->selection_buf, "Save State", RGUI_SETTINGS_SAVESTATE_SAVE, 0); + rgui_list_push(rgui->selection_buf, "Load State", RGUI_SETTINGS_SAVESTATE_LOAD, 0); +#ifdef HAVE_SCREENSHOTS + rgui_list_push(rgui->selection_buf, "Take Screenshot", RGUI_SETTINGS_SCREENSHOT, 0); +#endif + rgui_list_push(rgui->selection_buf, "Resume Game", RGUI_SETTINGS_RESUME_GAME, 0); + rgui_list_push(rgui->selection_buf, "Restart Game", RGUI_SETTINGS_RESTART_GAME, 0); + + } +#ifndef HAVE_DYNAMIC + rgui_list_push(rgui->selection_buf, "Restart RetroArch", RGUI_SETTINGS_RESTART_EMULATOR, 0); +#endif + rgui_list_push(rgui->selection_buf, "RetroArch Config", RGUI_SETTINGS_CONFIG, 0); + rgui_list_push(rgui->selection_buf, "Save New Config", RGUI_SETTINGS_SAVE_CONFIG, 0); + rgui_list_push(rgui->selection_buf, "Help", RGUI_START_SCREEN, 0); + rgui_list_push(rgui->selection_buf, "Quit RetroArch", RGUI_SETTINGS_QUIT_RARCH, 0); + break; + } +} + void menu_set_settings_label(char *type_str, size_t type_str_size, unsigned *w, unsigned type) { switch (type) @@ -1366,3 +1577,4 @@ void menu_set_settings_label(char *type_str, size_t type_str_size, unsigned *w, break; } } + diff --git a/frontend/menu/rgui.c b/frontend/menu/rgui.c index ea82f5b5c9..91899b12d9 100644 --- a/frontend/menu/rgui.c +++ b/frontend/menu/rgui.c @@ -114,8 +114,6 @@ static bool menu_type_is_directory_browser(unsigned type) type == RGUI_SYSTEM_DIR_PATH; } -static void rgui_settings_populate_entries(rgui_handle_t *rgui); - #include "rguidisp.c" static void *rgui_init(void) @@ -147,7 +145,7 @@ static void *rgui_init(void) rgui->selection_ptr = 0; rgui->push_start_screen = g_settings.rgui_show_start_screen; g_settings.rgui_show_start_screen = false; - rgui_settings_populate_entries(rgui); + menu_set_settings_populate_entries(rgui, RGUI_SETTINGS); return rgui; } @@ -203,181 +201,7 @@ static int rgui_settings_toggle_setting(rgui_handle_t *rgui, unsigned setting, r return menu_set_settings(setting, action); } -static void rgui_settings_audio_options_populate_entries(rgui_handle_t *rgui) -{ - rgui_list_clear(rgui->selection_buf); - rgui_list_push(rgui->selection_buf, "Mute Audio", RGUI_SETTINGS_AUDIO_MUTE, 0); - rgui_list_push(rgui->selection_buf, "Rate Control Delta", RGUI_SETTINGS_AUDIO_CONTROL_RATE_DELTA, 0); -} - -static void rgui_settings_disc_options_populate_entries(rgui_handle_t *rgui) -{ - rgui_list_clear(rgui->selection_buf); - rgui_list_push(rgui->selection_buf, "Disk Index", RGUI_SETTINGS_DISK_INDEX, 0); - rgui_list_push(rgui->selection_buf, "Disk Image Append", RGUI_SETTINGS_DISK_APPEND, 0); -} - -static void rgui_settings_options_populate_entries(rgui_handle_t *rgui) -{ - rgui_list_clear(rgui->selection_buf); - rgui_list_push(rgui->selection_buf, "Rewind", RGUI_SETTINGS_REWIND_ENABLE, 0); - rgui_list_push(rgui->selection_buf, "Rewind Granularity", RGUI_SETTINGS_REWIND_GRANULARITY, 0); -#ifdef HAVE_SCREENSHOTS - rgui_list_push(rgui->selection_buf, "GPU Screenshots", RGUI_SETTINGS_GPU_SCREENSHOT, 0); -#endif - rgui_list_push(rgui->selection_buf, "Config Save On Exit", RGUI_SETTINGS_CONFIG_SAVE_ON_EXIT, 0); -#if defined(HAVE_THREADS) && !defined(RARCH_CONSOLE) - rgui_list_push(rgui->selection_buf, "SRAM Autosave", RGUI_SETTINGS_SRAM_AUTOSAVE, 0); -#endif - rgui_list_push(rgui->selection_buf, "Show Framerate", RGUI_SETTINGS_DEBUG_TEXT, 0); -} - -static void rgui_settings_info_options_populate_entries(rgui_handle_t *rgui) -{ - rgui_list_clear(rgui->selection_buf); - rgui_list_push(rgui->selection_buf, "Video driver", RGUI_SETTINGS_DRIVER_VIDEO, 0); - rgui_list_push(rgui->selection_buf, "Audio driver", RGUI_SETTINGS_DRIVER_AUDIO, 0); - rgui_list_push(rgui->selection_buf, "Input driver", RGUI_SETTINGS_DRIVER_INPUT, 0); -} - -static void rgui_settings_populate_entries(rgui_handle_t *rgui) -{ - rgui_list_clear(rgui->selection_buf); - -#if defined(HAVE_DYNAMIC) || defined(HAVE_LIBRETRO_MANAGEMENT) - rgui_list_push(rgui->selection_buf, "Core", RGUI_SETTINGS_CORE, 0); -#endif - if (rgui->history) - rgui_list_push(rgui->selection_buf, "Load Game (History)", RGUI_SETTINGS_OPEN_HISTORY, 0); - - if (rgui->core_info && core_info_list_num_info_files(rgui->core_info)) - rgui_list_push(rgui->selection_buf, "Load Game (Detect Core)", RGUI_SETTINGS_OPEN_FILEBROWSER_DEFERRED_CORE, 0); - - if (rgui->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 Game (%s)", - rgui->info.library_name ? rgui->info.library_name : g_extern.system.info.library_name); - rgui_list_push(rgui->selection_buf, load_game_core_msg, RGUI_SETTINGS_OPEN_FILEBROWSER, 0); - } - - rgui_list_push(rgui->selection_buf, "Core Options", RGUI_SETTINGS_CORE_OPTIONS, 0); - rgui_list_push(rgui->selection_buf, "Video Options", RGUI_SETTINGS_VIDEO_OPTIONS, 0); - rgui_list_push(rgui->selection_buf, "Audio Options", RGUI_SETTINGS_AUDIO_OPTIONS, 0); - rgui_list_push(rgui->selection_buf, "Input Options", RGUI_SETTINGS_INPUT_OPTIONS, 0); - rgui_list_push(rgui->selection_buf, "Path Options", RGUI_SETTINGS_PATH_OPTIONS, 0); - rgui_list_push(rgui->selection_buf, "Settings", RGUI_SETTINGS_OPTIONS, 0); - rgui_list_push(rgui->selection_buf, "Drivers", RGUI_SETTINGS_DRIVERS, 0); - - if (g_extern.main_is_init && !g_extern.libretro_dummy) - { - if (g_extern.system.disk_control.get_num_images) - rgui_list_push(rgui->selection_buf, "Disk Options", RGUI_SETTINGS_DISK_OPTIONS, 0); - rgui_list_push(rgui->selection_buf, "Save State", RGUI_SETTINGS_SAVESTATE_SAVE, 0); - rgui_list_push(rgui->selection_buf, "Load State", RGUI_SETTINGS_SAVESTATE_LOAD, 0); -#ifdef HAVE_SCREENSHOTS - rgui_list_push(rgui->selection_buf, "Take Screenshot", RGUI_SETTINGS_SCREENSHOT, 0); -#endif - rgui_list_push(rgui->selection_buf, "Resume Game", RGUI_SETTINGS_RESUME_GAME, 0); - rgui_list_push(rgui->selection_buf, "Restart Game", RGUI_SETTINGS_RESTART_GAME, 0); - - } -#ifndef HAVE_DYNAMIC - rgui_list_push(rgui->selection_buf, "Restart RetroArch", RGUI_SETTINGS_RESTART_EMULATOR, 0); -#endif - rgui_list_push(rgui->selection_buf, "RetroArch Config", RGUI_SETTINGS_CONFIG, 0); - rgui_list_push(rgui->selection_buf, "Save New Config", RGUI_SETTINGS_SAVE_CONFIG, 0); - rgui_list_push(rgui->selection_buf, "Help", RGUI_START_SCREEN, 0); - rgui_list_push(rgui->selection_buf, "Quit RetroArch", RGUI_SETTINGS_QUIT_RARCH, 0); -} - -static void rgui_settings_core_options_populate_entries(rgui_handle_t *rgui) -{ - rgui_list_clear(rgui->selection_buf); - - if (g_extern.system.core_options) - { - size_t i, opts; - - opts = core_option_size(g_extern.system.core_options); - for (i = 0; i < opts; i++) - rgui_list_push(rgui->selection_buf, - core_option_get_desc(g_extern.system.core_options, i), RGUI_SETTINGS_CORE_OPTION_START + i, 0); - } - else - rgui_list_push(rgui->selection_buf, "No options available.", RGUI_SETTINGS_CORE_OPTION_NONE, 0); -} - -static void rgui_settings_video_options_populate_entries(rgui_handle_t *rgui) -{ - rgui_list_clear(rgui->selection_buf); #ifdef HAVE_SHADER_MANAGER - rgui_list_push(rgui->selection_buf, "Shader Options", RGUI_SETTINGS_SHADER_OPTIONS, 0); -#endif -#ifdef GEKKO - rgui_list_push(rgui->selection_buf, "Screen Resolution", RGUI_SETTINGS_VIDEO_RESOLUTION, 0); -#endif -#ifndef HAVE_SHADER_MANAGER - rgui_list_push(rgui->selection_buf, "Default Filter", RGUI_SETTINGS_VIDEO_FILTER, 0); -#endif -#ifdef HW_RVL - rgui_list_push(rgui->selection_buf, "VI Trap filtering", RGUI_SETTINGS_VIDEO_SOFT_FILTER, 0); - rgui_list_push(rgui->selection_buf, "Gamma", RGUI_SETTINGS_VIDEO_GAMMA, 0); -#endif - rgui_list_push(rgui->selection_buf, "Integer Scale", RGUI_SETTINGS_VIDEO_INTEGER_SCALE, 0); - rgui_list_push(rgui->selection_buf, "Aspect Ratio", RGUI_SETTINGS_VIDEO_ASPECT_RATIO, 0); - rgui_list_push(rgui->selection_buf, "Custom Ratio", RGUI_SETTINGS_CUSTOM_VIEWPORT, 0); -#if !defined(RARCH_CONSOLE) && !defined(RARCH_MOBILE) - rgui_list_push(rgui->selection_buf, "Toggle Fullscreen", RGUI_SETTINGS_TOGGLE_FULLSCREEN, 0); -#endif - rgui_list_push(rgui->selection_buf, "Rotation", RGUI_SETTINGS_VIDEO_ROTATION, 0); - rgui_list_push(rgui->selection_buf, "VSync", RGUI_SETTINGS_VIDEO_VSYNC, 0); - rgui_list_push(rgui->selection_buf, "Hard GPU Sync", RGUI_SETTINGS_VIDEO_HARD_SYNC, 0); - rgui_list_push(rgui->selection_buf, "Hard GPU Sync Frames", RGUI_SETTINGS_VIDEO_HARD_SYNC_FRAMES, 0); - rgui_list_push(rgui->selection_buf, "Black Frame Insertion", RGUI_SETTINGS_VIDEO_BLACK_FRAME_INSERTION, 0); - rgui_list_push(rgui->selection_buf, "VSync Swap Interval", RGUI_SETTINGS_VIDEO_SWAP_INTERVAL, 0); -#ifdef HAVE_THREADS - rgui_list_push(rgui->selection_buf, "Threaded Driver", RGUI_SETTINGS_VIDEO_THREADED, 0); -#endif -#if !defined(RARCH_CONSOLE) && !defined(RARCH_MOBILE) - rgui_list_push(rgui->selection_buf, "Windowed Scale (X)", RGUI_SETTINGS_VIDEO_WINDOW_SCALE_X, 0); - rgui_list_push(rgui->selection_buf, "Windowed Scale (Y)", RGUI_SETTINGS_VIDEO_WINDOW_SCALE_Y, 0); -#endif - rgui_list_push(rgui->selection_buf, "Crop Overscan (reload)", RGUI_SETTINGS_VIDEO_CROP_OVERSCAN, 0); - rgui_list_push(rgui->selection_buf, "Estimated Monitor FPS", RGUI_SETTINGS_VIDEO_REFRESH_RATE_AUTO, 0); -} - -#ifdef HAVE_SHADER_MANAGER -static void rgui_settings_shader_manager_populate_entries(rgui_handle_t *rgui) -{ - unsigned i; - rgui_list_clear(rgui->selection_buf); - rgui_list_push(rgui->selection_buf, "Apply Shader Changes", - RGUI_SETTINGS_SHADER_APPLY, 0); - rgui_list_push(rgui->selection_buf, "Default Filter", RGUI_SETTINGS_SHADER_FILTER, 0); - rgui_list_push(rgui->selection_buf, "Load Shader Preset", - RGUI_SETTINGS_SHADER_PRESET, 0); - rgui_list_push(rgui->selection_buf, "Shader Passes", - RGUI_SETTINGS_SHADER_PASSES, 0); - - for (i = 0; i < rgui->shader.passes; i++) - { - char buf[64]; - - snprintf(buf, sizeof(buf), "Shader #%u", i); - rgui_list_push(rgui->selection_buf, buf, - RGUI_SETTINGS_SHADER_0 + 3 * i, 0); - - snprintf(buf, sizeof(buf), "Shader #%u Filter", i); - rgui_list_push(rgui->selection_buf, buf, - RGUI_SETTINGS_SHADER_0_FILTER + 3 * i, 0); - - snprintf(buf, sizeof(buf), "Shader #%u Scale", i); - rgui_list_push(rgui->selection_buf, buf, - RGUI_SETTINGS_SHADER_0_SCALE + 3 * i, 0); - } -} - static int shader_manager_toggle_setting(rgui_handle_t *rgui, unsigned setting, rgui_action_t action) { unsigned dist_shader = setting - RGUI_SETTINGS_SHADER_0; @@ -479,58 +303,8 @@ static int shader_manager_toggle_setting(rgui_handle_t *rgui, unsigned setting, return 0; } - - #endif -static void rgui_settings_path_populate_entries(rgui_handle_t *rgui) -{ - rgui_list_clear(rgui->selection_buf); - rgui_list_push(rgui->selection_buf, "Browser Directory", RGUI_BROWSER_DIR_PATH, 0); - rgui_list_push(rgui->selection_buf, "Config Directory", RGUI_CONFIG_DIR_PATH, 0); -#ifdef HAVE_DYNAMIC - rgui_list_push(rgui->selection_buf, "Core Directory", RGUI_LIBRETRO_DIR_PATH, 0); -#endif - rgui_list_push(rgui->selection_buf, "Core Info Directory", RGUI_LIBRETRO_INFO_DIR_PATH, 0); -#ifdef HAVE_SHADER_MANAGER - rgui_list_push(rgui->selection_buf, "Shader Directory", RGUI_SHADER_DIR_PATH, 0); -#endif - rgui_list_push(rgui->selection_buf, "Savestate Directory", RGUI_SAVESTATE_DIR_PATH, 0); - rgui_list_push(rgui->selection_buf, "Savefile Directory", RGUI_SAVEFILE_DIR_PATH, 0); -#ifdef HAVE_OVERLAY - rgui_list_push(rgui->selection_buf, "Overlay Directory", RGUI_OVERLAY_DIR_PATH, 0); -#endif - rgui_list_push(rgui->selection_buf, "System Directory", RGUI_SYSTEM_DIR_PATH, 0); -#ifdef HAVE_SCREENSHOTS - rgui_list_push(rgui->selection_buf, "Screenshot Directory", RGUI_SCREENSHOT_DIR_PATH, 0); -#endif -} - -static void rgui_settings_controller_populate_entries(rgui_handle_t *rgui) -{ - unsigned i, last; - - rgui_list_clear(rgui->selection_buf); -#ifdef HAVE_OVERLAY - rgui_list_push(rgui->selection_buf, "Overlay Preset", RGUI_SETTINGS_OVERLAY_PRESET, 0); - rgui_list_push(rgui->selection_buf, "Overlay Opacity", RGUI_SETTINGS_OVERLAY_OPACITY, 0); - rgui_list_push(rgui->selection_buf, "Overlay Scale", RGUI_SETTINGS_OVERLAY_SCALE, 0); -#endif - rgui_list_push(rgui->selection_buf, "Player", RGUI_SETTINGS_BIND_PLAYER, 0); - rgui_list_push(rgui->selection_buf, "Device", RGUI_SETTINGS_BIND_DEVICE, 0); - rgui_list_push(rgui->selection_buf, "Device Type", RGUI_SETTINGS_BIND_DEVICE_TYPE, 0); - - rgui_list_push(rgui->selection_buf, "Configure All (RetroPad)", RGUI_SETTINGS_CUSTOM_BIND_ALL, 0); - rgui_list_push(rgui->selection_buf, "Default All (RetroPad)", RGUI_SETTINGS_CUSTOM_BIND_DEFAULT_ALL, 0); - - if (rgui->current_pad == 0) - rgui_list_push(rgui->selection_buf, "RGUI Menu Toggle", RGUI_SETTINGS_BIND_MENU_TOGGLE, 0); - - last = (driver.input && driver.input->set_keybinds) ? RGUI_SETTINGS_BIND_R3 : RGUI_SETTINGS_BIND_LAST; - for (i = RGUI_SETTINGS_BIND_BEGIN; i <= last; i++) - rgui_list_push(rgui->selection_buf, input_config_bind_map[i - RGUI_SETTINGS_BIND_BEGIN].desc, i, 0); -} - // This only makes sense for PC so far. // Consoles use set_keybind callbacks instead. static int rgui_custom_bind_iterate(rgui_handle_t *rgui, rgui_action_t action) @@ -926,28 +700,22 @@ static int rgui_settings_iterate(rgui_handle_t *rgui, rgui_action_t action) menu_type == RGUI_SETTINGS_OPEN_HISTORY)) { rgui->need_refresh = false; - if (menu_type == RGUI_SETTINGS_INPUT_OPTIONS) - rgui_settings_controller_populate_entries(rgui); - else if (menu_type == RGUI_SETTINGS_PATH_OPTIONS) - rgui_settings_path_populate_entries(rgui); - else if (menu_type == RGUI_SETTINGS_OPTIONS) - rgui_settings_options_populate_entries(rgui); - else if (menu_type == RGUI_SETTINGS_DRIVERS) - rgui_settings_info_options_populate_entries(rgui); - else if (menu_type == RGUI_SETTINGS_CORE_OPTIONS) - rgui_settings_core_options_populate_entries(rgui); - else if (menu_type == RGUI_SETTINGS_AUDIO_OPTIONS) - rgui_settings_audio_options_populate_entries(rgui); - else if (menu_type == RGUI_SETTINGS_DISK_OPTIONS) - rgui_settings_disc_options_populate_entries(rgui); - else if (menu_type == RGUI_SETTINGS_VIDEO_OPTIONS) - rgui_settings_video_options_populate_entries(rgui); + if ( + menu_type == RGUI_SETTINGS_INPUT_OPTIONS + || menu_type == RGUI_SETTINGS_PATH_OPTIONS + || menu_type == RGUI_SETTINGS_OPTIONS + || menu_type == RGUI_SETTINGS_DRIVERS + || menu_type == RGUI_SETTINGS_CORE_OPTIONS + || menu_type == RGUI_SETTINGS_AUDIO_OPTIONS + || menu_type == RGUI_SETTINGS_DISK_OPTIONS + || menu_type == RGUI_SETTINGS_VIDEO_OPTIONS #ifdef HAVE_SHADER_MANAGER - else if (menu_type == RGUI_SETTINGS_SHADER_OPTIONS) - rgui_settings_shader_manager_populate_entries(rgui); + || menu_type == RGUI_SETTINGS_SHADER_OPTIONS #endif + ) + menu_set_settings_populate_entries(rgui, menu_type); else - rgui_settings_populate_entries(rgui); + menu_set_settings_populate_entries(rgui, RGUI_SETTINGS); } render_text(rgui);