From 1682d83831876830708c513a5e896aafe95d6571 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 15 Sep 2014 00:21:24 +0200 Subject: [PATCH] (Menu/Settings) Add SD_FLAG_CMD_APPLY_AUTO --- settings_data.c | 77 ++++++++++++++----------------------------------- settings_data.h | 19 ++++++------ 2 files changed, 32 insertions(+), 64 deletions(-) diff --git a/settings_data.c b/settings_data.c index 8bd3a674d7..06000777c9 100644 --- a/settings_data.c +++ b/settings_data.c @@ -2050,9 +2050,13 @@ static void general_write_handler(void *data) if (setting->cmd_trigger.idx != RARCH_CMD_NONE) { - if (*setting->value.boolean) - *setting->value.boolean = false; - if (setting->cmd_trigger.triggered) + if (setting->flags & SD_FLAG_EXIT) + { + if (*setting->value.boolean) + *setting->value.boolean = false; + } + if (setting->cmd_trigger.triggered || + (setting->flags & SD_FLAG_CMD_APPLY_AUTO)) rarch_cmd = setting->cmd_trigger.idx; } @@ -2066,13 +2070,6 @@ static void general_write_handler(void *data) *setting->value.boolean = false; } } - else if (!strcmp(setting->name, "rewind_enable")) - rarch_cmd = RARCH_CMD_REWIND; - else if (!strcmp(setting->name, "soft_filter")) - { - if (*setting->value.boolean) - rarch_cmd = RARCH_CMD_VIDEO_APPLY_STATE_CHANGES; - } else if (!strcmp(setting->name, "video_smooth")) { if (driver.video_data && driver.video_poke @@ -2087,12 +2084,6 @@ static void general_write_handler(void *data) else *setting->value.boolean = false; } - else if (!strcmp(setting->name, "video_monitor_index")) - rarch_cmd = RARCH_CMD_REINIT; - else if (!strcmp(setting->name, "video_disable_composition")) - rarch_cmd = RARCH_CMD_REINIT; - else if (!strcmp(setting->name, "video_fullscreen")) - rarch_cmd = RARCH_CMD_REINIT; else if (!strcmp(setting->name, "video_rotation")) { if (driver.video && driver.video->set_rotation) @@ -2100,16 +2091,6 @@ static void general_write_handler(void *data) (*setting->value.unsigned_integer + g_extern.system.rotation) % 4); } - else if (!strcmp(setting->name, "video_gamma")) - rarch_cmd = RARCH_CMD_VIDEO_APPLY_STATE_CHANGES; - else if (!strcmp(setting->name, "video_threaded")) - rarch_cmd = RARCH_CMD_REINIT; - else if (!strcmp(setting->name, "video_swap_interval")) - rarch_cmd = RARCH_CMD_VIDEO_SET_BLOCKING_STATE; -#ifdef HAVE_OVERLAY - else if (!strcmp(setting->name, "input_overlay_opacity")) - rarch_cmd = RARCH_CMD_OVERLAY_SET_ALPHA_MOD; -#endif else if (!strcmp(setting->name, "system_bgm_enable")) { if (*setting->value.boolean) @@ -2127,8 +2108,6 @@ static void general_write_handler(void *data) } else if (!strcmp(setting->name, "audio_volume")) g_extern.audio_data.volume_gain = db_to_gain(*setting->value.fraction); - else if (!strcmp(setting->name, "audio_dsp_plugin")) - rarch_cmd = RARCH_CMD_DSP_FILTER_INIT; else if (!strcmp(setting->name, "audio_rate_control_delta")) { if (*setting->value.fraction < 0.0005) @@ -2142,14 +2121,6 @@ static void general_write_handler(void *data) g_settings.audio.rate_control_delta = *setting->value.fraction; } } - else if (!strcmp(setting->name, "autosave_interval")) - rarch_cmd = RARCH_CMD_AUTOSAVE; -#ifdef HAVE_OVERLAY - else if (!strcmp(setting->name, "input_overlay")) - rarch_cmd = RARCH_CMD_OVERLAY_REINIT; - else if (!strcmp(setting->name, "input_overlay_scale")) - rarch_cmd = RARCH_CMD_OVERLAY_SET_SCALE_FACTOR; -#endif else if (!strcmp(setting->name, "video_refresh_rate_auto")) { if (driver.video && driver.video_data) @@ -2167,8 +2138,6 @@ static void general_write_handler(void *data) if (!g_settings.video.fullscreen) rarch_cmd = RARCH_CMD_REINIT; } - else if (!strcmp(setting->name, "aspect_ratio_index")) - rarch_cmd = RARCH_CMD_VIDEO_SET_ASPECT_RATIO; else if (!strcmp(setting->name, "input_player1_joypad_index")) g_settings.input.joypad_map[0] = *setting->value.integer; else if (!strcmp(setting->name, "input_player2_joypad_index")) @@ -2183,8 +2152,6 @@ static void general_write_handler(void *data) rarch_cmd = RARCH_CMD_CORE_INFO_INIT; else if (!strcmp(setting->name, "libretro_dir_path")) rarch_cmd = RARCH_CMD_CORE_INFO_INIT; - else if (!strcmp(setting->name, "video_filter")) - rarch_cmd = RARCH_CMD_REINIT; #ifdef HAVE_NETPLAY else if (!strcmp(setting->name, "netplay_ip_address")) g_extern.has_set_netplay_ip_address = (setting->value.string[0] != '\0'); @@ -2405,16 +2372,16 @@ rarch_setting_t *setting_data_get_list(void) CONFIG_BOOL(g_settings.core_specific_config, "core_specific_config", "Configuration Per-Core", default_core_specific_config, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) CONFIG_BOOL(g_settings.load_dummy_on_core_shutdown, "dummy_on_core_shutdown", "Dummy On Core Shutdown", load_dummy_on_core_shutdown, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) CONFIG_BOOL(g_settings.fps_show, "fps_show", "Show Framerate", fps_show, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) - CONFIG_BOOL(g_settings.rewind_enable, "rewind_enable", "Rewind", rewind_enable, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) + CONFIG_BOOL(g_settings.rewind_enable, "rewind_enable", "Rewind", rewind_enable, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_CMD(RARCH_CMD_REWIND) WITH_FLAGS(SD_FLAG_CMD_APPLY_AUTO) #if 0 CONFIG_SIZE(g_settings.rewind_buffer_size, "rewind_buffer_size", "Rewind Buffer Size", rewind_buffer_size, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) #endif CONFIG_UINT(g_settings.rewind_granularity, "rewind_granularity", "Rewind Granularity", rewind_granularity, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(1, 32768, 1, true, false) CONFIG_BOOL(g_settings.block_sram_overwrite, "block_sram_overwrite", "SRAM Block overwrite", block_sram_overwrite, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) #ifdef HAVE_THREADS - CONFIG_UINT(g_settings.autosave_interval, "autosave_interval", "SRAM Autosave", autosave_interval, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, 0, 10, true, false) + CONFIG_UINT(g_settings.autosave_interval, "autosave_interval", "SRAM Autosave", autosave_interval, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, 0, 10, true, false) WITH_CMD(RARCH_CMD_AUTOSAVE) WITH_FLAGS(SD_FLAG_CMD_APPLY_AUTO) #endif - CONFIG_BOOL(g_settings.video.disable_composition, "video_disable_composition", "Window Compositing Disable", disable_composition, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) + CONFIG_BOOL(g_settings.video.disable_composition, "video_disable_composition", "Window Compositing Disable", disable_composition, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_CMD(RARCH_CMD_REINIT) WITH_FLAGS(SD_FLAG_CMD_APPLY_AUTO) CONFIG_BOOL(g_settings.pause_nonactive, "pause_nonactive", "Window Unfocus Pause", pause_nonactive, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) CONFIG_FLOAT(g_settings.fastforward_ratio, "fastforward_ratio", "Maximum Run Speed", fastforward_ratio, "%.1fx", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, 10, 0.1, true, true) CONFIG_FLOAT(g_settings.slowmotion_ratio, "slowmotion_ratio", "Slow-Motion Ratio", slowmotion_ratio, "%.1fx", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(1, 10, 1.0, true, true) @@ -2439,9 +2406,9 @@ rarch_setting_t *setting_data_get_list(void) CONFIG_BOOL(g_settings.video.shared_context, "video_shared_context", "HW Shared Context Enable", false, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) END_SUB_GROUP() START_SUB_GROUP("Monitor", GROUP_NAME) - CONFIG_UINT(g_settings.video.monitor_index, "video_monitor_index", "Monitor Index", monitor_index, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, 1, 1, true, false) + CONFIG_UINT(g_settings.video.monitor_index, "video_monitor_index", "Monitor Index", monitor_index, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, 1, 1, true, false) WITH_CMD(RARCH_CMD_REINIT) #if !defined(RARCH_CONSOLE) && !defined(RARCH_MOBILE) - CONFIG_BOOL(g_settings.video.fullscreen, "video_fullscreen", "Use Fullscreen mode", fullscreen, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) + CONFIG_BOOL(g_settings.video.fullscreen, "video_fullscreen", "Use Fullscreen mode", fullscreen, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_CMD(RARCH_CMD_REINIT) WITH_FLAGS(SD_FLAG_CMD_APPLY_AUTO) #endif CONFIG_BOOL(g_settings.video.windowed_fullscreen, "video_windowed_fullscreen", "Windowed Fullscreen Mode", windowed_fullscreen, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) CONFIG_UINT(g_settings.video.fullscreen_x, "video_fullscreen_x", "Fullscreen Width", fullscreen_x, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) @@ -2454,7 +2421,7 @@ rarch_setting_t *setting_data_get_list(void) CONFIG_BOOL(g_settings.video.force_aspect, "video_force_aspect", "Force aspect ratio", force_aspect, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) CONFIG_FLOAT(g_settings.video.aspect_ratio, "video_aspect_ratio", "Aspect Ratio", aspect_ratio, "%.2f", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) CONFIG_BOOL(g_settings.video.aspect_ratio_auto, "video_aspect_ratio_auto", "Use Auto Aspect Ratio", aspect_ratio_auto, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) - CONFIG_UINT(g_settings.video.aspect_ratio_idx, "aspect_ratio_index", "Aspect Ratio Index", aspect_ratio_idx, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, LAST_ASPECT_RATIO, 1, true, true) + CONFIG_UINT(g_settings.video.aspect_ratio_idx, "aspect_ratio_index", "Aspect Ratio Index", aspect_ratio_idx, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, LAST_ASPECT_RATIO, 1, true, true) WITH_CMD(RARCH_CMD_VIDEO_SET_ASPECT_RATIO) WITH_FLAGS(SD_FLAG_CMD_APPLY_AUTO) END_SUB_GROUP() START_SUB_GROUP("Scaling", GROUP_NAME) @@ -2476,17 +2443,17 @@ rarch_setting_t *setting_data_get_list(void) #endif CONFIG_UINT(g_settings.video.rotation, "video_rotation", "Rotation", 0, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, 3, 1, true, true) #if defined(HW_RVL) || defined(_XBOX360) - CONFIG_UINT(g_extern.console.screen.gamma_correction, "video_gamma", "Gamma", 0, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, MAX_GAMMA_SETTING, 1, true, true) + CONFIG_UINT(g_extern.console.screen.gamma_correction, "video_gamma", "Gamma", 0, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, MAX_GAMMA_SETTING, 1, true, true) WITH_CMD(RARCH_CMD_VIDEO_APPLY_STATE_CHANGES) WITH_FLAGS(SD_FLAG_CMD_APPLY_AUTO) #endif END_SUB_GROUP() START_SUB_GROUP("Synchronization", GROUP_NAME) #if defined(HAVE_THREADS) && !defined(RARCH_CONSOLE) - CONFIG_BOOL(g_settings.video.threaded, "video_threaded", "Threaded Video", video_threaded, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) + CONFIG_BOOL(g_settings.video.threaded, "video_threaded", "Threaded Video", video_threaded, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_CMD(RARCH_CMD_REINIT) WITH_FLAGS(SD_FLAG_CMD_APPLY_AUTO) #endif CONFIG_BOOL(g_settings.video.vsync, "video_vsync", "VSync", vsync, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) - CONFIG_UINT(g_settings.video.swap_interval, "video_swap_interval", "VSync Swap Interval", swap_interval, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(1, 4, 1, true, true) + CONFIG_UINT(g_settings.video.swap_interval, "video_swap_interval", "VSync Swap Interval", swap_interval, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(1, 4, 1, true, true) WITH_CMD(RARCH_CMD_VIDEO_SET_BLOCKING_STATE) WITH_FLAGS(SD_FLAG_CMD_APPLY_AUTO) CONFIG_BOOL(g_settings.video.hard_sync, "video_hard_sync", "Hard GPU Sync", hard_sync, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) CONFIG_UINT(g_settings.video.hard_sync_frames, "video_hard_sync_frames", "Hard GPU Sync Frames", hard_sync_frames, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, 3, 1, true, true) CONFIG_UINT(g_settings.video.frame_delay, "video_frame_delay", "Frame Delay", frame_delay, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, 15, 1, true, true) @@ -2502,10 +2469,10 @@ rarch_setting_t *setting_data_get_list(void) CONFIG_BOOL(g_settings.video.allow_rotate, "video_allow_rotate", "Allow rotation", allow_rotate, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) CONFIG_BOOL(g_settings.video.crop_overscan, "video_crop_overscan", "Crop Overscan (reload)", crop_overscan, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) #ifndef HAVE_FILTERS_BUILTIN - CONFIG_PATH(g_settings.video.softfilter_plugin, "video_filter", "Software filter", g_settings.video.filter_dir, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_FLAGS(SD_FLAG_ALLOW_EMPTY) WITH_VALUES("filt") + CONFIG_PATH(g_settings.video.softfilter_plugin, "video_filter", "Software filter", g_settings.video.filter_dir, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_FLAGS(SD_FLAG_ALLOW_EMPTY) WITH_VALUES("filt") WITH_CMD(RARCH_CMD_REINIT) #endif #if defined(_XBOX1) || defined(HW_RVL) - CONFIG_BOOL(g_extern.console.softfilter_enable, "soft_filter", "Soft Filter Enable", false, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) + CONFIG_BOOL(g_extern.console.softfilter_enable, "soft_filter", "Soft Filter Enable", false, "OFF", "ON", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_CMD(RARCH_CMD_VIDEO_APPLY_STATE_CHANGES) #endif #ifdef _XBOX1 CONFIG_UINT(g_settings.video.swap_interval, "video_filter_flicker", "Flicker filter", 0, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, 5, 1, true, true) @@ -2552,7 +2519,7 @@ rarch_setting_t *setting_data_get_list(void) START_SUB_GROUP("Miscellaneous", GROUP_NAME) CONFIG_STRING(g_settings.audio.device, "audio_device", "Device", "", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_FLAGS(SD_FLAG_ALLOW_INPUT) CONFIG_UINT(g_settings.audio.out_rate, "audio_out_rate", "Audio Output Rate", out_rate, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) - CONFIG_PATH(g_settings.audio.dsp_plugin, "audio_dsp_plugin", "DSP Plugin", g_settings.audio.filter_dir, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_FLAGS(SD_FLAG_ALLOW_EMPTY) WITH_VALUES("dsp") + CONFIG_PATH(g_settings.audio.dsp_plugin, "audio_dsp_plugin", "DSP Plugin", g_settings.audio.filter_dir, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_FLAGS(SD_FLAG_ALLOW_EMPTY) WITH_VALUES("dsp") WITH_CMD(RARCH_CMD_DSP_FILTER_INIT) END_SUB_GROUP() END_GROUP() @@ -2623,9 +2590,9 @@ rarch_setting_t *setting_data_get_list(void) #ifdef HAVE_OVERLAY START_GROUP("Overlay Options") START_SUB_GROUP("State", GROUP_NAME) - CONFIG_PATH(g_settings.input.overlay, "input_overlay", "Overlay Preset", g_extern.overlay_dir, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_FLAGS(SD_FLAG_ALLOW_EMPTY) WITH_VALUES("cfg") - CONFIG_FLOAT(g_settings.input.overlay_opacity, "input_overlay_opacity", "Overlay Opacity", 0.7f, "%.2f", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, 1, 0.01, true, true) - CONFIG_FLOAT(g_settings.input.overlay_scale, "input_overlay_scale", "Overlay Scale", 1.0f, "%.2f", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, 2, 0.01, true, true) + CONFIG_PATH(g_settings.input.overlay, "input_overlay", "Overlay Preset", g_extern.overlay_dir, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_FLAGS(SD_FLAG_ALLOW_EMPTY) WITH_VALUES("cfg") WITH_CMD(RARCH_CMD_OVERLAY_REINIT) + CONFIG_FLOAT(g_settings.input.overlay_opacity, "input_overlay_opacity", "Overlay Opacity", 0.7f, "%.2f", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, 1, 0.01, true, true) WITH_CMD(RARCH_CMD_OVERLAY_SET_ALPHA_MOD) WITH_FLAGS(SD_FLAG_CMD_APPLY_AUTO) + CONFIG_FLOAT(g_settings.input.overlay_scale, "input_overlay_scale", "Overlay Scale", 1.0f, "%.2f", GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, 2, 0.01, true, true) WITH_CMD(RARCH_CMD_OVERLAY_SET_SCALE_FACTOR) WITH_FLAGS(SD_FLAG_CMD_APPLY_AUTO) END_SUB_GROUP() END_GROUP() #endif diff --git a/settings_data.h b/settings_data.h index ff28ea8efc..db36820ff1 100644 --- a/settings_data.h +++ b/settings_data.h @@ -47,15 +47,16 @@ enum setting_type enum setting_flags { - SD_FLAG_PATH_DIR = (1 << 0), - SD_FLAG_PATH_FILE = (1 << 1), - SD_FLAG_ALLOW_EMPTY = (1 << 2), - SD_FLAG_VALUE_DESC = (1 << 3), - SD_FLAG_HAS_RANGE = (1 << 4), - SD_FLAG_ALLOW_INPUT = (1 << 5), - SD_FLAG_PUSH_ACTION = (1 << 6), - SD_FLAG_IS_DRIVER = (1 << 7), - SD_FLAG_EXIT = (1 << 8), + SD_FLAG_PATH_DIR = (1 << 0), + SD_FLAG_PATH_FILE = (1 << 1), + SD_FLAG_ALLOW_EMPTY = (1 << 2), + SD_FLAG_VALUE_DESC = (1 << 3), + SD_FLAG_HAS_RANGE = (1 << 4), + SD_FLAG_ALLOW_INPUT = (1 << 5), + SD_FLAG_PUSH_ACTION = (1 << 6), + SD_FLAG_IS_DRIVER = (1 << 7), + SD_FLAG_EXIT = (1 << 8), + SD_FLAG_CMD_APPLY_AUTO = (1 << 9), }; typedef struct rarch_setting_t