From 23ce202d380743eddd2a1693b21d67184ab7b224 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Fri, 20 Dec 2019 02:16:11 +0100 Subject: [PATCH] (Menu) Add Audio -> Resampler settings --- intl/msg_hash_lbl.h | 4 +++ intl/msg_hash_us.h | 8 ++++++ menu/cbs/menu_cbs_deferred_push.c | 5 ++++ menu/cbs/menu_cbs_ok.c | 7 +++++ menu/cbs/menu_cbs_sublabel.c | 4 +++ menu/cbs/menu_cbs_title.c | 2 ++ menu/menu_cbs.h | 1 + menu/menu_displaylist.c | 44 ++++++++++++++++++++----------- menu/menu_displaylist.h | 1 + menu/menu_setting.c | 8 ++++++ msg_hash.h | 2 ++ 11 files changed, 71 insertions(+), 15 deletions(-) diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 6d6f233d0f..4c14d554d6 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -60,6 +60,8 @@ MSG_HASH(MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER, "audio_resampler_driver") MSG_HASH(MENU_ENUM_LABEL_AUDIO_SETTINGS, "audio_settings") +MSG_HASH(MENU_ENUM_LABEL_AUDIO_RESAMPLER_SETTINGS, + "audio_resampler_settings") MSG_HASH(MENU_ENUM_LABEL_AUDIO_SYNCHRONIZATION_SETTINGS, "audio_synchronization_settings") MSG_HASH(MENU_ENUM_LABEL_AUDIO_OUTPUT_SETTINGS, @@ -327,6 +329,8 @@ MSG_HASH(MENU_ENUM_LABEL_DEFERRED_ARCHIVE_OPEN_DETECT_CORE, "deferred_archive_open_detect_core") MSG_HASH(MENU_ENUM_LABEL_DEFERRED_AUDIO_SETTINGS_LIST, "deferred_audio_settings_list") +MSG_HASH(MENU_ENUM_LABEL_DEFERRED_AUDIO_RESAMPLER_SETTINGS_LIST, + "deferred_audio_resampler_settings_list") MSG_HASH(MENU_ENUM_LABEL_DEFERRED_AUDIO_MIXER_SETTINGS_LIST, "deferred_audio_mixer_settings_list") MSG_HASH(MENU_ENUM_LABEL_DEFERRED_MENU_SOUNDS_LIST, diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index 5264fadb04..18fb3c7cb7 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -10252,3 +10252,11 @@ MSG_HASH( MENU_ENUM_SUBLABEL_AUDIO_SYNCHRONIZATION_SETTINGS, "Change audio synchronization settings." ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_AUDIO_RESAMPLER_SETTINGS, + "Resampler" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_AUDIO_RESAMPLER_SETTINGS, + "Change audio resampler settings." + ) diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index 8fbce3dac0..64ed68fb03 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -184,6 +184,7 @@ generic_deferred_push(deferred_push_privacy_settings_list, DISPLAYLIST_ generic_deferred_push(deferred_push_midi_settings_list, DISPLAYLIST_MIDI_SETTINGS_LIST) generic_deferred_push(deferred_push_audio_settings_list, DISPLAYLIST_AUDIO_SETTINGS_LIST) generic_deferred_push(deferred_push_audio_output_settings_list, DISPLAYLIST_AUDIO_OUTPUT_SETTINGS_LIST) +generic_deferred_push(deferred_push_audio_resampler_settings_list, DISPLAYLIST_AUDIO_RESAMPLER_SETTINGS_LIST) 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) @@ -739,6 +740,7 @@ static int menu_cbs_init_bind_deferred_push_compare_label( {MENU_ENUM_LABEL_DEFERRED_AUDIO_SETTINGS_LIST, deferred_push_audio_settings_list}, {MENU_ENUM_LABEL_DEFERRED_AUDIO_SYNCHRONIZATION_SETTINGS_LIST, deferred_push_audio_synchronization_settings_list}, {MENU_ENUM_LABEL_DEFERRED_AUDIO_OUTPUT_SETTINGS_LIST, deferred_push_audio_output_settings_list}, + {MENU_ENUM_LABEL_DEFERRED_AUDIO_RESAMPLER_SETTINGS_LIST, deferred_push_audio_resampler_settings_list}, {MENU_ENUM_LABEL_DEFERRED_AUDIO_MIXER_SETTINGS_LIST, deferred_push_audio_mixer_settings_list}, {MENU_ENUM_LABEL_DEFERRED_LATENCY_SETTINGS_LIST, deferred_push_latency_settings_list}, #ifdef HAVE_LAKKA_SWITCH @@ -1122,6 +1124,9 @@ static int menu_cbs_init_bind_deferred_push_compare_label( case MENU_ENUM_LABEL_DEFERRED_AUDIO_OUTPUT_SETTINGS_LIST: BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_audio_output_settings_list); break; + case MENU_ENUM_LABEL_DEFERRED_AUDIO_RESAMPLER_SETTINGS_LIST: + BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_audio_resampler_settings_list); + break; case MENU_ENUM_LABEL_DEFERRED_AUDIO_SYNCHRONIZATION_SETTINGS_LIST: BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_audio_synchronization_settings_list); break; diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index cc152262fb..7f222f83b9 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -288,6 +288,8 @@ static enum msg_hash_enums action_ok_dl_to_enum(unsigned lbl) return MENU_ENUM_LABEL_DEFERRED_AUDIO_SETTINGS_LIST; case ACTION_OK_DL_AUDIO_OUTPUT_SETTINGS_LIST: return MENU_ENUM_LABEL_DEFERRED_AUDIO_OUTPUT_SETTINGS_LIST; + case ACTION_OK_DL_AUDIO_RESAMPLER_SETTINGS_LIST: + return MENU_ENUM_LABEL_DEFERRED_AUDIO_RESAMPLER_SETTINGS_LIST; case ACTION_OK_DL_AUDIO_SYNCHRONIZATION_SETTINGS_LIST: return MENU_ENUM_LABEL_DEFERRED_AUDIO_SYNCHRONIZATION_SETTINGS_LIST; case ACTION_OK_DL_AUDIO_MIXER_SETTINGS_LIST: @@ -1068,6 +1070,7 @@ int generic_action_ok_displaylist_push(const char *path, case ACTION_OK_DL_AUDIO_SETTINGS_LIST: case ACTION_OK_DL_AUDIO_SYNCHRONIZATION_SETTINGS_LIST: case ACTION_OK_DL_AUDIO_OUTPUT_SETTINGS_LIST: + case ACTION_OK_DL_AUDIO_RESAMPLER_SETTINGS_LIST: case ACTION_OK_DL_AUDIO_MIXER_SETTINGS_LIST: case ACTION_OK_DL_INPUT_HOTKEY_BINDS_LIST: case ACTION_OK_DL_RECORDING_SETTINGS_LIST: @@ -4757,6 +4760,7 @@ default_action_ok_func(action_ok_push_configuration_settings_list, ACTION_OK_DL_ default_action_ok_func(action_ok_push_core_settings_list, ACTION_OK_DL_CORE_SETTINGS_LIST) default_action_ok_func(action_ok_push_audio_settings_list, ACTION_OK_DL_AUDIO_SETTINGS_LIST) default_action_ok_func(action_ok_push_audio_output_settings_list, ACTION_OK_DL_AUDIO_OUTPUT_SETTINGS_LIST) +default_action_ok_func(action_ok_push_audio_resampler_settings_list, ACTION_OK_DL_AUDIO_RESAMPLER_SETTINGS_LIST) default_action_ok_func(action_ok_push_audio_synchronization_settings_list, ACTION_OK_DL_AUDIO_SYNCHRONIZATION_SETTINGS_LIST) #ifdef HAVE_AUDIOMIXER default_action_ok_func(action_ok_push_audio_mixer_settings_list, ACTION_OK_DL_AUDIO_MIXER_SETTINGS_LIST) @@ -6436,6 +6440,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_AUDIO_OUTPUT_SETTINGS: BIND_ACTION_OK(cbs, action_ok_push_audio_output_settings_list); break; + case MENU_ENUM_LABEL_AUDIO_RESAMPLER_SETTINGS: + BIND_ACTION_OK(cbs, action_ok_push_audio_resampler_settings_list); + break; case MENU_ENUM_LABEL_AUDIO_MIXER_SETTINGS: #ifdef HAVE_AUDIOMIXER BIND_ACTION_OK(cbs, action_ok_push_audio_mixer_settings_list); diff --git a/menu/cbs/menu_cbs_sublabel.c b/menu/cbs/menu_cbs_sublabel.c index 48193d9dec..6f3f66d9df 100644 --- a/menu/cbs/menu_cbs_sublabel.c +++ b/menu/cbs/menu_cbs_sublabel.c @@ -180,6 +180,7 @@ default_sublabel_macro(action_bind_sublabel_crt_switchres_settings_list, default_sublabel_macro(action_bind_sublabel_suspend_screensaver_enable, MENU_ENUM_SUBLABEL_SUSPEND_SCREENSAVER_ENABLE) default_sublabel_macro(action_bind_sublabel_video_window_scale, MENU_ENUM_SUBLABEL_VIDEO_WINDOW_SCALE) default_sublabel_macro(action_bind_sublabel_audio_settings_list, MENU_ENUM_SUBLABEL_AUDIO_SETTINGS) +default_sublabel_macro(action_bind_sublabel_audio_resampler_settings_list, MENU_ENUM_SUBLABEL_AUDIO_RESAMPLER_SETTINGS) default_sublabel_macro(action_bind_sublabel_audio_output_settings_list, MENU_ENUM_SUBLABEL_AUDIO_OUTPUT_SETTINGS) default_sublabel_macro(action_bind_sublabel_audio_synchronization_settings_list, MENU_ENUM_SUBLABEL_AUDIO_SYNCHRONIZATION_SETTINGS) #ifdef HAVE_AUDIOMIXER @@ -2719,6 +2720,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_AUDIO_SETTINGS: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_audio_settings_list); break; + case MENU_ENUM_LABEL_AUDIO_RESAMPLER_SETTINGS: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_audio_resampler_settings_list); + break; case MENU_ENUM_LABEL_AUDIO_SYNCHRONIZATION_SETTINGS: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_audio_synchronization_settings_list); break; diff --git a/menu/cbs/menu_cbs_title.c b/menu/cbs/menu_cbs_title.c index 68d493b325..a0f15247ee 100644 --- a/menu/cbs/menu_cbs_title.c +++ b/menu/cbs/menu_cbs_title.c @@ -374,6 +374,7 @@ default_title_macro(action_get_privacy_settings_list, MENU_ENUM_LABEL_ default_title_macro(action_get_midi_settings_list, MENU_ENUM_LABEL_VALUE_MIDI_SETTINGS) default_title_macro(action_get_updater_settings_list, MENU_ENUM_LABEL_VALUE_UPDATER_SETTINGS) default_title_macro(action_get_audio_settings_list, MENU_ENUM_LABEL_VALUE_AUDIO_SETTINGS) +default_title_macro(action_get_audio_resampler_settings_list, MENU_ENUM_LABEL_VALUE_AUDIO_RESAMPLER_SETTINGS) default_title_macro(action_get_audio_output_settings_list, MENU_ENUM_LABEL_VALUE_AUDIO_OUTPUT_SETTINGS) default_title_macro(action_get_audio_synchronization_settings_list, MENU_ENUM_LABEL_VALUE_AUDIO_SYNCHRONIZATION_SETTINGS) #ifdef HAVE_AUDIOMIXER @@ -663,6 +664,7 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs, {MENU_ENUM_LABEL_DEFERRED_VIDEO_LIST, action_get_title_goto_video}, {MENU_ENUM_LABEL_DEFERRED_DRIVER_SETTINGS_LIST, action_get_driver_settings_list}, {MENU_ENUM_LABEL_DEFERRED_AUDIO_SETTINGS_LIST, action_get_audio_settings_list}, + {MENU_ENUM_LABEL_DEFERRED_AUDIO_RESAMPLER_SETTINGS_LIST, action_get_audio_resampler_settings_list}, {MENU_ENUM_LABEL_DEFERRED_AUDIO_OUTPUT_SETTINGS_LIST, action_get_audio_output_settings_list}, {MENU_ENUM_LABEL_DEFERRED_AUDIO_SYNCHRONIZATION_SETTINGS_LIST, action_get_audio_synchronization_settings_list}, #ifdef HAVE_AUDIOMIXER diff --git a/menu/menu_cbs.h b/menu/menu_cbs.h index 5154489159..4893c2650d 100644 --- a/menu/menu_cbs.h +++ b/menu/menu_cbs.h @@ -90,6 +90,7 @@ enum ACTION_OK_DL_CRT_SWITCHRES_SETTINGS_LIST, ACTION_OK_DL_AUDIO_SETTINGS_LIST, ACTION_OK_DL_AUDIO_OUTPUT_SETTINGS_LIST, + ACTION_OK_DL_AUDIO_RESAMPLER_SETTINGS_LIST, ACTION_OK_DL_AUDIO_SYNCHRONIZATION_SETTINGS_LIST, ACTION_OK_DL_AUDIO_MIXER_SETTINGS_LIST, ACTION_OK_DL_LATENCY_SETTINGS_LIST, diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index bf37b679bd..36e3568b28 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -4044,6 +4044,26 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct 0, 0, 0)) count++; break; + case DISPLAYLIST_AUDIO_RESAMPLER_SETTINGS_LIST: + if (menu_displaylist_parse_settings_enum(list, + MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER, + PARSE_ONLY_STRING_OPTIONS, false) == 0) + count++; + { + settings_t *settings = config_get_ptr(); + if (string_is_not_equal(settings->arrays.audio_resampler, "null")) + { + if (menu_displaylist_parse_settings_enum(list, + MENU_ENUM_LABEL_AUDIO_RESAMPLER_QUALITY, + PARSE_ONLY_UINT, false) == 0) + count++; + } + } + if (menu_displaylist_parse_settings_enum(list, + MENU_ENUM_LABEL_AUDIO_OUTPUT_RATE, + PARSE_ONLY_UINT, false) == 0) + count++; + break; case DISPLAYLIST_AUDIO_OUTPUT_SETTINGS_LIST: if (menu_displaylist_parse_settings_enum(list, MENU_ENUM_LABEL_AUDIO_ENABLE, @@ -4093,6 +4113,10 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct MENU_ENUM_LABEL_AUDIO_OUTPUT_SETTINGS, PARSE_ACTION, false) == 0) count++; + if (menu_displaylist_parse_settings_enum(list, + MENU_ENUM_LABEL_AUDIO_RESAMPLER_SETTINGS, + PARSE_ACTION, false) == 0) + count++; if (menu_displaylist_parse_settings_enum(list, MENU_ENUM_LABEL_AUDIO_SYNCHRONIZATION_SETTINGS, PARSE_ACTION, false) == 0) @@ -4132,21 +4156,6 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct PARSE_ONLY_BOOL, false) == 0) count++; - /* Resampler */ - { - settings_t *settings = config_get_ptr(); - if (string_is_not_equal(settings->arrays.audio_resampler, "null")) - { - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_AUDIO_RESAMPLER_QUALITY, - PARSE_ONLY_UINT, false) == 0) - count++; - } - } - if (menu_displaylist_parse_settings_enum(list, - MENU_ENUM_LABEL_AUDIO_OUTPUT_RATE, - PARSE_ONLY_UINT, false) == 0) - count++; if (menu_displaylist_parse_settings_enum(list, MENU_ENUM_LABEL_AUDIO_DSP_PLUGIN, PARSE_ONLY_PATH, false) == 0) @@ -5564,6 +5573,10 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct count++; break; case DISPLAYLIST_VIDEO_OUTPUT_SETTINGS_LIST: + if (menu_displaylist_parse_settings_enum(list, + MENU_ENUM_LABEL_VIDEO_DRIVER, + PARSE_ONLY_STRING_OPTIONS, false) == 0) + count++; #if defined(GEKKO) || defined(__CELLOS_LV2__) if (true) #else @@ -8292,6 +8305,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, case DISPLAYLIST_OPTIONS_REMAPPINGS: case DISPLAYLIST_VIDEO_SETTINGS_LIST: case DISPLAYLIST_AUDIO_SETTINGS_LIST: + case DISPLAYLIST_AUDIO_RESAMPLER_SETTINGS_LIST: case DISPLAYLIST_AUDIO_OUTPUT_SETTINGS_LIST: case DISPLAYLIST_AUDIO_SYNCHRONIZATION_SETTINGS_LIST: case DISPLAYLIST_HELP_SCREEN_LIST: diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index dfd9045bd2..abbdc970f9 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -151,6 +151,7 @@ enum menu_displaylist_ctl_state DISPLAYLIST_CHEAT_DETAILS_SETTINGS_LIST, DISPLAYLIST_CHEAT_SEARCH_SETTINGS_LIST, DISPLAYLIST_AUDIO_SETTINGS_LIST, + DISPLAYLIST_AUDIO_RESAMPLER_SETTINGS_LIST, DISPLAYLIST_AUDIO_OUTPUT_SETTINGS_LIST, DISPLAYLIST_AUDIO_SYNCHRONIZATION_SETTINGS_LIST, DISPLAYLIST_AUDIO_MIXER_SETTINGS_LIST, diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 3bdef2d57d..56d0ee4a0b 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -8016,6 +8016,14 @@ static bool setting_append_list( &subgroup_info, parent_group); + CONFIG_ACTION( + list, list_info, + MENU_ENUM_LABEL_AUDIO_RESAMPLER_SETTINGS, + MENU_ENUM_LABEL_VALUE_AUDIO_RESAMPLER_SETTINGS, + &group_info, + &subgroup_info, + parent_group); + CONFIG_ACTION( list, list_info, MENU_ENUM_LABEL_AUDIO_OUTPUT_SETTINGS, diff --git a/msg_hash.h b/msg_hash.h index a39eb35297..7d655ff6c7 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -1347,6 +1347,7 @@ enum msg_hash_enums MENU_ENUM_LABEL_DEFERRED_MIDI_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_LOGGING_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_AUDIO_SETTINGS_LIST, + MENU_ENUM_LABEL_DEFERRED_AUDIO_RESAMPLER_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_AUDIO_OUTPUT_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_AUDIO_SYNCHRONIZATION_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_AUDIO_MIXER_SETTINGS_LIST, @@ -1943,6 +1944,7 @@ enum msg_hash_enums MENU_LABEL(VIDEO_SCALING_SETTINGS), MENU_LABEL(CRT_SWITCHRES_SETTINGS), MENU_LABEL(AUDIO_SETTINGS), + MENU_LABEL(AUDIO_RESAMPLER_SETTINGS), MENU_LABEL(AUDIO_OUTPUT_SETTINGS), MENU_LABEL(AUDIO_SYNCHRONIZATION_SETTINGS), MENU_LABEL(AUDIO_MIXER_SETTINGS),