(Menu) Add Audio -> output and Audio -> Synchronization

This commit is contained in:
twinaphex 2019-12-20 01:18:08 +01:00
parent 8779151fef
commit 94907678eb
11 changed files with 139 additions and 44 deletions

View File

@ -60,6 +60,10 @@ 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_SYNCHRONIZATION_SETTINGS,
"audio_synchronization_settings")
MSG_HASH(MENU_ENUM_LABEL_AUDIO_OUTPUT_SETTINGS,
"audio_output_settings")
MSG_HASH(MENU_ENUM_LABEL_AUDIO_SYNC,
"audio_sync")
MSG_HASH(MENU_ENUM_LABEL_AUDIO_VOLUME,
@ -2159,3 +2163,7 @@ MSG_HASH(MENU_ENUM_LABEL_ACCESSIBILITY_ENABLED,
"accessibility_enabled")
MSG_HASH(MENU_ENUM_LABEL_ACCESSIBILITY_NARRATOR_SPEECH_SPEED,
"accessibility_narrator_speech_speed")
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")

View File

@ -10236,3 +10236,19 @@ MSG_HASH(
MENU_ENUM_SUBLABEL_VIDEO_SYNCHRONIZATION_SETTINGS,
"Change video synchronization settings."
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_AUDIO_OUTPUT_SETTINGS,
"Output"
)
MSG_HASH(
MENU_ENUM_SUBLABEL_AUDIO_OUTPUT_SETTINGS,
"Change audio output settings."
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_AUDIO_SYNCHRONIZATION_SETTINGS,
"Synchronization"
)
MSG_HASH(
MENU_ENUM_SUBLABEL_AUDIO_SYNCHRONIZATION_SETTINGS,
"Change audio synchronization settings."
)

View File

@ -183,6 +183,8 @@ generic_deferred_push(deferred_push_directory_settings_list, DISPLAYLIST_
generic_deferred_push(deferred_push_privacy_settings_list, DISPLAYLIST_PRIVACY_SETTINGS_LIST)
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_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_ai_service_settings_list, DISPLAYLIST_AI_SERVICE_SETTINGS_LIST)
@ -735,6 +737,8 @@ static int menu_cbs_init_bind_deferred_push_compare_label(
{MENU_ENUM_LABEL_DEFERRED_VIDEO_SCALING_SETTINGS_LIST, deferred_push_video_scaling_settings_list},
{MENU_ENUM_LABEL_DEFERRED_CRT_SWITCHRES_SETTINGS_LIST, deferred_push_crt_switchres_settings_list},
{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_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
@ -1115,6 +1119,12 @@ static int menu_cbs_init_bind_deferred_push_compare_label(
case MENU_ENUM_LABEL_DEFERRED_AUDIO_SETTINGS_LIST:
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_audio_settings_list);
break;
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_SYNCHRONIZATION_SETTINGS_LIST:
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_audio_synchronization_settings_list);
break;
case MENU_ENUM_LABEL_DEFERRED_LATENCY_SETTINGS_LIST:
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_latency_settings_list);
break;

View File

@ -286,6 +286,10 @@ static enum msg_hash_enums action_ok_dl_to_enum(unsigned lbl)
return MENU_ENUM_LABEL_DEFERRED_MIDI_SETTINGS_LIST;
case ACTION_OK_DL_AUDIO_SETTINGS_LIST:
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_SYNCHRONIZATION_SETTINGS_LIST:
return MENU_ENUM_LABEL_DEFERRED_AUDIO_SYNCHRONIZATION_SETTINGS_LIST;
case ACTION_OK_DL_AUDIO_MIXER_SETTINGS_LIST:
return MENU_ENUM_LABEL_DEFERRED_AUDIO_MIXER_SETTINGS_LIST;
case ACTION_OK_DL_INPUT_HOTKEY_BINDS_LIST:
@ -1062,6 +1066,8 @@ int generic_action_ok_displaylist_push(const char *path,
case ACTION_OK_DL_PRIVACY_SETTINGS_LIST:
case ACTION_OK_DL_MIDI_SETTINGS_LIST:
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_MIXER_SETTINGS_LIST:
case ACTION_OK_DL_INPUT_HOTKEY_BINDS_LIST:
case ACTION_OK_DL_RECORDING_SETTINGS_LIST:
@ -4750,6 +4756,8 @@ default_action_ok_func(action_ok_push_video_output_settings_list, ACTION_OK_DL_V
default_action_ok_func(action_ok_push_configuration_settings_list, ACTION_OK_DL_CONFIGURATION_SETTINGS_LIST)
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_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)
#endif
@ -6422,6 +6430,12 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs,
case MENU_ENUM_LABEL_AUDIO_SETTINGS:
BIND_ACTION_OK(cbs, action_ok_push_audio_settings_list);
break;
case MENU_ENUM_LABEL_AUDIO_SYNCHRONIZATION_SETTINGS:
BIND_ACTION_OK(cbs, action_ok_push_audio_synchronization_settings_list);
break;
case MENU_ENUM_LABEL_AUDIO_OUTPUT_SETTINGS:
BIND_ACTION_OK(cbs, action_ok_push_audio_output_settings_list);
break;
case MENU_ENUM_LABEL_AUDIO_MIXER_SETTINGS:
#ifdef HAVE_AUDIOMIXER
BIND_ACTION_OK(cbs, action_ok_push_audio_mixer_settings_list);

View File

@ -180,6 +180,8 @@ 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_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
default_sublabel_macro(action_bind_sublabel_mixer_settings_list, MENU_ENUM_SUBLABEL_AUDIO_MIXER_SETTINGS)
#endif
@ -2717,6 +2719,12 @@ 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_SYNCHRONIZATION_SETTINGS:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_audio_synchronization_settings_list);
break;
case MENU_ENUM_LABEL_AUDIO_OUTPUT_SETTINGS:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_audio_output_settings_list);
break;
case MENU_ENUM_LABEL_AUDIO_MIXER_SETTINGS:
#ifdef HAVE_AUDIOMIXER
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_mixer_settings_list);

