diff --git a/intl/msg_hash_us.c b/intl/msg_hash_us.c index 2dc44d4c4c..f2a6bec7bf 100644 --- a/intl/msg_hash_us.c +++ b/intl/msg_hash_us.c @@ -1290,6 +1290,10 @@ static const char *menu_hash_to_str_us_label_enum(enum msg_hash_enums msg) return "deferred_frame_throttle_settings_list"; case MENU_ENUM_LABEL_DEFERRED_REWIND_SETTINGS_LIST: return "deferred_rewind_settings_list"; + case MENU_ENUM_LABEL_DEFERRED_ONSCREEN_DISPLAY_SETTINGS_LIST: + return "deferred_onscreen_display_settings_list"; + case MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST: + return "deferred_onscreen_overlay_settings_list"; case MENU_ENUM_LABEL_ACCOUNTS_LIST: return "accounts_list"; case MENU_ENUM_LABEL_DEFERRED_INPUT_HOTKEY_BINDS_LIST: @@ -1322,6 +1326,10 @@ static const char *menu_hash_to_str_us_label_enum(enum msg_hash_enums msg) return "frame_throttle_settings"; case MENU_ENUM_LABEL_REWIND_SETTINGS: return "rewind_settings"; + case MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS: + return "onscreen_display_settings"; + case MENU_ENUM_LABEL_ONSCREEN_OVERLAY_SETTINGS: + return "onscreen_overlay_settings"; case MENU_ENUM_LABEL_AUDIO_SETTINGS: return "audio_settings"; case MENU_ENUM_LABEL_DEBUG_PANEL_ENABLE: @@ -3336,6 +3344,8 @@ const char *msg_hash_to_str_us(enum msg_hash_enums msg) return "Onscreen Display"; case MENU_ENUM_LABEL_VALUE_OVERLAY_SETTINGS: return "Onscreen Overlay"; + case MENU_ENUM_LABEL_VALUE_ONSCREEN_OVERLAY_SETTINGS: + return "Onscreen Overlay"; case MENU_ENUM_LABEL_VALUE_MENU_SETTINGS: return "Menu"; case MENU_ENUM_LABEL_VALUE_MULTIMEDIA_SETTINGS: diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index f557226f08..3596386679 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -139,6 +139,16 @@ static int deferred_push_rewind_settings_list(menu_displaylist_info_t *info) return deferred_push_dlist(info, DISPLAYLIST_REWIND_SETTINGS_LIST); } +static int deferred_push_onscreen_display_settings_list(menu_displaylist_info_t *info) +{ + return deferred_push_dlist(info, DISPLAYLIST_ONSCREEN_DISPLAY_SETTINGS_LIST); +} + +static int deferred_push_onscreen_overlay_settings_list(menu_displaylist_info_t *info) +{ + return deferred_push_dlist(info, DISPLAYLIST_ONSCREEN_OVERLAY_SETTINGS_LIST); +} + static int deferred_push_audio_settings_list(menu_displaylist_info_t *info) { return deferred_push_dlist(info, DISPLAYLIST_AUDIO_SETTINGS_LIST); @@ -657,6 +667,16 @@ static int menu_cbs_init_bind_deferred_push_compare_label( BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_rewind_settings_list); return 0; } + else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_DISPLAY_SETTINGS_LIST))) + { + BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_onscreen_display_settings_list); + return 0; + } + else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST))) + { + BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_onscreen_overlay_settings_list); + return 0; + } else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_CORE_CONTENT_DIRS_LIST))) { #ifdef HAVE_NETWORKING @@ -909,6 +929,12 @@ static int menu_cbs_init_bind_deferred_push_compare_label( case MENU_ENUM_LABEL_DEFERRED_REWIND_SETTINGS_LIST: BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_rewind_settings_list); break; + case MENU_ENUM_LABEL_DEFERRED_ONSCREEN_DISPLAY_SETTINGS_LIST: + BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_onscreen_display_settings_list); + break; + case MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST: + BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_onscreen_overlay_settings_list); + break; case MENU_ENUM_LABEL_DEFERRED_AUDIO_SETTINGS_LIST: BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_audio_settings_list); break; diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index a157e07542..64584b7eca 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -500,6 +500,20 @@ int generic_action_ok_displaylist_push(const char *path, info_label = msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_REWIND_SETTINGS_LIST); info.enum_idx = MENU_ENUM_LABEL_DEFERRED_REWIND_SETTINGS_LIST; break; + case ACTION_OK_DL_ONSCREEN_DISPLAY_SETTINGS_LIST: + info.directory_ptr = idx; + info.type = type; + info_path = path; + info_label = msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_DISPLAY_SETTINGS_LIST); + info.enum_idx = MENU_ENUM_LABEL_DEFERRED_ONSCREEN_DISPLAY_SETTINGS_LIST; + break; + case ACTION_OK_DL_ONSCREEN_OVERLAY_SETTINGS_LIST: + info.directory_ptr = idx; + info.type = type; + info_path = path; + info_label = msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST); + info.enum_idx = MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST; + break; case ACTION_OK_DL_AUDIO_SETTINGS_LIST: info.directory_ptr = idx; info.type = type; @@ -2366,6 +2380,20 @@ static int action_ok_rewind_list(const char *path, entry_idx, ACTION_OK_DL_REWIND_SETTINGS_LIST); } +static int action_ok_onscreen_display_list(const char *path, + const char *label, unsigned type, size_t idx, size_t entry_idx) +{ + return generic_action_ok_displaylist_push(path, label, type, idx, + entry_idx, ACTION_OK_DL_ONSCREEN_DISPLAY_SETTINGS_LIST); +} + +static int action_ok_onscreen_overlay_list(const char *path, + const char *label, unsigned type, size_t idx, size_t entry_idx) +{ + return generic_action_ok_displaylist_push(path, label, type, idx, + entry_idx, ACTION_OK_DL_ONSCREEN_OVERLAY_SETTINGS_LIST); +} + static int action_ok_rdb_entry(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx) { @@ -3014,6 +3042,12 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_REWIND_SETTINGS: BIND_ACTION_OK(cbs, action_ok_rewind_list); break; + case MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS: + BIND_ACTION_OK(cbs, action_ok_onscreen_display_list); + break; + case MENU_ENUM_LABEL_ONSCREEN_OVERLAY_SETTINGS: + BIND_ACTION_OK(cbs, action_ok_onscreen_overlay_list); + break; case MENU_ENUM_LABEL_SCREEN_RESOLUTION: BIND_ACTION_OK(cbs, action_ok_video_resolution); break; diff --git a/menu/cbs/menu_cbs_title.c b/menu/cbs/menu_cbs_title.c index 3e8913e064..b991b34981 100644 --- a/menu/cbs/menu_cbs_title.c +++ b/menu/cbs/menu_cbs_title.c @@ -235,6 +235,20 @@ static int action_get_rewind_settings_list(const char *path, const char *label, return 0; } +static int action_get_onscreen_display_settings_list(const char *path, const char *label, + unsigned menu_type, char *s, size_t len) +{ + sanitize_to_string(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONSCREEN_DISPLAY_SETTINGS), len); + return 0; +} + +static int action_get_onscreen_overlay_settings_list(const char *path, const char *label, + unsigned menu_type, char *s, size_t len) +{ + sanitize_to_string(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONSCREEN_OVERLAY_SETTINGS), len); + return 0; +} + static int action_get_audio_settings_list(const char *path, const char *label, unsigned menu_type, char *s, size_t len) { @@ -815,6 +829,18 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs, return 0; } + if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_DISPLAY_SETTINGS_LIST))) + { + BIND_ACTION_GET_TITLE(cbs, action_get_onscreen_display_settings_list); + return 0; + } + + if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST))) + { + BIND_ACTION_GET_TITLE(cbs, action_get_onscreen_overlay_settings_list); + return 0; + } + if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_CORE_CONTENT_DIRS_LIST))) { BIND_ACTION_GET_TITLE(cbs, action_get_download_core_content_list); @@ -1044,6 +1070,12 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_DEFERRED_REWIND_SETTINGS_LIST: BIND_ACTION_GET_TITLE(cbs, action_get_rewind_settings_list); break; + case MENU_ENUM_LABEL_DEFERRED_ONSCREEN_DISPLAY_SETTINGS_LIST: + BIND_ACTION_GET_TITLE(cbs, action_get_onscreen_display_settings_list); + break; + case MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST: + BIND_ACTION_GET_TITLE(cbs, action_get_onscreen_overlay_settings_list); + break; case MENU_ENUM_LABEL_DEFERRED_CORE_SETTINGS_LIST: BIND_ACTION_GET_TITLE(cbs, action_get_core_settings_list); break; diff --git a/menu/menu_cbs.h b/menu/menu_cbs.h index e7bdd26986..d91ef04140 100644 --- a/menu/menu_cbs.h +++ b/menu/menu_cbs.h @@ -75,6 +75,8 @@ enum ACTION_OK_DL_CORE_CONTENT_DIRS_LIST, ACTION_OK_DL_DEFERRED_CORE_LIST, ACTION_OK_DL_DEFERRED_CORE_LIST_SET, + ACTION_OK_DL_ONSCREEN_DISPLAY_SETTINGS_LIST, + ACTION_OK_DL_ONSCREEN_OVERLAY_SETTINGS_LIST, ACTION_OK_DL_CONTENT_SETTINGS }; diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 4497e41553..244038511f 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -3742,6 +3742,8 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) case DISPLAYLIST_SAVING_SETTINGS_LIST: case DISPLAYLIST_FRAME_THROTTLE_SETTINGS_LIST: case DISPLAYLIST_REWIND_SETTINGS_LIST: + case DISPLAYLIST_ONSCREEN_DISPLAY_SETTINGS_LIST: + case DISPLAYLIST_ONSCREEN_OVERLAY_SETTINGS_LIST: case DISPLAYLIST_AUDIO_SETTINGS_LIST: case DISPLAYLIST_CORE_SETTINGS_LIST: case DISPLAYLIST_INPUT_SETTINGS_LIST: @@ -4132,6 +4134,55 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) MENU_ENUM_LABEL_REWIND_GRANULARITY, PARSE_ONLY_UINT, false); + info->need_refresh = true; + info->need_push = true; + break; + case DISPLAYLIST_ONSCREEN_DISPLAY_SETTINGS_LIST: + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_VIDEO_FONT_ENABLE, + PARSE_ONLY_BOOL, false); + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_VIDEO_FONT_PATH, + PARSE_ONLY_PATH, false); + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_VIDEO_FONT_SIZE, + PARSE_ONLY_FLOAT, false); + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_VIDEO_MESSAGE_POS_X, + PARSE_ONLY_FLOAT, false); + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_VIDEO_MESSAGE_POS_Y, + PARSE_ONLY_FLOAT, false); + + info->need_refresh = true; + info->need_push = true; + break; + case DISPLAYLIST_ONSCREEN_OVERLAY_SETTINGS_LIST: + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_INPUT_OVERLAY_ENABLE, + PARSE_ONLY_BOOL, false); + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_OVERLAY_AUTOLOAD_PREFERRED, + PARSE_ONLY_BOOL, false); + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_INPUT_OVERLAY_HIDE_IN_MENU, + PARSE_ONLY_BOOL, false); + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_INPUT_OSK_OVERLAY_ENABLE, + PARSE_ONLY_BOOL, false); + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_OVERLAY_PRESET, + PARSE_ONLY_PATH, false); + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_OVERLAY_OPACITY, + PARSE_ONLY_FLOAT, false); + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_OVERLAY_SCALE, + PARSE_ONLY_FLOAT, false); + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_KEYBOARD_OVERLAY_PRESET, + PARSE_ONLY_PATH, false); + info->need_refresh = true; info->need_push = true; break; @@ -4383,12 +4434,12 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) MENU_ENUM_LABEL_FRAME_THROTTLE_SETTINGS, PARSE_ACTION, false); ret = menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_REWIND_SETTINGS, PARSE_ACTION, false); - ret = menu_displaylist_parse_settings(menu, info, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_RECORDING_SETTINGS), PARSE_ONLY_GROUP, false); - ret = menu_displaylist_parse_settings(menu, info, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONSCREEN_DISPLAY_SETTINGS), PARSE_ONLY_GROUP, false); - ret = menu_displaylist_parse_settings(menu, info, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OVERLAY_SETTINGS), PARSE_ONLY_GROUP, false); + ret = menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_RECORDING_SETTINGS, PARSE_ACTION, false); + ret = menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS, PARSE_ACTION, false); + ret = menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_ONSCREEN_OVERLAY_SETTINGS, PARSE_ACTION, false); ret = menu_displaylist_parse_settings(menu, info, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MENU_SETTINGS), PARSE_ONLY_GROUP, false); ret = menu_displaylist_parse_settings(menu, info, diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index f3fd189c31..f8679f0919 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -111,6 +111,8 @@ enum menu_displaylist_ctl_state DISPLAYLIST_CORE_SETTINGS_LIST, DISPLAYLIST_INPUT_SETTINGS_LIST, DISPLAYLIST_INPUT_HOTKEY_BINDS_LIST, + DISPLAYLIST_ONSCREEN_OVERLAY_SETTINGS_LIST, + DISPLAYLIST_ONSCREEN_DISPLAY_SETTINGS_LIST, DISPLAYLIST_PLAYLIST_SETTINGS_LIST, DISPLAYLIST_ACCOUNTS_CHEEVOS_LIST, DISPLAYLIST_LOAD_CONTENT_LIST, diff --git a/menu/menu_setting.c b/menu/menu_setting.c index ef8685bfa8..e15a3a0635 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -4263,6 +4263,24 @@ static bool setting_append_list( parent_group); menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_REWIND_SETTINGS); + CONFIG_ACTION( + list, list_info, + msg_hash_to_str(MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONSCREEN_DISPLAY_SETTINGS), + &group_info, + &subgroup_info, + parent_group); + menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS); + + CONFIG_ACTION( + list, list_info, + msg_hash_to_str(MENU_ENUM_LABEL_ONSCREEN_OVERLAY_SETTINGS), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONSCREEN_OVERLAY_SETTINGS), + &group_info, + &subgroup_info, + parent_group); + menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_ONSCREEN_OVERLAY_SETTINGS); + CONFIG_ACTION( list, list_info, msg_hash_to_str(MENU_ENUM_LABEL_PLAYLIST_SETTINGS), @@ -6022,7 +6040,7 @@ static bool setting_append_list( msg_hash_to_str(MENU_ENUM_LABEL_VALUE_RECORDING_SETTINGS), parent_group); - parent_group = msg_hash_to_str(MENU_ENUM_LABEL_SETTINGS); + parent_group = msg_hash_to_str(MENU_ENUM_LABEL_RECORDING_SETTINGS); START_SUB_GROUP(list, list_info, "State", &group_info, &subgroup_info, parent_group); @@ -6229,7 +6247,7 @@ static bool setting_append_list( msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONSCREEN_DISPLAY_SETTINGS), parent_group); - parent_group = msg_hash_to_str(MENU_ENUM_LABEL_SETTINGS); + parent_group = msg_hash_to_str(MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS); START_SUB_GROUP(list, list_info, "Messages", &group_info, @@ -6321,7 +6339,7 @@ static bool setting_append_list( msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OVERLAY_SETTINGS), parent_group); - parent_group = msg_hash_to_str(MENU_ENUM_LABEL_SETTINGS); + parent_group = msg_hash_to_str(MENU_ENUM_LABEL_OVERLAY_SETTINGS); START_SUB_GROUP(list, list_info, "State", &group_info, &subgroup_info, parent_group); diff --git a/msg_hash.h b/msg_hash.h index 9f12f0704a..ea0c66b5c8 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -690,6 +690,8 @@ enum msg_hash_enums MENU_ENUM_LABEL_DEFERRED_SAVING_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_FRAME_THROTTLE_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_REWIND_SETTINGS_LIST, + MENU_ENUM_LABEL_DEFERRED_ONSCREEN_DISPLAY_SETTINGS_LIST, + MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_LOGGING_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_AUDIO_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_CORE_SETTINGS_LIST, @@ -1384,6 +1386,8 @@ enum msg_hash_enums MENU_ENUM_LABEL_VALUE_SAVE_NEW_CONFIG, MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS, MENU_ENUM_LABEL_VALUE_ONSCREEN_DISPLAY_SETTINGS, + MENU_ENUM_LABEL_ONSCREEN_OVERLAY_SETTINGS, + MENU_ENUM_LABEL_VALUE_ONSCREEN_OVERLAY_SETTINGS, MENU_ENUM_LABEL_VALUE_CHEAT_APPLY_CHANGES, MENU_ENUM_LABEL_CHEAT_APPLY_CHANGES, MENU_ENUM_LABEL_CUSTOM_BIND,