From e764fbb08df87c91e74c91fb2ea7db9fd8aab0c4 Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Fri, 29 Jun 2012 11:08:26 +0200 Subject: [PATCH 1/6] (360/PS3) Fix regression - libretro path is no longer being cleared after first boot --- console/libretro_mgmt.c | 84 +++++++++++++++++++------------------ console/retroarch_console.c | 2 +- 2 files changed, 44 insertions(+), 42 deletions(-) diff --git a/console/libretro_mgmt.c b/console/libretro_mgmt.c index f74c0c336f..fd611b99d0 100644 --- a/console/libretro_mgmt.c +++ b/console/libretro_mgmt.c @@ -18,70 +18,72 @@ #include "retroarch_console.h" -static void rarch_manage_libretro_install(char *libretro_core_installed, size_t sizeof_libretro_core, const char *full_path, const char *path, const char *exe_ext) +// if a CORE executable exists (full_path), this means we have just installed +// a new libretro port and therefore we need to change it to a more +// sane name. + +static bool rarch_manage_libretro_install(char *libretro_core_installed, size_t sizeof_libretro_core, const char *full_path, const char *path, const char *exe_ext) { int ret; char tmp_path2[1024], tmp_pathnewfile[1024]; - RARCH_LOG("Assumed path of CORE executable: [%s]\n", full_path); + rarch_console_name_from_id(tmp_path2, sizeof(tmp_path2)); + strlcat(tmp_path2, exe_ext, sizeof(tmp_path2)); + snprintf(tmp_pathnewfile, sizeof(tmp_pathnewfile), "%s%s", path, tmp_path2); - if (path_file_exists(full_path)) + if (path_file_exists(tmp_pathnewfile)) { - // if CORE executable exists, this means we have just installed - // a new libretro port and therefore we need to change it to a more - // sane name. + // if libretro core already exists, this means we are + // upgrading the libretro core - so delete pre-existing + // file first. - rarch_console_name_from_id(tmp_path2, sizeof(tmp_path2)); - strlcat(tmp_path2, exe_ext, sizeof(tmp_path2)); - snprintf(tmp_pathnewfile, sizeof(tmp_pathnewfile), "%s%s", path, tmp_path2); - - if (path_file_exists(tmp_pathnewfile)) - { - // if libretro core already exists, this means we are - // upgrading the libretro core - so delete pre-existing - // file first. - - RARCH_LOG("Upgrading emulator core...\n"); - - ret = remove(tmp_pathnewfile); - - if (ret == 0) - { - RARCH_LOG("Succeeded in removing pre-existing libretro core: [%s].\n", tmp_pathnewfile); - } - else - RARCH_ERR("Failed to remove pre-existing libretro core: [%s].\n", tmp_pathnewfile); - } - - //now attempt the renaming. - ret = rename(full_path, tmp_pathnewfile); + RARCH_LOG("Upgrading emulator core...\n"); + ret = remove(tmp_pathnewfile); if (ret == 0) - { - RARCH_LOG("Libsnes core [%s] renamed to: [%s].\n", full_path, tmp_pathnewfile); - strlcpy(libretro_core_installed, tmp_pathnewfile, sizeof_libretro_core); - } + RARCH_LOG("Succeeded in removing pre-existing libretro core: [%s].\n", tmp_pathnewfile); else - { - RARCH_ERR("Failed to rename CORE executable.\n"); - RARCH_WARN("CORE executable was not found, or some other errors occurred. Will attempt to load libretro core path from config file.\n"); - } + RARCH_ERR("Failed to remove pre-existing libretro core: [%s].\n", tmp_pathnewfile); } + + //now attempt the renaming. + ret = rename(full_path, tmp_pathnewfile); + + if (ret == 0) + { + RARCH_LOG("Libsnes core [%s] renamed to: [%s].\n", full_path, tmp_pathnewfile); + strlcpy(libretro_core_installed, tmp_pathnewfile, sizeof_libretro_core); + ret = 1; + } + else + { + RARCH_ERR("Failed to rename CORE executable.\n"); + RARCH_WARN("CORE executable was not found, or some other errors occurred. Will attempt to load libretro core path from config file.\n"); + ret = 0; + } + + return ret; } bool rarch_configure_libretro_core(const char *full_path, const char *tmp_path, const char *libretro_path, const char *config_path, const char *extension) { + bool libretro_core_was_installed = false; + bool find_libretro_file = false; char libretro_core_installed[1024]; + g_extern.verbose = true; - rarch_manage_libretro_install(libretro_core_installed, sizeof(libretro_core_installed), full_path, tmp_path, extension); + //install and rename libretro core first if 'CORE' executable exists + if (path_file_exists(full_path)) + libretro_core_was_installed = rarch_manage_libretro_install( + libretro_core_installed, sizeof(libretro_core_installed), full_path, tmp_path, extension); g_extern.verbose = false; - bool find_libretro_file = false; + //if we have just installed a libretro core, set libretro path in settings to newly installed libretro core - if(libretro_core_installed != NULL) + if(libretro_core_was_installed) strlcpy(g_settings.libretro, libretro_core_installed, sizeof(g_settings.libretro)); else find_libretro_file = true; diff --git a/console/retroarch_console.c b/console/retroarch_console.c index 33d3e801b5..a7d7b8b731 100644 --- a/console/retroarch_console.c +++ b/console/retroarch_console.c @@ -818,7 +818,7 @@ void rarch_config_load(const char * conf_name, const char * libretro_dir_path, c { CONFIG_GET_STRING(libretro, "libretro_path"); - if(!strcmp(g_settings.libretro, "")) + if(strcmp(g_settings.libretro, "") == 0) { char first_file[PATH_MAX]; rarch_manage_libretro_set_first_file(first_file, sizeof(first_file), libretro_dir_path, exe_ext); From 511fe80b9a15e7f1a285bf5ca71c57b5c184ef47 Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Fri, 29 Jun 2012 11:15:37 +0200 Subject: [PATCH 2/6] (PS3) Fix typos in ingame menu caused by regex replace --- ps3/frontend/menu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ps3/frontend/menu.c b/ps3/frontend/menu.c index 0abaf6470a..0a39f3e26f 100644 --- a/ps3/frontend/menu.c +++ b/ps3/frontend/menu.c @@ -1934,7 +1934,7 @@ static void ingame_menu(void) if(CTRL_RIGHT(trigger_state) || CTRL_LSTICK_RIGHT(trigger_state)) rarch_state_slot_increase(); - strlcpy(comment, "Press LEFT or RIGHT to change the current save state slot.\nPress CROSS to load the trigger_state from the currently selected save state slot.", sizeof(comment)); + strlcpy(comment, "Press LEFT or RIGHT to change the current save state slot.\nPress CROSS to load the state from the currently selected save state slot.", sizeof(comment)); break; case MENU_ITEM_SAVE_STATE: if(CTRL_CROSS(trigger_state)) @@ -1947,7 +1947,7 @@ static void ingame_menu(void) if(CTRL_RIGHT(trigger_state) || CTRL_LSTICK_RIGHT(trigger_state)) rarch_state_slot_increase(); - strlcpy(comment, "Press LEFT or RIGHT to change the current save state slot.\nPress CROSS to save the trigger_state to the currently selected save state slot.", sizeof(comment)); + strlcpy(comment, "Press LEFT or RIGHT to change the current save state slot.\nPress CROSS to save the state to the currently selected save state slot.", sizeof(comment)); break; case MENU_ITEM_KEEP_ASPECT_RATIO: if(CTRL_LEFT(trigger_state) || CTRL_LSTICK_LEFT(trigger_state)) From 62925dcda19f3d31e15b3ffff8a58df5c0b246d1 Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Fri, 29 Jun 2012 11:44:50 +0200 Subject: [PATCH 3/6] (PS3) refactor messy set_initial_dir_tmpbrowser logic --- ps3/frontend/menu.c | 101 ++++++++++++++++++++++++++++---------------- 1 file changed, 65 insertions(+), 36 deletions(-) diff --git a/ps3/frontend/menu.c b/ps3/frontend/menu.c index 0a39f3e26f..8718f9bba9 100644 --- a/ps3/frontend/menu.c +++ b/ps3/frontend/menu.c @@ -48,7 +48,6 @@ menu menuStack[10]; int menuStackindex = 0; -static bool set_initial_dir_tmpbrowser; static bool set_libretro_core_as_launch; filebrowser_t browser; /* main file browser->for rom browser*/ @@ -513,12 +512,70 @@ static void menu_stack_push(unsigned stack_idx, unsigned menu_id) menuStack[stack_idx].category_id = CATEGORY_INGAME_MENU; break; case FILE_BROWSER_MENU: + strlcpy(menuStack[stack_idx].title, "FILE BROWSER |", sizeof(menuStack[stack_idx].title)); + menuStack[stack_idx].enum_id = menu_id; + menuStack[stack_idx].selected = 0; + menuStack[stack_idx].page = 0; + menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER; + menu_stack_refresh(stack_idx); + break; case LIBRETRO_CHOICE: + strlcpy(menuStack[stack_idx].title, "FILE BROWSER |", sizeof(menuStack[stack_idx].title)); + menuStack[stack_idx].enum_id = menu_id; + menuStack[stack_idx].selected = 0; + menuStack[stack_idx].page = 0; + menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER; + menu_stack_refresh(stack_idx); + strlcpy(tmpBrowser.extensions, "self|SELF|bin|BIN", sizeof(tmpBrowser.extensions)); + filebrowser_set_root(&tmpBrowser, LIBRETRO_DIR_PATH); + filebrowser_iterate(&tmpBrowser, FILEBROWSER_ACTION_RESET); + break; + case PRESET_CHOICE: + strlcpy(menuStack[stack_idx].title, "FILE BROWSER |", sizeof(menuStack[stack_idx].title)); + menuStack[stack_idx].enum_id = menu_id; + menuStack[stack_idx].selected = 0; + menuStack[stack_idx].page = 0; + menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER; + menu_stack_refresh(stack_idx); + strlcpy(tmpBrowser.extensions, "cgp|CGP", sizeof(tmpBrowser.extensions)); + filebrowser_set_root(&tmpBrowser, PRESETS_DIR_PATH); + filebrowser_iterate(&tmpBrowser, FILEBROWSER_ACTION_RESET); + break; + case INPUT_PRESET_CHOICE: + strlcpy(menuStack[stack_idx].title, "FILE BROWSER |", sizeof(menuStack[stack_idx].title)); + menuStack[stack_idx].enum_id = menu_id; + menuStack[stack_idx].selected = 0; + menuStack[stack_idx].page = 0; + menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER; + menu_stack_refresh(stack_idx); + strlcpy(tmpBrowser.extensions, "cfg|CFG", sizeof(tmpBrowser.extensions)); + filebrowser_set_root(&tmpBrowser, INPUT_PRESETS_DIR_PATH); + filebrowser_iterate(&tmpBrowser, FILEBROWSER_ACTION_RESET); + break; + case SHADER_CHOICE: + strlcpy(menuStack[stack_idx].title, "FILE BROWSER |", sizeof(menuStack[stack_idx].title)); + menuStack[stack_idx].enum_id = menu_id; + menuStack[stack_idx].selected = 0; + menuStack[stack_idx].page = 0; + menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER; + menu_stack_refresh(stack_idx); + strlcpy(tmpBrowser.extensions, "cg|CG", sizeof(tmpBrowser.extensions)); + filebrowser_set_root(&tmpBrowser, SHADERS_DIR_PATH); + filebrowser_iterate(&tmpBrowser, FILEBROWSER_ACTION_RESET); + break; + case BORDER_CHOICE: + strlcpy(menuStack[stack_idx].title, "FILE BROWSER |", sizeof(menuStack[stack_idx].title)); + menuStack[stack_idx].enum_id = menu_id; + menuStack[stack_idx].selected = 0; + menuStack[stack_idx].page = 0; + menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER; + menu_stack_refresh(stack_idx); + strlcpy(tmpBrowser.extensions, "png|PNG|jpg|JPG|JPEG|jpeg", sizeof(tmpBrowser.extensions)); + filebrowser_set_root(&tmpBrowser, BORDERS_DIR_PATH); + filebrowser_iterate(&tmpBrowser, FILEBROWSER_ACTION_RESET); + break; case PATH_DEFAULT_ROM_DIR_CHOICE: case PATH_SAVESTATES_DIR_CHOICE: - case PRESET_CHOICE: - case INPUT_PRESET_CHOICE: - case SHADER_CHOICE: case PATH_SRAM_DIR_CHOICE: case PATH_CHEATS_DIR_CHOICE: strlcpy(menuStack[stack_idx].title, "FILE BROWSER |", sizeof(menuStack[stack_idx].title)); @@ -527,6 +584,9 @@ static void menu_stack_push(unsigned stack_idx, unsigned menu_id) menuStack[stack_idx].page = 0; menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER; menu_stack_refresh(stack_idx); + strlcpy(tmpBrowser.extensions, "empty", sizeof(tmpBrowser.extensions)); + filebrowser_set_root(&tmpBrowser, "/"); + filebrowser_iterate(&tmpBrowser, FILEBROWSER_ACTION_RESET); break; case GENERAL_VIDEO_MENU: strlcpy(menuStack[stack_idx].title, "VIDEO |", sizeof(menuStack[stack_idx].title)); @@ -720,20 +780,18 @@ static void apply_scaling (unsigned init_mode) static void select_file(void) { unsigned menu_id = menuStack[menuStackindex].enum_id; - char extensions[256], title[256], object[256], comment[256], dir_path[PATH_MAX], path[PATH_MAX]; + char extensions[256], title[256], object[256], comment[256], path[PATH_MAX]; gl_t * gl = driver.video_data; switch(menu_id) { case SHADER_CHOICE: - strlcpy(dir_path, SHADERS_DIR_PATH, sizeof(dir_path)); strlcpy(extensions, "cg|CG", sizeof(extensions)); strlcpy(title, "SHADER SELECTION", sizeof(title)); strlcpy(object, "Shader", sizeof(object)); strlcpy(comment, "INFO - Select a shader from the menu by pressing the X button.", sizeof(comment)); break; case PRESET_CHOICE: - strlcpy(dir_path, PRESETS_DIR_PATH, sizeof(dir_path)); strlcpy(extensions, "cgp|CGP", sizeof(extensions)); strlcpy(title, "SHADER PRESETS SELECTION", sizeof(title)); strlcpy(object, "Shader", sizeof(object)); @@ -741,7 +799,6 @@ static void select_file(void) strlcpy(comment, "INFO - Select a shader preset from the menu by pressing the X button.", sizeof(comment)); break; case INPUT_PRESET_CHOICE: - strlcpy(dir_path, INPUT_PRESETS_DIR_PATH, sizeof(dir_path)); strlcpy(extensions, "cfg|CFG", sizeof(extensions)); strlcpy(title, "INPUT PRESETS SELECTION", sizeof(title)); strlcpy(object, "Input", sizeof(object)); @@ -749,7 +806,6 @@ static void select_file(void) strlcpy(comment, "INFO - Select an input preset from the menu by pressing the X button.", sizeof(comment)); break; case BORDER_CHOICE: - strlcpy(dir_path, BORDERS_DIR_PATH, sizeof(dir_path)); strlcpy(extensions, "png|PNG|jpg|JPG|JPEG|jpeg", sizeof(extensions)); strlcpy(title, "BORDER SELECTION", sizeof(title)); strlcpy(object, "Border", sizeof(object)); @@ -757,7 +813,6 @@ static void select_file(void) strlcpy(comment, "INFO - Select a border image file from the menu by pressing the X button.", sizeof(comment)); break; case LIBRETRO_CHOICE: - strlcpy(dir_path, LIBRETRO_DIR_PATH, sizeof(dir_path)); strlcpy(extensions, "self|SELF|bin|BIN", sizeof(extensions)); strlcpy(title, "LIBRETRO CORE SELECTION", sizeof(title)); strlcpy(object, "Libretro", sizeof(object)); @@ -766,14 +821,6 @@ static void select_file(void) break; } - if(set_initial_dir_tmpbrowser) - { - strlcpy(tmpBrowser.extensions, extensions, sizeof(tmpBrowser.extensions)); - filebrowser_set_root(&tmpBrowser, dir_path); - filebrowser_iterate(&tmpBrowser, FILEBROWSER_ACTION_RESET); - set_initial_dir_tmpbrowser = false; - } - browser_update(&tmpBrowser, extensions); if (CTRL_CROSS(trigger_state)) @@ -850,14 +897,6 @@ static void select_directory(void) char path[1024]; gl_t * gl = driver.video_data; - if(set_initial_dir_tmpbrowser) - { - strlcpy(tmpBrowser.extensions, "empty", sizeof(tmpBrowser.extensions)); - filebrowser_set_root(&tmpBrowser, "/"); - filebrowser_iterate(&tmpBrowser, FILEBROWSER_ACTION_RESET); - set_initial_dir_tmpbrowser = false; - } - { browser_update(&tmpBrowser, "empty"); @@ -1076,7 +1115,6 @@ static void producesettingentry(menu * menu_obj, uint64_t switchvalue) { menu_stack_increment(); menu_stack_push(menuStackindex, PRESET_CHOICE); - set_initial_dir_tmpbrowser = true; } } if(CTRL_START(trigger_state)) @@ -1090,7 +1128,6 @@ static void producesettingentry(menu * menu_obj, uint64_t switchvalue) menu_stack_increment(); menu_stack_push(menuStackindex, SHADER_CHOICE); set_shader = 0; - set_initial_dir_tmpbrowser = true; } if(CTRL_START(trigger_state)) { @@ -1105,7 +1142,6 @@ static void producesettingentry(menu * menu_obj, uint64_t switchvalue) menu_stack_increment(); menu_stack_push(menuStackindex, SHADER_CHOICE); set_shader = 1; - set_initial_dir_tmpbrowser = true; } if(CTRL_START(trigger_state)) { @@ -1387,7 +1423,6 @@ static void producesettingentry(menu * menu_obj, uint64_t switchvalue) { menu_stack_increment(); menu_stack_push(menuStackindex, LIBRETRO_CHOICE); - set_initial_dir_tmpbrowser = true; set_libretro_core_as_launch = false; } if(CTRL_START(trigger_state)) @@ -1430,7 +1465,6 @@ static void producesettingentry(menu * menu_obj, uint64_t switchvalue) { menu_stack_increment(); menu_stack_push(menuStackindex, PATH_DEFAULT_ROM_DIR_CHOICE); - set_initial_dir_tmpbrowser = true; } if(CTRL_START(trigger_state)) @@ -1441,7 +1475,6 @@ static void producesettingentry(menu * menu_obj, uint64_t switchvalue) { menu_stack_increment(); menu_stack_push(menuStackindex, PATH_SAVESTATES_DIR_CHOICE); - set_initial_dir_tmpbrowser = true; } if(CTRL_START(trigger_state)) @@ -1453,7 +1486,6 @@ static void producesettingentry(menu * menu_obj, uint64_t switchvalue) { menu_stack_increment(); menu_stack_push(menuStackindex, PATH_SRAM_DIR_CHOICE); - set_initial_dir_tmpbrowser = true; } if(CTRL_START(trigger_state)) @@ -1464,7 +1496,6 @@ static void producesettingentry(menu * menu_obj, uint64_t switchvalue) { menu_stack_increment(); menu_stack_push(menuStackindex, PATH_CHEATS_DIR_CHOICE); - set_initial_dir_tmpbrowser = true; } if(CTRL_START(trigger_state)) @@ -1510,7 +1541,6 @@ static void producesettingentry(menu * menu_obj, uint64_t switchvalue) { menu_stack_increment(); menu_stack_push(menuStackindex, INPUT_PRESET_CHOICE); - set_initial_dir_tmpbrowser = true; } if(CTRL_START(trigger_state)) menu_stack_refresh(menuStackindex); @@ -2086,7 +2116,6 @@ static void ingame_menu(void) menu_stack_increment(); menu_stack_push(menuStackindex, LIBRETRO_CHOICE); set_libretro_core_as_launch = true; - set_initial_dir_tmpbrowser = true; } strlcpy(comment, "Press 'CROSS' to choose a different emulator core.", sizeof(comment)); break; From 1d2f7634d731c97425f0580135e40dea92f8cd22 Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Fri, 29 Jun 2012 11:56:58 +0200 Subject: [PATCH 4/6] (PS3) Move filebrowser menu stack push to menu_init so it isn't being done everytime we go back from ingame to menu --- ps3/frontend/menu.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/ps3/frontend/menu.c b/ps3/frontend/menu.c index 8718f9bba9..fc0de514e4 100644 --- a/ps3/frontend/menu.c +++ b/ps3/frontend/menu.c @@ -518,6 +518,9 @@ static void menu_stack_push(unsigned stack_idx, unsigned menu_id) menuStack[stack_idx].page = 0; menuStack[stack_idx].category_id = CATEGORY_FILEBROWSER; menu_stack_refresh(stack_idx); + strlcpy(browser.extensions, rarch_console_get_rom_ext(), sizeof(browser.extensions)); + filebrowser_set_root(&browser, "/"); + filebrowser_iterate(&browser, FILEBROWSER_ACTION_RESET); break; case LIBRETRO_CHOICE: strlcpy(menuStack[stack_idx].title, "FILE BROWSER |", sizeof(menuStack[stack_idx].title)); @@ -663,7 +666,6 @@ static void menu_stack_push(unsigned stack_idx, unsigned menu_id) } } - //forward decls extern const char *ps3_get_resolution_label(unsigned resolution); @@ -1154,19 +1156,15 @@ static void producesettingentry(menu * menu_obj, uint64_t switchvalue) if(CTRL_LEFT(trigger_state) || CTRL_LSTICK_LEFT(trigger_state) || CTRL_CROSS(trigger_state)) { if(g_console.menu_font_size > 0) - { - g_console.menu_font_size -= 0.01f; - } + g_console.menu_font_size -= 0.01f; } if(CTRL_RIGHT(trigger_state) || CTRL_LSTICK_RIGHT(trigger_state) || CTRL_CROSS(trigger_state)) { if((g_console.menu_font_size < 2.0f)) - { - g_console.menu_font_size += 0.01f; - } + g_console.menu_font_size += 0.01f; } if(CTRL_START(trigger_state)) - g_console.menu_font_size = 1.0f; + g_console.menu_font_size = 1.0f; break; case SETTING_KEEP_ASPECT_RATIO: if(CTRL_LEFT(trigger_state) || CTRL_LSTICK_LEFT(trigger_state)) @@ -2216,10 +2214,8 @@ static void ingame_menu(void) void menu_init (void) { - filebrowser_set_root(&browser, "/"); + menu_stack_push(0, FILE_BROWSER_MENU); filebrowser_set_root(&tmpBrowser, "/"); - strlcpy(browser.extensions, rarch_console_get_rom_ext(), sizeof(browser.extensions)); - filebrowser_iterate(&browser, FILEBROWSER_ACTION_RESET); } void menu_free (void) @@ -2250,11 +2246,7 @@ void menu_loop(void) { gl_t * gl = driver.video_data; - menu_stack_push(0, FILE_BROWSER_MENU); - g_console.menu_enable = true; - - gl->block_swap = true; if(g_console.ingame_menu_enable) From e773381f4c5f0683a05d01cb2e0d78f3e031bd14 Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Fri, 29 Jun 2012 12:27:17 +0200 Subject: [PATCH 5/6] (PS3) Cut down on loc --- ps3/frontend/menu.c | 318 +++++++++++--------------------------------- 1 file changed, 77 insertions(+), 241 deletions(-) diff --git a/ps3/frontend/menu.c b/ps3/frontend/menu.c index fc0de514e4..2d2a4cdfa8 100644 --- a/ps3/frontend/menu.c +++ b/ps3/frontend/menu.c @@ -50,31 +50,40 @@ menu menuStack[10]; int menuStackindex = 0; static bool set_libretro_core_as_launch; -filebrowser_t browser; /* main file browser->for rom browser*/ -filebrowser_t tmpBrowser; /* tmp file browser->for everything else*/ +filebrowser_t browser; +filebrowser_t tmpBrowser; unsigned set_shader = 0; static unsigned currently_selected_controller_menu = 0; static char strw_buffer[PATH_MAX]; -static void set_setting_label(menu * menu_obj, uint64_t currentsetting) +static void set_setting_label_write_on_or_off(bool cond, unsigned currentsetting) +{ + if(cond) + snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "ON"); + else + snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "OFF"); +} + +static void set_setting_label_color(bool cond, unsigned currentsetting) +{ + if(cond) + items_generalsettings[currentsetting].text_color = GREEN; + else + items_generalsettings[currentsetting].text_color = ORANGE; +} + +static void set_setting_label(menu * menu_obj, unsigned currentsetting) { switch(currentsetting) { case SETTING_CHANGE_RESOLUTION: - if(g_console.initial_resolution_id == g_console.supported_resolutions[g_console.current_resolution_index]) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; - + set_setting_label_color(g_console.initial_resolution_id == g_console.supported_resolutions[g_console.current_resolution_index], currentsetting); snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), ps3_get_resolution_label(g_console.supported_resolutions[g_console.current_resolution_index])); break; case SETTING_SHADER_PRESETS: { char fname[PATH_MAX]; - if(g_console.cgp_path == DEFAULT_PRESET_FILE) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; + set_setting_label_color(g_console.cgp_path == DEFAULT_PRESET_FILE, currentsetting); fill_pathname_base(fname, g_console.cgp_path, sizeof(fname)); snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), fname); } @@ -84,11 +93,8 @@ static void set_setting_label(menu * menu_obj, uint64_t currentsetting) char fname[PATH_MAX]; fill_pathname_base(fname, g_settings.video.cg_shader_path, sizeof(fname)); snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "%s", fname); - - if(strcmp(g_settings.video.cg_shader_path,DEFAULT_SHADER_FILE) == 0) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; + set_setting_label_color(strcmp(g_settings.video.cg_shader_path,DEFAULT_SHADER_FILE) == 0, + currentsetting); } break; case SETTING_SHADER_2: @@ -96,124 +102,58 @@ static void set_setting_label(menu * menu_obj, uint64_t currentsetting) char fname[PATH_MAX]; fill_pathname_base(fname, g_settings.video.second_pass_shader, sizeof(fname)); snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "%s", fname); - - if(strcmp(g_settings.video.second_pass_shader,DEFAULT_SHADER_FILE) == 0) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; + set_setting_label_color(strcmp(g_settings.video.second_pass_shader,DEFAULT_SHADER_FILE) == 0, + currentsetting); } break; case SETTING_FONT_SIZE: - if(g_console.menu_font_size == 1.0f) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; + set_setting_label_color(g_console.menu_font_size == 1.0f, currentsetting); snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "%f", g_console.menu_font_size); break; case SETTING_KEEP_ASPECT_RATIO: - if(g_console.aspect_ratio_index == ASPECT_RATIO_4_3) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; + set_setting_label_color(g_console.aspect_ratio_index == ASPECT_RATIO_4_3, currentsetting); snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), aspectratio_lut[g_console.aspect_ratio_index].name); break; case SETTING_HW_TEXTURE_FILTER: + set_setting_label_color(g_settings.video.smooth, currentsetting); if(g_settings.video.smooth) - { - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "Linear interpolation"); - items_generalsettings[currentsetting].text_color = GREEN; - } + snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "Linear interpolation"); else - { - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "Point filtering"); - items_generalsettings[currentsetting].text_color = ORANGE; - } + snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "Point filtering"); break; case SETTING_HW_TEXTURE_FILTER_2: + set_setting_label_color(g_settings.video.second_pass_smooth, currentsetting); if(g_settings.video.second_pass_smooth) - { - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "Linear interpolation"); - items_generalsettings[currentsetting].text_color = GREEN; - } + snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "Linear interpolation"); else - { - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "Point filtering"); - items_generalsettings[currentsetting].text_color = ORANGE; - } + snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "Point filtering"); break; case SETTING_SCALE_ENABLED: - if(g_console.fbo_enabled) - { - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "ON"); - items_generalsettings[currentsetting].text_color = GREEN; - } - else - { - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "OFF"); - items_generalsettings[currentsetting].text_color = ORANGE; - } + set_setting_label_write_on_or_off(g_console.fbo_enabled, currentsetting); + set_setting_label_color(g_console.fbo_enabled, currentsetting); break; case SETTING_SCALE_FACTOR: - if(g_settings.video.fbo_scale_x == 2.0f) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; - + set_setting_label_color(g_settings.video.fbo_scale_x == 2.0f, currentsetting); snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "%fx (X) / %fx (Y)", g_settings.video.fbo_scale_x, g_settings.video.fbo_scale_y); snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "INFO - [Custom Scaling Factor] is set to: '%fx (X) / %fx (Y)'.", g_settings.video.fbo_scale_x, g_settings.video.fbo_scale_y); break; case SETTING_HW_OVERSCAN_AMOUNT: - if(g_console.overscan_amount == 0.0f) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; - + set_setting_label_color(g_console.overscan_amount == 0.0f, currentsetting); snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "%f", g_console.overscan_amount); break; case SETTING_THROTTLE_MODE: - if(g_console.throttle_enable) - { - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "ON"); - items_generalsettings[currentsetting].text_color = GREEN; - } - else - { - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "OFF"); - items_generalsettings[currentsetting].text_color = ORANGE; - } + set_setting_label_write_on_or_off(g_console.throttle_enable, currentsetting); + set_setting_label_color(g_console.throttle_enable, currentsetting); break; case SETTING_TRIPLE_BUFFERING: - if(g_console.triple_buffering_enable) - { - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "ON"); - items_generalsettings[currentsetting].text_color = GREEN; - } - else - { - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "OFF"); - items_generalsettings[currentsetting].text_color = ORANGE; - } + set_setting_label_write_on_or_off(g_console.triple_buffering_enable, currentsetting); + set_setting_label_color(g_console.triple_buffering_enable, currentsetting); break; case SETTING_ENABLE_SCREENSHOTS: - if(g_console.screenshots_enable) - { - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "ON"); - items_generalsettings[currentsetting].text_color = GREEN; - } - else - { - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "OFF"); - items_generalsettings[currentsetting].text_color = ORANGE; - } - break; - case SETTING_SAVE_SHADER_PRESET: - if(menu_obj->selected == currentsetting) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; + set_setting_label_write_on_or_off(g_console.screenshots_enable, currentsetting); + set_setting_label_color(g_console.screenshots_enable, currentsetting); break; case SETTING_APPLY_SHADER_PRESET_ON_STARTUP: - break; case SETTING_DEFAULT_VIDEO_ALL: break; case SETTING_SOUND_MODE: @@ -237,52 +177,29 @@ static void set_setting_label(menu * menu_obj, uint64_t currentsetting) } break; case SETTING_RSOUND_SERVER_IP_ADDRESS: - if(strcmp(g_settings.audio.device,"0.0.0.0") == 0) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; - + set_setting_label_color(strcmp(g_settings.audio.device,"0.0.0.0") == 0, currentsetting); snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), g_settings.audio.device); break; case SETTING_DEFAULT_AUDIO_ALL: break; case SETTING_EMU_CURRENT_SAVE_STATE_SLOT: - if(g_extern.state_slot == 0) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; - + set_setting_label_color(g_extern.state_slot == 0, currentsetting); snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "%d", g_extern.state_slot); break; /* emu-specific */ case SETTING_EMU_SHOW_INFO_MSG: - if(g_console.info_msg_enable) - { - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "ON"); - items_generalsettings[currentsetting].text_color = GREEN; - } - else - { - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "OFF"); - items_generalsettings[currentsetting].text_color = ORANGE; - } - break; - case SETTING_EMU_DEFAULT_ALL: - if(menu_obj->selected == currentsetting) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; + set_setting_label_write_on_or_off(g_console.info_msg_enable, currentsetting); + set_setting_label_color(g_console.info_msg_enable, currentsetting); break; case SETTING_EMU_REWIND_ENABLED: + set_setting_label_write_on_or_off(g_settings.rewind_enable, currentsetting); if(g_settings.rewind_enable) { - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "ON"); items_generalsettings[currentsetting].text_color = ORANGE; snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "INFO - [Rewind] feature is set to 'ON'. You can rewind the game in real-time."); } else { - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "OFF"); items_generalsettings[currentsetting].text_color = GREEN; snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "INFO - [Rewind] feature is set to 'OFF'."); } @@ -297,121 +214,48 @@ static void set_setting_label(menu * menu_obj, uint64_t currentsetting) } break; case SETTING_EMU_AUDIO_MUTE: + set_setting_label_write_on_or_off(g_extern.audio_data.mute, currentsetting); + set_setting_label_color(!g_extern.audio_data.mute, currentsetting); if(g_extern.audio_data.mute) - { - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "ON"); - items_generalsettings[currentsetting].text_color = ORANGE; - snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "INFO - [Audio Mute] feature is set to 'ON'. The game audio will be muted."); - } + snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "INFO - [Audio Mute] feature is set to 'ON'. The game audio will be muted."); else - { - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "OFF"); - items_generalsettings[currentsetting].text_color = GREEN; - snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "INFO - [Audio Mute] feature is set to 'OFF'."); - } + snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "INFO - [Audio Mute] feature is set to 'OFF'."); break; case SETTING_ENABLE_CUSTOM_BGM: - if(g_console.custom_bgm_enable) - { - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "ON"); - items_generalsettings[currentsetting].text_color = GREEN; - } - else - { - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "OFF"); - items_generalsettings[currentsetting].text_color = ORANGE; - } - break; - case SETTING_EMU_VIDEO_DEFAULT_ALL: - if(menu_obj->selected == currentsetting) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; - break; - case SETTING_EMU_AUDIO_DEFAULT_ALL: - if(menu_obj->selected == currentsetting) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; + set_setting_label_write_on_or_off(g_console.custom_bgm_enable, currentsetting); + set_setting_label_color(g_console.custom_bgm_enable, currentsetting); break; case SETTING_PATH_DEFAULT_ROM_DIRECTORY: - if(!(strcmp(g_console.default_rom_startup_dir, "/"))) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; - + set_setting_label_color(!(strcmp(g_console.default_rom_startup_dir, "/")), currentsetting); snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), g_console.default_rom_startup_dir); break; case SETTING_PATH_SAVESTATES_DIRECTORY: - if(!(strcmp(g_console.default_savestate_dir, usrDirPath))) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; - + set_setting_label_color(!(strcmp(g_console.default_savestate_dir, usrDirPath)), currentsetting); snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), g_console.default_savestate_dir); break; case SETTING_PATH_SRAM_DIRECTORY: - if(!(strcmp(g_console.default_sram_dir, usrDirPath))) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; - + set_setting_label_color(!(strcmp(g_console.default_sram_dir, usrDirPath)), currentsetting); snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), g_console.default_sram_dir); break; case SETTING_PATH_CHEATS: - if(!(strcmp(g_settings.cheat_database, usrDirPath))) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; - + set_setting_label_color(!(strcmp(g_settings.cheat_database, usrDirPath)), currentsetting); snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), g_settings.cheat_database); break; case SETTING_ENABLE_SRAM_PATH: - if(g_console.default_sram_dir_enable) - { - items_generalsettings[currentsetting].text_color = ORANGE; - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "ON"); - } - else - { - items_generalsettings[currentsetting].text_color = GREEN; - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "OFF"); - } - + set_setting_label_write_on_or_off(g_console.default_sram_dir_enable, currentsetting); + set_setting_label_color(!g_console.default_sram_dir_enable, currentsetting); break; case SETTING_ENABLE_STATE_PATH: - if(g_console.default_savestate_dir_enable) - { - items_generalsettings[currentsetting].text_color = ORANGE; - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "ON"); - } - else - { - items_generalsettings[currentsetting].text_color = GREEN; - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "OFF"); - } - break; - case SETTING_PATH_DEFAULT_ALL: - if(menu_obj->selected == currentsetting) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; + set_setting_label_write_on_or_off(g_console.default_savestate_dir_enable, currentsetting); + set_setting_label_color(!g_console.default_savestate_dir_enable, currentsetting); break; case SETTING_CONTROLS_SCHEME: - if(strcmp(g_console.input_cfg_path,"") == 0) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; - + set_setting_label_color(strcmp(g_console.input_cfg_path,"") == 0, currentsetting); snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "INFO - Input scheme preset [%s] is selected.", g_console.input_cfg_path); snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), g_console.input_cfg_path); break; case SETTING_CONTROLS_NUMBER: - if(currently_selected_controller_menu == 0) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; - + set_setting_label_color(currently_selected_controller_menu == 0, currentsetting); snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "Controller %d is currently selected.", currently_selected_controller_menu+1); snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), "%d", currently_selected_controller_menu+1); break; @@ -432,28 +276,22 @@ static void set_setting_label(menu * menu_obj, uint64_t currentsetting) case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_L3: case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_R3: { - if(g_settings.input.binds[currently_selected_controller_menu][currentsetting-(FIRST_CONTROL_BIND)].joykey == rarch_default_keybind_lut[currentsetting-FIRST_CONTROL_BIND]) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; - const char * value = rarch_input_find_platform_key_label(g_settings.input.binds[currently_selected_controller_menu][currentsetting-(FIRST_CONTROL_BIND)].joykey); - unsigned id = currentsetting - FIRST_CONTROL_BIND; - snprintf(items_generalsettings[currentsetting].text, sizeof(items_generalsettings[currentsetting].text), rarch_input_get_default_keybind_name(id)); - snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "INFO - [%s] on the PS3 controller is mapped to action:\n[%s].", items_generalsettings[currentsetting].text, value); - snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), value); + set_setting_label_color(g_settings.input.binds[currently_selected_controller_menu][currentsetting-(FIRST_CONTROL_BIND)].joykey == rarch_default_keybind_lut[currentsetting-FIRST_CONTROL_BIND], currentsetting); + const char * value = rarch_input_find_platform_key_label(g_settings.input.binds[currently_selected_controller_menu][currentsetting-(FIRST_CONTROL_BIND)].joykey); + unsigned id = currentsetting - FIRST_CONTROL_BIND; + snprintf(items_generalsettings[currentsetting].text, sizeof(items_generalsettings[currentsetting].text), rarch_input_get_default_keybind_name(id)); + snprintf(items_generalsettings[currentsetting].comment, sizeof(items_generalsettings[currentsetting].comment), "INFO - [%s] on the PS3 controller is mapped to action:\n[%s].", items_generalsettings[currentsetting].text, value); + snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), value); } break; case SETTING_CONTROLS_SAVE_CUSTOM_CONTROLS: - if(menu_obj->selected == currentsetting) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; - break; case SETTING_CONTROLS_DEFAULT_ALL: - if(menu_obj->selected == currentsetting) - items_generalsettings[currentsetting].text_color = GREEN; - else - items_generalsettings[currentsetting].text_color = ORANGE; + case SETTING_EMU_VIDEO_DEFAULT_ALL: + case SETTING_EMU_AUDIO_DEFAULT_ALL: + case SETTING_PATH_DEFAULT_ALL: + case SETTING_EMU_DEFAULT_ALL: + case SETTING_SAVE_SHADER_PRESET: + set_setting_label_color(menu_obj->selected == currentsetting, currentsetting); break; default: break; @@ -1067,7 +905,7 @@ static void rarch_filename_input_and_save (unsigned filename_type) } } -static void producesettingentry(menu * menu_obj, uint64_t switchvalue) +static void producesettingentry(menu * menu_obj, unsigned switchvalue) { switch(switchvalue) { @@ -2240,8 +2078,6 @@ static bool check_shoulder_buttons(uint64_t state_tmp) return false; } - - void menu_loop(void) { gl_t * gl = driver.video_data; From df306320e5598226bf3c8f90d663e903a217eaf3 Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Fri, 29 Jun 2012 12:44:11 +0200 Subject: [PATCH 6/6] (PS3) Reuse some settings code in ingame menu - cut down on loc --- ps3/frontend/menu.c | 61 +++------------------------------------------ 1 file changed, 4 insertions(+), 57 deletions(-) diff --git a/ps3/frontend/menu.c b/ps3/frontend/menu.c index 2d2a4cdfa8..15154d8620 100644 --- a/ps3/frontend/menu.c +++ b/ps3/frontend/menu.c @@ -1773,6 +1773,7 @@ static void ingame_menu(void) char comment[256]; static unsigned menuitem_colors[MENU_ITEM_LAST]; gl_t * gl = driver.video_data; + menu *menu_obj = &menuStack[menuStackindex]; float x_position = 0.3f; float font_size = 1.1f; @@ -1816,39 +1817,11 @@ static void ingame_menu(void) strlcpy(comment, "Press LEFT or RIGHT to change the current save state slot.\nPress CROSS to save the state to the currently selected save state slot.", sizeof(comment)); break; case MENU_ITEM_KEEP_ASPECT_RATIO: - if(CTRL_LEFT(trigger_state) || CTRL_LSTICK_LEFT(trigger_state)) - { - rarch_settings_change(S_ASPECT_RATIO_DECREMENT); - gfx_ctx_set_aspect_ratio(NULL, g_console.aspect_ratio_index); - } - if(CTRL_RIGHT(trigger_state) || CTRL_LSTICK_RIGHT(trigger_state)) - { - rarch_settings_change(S_ASPECT_RATIO_INCREMENT); - gfx_ctx_set_aspect_ratio(NULL, g_console.aspect_ratio_index); - } - if(CTRL_START(trigger_state)) - { - rarch_settings_default(S_DEF_ASPECT_RATIO); - gfx_ctx_set_aspect_ratio(NULL, g_console.aspect_ratio_index); - } + producesettingentry(menu_obj, SETTING_KEEP_ASPECT_RATIO); strlcpy(comment, "Press LEFT or RIGHT to change the [Aspect Ratio].\nPress START to reset back to default values.", sizeof(comment)); break; case MENU_ITEM_OVERSCAN_AMOUNT: - if(CTRL_LEFT(trigger_state) || CTRL_LSTICK_LEFT(trigger_state) || CTRL_CROSS(trigger_state) || CTRL_LSTICK_LEFT(trigger_state)) - { - rarch_settings_change(S_OVERSCAN_DECREMENT); - gfx_ctx_set_overscan(); - } - if(CTRL_RIGHT(trigger_state) || CTRL_LSTICK_RIGHT(trigger_state) || CTRL_CROSS(trigger_state) || CTRL_LSTICK_RIGHT(trigger_state)) - { - rarch_settings_change(S_OVERSCAN_INCREMENT); - gfx_ctx_set_overscan(); - } - if(CTRL_START(trigger_state)) - { - rarch_settings_default(S_DEF_OVERSCAN); - gfx_ctx_set_overscan(); - } + producesettingentry(menu_obj, SETTING_HW_OVERSCAN_AMOUNT); strlcpy(comment, "Press LEFT or RIGHT to change the [Overscan] settings.\nPress START to reset back to default values.", sizeof(comment)); break; case MENU_ITEM_ORIENTATION: @@ -1872,33 +1845,7 @@ static void ingame_menu(void) strlcpy(comment, "Press LEFT or RIGHT to change the [Orientation] settings.\nPress START to reset back to default values.", sizeof(comment)); break; case MENU_ITEM_SCALE_FACTOR: - if(CTRL_LEFT(trigger_state) || CTRL_LSTICK_LEFT(trigger_state)) - { - if(g_console.fbo_enabled) - { - if((g_settings.video.fbo_scale_x > MIN_SCALING_FACTOR)) - { - rarch_settings_change(S_SCALE_FACTOR_DECREMENT); - apply_scaling(FBO_REINIT); - } - } - } - if(CTRL_RIGHT(trigger_state) || CTRL_LSTICK_RIGHT(trigger_state) || CTRL_CROSS(trigger_state)) - { - if(g_console.fbo_enabled) - { - if((g_settings.video.fbo_scale_x < MAX_SCALING_FACTOR)) - { - rarch_settings_change(S_SCALE_FACTOR_INCREMENT); - apply_scaling(FBO_REINIT); - } - } - } - if(CTRL_START(trigger_state)) - { - rarch_settings_default(S_DEF_SCALE_FACTOR); - apply_scaling(FBO_REINIT); - } + producesettingentry(menu_obj, SETTING_SCALE_FACTOR); strlcpy(comment, "Press LEFT or RIGHT to change the [Scaling] settings.\nPress START to reset back to default values.", sizeof(comment)); break; case MENU_ITEM_FRAME_ADVANCE: