From 14e4369bee6a808ca1f57945e7fe7165f7f18a9e Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 15 Feb 2010 22:23:39 +0100 Subject: alsa: cover "Desktop Speaker" mixer elements As exposed by really old Microsoft USB sound systems --- src/modules/alsa/alsa-mixer.c | 3 +- .../mixer/paths/analog-output-desktop-speaker.conf | 98 ++++++++++++++++++++++ .../mixer/paths/analog-output-headphones-2.conf | 4 + .../alsa/mixer/paths/analog-output-headphones.conf | 4 + .../mixer/paths/analog-output-lfe-on-mono.conf | 4 + .../alsa/mixer/paths/analog-output-mono.conf | 4 + .../alsa/mixer/paths/analog-output-speaker.conf | 4 + src/modules/alsa/mixer/paths/analog-output.conf | 4 + src/modules/alsa/mixer/profile-sets/default.conf | 14 ++-- 9 files changed, 131 insertions(+), 8 deletions(-) create mode 100644 src/modules/alsa/mixer/paths/analog-output-desktop-speaker.conf diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c index 8bbd1f5c..cb814aff 100644 --- a/src/modules/alsa/alsa-mixer.c +++ b/src/modules/alsa/alsa-mixer.c @@ -1784,7 +1784,8 @@ static int path_verify(pa_alsa_path *p) { { "analog-output-lfe-on-mono", N_("Analog Output (LFE)") }, { "analog-output-mono", N_("Analog Mono Output") }, { "analog-output-headphones-2", N_("Analog Headphones 2") }, - { "analog-output-speaker", N_("Analog Speaker") } + { "analog-output-speaker", N_("Analog Speakers") } + { "analog-output-desktop-speaker", N_("Analog Speakers 2") } }; pa_alsa_element *e; diff --git a/src/modules/alsa/mixer/paths/analog-output-desktop-speaker.conf b/src/modules/alsa/mixer/paths/analog-output-desktop-speaker.conf new file mode 100644 index 00000000..9f18b25a --- /dev/null +++ b/src/modules/alsa/mixer/paths/analog-output-desktop-speaker.conf @@ -0,0 +1,98 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + +; Path for mixers that have a 'Desktop Speaker' control +; +; See analog-output.conf.common for an explanation on the directives + +[General] +priority = 100 + +[Element Hardware Master] +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Master] +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Master Mono] +switch = off +volume = off + +; This profile path is intended to control the desktop speaker, not +; the headphones. But it should not hurt if we leave the headphone +; jack enabled nonetheless. +[Element Headphone] +switch = mute +volume = zero + +[Element Headphone2] +switch = mute +volume = zero + +[Element Speaker] +switch = off +volume = off + +[Element Desktop Speaker] +required = any +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Front] +switch = mute +volume = merge +override-map.1 = all-front +override-map.2 = front-left,front-right + +[Element Rear] +switch = mute +volume = merge +override-map.1 = all-rear +override-map.2 = rear-left,rear-right + +[Element Surround] +switch = mute +volume = merge +override-map.1 = all-rear +override-map.2 = rear-left,rear-right + +[Element Side] +switch = mute +volume = merge +override-map.1 = all-side +override-map.2 = side-left,side-right + +[Element Center] +switch = mute +volume = merge +override-map.1 = all-center +override-map.2 = all-center,all-center + +[Element LFE] +switch = mute +volume = merge +override-map.1 = lfe +override-map.2 = lfe,lfe + +.include analog-output.conf.common diff --git a/src/modules/alsa/mixer/paths/analog-output-headphones-2.conf b/src/modules/alsa/mixer/paths/analog-output-headphones-2.conf index f2fd31c7..580c7986 100644 --- a/src/modules/alsa/mixer/paths/analog-output-headphones-2.conf +++ b/src/modules/alsa/mixer/paths/analog-output-headphones-2.conf @@ -55,6 +55,10 @@ override-map.2 = all-left,all-right switch = off volume = off +[Element Desktop Speaker] +switch = off +volume = off + [Element Front] switch = off volume = off diff --git a/src/modules/alsa/mixer/paths/analog-output-headphones.conf b/src/modules/alsa/mixer/paths/analog-output-headphones.conf index 2131cfe8..79ebc7fd 100644 --- a/src/modules/alsa/mixer/paths/analog-output-headphones.conf +++ b/src/modules/alsa/mixer/paths/analog-output-headphones.conf @@ -55,6 +55,10 @@ volume = zero switch = off volume = off +[Element Desktop Speaker] +switch = off +volume = off + [Element Front] switch = off volume = off diff --git a/src/modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf b/src/modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf index 0a43e271..67ee32f7 100644 --- a/src/modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf +++ b/src/modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf @@ -58,6 +58,10 @@ volume = merge override-map.1 = all override-map.2 = all-left,all-right +[Element Desktop Speaker] +switch = off +volume = off + [Element Front] switch = off volume = off diff --git a/src/modules/alsa/mixer/paths/analog-output-mono.conf b/src/modules/alsa/mixer/paths/analog-output-mono.conf index 542edc40..13a2d6aa 100644 --- a/src/modules/alsa/mixer/paths/analog-output-mono.conf +++ b/src/modules/alsa/mixer/paths/analog-output-mono.conf @@ -55,6 +55,10 @@ volume = merge override-map.1 = all override-map.2 = all-left,all-right +[Element Desktop Speaker] +switch = off +volume = off + [Element Front] switch = off volume = off diff --git a/src/modules/alsa/mixer/paths/analog-output-speaker.conf b/src/modules/alsa/mixer/paths/analog-output-speaker.conf index aea78534..b133a2ee 100644 --- a/src/modules/alsa/mixer/paths/analog-output-speaker.conf +++ b/src/modules/alsa/mixer/paths/analog-output-speaker.conf @@ -55,6 +55,10 @@ volume = merge override-map.1 = all override-map.2 = all-left,all-right +[Element Desktop Speaker] +switch = off +volume = off + [Element Front] switch = mute volume = merge diff --git a/src/modules/alsa/mixer/paths/analog-output.conf b/src/modules/alsa/mixer/paths/analog-output.conf index d7c1223b..50fc88ea 100644 --- a/src/modules/alsa/mixer/paths/analog-output.conf +++ b/src/modules/alsa/mixer/paths/analog-output.conf @@ -53,6 +53,10 @@ volume = zero switch = mute volume = off +[Element Desktop Speaker] +switch = mute +volume = off + [Element Front] switch = mute volume = merge diff --git a/src/modules/alsa/mixer/profile-sets/default.conf b/src/modules/alsa/mixer/profile-sets/default.conf index 046938fc..5d352f1c 100644 --- a/src/modules/alsa/mixer/profile-sets/default.conf +++ b/src/modules/alsa/mixer/profile-sets/default.conf @@ -62,42 +62,42 @@ auto-profiles = yes [Mapping analog-mono] device-strings = hw:%f channel-map = mono -paths-output = analog-output analog-output-speaker analog-output-headphones analog-output-headphones-2 analog-output-mono analog-output-lfe-on-mono +paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-headphones analog-output-headphones-2 analog-output-mono analog-output-lfe-on-mono paths-input = analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line priority = 1 [Mapping analog-stereo] device-strings = front:%f hw:%f channel-map = left,right -paths-output = analog-output analog-output-speaker analog-output-headphones analog-output-headphones-2 analog-output-mono analog-output-lfe-on-mono +paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-headphones analog-output-headphones-2 analog-output-mono analog-output-lfe-on-mono paths-input = analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line priority = 10 [Mapping analog-surround-40] device-strings = surround40:%f channel-map = front-left,front-right,rear-left,rear-right -paths-output = analog-output analog-output-speaker analog-output-lfe-on-mono +paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-lfe-on-mono priority = 7 direction = output [Mapping analog-surround-41] device-strings = surround41:%f channel-map = front-left,front-right,rear-left,rear-right,lfe -paths-output = analog-output analog-output-speaker analog-output-lfe-on-mono +paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-lfe-on-mono priority = 8 direction = output [Mapping analog-surround-50] device-strings = surround50:%f channel-map = front-left,front-right,rear-left,rear-right,front-center -paths-output = analog-output analog-output-speaker analog-output-lfe-on-mono +paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-lfe-on-mono priority = 7 direction = output [Mapping analog-surround-51] device-strings = surround51:%f channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe -paths-output = analog-output analog-output-speaker analog-output-lfe-on-mono +paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-lfe-on-mono priority = 8 direction = output @@ -105,7 +105,7 @@ direction = output device-strings = surround71:%f channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right description = Analog Surround 7.1 -paths-output = analog-output analog-output-speaker analog-output-lfe-on-mono +paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-lfe-on-mono priority = 7 direction = output -- cgit