From 506063b57bd8836e2e64e6cabe67b3cb9c305c04 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 12 Jul 2014 18:18:37 +0200 Subject: [PATCH] (Settings) Add Content History Size option --- frontend/menu/backend/menu_common_backend.c | 59 +++++++++++++-------- frontend/menu/backend/menu_common_backend.h | 1 + 2 files changed, 38 insertions(+), 22 deletions(-) diff --git a/frontend/menu/backend/menu_common_backend.c b/frontend/menu/backend/menu_common_backend.c index d7744b554d..ca3352bb11 100644 --- a/frontend/menu/backend/menu_common_backend.c +++ b/frontend/menu/backend/menu_common_backend.c @@ -135,6 +135,7 @@ static void menu_common_entries_init(void *data, unsigned menu_type) file_list_push(menu->selection_buf, "Libretro Logging Level", MENU_SETTINGS_LIBRETRO_LOG_LEVEL, 0); file_list_push(menu->selection_buf, "Logging Verbosity", MENU_SETTINGS_LOGGING_VERBOSITY, 0); file_list_push(menu->selection_buf, "Performance Counters", MENU_SETTINGS_PERFORMANCE_COUNTERS_ENABLE, 0); + file_list_push(menu->selection_buf, "Content History Size", MENU_CONTENT_HISTORY_SIZE, 0); file_list_push(menu->selection_buf, "Configuration Save On Exit", MENU_SETTINGS_CONFIG_SAVE_ON_EXIT, 0); file_list_push(menu->selection_buf, "Configuration Per-Core", MENU_SETTINGS_PER_CORE_CONFIG, 0); #ifdef HAVE_SCREENSHOTS @@ -3763,35 +3764,46 @@ static int menu_common_setting_set(unsigned setting, unsigned action) if (action == MENU_ACTION_OK) menu_save_new_config(); break; -#ifdef HAVE_OVERLAY - case MENU_SETTINGS_OVERLAY_ENABLE: - { - bool changed = false; - if (action == MENU_ACTION_OK || action == MENU_ACTION_LEFT || action == MENU_ACTION_RIGHT) + case MENU_CONTENT_HISTORY_SIZE: + if (action == MENU_ACTION_RIGHT) + g_settings.game_history_size++; + else if (action == MENU_ACTION_LEFT) { - g_settings.input.overlay_enable = !g_settings.input.overlay_enable; - changed = true; + if (g_settings.game_history_size > 0) + g_settings.game_history_size--; } else if (action == MENU_ACTION_START) + g_settings.game_history_size = game_history_size; + break; +#ifdef HAVE_OVERLAY + case MENU_SETTINGS_OVERLAY_ENABLE: { - g_settings.input.overlay_enable = g_defaults.settings.input_overlay_enable; - changed = true; - } - - if (changed) - { - if (driver.overlay) - input_overlay_free(driver.overlay); - driver.overlay = NULL; - if (g_settings.input.overlay_enable && *g_settings.input.overlay) + bool changed = false; + if (action == MENU_ACTION_OK || action == MENU_ACTION_LEFT || action == MENU_ACTION_RIGHT) { - driver.overlay = input_overlay_new(g_settings.input.overlay); - if (!driver.overlay) - RARCH_ERR("Failed to load overlay.\n"); + g_settings.input.overlay_enable = !g_settings.input.overlay_enable; + changed = true; + } + else if (action == MENU_ACTION_START) + { + g_settings.input.overlay_enable = g_defaults.settings.input_overlay_enable; + changed = true; + } + + if (changed) + { + if (driver.overlay) + input_overlay_free(driver.overlay); + driver.overlay = NULL; + if (g_settings.input.overlay_enable && *g_settings.input.overlay) + { + driver.overlay = input_overlay_new(g_settings.input.overlay); + if (!driver.overlay) + RARCH_ERR("Failed to load overlay.\n"); + } } } - break; - } + break; case MENU_SETTINGS_OVERLAY_PRESET: switch (action) { @@ -5245,6 +5257,9 @@ static void menu_common_setting_set_label(char *type_str, size_t type_str_size, case MENU_BROWSER_DIR_PATH: strlcpy(type_str, *g_settings.menu_content_directory ? g_settings.menu_content_directory : "", type_str_size); break; + case MENU_CONTENT_HISTORY_SIZE: + snprintf(type_str, type_str_size, "%d", g_settings.game_history_size); + break; case MENU_CONTENT_DIR_PATH: strlcpy(type_str, *g_settings.content_directory ? g_settings.content_directory : "", type_str_size); break; diff --git a/frontend/menu/backend/menu_common_backend.h b/frontend/menu/backend/menu_common_backend.h index 5b22f37f12..754373b470 100644 --- a/frontend/menu/backend/menu_common_backend.h +++ b/frontend/menu/backend/menu_common_backend.h @@ -130,6 +130,7 @@ typedef enum MENU_SETTINGS_BLOCK_SRAM_OVERWRITE, MENU_SETTINGS_WINDOW_COMPOSITING_ENABLE, MENU_SETTINGS_PAUSE_IF_WINDOW_FOCUS_LOST, + MENU_CONTENT_HISTORY_SIZE, MENU_SCREENSHOT_DIR_PATH, MENU_BROWSER_DIR_PATH, MENU_CONTENT_DIR_PATH,