From 0dee5b889db0c114f4c4ad63b7dd7be9f91a56b8 Mon Sep 17 00:00:00 2001 From: Monroe88 Date: Mon, 1 May 2017 19:19:33 -0500 Subject: [PATCH] Add fullscreen resolution settings to the menu --- intl/msg_hash_lbl.h | 4 ++++ intl/msg_hash_us.h | 8 ++++++++ menu/cbs/menu_cbs_sublabel.c | 8 ++++++++ menu/menu_displaylist.c | 6 ++++++ menu/menu_setting.c | 28 ++++++++++++++++++++++++++++ msg_hash.h | 2 ++ 6 files changed, 56 insertions(+) diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 8089e36014..7fd4d4030a 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -1093,6 +1093,10 @@ MSG_HASH(MENU_ENUM_LABEL_VIDEO_WINDOW_WIDTH, "video_window_width") MSG_HASH(MENU_ENUM_LABEL_VIDEO_WINDOW_HEIGHT, "video_window_height") +MSG_HASH(MENU_ENUM_LABEL_VIDEO_FULLSCREEN_X, + "video_fullscreen_x") +MSG_HASH(MENU_ENUM_LABEL_VIDEO_FULLSCREEN_Y, + "video_fullscreen_y") MSG_HASH(MENU_ENUM_LABEL_WIFI_DRIVER, "wifi_driver") MSG_HASH(MENU_ENUM_LABEL_WIFI_SETTINGS, diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index de100e1eb3..096dae36f7 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -1659,6 +1659,10 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_WIDTH, "Window Width") MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_HEIGHT, "Window Height") +MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_FULLSCREEN_X, + "Fullscreen Width") +MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_FULLSCREEN_Y, + "Fullscreen Height") MSG_HASH(MENU_ENUM_LABEL_VALUE_WIFI_DRIVER, "Wi-Fi Driver") MSG_HASH(MENU_ENUM_LABEL_VALUE_WIFI_SETTINGS, @@ -2462,6 +2466,10 @@ MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_WINDOW_WIDTH, "Set the custom width size for the display window. Leaving it at 0 will attempt to scale the window as large as possible.") MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_WINDOW_HEIGHT, "Set the custom height size for the display window. Leaving it at 0 will attempt to scale the window as large as possible.") +MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_X, + "Set the custom width size for the non-windowed fullscreen mode. Leaving it at 0 will use the desktop resolution.") +MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_Y, + "Set the custom height size for the non-windowed fullscreen mode. Leaving it at 0 will use the desktop resolution") MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_X, "Specify custom X axis position for onscreen text.") MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_Y, diff --git a/menu/cbs/menu_cbs_sublabel.c b/menu/cbs/menu_cbs_sublabel.c index 7613471097..3291c1a2a9 100644 --- a/menu/cbs/menu_cbs_sublabel.c +++ b/menu/cbs/menu_cbs_sublabel.c @@ -136,6 +136,8 @@ default_sublabel_macro(action_bind_sublabel_system_information, MENU_ default_sublabel_macro(action_bind_sublabel_quit_retroarch, MENU_ENUM_SUBLABEL_QUIT_RETROARCH) default_sublabel_macro(action_bind_sublabel_video_window_width, MENU_ENUM_SUBLABEL_VIDEO_WINDOW_WIDTH) default_sublabel_macro(action_bind_sublabel_video_window_height, MENU_ENUM_SUBLABEL_VIDEO_WINDOW_HEIGHT) +default_sublabel_macro(action_bind_sublabel_video_fullscreen_x, MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_X) +default_sublabel_macro(action_bind_sublabel_video_fullscreen_y, MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_Y) default_sublabel_macro(action_bind_sublabel_video_message_pos_x, MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_X) default_sublabel_macro(action_bind_sublabel_video_message_pos_y, MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_Y) default_sublabel_macro(action_bind_sublabel_video_font_size, MENU_ENUM_SUBLABEL_VIDEO_FONT_SIZE) @@ -940,6 +942,12 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_VIDEO_WINDOW_HEIGHT: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_window_height); break; + case MENU_ENUM_LABEL_VIDEO_FULLSCREEN_X: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_fullscreen_x); + break; + case MENU_ENUM_LABEL_VIDEO_FULLSCREEN_Y: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_fullscreen_y); + break; case MENU_ENUM_LABEL_QUIT_RETROARCH: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_quit_retroarch); break; diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 8c57b5acc9..f342b2f0b5 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -5160,6 +5160,12 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_VIDEO_WINDOWED_FULLSCREEN, PARSE_ONLY_BOOL, false); + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_VIDEO_FULLSCREEN_X, + PARSE_ONLY_UINT, false); + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_VIDEO_FULLSCREEN_Y, + PARSE_ONLY_UINT, false); menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_VIDEO_REFRESH_RATE, PARSE_ONLY_FLOAT, false); diff --git a/menu/menu_setting.c b/menu/menu_setting.c index fb3b3974c2..94c6ff4632 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -3191,6 +3191,34 @@ static bool setting_append_list( general_read_handler, SD_FLAG_NONE); settings_data_list_current_add_flags(list, list_info, SD_FLAG_LAKKA_ADVANCED); + + CONFIG_UINT( + list, list_info, + &settings->uints.video_fullscreen_x, + MENU_ENUM_LABEL_VIDEO_FULLSCREEN_X, + MENU_ENUM_LABEL_VALUE_VIDEO_FULLSCREEN_X, + fullscreen_x, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + menu_settings_list_current_add_range(list, list_info, 0, 7680, 8, true, true); + settings_data_list_current_add_flags(list, list_info, SD_FLAG_LAKKA_ADVANCED); + + CONFIG_UINT( + list, list_info, + &settings->uints.video_fullscreen_y, + MENU_ENUM_LABEL_VIDEO_FULLSCREEN_Y, + MENU_ENUM_LABEL_VALUE_VIDEO_FULLSCREEN_Y, + fullscreen_y, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + menu_settings_list_current_add_range(list, list_info, 0, 4320, 8, true, true); + settings_data_list_current_add_flags(list, list_info, SD_FLAG_LAKKA_ADVANCED); } CONFIG_FLOAT( list, list_info, diff --git a/msg_hash.h b/msg_hash.h index 3bda5f6ee1..0903aa8b74 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -606,6 +606,8 @@ enum msg_hash_enums MENU_LABEL(VIDEO_WINDOWED_FULLSCREEN), MENU_LABEL(VIDEO_WINDOW_WIDTH), MENU_LABEL(VIDEO_WINDOW_HEIGHT), + MENU_LABEL(VIDEO_FULLSCREEN_X), + MENU_LABEL(VIDEO_FULLSCREEN_Y), MENU_LABEL(VIDEO_FORCE_SRGB_DISABLE), MENU_LABEL(VIDEO_ROTATION), MENU_LABEL(VIDEO_SCALE),