View File

@ -374,6 +374,8 @@ 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_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
default_title_macro(action_get_audio_mixer_settings_list, MENU_ENUM_LABEL_VALUE_AUDIO_MIXER_SETTINGS)
#endif
@ -661,6 +663,8 @@ 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_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
{MENU_ENUM_LABEL_DEFERRED_AUDIO_MIXER_SETTINGS_LIST, action_get_audio_mixer_settings_list},
#endif

View File

@ -89,6 +89,8 @@ enum
ACTION_OK_DL_VIDEO_SCALING_SETTINGS_LIST,
ACTION_OK_DL_CRT_SWITCHRES_SETTINGS_LIST,
ACTION_OK_DL_AUDIO_SETTINGS_LIST,
ACTION_OK_DL_AUDIO_OUTPUT_SETTINGS_LIST,
ACTION_OK_DL_AUDIO_SYNCHRONIZATION_SETTINGS_LIST,
ACTION_OK_DL_AUDIO_MIXER_SETTINGS_LIST,
ACTION_OK_DL_LATENCY_SETTINGS_LIST,
ACTION_OK_DL_CONFIGURATION_SETTINGS_LIST,

View File

@ -4044,20 +4044,7 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct
0, 0, 0))
count++;
break;
break;
case DISPLAYLIST_AUDIO_SETTINGS_LIST:
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_MIDI_SETTINGS,
PARSE_ACTION, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_AUDIO_MIXER_SETTINGS,
PARSE_ACTION, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_MENU_SOUNDS,
PARSE_ACTION, false) == 0)
count++;
case DISPLAYLIST_AUDIO_OUTPUT_SETTINGS_LIST:
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_AUDIO_ENABLE,
PARSE_ONLY_BOOL, false) == 0)
@ -4070,6 +4057,58 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct
MENU_ENUM_LABEL_AUDIO_LATENCY,
PARSE_ONLY_UINT, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_AUDIO_WASAPI_EXCLUSIVE_MODE,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_AUDIO_WASAPI_FLOAT_FORMAT,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_AUDIO_WASAPI_SH_BUFFER_LENGTH,
PARSE_ONLY_INT, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_AUDIO_BLOCK_FRAMES,
PARSE_ONLY_UINT, false) == 0)
count++;
break;
case DISPLAYLIST_AUDIO_SYNCHRONIZATION_SETTINGS_LIST:
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_AUDIO_SYNC,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_AUDIO_MAX_TIMING_SKEW,
PARSE_ONLY_FLOAT, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_AUDIO_RATE_CONTROL_DELTA,
PARSE_ONLY_FLOAT, false) == 0)
count++;
break;
case DISPLAYLIST_AUDIO_SETTINGS_LIST:
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_AUDIO_OUTPUT_SETTINGS,
PARSE_ACTION, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_AUDIO_SYNCHRONIZATION_SETTINGS,
PARSE_ACTION, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_MIDI_SETTINGS,
PARSE_ACTION, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_AUDIO_MIXER_SETTINGS,
PARSE_ACTION, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_MENU_SOUNDS,
PARSE_ACTION, false) == 0)
count++;
/* Volume */
if (menu_displaylist_parse_settings_enum(list,
@ -4108,40 +4147,10 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct
MENU_ENUM_LABEL_AUDIO_OUTPUT_RATE,
PARSE_ONLY_UINT, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_AUDIO_BLOCK_FRAMES,
PARSE_ONLY_UINT, false) == 0)
count++;
/* Synchronization */
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_AUDIO_SYNC,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_AUDIO_MAX_TIMING_SKEW,
PARSE_ONLY_FLOAT, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_AUDIO_RATE_CONTROL_DELTA,
PARSE_ONLY_FLOAT, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_AUDIO_DSP_PLUGIN,
PARSE_ONLY_PATH, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_AUDIO_WASAPI_EXCLUSIVE_MODE,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_AUDIO_WASAPI_FLOAT_FORMAT,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_AUDIO_WASAPI_SH_BUFFER_LENGTH,
PARSE_ONLY_INT, false) == 0)
count++;
break;
case DISPLAYLIST_VIDEO_SETTINGS_LIST:
{
@ -8283,6 +8292,8 @@ 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_OUTPUT_SETTINGS_LIST:
case DISPLAYLIST_AUDIO_SYNCHRONIZATION_SETTINGS_LIST:
case DISPLAYLIST_HELP_SCREEN_LIST:
case DISPLAYLIST_INFORMATION_LIST:
case DISPLAYLIST_SCAN_DIRECTORY_LIST:

View File

@ -151,6 +151,8 @@ enum menu_displaylist_ctl_state
DISPLAYLIST_CHEAT_DETAILS_SETTINGS_LIST,
DISPLAYLIST_CHEAT_SEARCH_SETTINGS_LIST,
DISPLAYLIST_AUDIO_SETTINGS_LIST,
DISPLAYLIST_AUDIO_OUTPUT_SETTINGS_LIST,
DISPLAYLIST_AUDIO_SYNCHRONIZATION_SETTINGS_LIST,
DISPLAYLIST_AUDIO_MIXER_SETTINGS_LIST,
DISPLAYLIST_CORE_SETTINGS_LIST,
DISPLAYLIST_INPUT_SETTINGS_LIST,

View File

@ -8016,6 +8016,22 @@ static bool setting_append_list(
&subgroup_info,
parent_group);
CONFIG_ACTION(
list, list_info,
MENU_ENUM_LABEL_AUDIO_OUTPUT_SETTINGS,
MENU_ENUM_LABEL_VALUE_AUDIO_OUTPUT_SETTINGS,
&group_info,
&subgroup_info,
parent_group);
CONFIG_ACTION(
list, list_info,
MENU_ENUM_LABEL_AUDIO_SYNCHRONIZATION_SETTINGS,
MENU_ENUM_LABEL_VALUE_AUDIO_SYNCHRONIZATION_SETTINGS,
&group_info,
&subgroup_info,
parent_group);
if (string_is_not_equal(settings->arrays.midi_driver, "null"))
{
CONFIG_ACTION(

View File

@ -1347,6 +1347,8 @@ 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_OUTPUT_SETTINGS_LIST,
MENU_ENUM_LABEL_DEFERRED_AUDIO_SYNCHRONIZATION_SETTINGS_LIST,
MENU_ENUM_LABEL_DEFERRED_AUDIO_MIXER_SETTINGS_LIST,
MENU_ENUM_LABEL_DEFERRED_CORE_SETTINGS_LIST,
MENU_ENUM_LABEL_DEFERRED_USER_BINDS_LIST,
@ -1941,6 +1943,8 @@ enum msg_hash_enums
MENU_LABEL(VIDEO_SCALING_SETTINGS),
MENU_LABEL(CRT_SWITCHRES_SETTINGS),
MENU_LABEL(AUDIO_SETTINGS),
MENU_LABEL(AUDIO_OUTPUT_SETTINGS),
MENU_LABEL(AUDIO_SYNCHRONIZATION_SETTINGS),
MENU_LABEL(AUDIO_MIXER_SETTINGS),
MENU_LABEL(LATENCY_SETTINGS),
MENU_LABEL(CORE_SETTINGS),