From 20eb61b88294442c8845d59d203be3473a3ca9bb Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 25 Feb 2021 10:28:25 +0100 Subject: [PATCH] alsa: sync with pulseaudio --- spa/plugins/alsa/acp/alsa-mixer.c | 2 + spa/plugins/alsa/acp/alsa-mixer.h | 1 - spa/plugins/alsa/acp/alsa-util.c | 2 +- .../alsa/mixer/paths/hdmi-output-10.conf | 12 +++ .../alsa/mixer/paths/hdmi-output-8.conf | 12 +++ .../alsa/mixer/paths/hdmi-output-9.conf | 12 +++ .../alsa/mixer/profile-sets/default.conf | 96 +++++++++++++++++++ 7 files changed, 135 insertions(+), 2 deletions(-) create mode 100644 spa/plugins/alsa/mixer/paths/hdmi-output-10.conf create mode 100644 spa/plugins/alsa/mixer/paths/hdmi-output-8.conf create mode 100644 spa/plugins/alsa/mixer/paths/hdmi-output-9.conf diff --git a/spa/plugins/alsa/acp/alsa-mixer.c b/spa/plugins/alsa/acp/alsa-mixer.c index df19f96d3..9658c1603 100644 --- a/spa/plugins/alsa/acp/alsa-mixer.c +++ b/spa/plugins/alsa/acp/alsa-mixer.c @@ -5158,6 +5158,8 @@ void pa_alsa_profile_set_probe( uint32_t idx; p = *pp; + pa_log_debug("Check Profile %s.", p->name); + /* Skip if fallback and already found something */ if (found_input && p->fallback_input) continue; diff --git a/spa/plugins/alsa/acp/alsa-mixer.h b/spa/plugins/alsa/acp/alsa-mixer.h index 6255bbfaa..09ceb5c63 100644 --- a/spa/plugins/alsa/acp/alsa-mixer.h +++ b/spa/plugins/alsa/acp/alsa-mixer.h @@ -180,7 +180,6 @@ struct pa_alsa_jack { struct pa_alsa_mixer_id alsa_id; char *name; /* E g "Headphone" */ - char *alsa_name; /* E g "Headphone Jack" */ bool has_control; /* is the jack itself present? */ bool plugged_in; /* is this jack currently plugged in? */ snd_mixer_elem_t *melem; /* Jack detection handle */ diff --git a/spa/plugins/alsa/acp/alsa-util.c b/spa/plugins/alsa/acp/alsa-util.c index 30173093d..fd8f335c4 100644 --- a/spa/plugins/alsa/acp/alsa-util.c +++ b/spa/plugins/alsa/acp/alsa-util.c @@ -717,7 +717,7 @@ snd_pcm_t *pa_alsa_open_by_device_string( if (!pa_startswith(d, "plug:") && !pa_startswith(d, "plughw:")) { char *t; - t = pa_sprintf_malloc("plug:%s", d); + t = pa_sprintf_malloc("plug:SLAVE='%s'", d); pa_xfree(d); d = t; diff --git a/spa/plugins/alsa/mixer/paths/hdmi-output-10.conf b/spa/plugins/alsa/mixer/paths/hdmi-output-10.conf new file mode 100644 index 000000000..7607f8f26 --- /dev/null +++ b/spa/plugins/alsa/mixer/paths/hdmi-output-10.conf @@ -0,0 +1,12 @@ +[General] +description = HDMI / DisplayPort 11 +type = hdmi +priority = 49 +eld-device = auto + +[Properties] +device.icon_name = video-display + +[Jack HDMI/DP] +append-pcm-to-name = yes +required = ignore diff --git a/spa/plugins/alsa/mixer/paths/hdmi-output-8.conf b/spa/plugins/alsa/mixer/paths/hdmi-output-8.conf new file mode 100644 index 000000000..0b8f9cdd1 --- /dev/null +++ b/spa/plugins/alsa/mixer/paths/hdmi-output-8.conf @@ -0,0 +1,12 @@ +[General] +description = HDMI / DisplayPort 9 +type = hdmi +priority = 51 +eld-device = auto + +[Properties] +device.icon_name = video-display + +[Jack HDMI/DP] +append-pcm-to-name = yes +required = ignore diff --git a/spa/plugins/alsa/mixer/paths/hdmi-output-9.conf b/spa/plugins/alsa/mixer/paths/hdmi-output-9.conf new file mode 100644 index 000000000..f15797c9f --- /dev/null +++ b/spa/plugins/alsa/mixer/paths/hdmi-output-9.conf @@ -0,0 +1,12 @@ +[General] +description = HDMI / DisplayPort 10 +type = hdmi +priority = 50 +eld-device = auto + +[Properties] +device.icon_name = video-display + +[Jack HDMI/DP] +append-pcm-to-name = yes +required = ignore diff --git a/spa/plugins/alsa/mixer/profile-sets/default.conf b/spa/plugins/alsa/mixer/profile-sets/default.conf index 535e9d557..10232078b 100644 --- a/spa/plugins/alsa/mixer/profile-sets/default.conf +++ b/spa/plugins/alsa/mixer/profile-sets/default.conf @@ -461,6 +461,102 @@ channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe priority = 6 direction = output +[Mapping hdmi-stereo-extra8] +description = Digital Stereo (HDMI 9) +device-strings = hdmi:%f,8 +paths-output = hdmi-output-8 +channel-map = left,right +priority = 7 +direction = output + +[Mapping hdmi-surround-extra8] +description = Digital Surround 5.1 (HDMI 9) +device-strings = hdmi:%f,8 +paths-output = hdmi-output-8 +channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe +priority = 6 +direction = output + +[Mapping hdmi-surround71-extra8] +description = Digital Surround 7.1 (HDMI 9) +device-strings = hdmi:%f,8 +paths-output = hdmi-output-8 +channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right +priority = 6 +direction = output + +[Mapping hdmi-dts-surround-extra8] +description = Digital Surround 5.1 (HDMI 9/DTS) +device-strings = dcahdmi:%f,8 +paths-output = hdmi-output-8 +channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe +priority = 6 +direction = output + +[Mapping hdmi-stereo-extra9] +description = Digital Stereo (HDMI 10) +device-strings = hdmi:%f,9 +paths-output = hdmi-output-9 +channel-map = left,right +priority = 7 +direction = output + +[Mapping hdmi-surround-extra9] +description = Digital Surround 5.1 (HDMI 10) +device-strings = hdmi:%f,9 +paths-output = hdmi-output-9 +channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe +priority = 6 +direction = output + +[Mapping hdmi-surround71-extra9] +description = Digital Surround 7.1 (HDMI 10) +device-strings = hdmi:%f,9 +paths-output = hdmi-output-9 +channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right +priority = 6 +direction = output + +[Mapping hdmi-dts-surround-extra9] +description = Digital Surround 5.1 (HDMI 10/DTS) +device-strings = dcahdmi:%f,9 +paths-output = hdmi-output-9 +channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe +priority = 6 +direction = output + +[Mapping hdmi-stereo-extra10] +description = Digital Stereo (HDMI 11) +device-strings = hdmi:%f,10 +paths-output = hdmi-output-10 +channel-map = left,right +priority = 7 +direction = output + +[Mapping hdmi-surround-extra10] +description = Digital Surround 5.1 (HDMI 11) +device-strings = hdmi:%f,10 +paths-output = hdmi-output-10 +channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe +priority = 6 +direction = output + +[Mapping hdmi-surround71-extra10] +description = Digital Surround 7.1 (HDMI 11) +device-strings = hdmi:%f,10 +paths-output = hdmi-output-10 +channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right +priority = 6 +direction = output + +[Mapping hdmi-dts-surround-extra10] +description = Digital Surround 5.1 (HDMI 11/DTS) +device-strings = dcahdmi:%f,10 +paths-output = hdmi-output-10 +channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe +priority = 6 +direction = output + [Mapping multichannel-output] device-strings = hw:%f channel-map = left,right,rear-left,rear-right