Rewrite DISPLAYLIST_AUDIO_SETTINGS_LIST

This commit is contained in:
twinaphex 2021-07-28 17:36:35 +02:00
parent 8e9587f451
commit 09d496b534
1 changed files with 49 additions and 54 deletions

View File

@ -5891,63 +5891,58 @@ unsigned menu_displaylist_build_list(
count++; count++;
break; break;
case DISPLAYLIST_AUDIO_SETTINGS_LIST: case DISPLAYLIST_AUDIO_SETTINGS_LIST:
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list, {
MENU_ENUM_LABEL_AUDIO_OUTPUT_SETTINGS, bool audio_mute_enable = *audio_get_bool_ptr(AUDIO_ACTION_MUTE_ENABLE);
PARSE_ACTION, false) == 0) bool audio_mixer_mute_enable= *audio_get_bool_ptr(AUDIO_ACTION_MIXER_MUTE_ENABLE);
count++; menu_displaylist_build_info_selective_t build_list[] = {
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list, {MENU_ENUM_LABEL_AUDIO_OUTPUT_SETTINGS, PARSE_ACTION, true },
MENU_ENUM_LABEL_AUDIO_RESAMPLER_SETTINGS, {MENU_ENUM_LABEL_AUDIO_RESAMPLER_SETTINGS, PARSE_ACTION, true },
PARSE_ACTION, false) == 0) {MENU_ENUM_LABEL_AUDIO_SYNCHRONIZATION_SETTINGS, PARSE_ACTION, true },
count++; {MENU_ENUM_LABEL_MIDI_SETTINGS, PARSE_ACTION, true },
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list, {MENU_ENUM_LABEL_AUDIO_MIXER_SETTINGS, PARSE_ACTION, false },
MENU_ENUM_LABEL_AUDIO_SYNCHRONIZATION_SETTINGS, {MENU_ENUM_LABEL_MENU_SOUNDS, PARSE_ACTION, true },
PARSE_ACTION, false) == 0) {MENU_ENUM_LABEL_AUDIO_MUTE, PARSE_ONLY_BOOL, true },
count++; {MENU_ENUM_LABEL_AUDIO_MIXER_MUTE, PARSE_ONLY_BOOL, true },
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list, {MENU_ENUM_LABEL_AUDIO_FASTFORWARD_MUTE, PARSE_ONLY_BOOL, true },
MENU_ENUM_LABEL_MIDI_SETTINGS, {MENU_ENUM_LABEL_AUDIO_VOLUME, PARSE_ONLY_FLOAT, false },
PARSE_ACTION, false) == 0) {MENU_ENUM_LABEL_AUDIO_MIXER_VOLUME, PARSE_ONLY_FLOAT, false },
count++; {MENU_ENUM_LABEL_SYSTEM_BGM_ENABLE, PARSE_ONLY_BOOL, true },
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list, #ifdef HAVE_DSP_FILTER
MENU_ENUM_LABEL_AUDIO_MIXER_SETTINGS, {MENU_ENUM_LABEL_AUDIO_DSP_PLUGIN, PARSE_ONLY_PATH, true },
PARSE_ACTION, false) == 0) #endif
count++; };
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list,
MENU_ENUM_LABEL_MENU_SOUNDS,
PARSE_ACTION, false) == 0)
count++;
/* Volume */ for (i = 0; i < ARRAY_SIZE(build_list); i++)
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list, {
MENU_ENUM_LABEL_AUDIO_MUTE, switch (build_list[i].enum_idx)
PARSE_ONLY_BOOL, false) == 0) {
count++; case MENU_ENUM_LABEL_AUDIO_VOLUME:
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list, if (!audio_mute_enable)
MENU_ENUM_LABEL_AUDIO_MIXER_MUTE, build_list[i].checked = true;
PARSE_ONLY_BOOL, false) == 0) break;
count++; case MENU_ENUM_LABEL_AUDIO_MIXER_VOLUME:
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list, case MENU_ENUM_LABEL_AUDIO_MIXER_SETTINGS:
MENU_ENUM_LABEL_AUDIO_FASTFORWARD_MUTE, if (!audio_mixer_mute_enable)
PARSE_ONLY_BOOL, false) == 0) build_list[i].checked = true;
count++; break;
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list, default:
MENU_ENUM_LABEL_AUDIO_VOLUME, break;
PARSE_ONLY_FLOAT, false) == 0) }
count++; }
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list,
MENU_ENUM_LABEL_AUDIO_MIXER_VOLUME, for (i = 0; i < ARRAY_SIZE(build_list); i++)
PARSE_ONLY_FLOAT, false) == 0) {
count++; if (!build_list[i].checked && !include_everything)
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list, continue;
MENU_ENUM_LABEL_SYSTEM_BGM_ENABLE,
PARSE_ONLY_BOOL, false) == 0) if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list,
count++; build_list[i].enum_idx, build_list[i].parse_type,
false) == 0)
count++;
}
}
#ifdef HAVE_DSP_FILTER #ifdef HAVE_DSP_FILTER
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list,
MENU_ENUM_LABEL_AUDIO_DSP_PLUGIN,
PARSE_ONLY_PATH, false) == 0)
count++;
if (!string_is_empty(settings->paths.path_audio_dsp_plugin)) if (!string_is_empty(settings->paths.path_audio_dsp_plugin))
if (menu_entries_append_enum(list, if (menu_entries_append_enum(list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_AUDIO_DSP_PLUGIN_REMOVE), msg_hash_to_str(MENU_ENUM_LABEL_VALUE_AUDIO_DSP_PLUGIN_REMOVE),