diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 4c14d554d6..28e1be3a62 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -365,6 +365,8 @@ MSG_HASH(MENU_ENUM_LABEL_DEFERRED_INPUT_HOTKEY_BINDS_LIST, "deferred_input_hotkey_binds") MSG_HASH(MENU_ENUM_LABEL_DEFERRED_INPUT_SETTINGS_LIST, "deferred_input_settings_list") +MSG_HASH(MENU_ENUM_LABEL_DEFERRED_INPUT_MENU_SETTINGS_LIST, + "deferred_input_menu_settings_list") MSG_HASH(MENU_ENUM_LABEL_DEFERRED_LATENCY_SETTINGS_LIST, "deferred_latency_settings_list") MSG_HASH(MENU_ENUM_LABEL_DEFERRED_AI_SERVICE_SETTINGS_LIST, @@ -2171,3 +2173,5 @@ MSG_HASH(MENU_ENUM_LABEL_DEFERRED_AUDIO_OUTPUT_SETTINGS_LIST, "deferred_audio_output_settings_list") MSG_HASH(MENU_ENUM_LABEL_DEFERRED_AUDIO_SYNCHRONIZATION_SETTINGS_LIST, "deferred_audio_synchronization_settings_list") +MSG_HASH(MENU_ENUM_LABEL_INPUT_MENU_SETTINGS, + "input_menu_settings") diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index 18fb3c7cb7..ac4502593b 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -10260,3 +10260,11 @@ MSG_HASH( MENU_ENUM_SUBLABEL_AUDIO_RESAMPLER_SETTINGS, "Change audio resampler settings." ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_INPUT_MENU_SETTINGS, + "Menu Controls" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_INPUT_MENU_SETTINGS, + "Change menu control settings." + ) diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index 64ed68fb03..2f45fc1ac8 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -188,6 +188,7 @@ generic_deferred_push(deferred_push_audio_resampler_settings_list, DI generic_deferred_push(deferred_push_audio_synchronization_settings_list, DISPLAYLIST_AUDIO_SYNCHRONIZATION_SETTINGS_LIST) generic_deferred_push(deferred_push_audio_mixer_settings_list, DISPLAYLIST_AUDIO_MIXER_SETTINGS_LIST) generic_deferred_push(deferred_push_input_settings_list, DISPLAYLIST_INPUT_SETTINGS_LIST) +generic_deferred_push(deferred_push_input_menu_settings_list, DISPLAYLIST_INPUT_MENU_SETTINGS_LIST) generic_deferred_push(deferred_push_ai_service_settings_list, DISPLAYLIST_AI_SERVICE_SETTINGS_LIST) generic_deferred_push(deferred_push_accessibility_settings_list, DISPLAYLIST_ACCESSIBILITY_SETTINGS_LIST) generic_deferred_push(deferred_push_latency_settings_list, DISPLAYLIST_LATENCY_SETTINGS_LIST) @@ -722,6 +723,7 @@ static int menu_cbs_init_bind_deferred_push_compare_label( {MENU_ENUM_LABEL_DEFERRED_IMAGES_LIST, deferred_image_history_list}, {MENU_ENUM_LABEL_DEFERRED_VIDEO_LIST, deferred_video_history_list}, {MENU_ENUM_LABEL_DEFERRED_INPUT_SETTINGS_LIST, deferred_push_input_settings_list}, + {MENU_ENUM_LABEL_DEFERRED_INPUT_MENU_SETTINGS_LIST, deferred_push_input_menu_settings_list}, {MENU_ENUM_LABEL_DEFERRED_AI_SERVICE_SETTINGS_LIST, deferred_push_ai_service_settings_list}, {MENU_ENUM_LABEL_DEFERRED_ACCESSIBILITY_SETTINGS_LIST, deferred_push_accessibility_settings_list}, {MENU_ENUM_LABEL_CORE_INFORMATION, deferred_push_core_information}, diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index 7f222f83b9..3033ee800a 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -194,6 +194,8 @@ static enum msg_hash_enums action_ok_dl_to_enum(unsigned lbl) return MENU_ENUM_LABEL_DEFERRED_ACCOUNTS_LIST; case ACTION_OK_DL_INPUT_SETTINGS_LIST: return MENU_ENUM_LABEL_DEFERRED_INPUT_SETTINGS_LIST; + case ACTION_OK_DL_INPUT_MENU_SETTINGS_LIST: + return MENU_ENUM_LABEL_DEFERRED_INPUT_MENU_SETTINGS_LIST; case ACTION_OK_DL_LATENCY_SETTINGS_LIST: return MENU_ENUM_LABEL_DEFERRED_LATENCY_SETTINGS_LIST; case ACTION_OK_DL_DRIVER_SETTINGS_LIST: @@ -1023,6 +1025,7 @@ int generic_action_ok_displaylist_push(const char *path, break; case ACTION_OK_DL_ACCOUNTS_LIST: case ACTION_OK_DL_INPUT_SETTINGS_LIST: + case ACTION_OK_DL_INPUT_MENU_SETTINGS_LIST: case ACTION_OK_DL_LATENCY_SETTINGS_LIST: case ACTION_OK_DL_DRIVER_SETTINGS_LIST: case ACTION_OK_DL_CORE_SETTINGS_LIST: @@ -4768,6 +4771,7 @@ default_action_ok_func(action_ok_push_audio_mixer_settings_list, ACTION_OK_DL_AU default_action_ok_func(action_ok_push_ai_service_settings_list, ACTION_OK_DL_AI_SERVICE_SETTINGS_LIST) default_action_ok_func(action_ok_push_accessibility_settings_list, ACTION_OK_DL_ACCESSIBILITY_SETTINGS_LIST) default_action_ok_func(action_ok_push_input_settings_list, ACTION_OK_DL_INPUT_SETTINGS_LIST) +default_action_ok_func(action_ok_push_input_menu_settings_list, ACTION_OK_DL_INPUT_MENU_SETTINGS_LIST) default_action_ok_func(action_ok_push_latency_settings_list, ACTION_OK_DL_LATENCY_SETTINGS_LIST) default_action_ok_func(action_ok_push_recording_settings_list, ACTION_OK_DL_RECORDING_SETTINGS_LIST) default_action_ok_func(action_ok_push_playlist_settings_list, ACTION_OK_DL_PLAYLIST_SETTINGS_LIST) @@ -6407,6 +6411,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_INPUT_SETTINGS: BIND_ACTION_OK(cbs, action_ok_push_input_settings_list); break; + case MENU_ENUM_LABEL_INPUT_MENU_SETTINGS: + BIND_ACTION_OK(cbs, action_ok_push_input_menu_settings_list); + break; case MENU_ENUM_LABEL_DRIVER_SETTINGS: BIND_ACTION_OK(cbs, action_ok_push_driver_settings_list); break; diff --git a/menu/cbs/menu_cbs_sublabel.c b/menu/cbs/menu_cbs_sublabel.c index 9a128bb439..9223f6e9b4 100644 --- a/menu/cbs/menu_cbs_sublabel.c +++ b/menu/cbs/menu_cbs_sublabel.c @@ -188,6 +188,7 @@ default_sublabel_macro(action_bind_sublabel_audio_synchronization_settings_list, default_sublabel_macro(action_bind_sublabel_mixer_settings_list, MENU_ENUM_SUBLABEL_AUDIO_MIXER_SETTINGS) #endif default_sublabel_macro(action_bind_sublabel_input_settings_list, MENU_ENUM_SUBLABEL_INPUT_SETTINGS) +default_sublabel_macro(action_bind_sublabel_input_menu_settings_list, MENU_ENUM_SUBLABEL_INPUT_MENU_SETTINGS) default_sublabel_macro(action_bind_sublabel_latency_settings_list, MENU_ENUM_SUBLABEL_LATENCY_SETTINGS) default_sublabel_macro(action_bind_sublabel_wifi_settings_list, MENU_ENUM_SUBLABEL_WIFI_SETTINGS) default_sublabel_macro(action_bind_sublabel_netplay_lan_scan_settings_list,MENU_ENUM_SUBLABEL_NETPLAY_LAN_SCAN_SETTINGS) @@ -2879,6 +2880,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_INPUT_SETTINGS: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_input_settings_list); break; + case MENU_ENUM_LABEL_INPUT_MENU_SETTINGS: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_input_menu_settings_list); + break; case MENU_ENUM_LABEL_WIFI_SETTINGS: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_wifi_settings_list); break; diff --git a/menu/cbs/menu_cbs_title.c b/menu/cbs/menu_cbs_title.c index a0f15247ee..464cd9c3bb 100644 --- a/menu/cbs/menu_cbs_title.c +++ b/menu/cbs/menu_cbs_title.c @@ -334,6 +334,7 @@ default_title_macro(action_get_video_windowed_mode_settings_list, MENU_ENUM_ default_title_macro(action_get_video_scaling_settings_list, MENU_ENUM_LABEL_VALUE_VIDEO_SCALING_SETTINGS) default_title_macro(action_get_video_output_settings_list, MENU_ENUM_LABEL_VALUE_VIDEO_OUTPUT_SETTINGS) default_title_macro(action_get_video_synchronization_settings_list, MENU_ENUM_LABEL_VALUE_VIDEO_SYNCHRONIZATION_SETTINGS) +default_title_macro(action_get_input_menu_settings_list, MENU_ENUM_LABEL_VALUE_INPUT_MENU_SETTINGS) default_title_macro(action_get_crt_switchres_settings_list, MENU_ENUM_LABEL_VALUE_CRT_SWITCHRES_SETTINGS) default_title_macro(action_get_configuration_settings_list, MENU_ENUM_LABEL_VALUE_CONFIGURATION_SETTINGS) default_title_macro(action_get_load_disc_list, MENU_ENUM_LABEL_VALUE_LOAD_DISC) @@ -683,6 +684,7 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs, {MENU_ENUM_LABEL_DEFERRED_VIDEO_SCALING_SETTINGS_LIST, action_get_video_scaling_settings_list}, {MENU_ENUM_LABEL_DEFERRED_VIDEO_OUTPUT_SETTINGS_LIST, action_get_video_output_settings_list}, {MENU_ENUM_LABEL_DEFERRED_VIDEO_SYNCHRONIZATION_SETTINGS_LIST, action_get_video_synchronization_settings_list}, + {MENU_ENUM_LABEL_DEFERRED_INPUT_MENU_SETTINGS_LIST, action_get_input_menu_settings_list}, {MENU_ENUM_LABEL_DEFERRED_VIDEO_WINDOWED_MODE_SETTINGS_LIST, action_get_video_windowed_mode_settings_list}, {MENU_ENUM_LABEL_DEFERRED_VIDEO_FULLSCREEN_MODE_SETTINGS_LIST, action_get_video_fullscreen_mode_settings_list}, }; diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 94b0d34562..6cf1f5a7e4 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -7661,6 +7661,7 @@ static void materialui_list_insert( string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_AUDIO_MIXER_SETTINGS)) || string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_MENU_SOUNDS)) || string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_INPUT_SETTINGS)) || + string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_INPUT_MENU_SETTINGS)) || string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_LATENCY_SETTINGS)) || string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_INPUT_HOTKEY_BINDS)) || string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CORE_SETTINGS)) || diff --git a/menu/menu_cbs.h b/menu/menu_cbs.h index 4893c2650d..6e4e0982d8 100644 --- a/menu/menu_cbs.h +++ b/menu/menu_cbs.h @@ -80,6 +80,7 @@ enum ACTION_OK_DL_FILE_BROWSER_SELECT_FILE, ACTION_OK_DL_FILE_BROWSER_SELECT_DIR, ACTION_OK_DL_INPUT_SETTINGS_LIST, + ACTION_OK_DL_INPUT_MENU_SETTINGS_LIST, ACTION_OK_DL_DRIVER_SETTINGS_LIST, ACTION_OK_DL_VIDEO_SETTINGS_LIST, ACTION_OK_DL_VIDEO_FULLSCREEN_MODE_SETTINGS_LIST, diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 5f6d37afd1..49803b2020 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -4525,6 +4525,21 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct MENU_SETTING_ACTION, 0, 0)) count++; #endif + break; + case DISPLAYLIST_INPUT_MENU_SETTINGS_LIST: + if (menu_displaylist_parse_settings_enum(list, + MENU_ENUM_LABEL_INPUT_UNIFIED_MENU_CONTROLS, + PARSE_ONLY_BOOL, false) == 0) + count++; + if (menu_displaylist_parse_settings_enum(list, + MENU_ENUM_LABEL_MENU_INPUT_SWAP_OK_CANCEL, + PARSE_ONLY_BOOL, false) == 0) + count++; + if (menu_displaylist_parse_settings_enum(list, + MENU_ENUM_LABEL_INPUT_ALL_USERS_CONTROL_MENU, + PARSE_ONLY_BOOL, false) == 0) + count++; + break; case DISPLAYLIST_INPUT_SETTINGS_LIST: if (menu_displaylist_parse_settings_enum(list, @@ -4537,11 +4552,6 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct PARSE_ONLY_BOOL, false) == 0) count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_INPUT_UNIFIED_MENU_CONTROLS, - PARSE_ONLY_BOOL, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, MENU_ENUM_LABEL_VIBRATE_ON_KEYPRESS, PARSE_ONLY_BOOL, false) == 0) @@ -4570,14 +4580,6 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct MENU_ENUM_LABEL_INPUT_PREFER_FRONT_TOUCH, PARSE_ONLY_BOOL, false) == 0) count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_MENU_INPUT_SWAP_OK_CANCEL, - PARSE_ONLY_BOOL, false) == 0) - count++; - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_INPUT_ALL_USERS_CONTROL_MENU, - PARSE_ONLY_BOOL, false) == 0) - count++; if (menu_displaylist_parse_settings_enum(list, MENU_ENUM_LABEL_INPUT_REMAP_BINDS_ENABLE, PARSE_ONLY_BOOL, false) == 0) @@ -4632,6 +4634,10 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct MENU_ENUM_LABEL_INPUT_BIND_MODE, PARSE_ONLY_UINT, false) == 0) count++; + if (menu_displaylist_parse_settings_enum(list, + MENU_ENUM_LABEL_INPUT_MENU_SETTINGS, + PARSE_ACTION, false) == 0) + count++; if (menu_displaylist_parse_settings_enum(list, MENU_ENUM_LABEL_INPUT_HOTKEY_BINDS, PARSE_ACTION, false) == 0) @@ -8303,6 +8309,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, case DISPLAYLIST_MENU_SETTINGS_LIST: case DISPLAYLIST_ADD_CONTENT_LIST: case DISPLAYLIST_INPUT_SETTINGS_LIST: + case DISPLAYLIST_INPUT_MENU_SETTINGS_LIST: case DISPLAYLIST_FRAME_TIME_COUNTER_SETTINGS_LIST: case DISPLAYLIST_BROWSE_URL_LIST: case DISPLAYLIST_DISC_INFO: diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index abbdc970f9..3dc674dd8c 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -157,6 +157,7 @@ enum menu_displaylist_ctl_state DISPLAYLIST_AUDIO_MIXER_SETTINGS_LIST, DISPLAYLIST_CORE_SETTINGS_LIST, DISPLAYLIST_INPUT_SETTINGS_LIST, + DISPLAYLIST_INPUT_MENU_SETTINGS_LIST, DISPLAYLIST_LATENCY_SETTINGS_LIST, DISPLAYLIST_INPUT_HOTKEY_BINDS_LIST, DISPLAYLIST_ONSCREEN_OVERLAY_SETTINGS_LIST, diff --git a/menu/menu_setting.c b/menu/menu_setting.c index e5f24d2b43..09a99a99f3 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -11133,6 +11133,14 @@ static bool setting_append_list( menu_settings_list_current_add_range(list, list_info, 1, 0, 1, true, false); SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_ADVANCED); + CONFIG_ACTION( + list, list_info, + MENU_ENUM_LABEL_INPUT_MENU_SETTINGS, + MENU_ENUM_LABEL_VALUE_INPUT_MENU_SETTINGS, + &group_info, + &subgroup_info, + parent_group); + END_SUB_GROUP(list, list_info, parent_group); START_SUB_GROUP(list, list_info, "Binds", &group_info, &subgroup_info, parent_group); diff --git a/msg_hash.h b/msg_hash.h index 7d655ff6c7..61da1039c0 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -1302,6 +1302,7 @@ enum msg_hash_enums MENU_ENUM_LABEL_DEFERRED_PLAYLIST_MANAGER_LIST, MENU_ENUM_LABEL_DEFERRED_PLAYLIST_MANAGER_SETTINGS, MENU_ENUM_LABEL_DEFERRED_INPUT_SETTINGS_LIST, + MENU_ENUM_LABEL_DEFERRED_INPUT_MENU_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_LATENCY_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_DRIVER_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_VIDEO_SETTINGS_LIST, @@ -1770,6 +1771,7 @@ enum msg_hash_enums MENU_LABEL(PLAYLISTS_TAB), MENU_LABEL(MAIN_MENU), MENU_LABEL(INPUT_SETTINGS), + MENU_LABEL(INPUT_MENU_SETTINGS), MENU_LABEL(ACCESSIBILITY_SETTINGS), MENU_LABEL(ACCESSIBILITY_ENABLED), MENU_LABEL(ACCESSIBILITY_NARRATOR_SPEECH_SPEED),