From b5032ed1f762e762f3a00ac69e53d6f6fc742c04 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 2 Aug 2014 16:09:04 +0200 Subject: [PATCH] (Settings data) Add Refresh Rate --- frontend/menu/backend/menu_common_backend.c | 9 +++++++++ frontend/menu/backend/menu_common_backend.h | 1 + settings_data.c | 7 ++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/frontend/menu/backend/menu_common_backend.c b/frontend/menu/backend/menu_common_backend.c index ef8fd917e9..392cb4cfd5 100644 --- a/frontend/menu/backend/menu_common_backend.c +++ b/frontend/menu/backend/menu_common_backend.c @@ -232,6 +232,8 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type) file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_VIDEO_CROP_OVERSCAN, 0); if ((current_setting = setting_data_find_setting(setting_data, "video_monitor_index"))) file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_VIDEO_MONITOR_INDEX, 0); + if ((current_setting = setting_data_find_setting(setting_data, "video_refresh_rate"))) + file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_VIDEO_REFRESH_RATE, 0); file_list_push(menu->selection_buf, "Estimated Monitor FPS", MENU_SETTINGS_VIDEO_REFRESH_RATE_AUTO, 0); break; case MENU_SETTINGS_FONT_OPTIONS: @@ -4301,6 +4303,10 @@ static int menu_common_setting_set(unsigned setting, unsigned action) if ((current_setting = setting_data_find_setting(setting_data, "video_monitor_index"))) menu_common_setting_set_current_unsigned_integer(current_setting, 1, action, false, false); break; + case MENU_SETTINGS_VIDEO_REFRESH_RATE: + if ((current_setting = setting_data_find_setting(setting_data, "video_refresh_rate"))) + menu_common_setting_set_current_fraction(current_setting, 0.001f, action, false, false); + break; case MENU_SETTINGS_VIDEO_REFRESH_RATE_AUTO: switch (action) { @@ -4665,6 +4671,9 @@ static void menu_common_setting_set_label(char *type_str, size_t type_str_size, else strlcpy(type_str, "0 (Auto)", type_str_size); break; + case MENU_SETTINGS_VIDEO_REFRESH_RATE: + snprintf(type_str, type_str_size, "%.3f Hz", g_settings.video.refresh_rate); + break; case MENU_SETTINGS_VIDEO_REFRESH_RATE_AUTO: { double refresh_rate = 0.0; diff --git a/frontend/menu/backend/menu_common_backend.h b/frontend/menu/backend/menu_common_backend.h index f40366f1b3..af61546759 100644 --- a/frontend/menu/backend/menu_common_backend.h +++ b/frontend/menu/backend/menu_common_backend.h @@ -56,6 +56,7 @@ typedef enum MENU_SETTINGS_VIDEO_WINDOW_SCALE_X, MENU_SETTINGS_VIDEO_WINDOW_SCALE_Y, MENU_SETTINGS_VIDEO_CROP_OVERSCAN, + MENU_SETTINGS_VIDEO_REFRESH_RATE, MENU_SETTINGS_VIDEO_REFRESH_RATE_AUTO, MENU_SETTINGS_VIDEO_MONITOR_INDEX, MENU_SETTINGS_VIDEO_SOFTFILTER, diff --git a/settings_data.c b/settings_data.c index 4ac24e7d52..63b31600d4 100644 --- a/settings_data.c +++ b/settings_data.c @@ -855,6 +855,8 @@ static void general_read_handler(const void *data) *setting->value.unsigned_integer = g_settings.video.fullscreen_x; else if (!strcmp(setting->name, "video_fullscreen_y")) *setting->value.unsigned_integer = g_settings.video.fullscreen_y; + else if (!strcmp(setting->name, "video_refresh_rate")) + *setting->value.fraction = g_settings.video.refresh_rate; else if (!strcmp(setting->name, "video_refresh_rate_auto")) *setting->value.fraction = g_settings.video.refresh_rate; else if (!strcmp(setting->name, "video_aspect_ratio")) @@ -1171,6 +1173,8 @@ static void general_write_handler(const void *data) g_settings.video.fullscreen_x = *setting->value.unsigned_integer; else if (!strcmp(setting->name, "video_fullscreen_y")) g_settings.video.fullscreen_y = *setting->value.unsigned_integer; + else if (!strcmp(setting->name, "video_refresh_rate")) + g_settings.video.refresh_rate = *setting->value.fraction; else if (!strcmp(setting->name, "video_refresh_rate_auto")) { if (driver.video && driver.video_data) @@ -1473,7 +1477,8 @@ rarch_setting_t* setting_data_get_list(void) CONFIG_BOOL(g_settings.video.windowed_fullscreen, "video_windowed_fullscreen", "Windowed Fullscreen Mode", windowed_fullscreen, 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) CONFIG_UINT(g_settings.video.fullscreen_y, "video_fullscreen_y", "Fullscreen Height", fullscreen_y, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) - CONFIG_FLOAT(g_settings.video.refresh_rate, "video_refresh_rate_auto", "Refresh Rate", refresh_rate, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) + CONFIG_FLOAT(g_settings.video.refresh_rate, "video_refresh_rate", "Refresh Rate", refresh_rate, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) + CONFIG_FLOAT(g_settings.video.refresh_rate, "video_refresh_rate_auto", "Estimated Monitor FPS", refresh_rate, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) END_SUB_GROUP() START_SUB_GROUP("Aspect")