From 6452f86519c487a4bb4d6f048b0efd558d88814f Mon Sep 17 00:00:00 2001 From: David Henningsson Date: Thu, 14 Mar 2013 09:14:34 +0100 Subject: [PATCH 1/2] alsa-mixer: Add path for Headset Microphone In kernel 3.10, some devices will have the "Headset Microphone" name to indicate that the mic is part of a mic + headphone combo, i e, a headset. --- src/Makefile.am | 1 + src/modules/alsa/alsa-mixer.c | 1 + .../alsa/mixer/paths/analog-input-headset-mic.conf | 99 ++++++++++++++++++++++ src/modules/alsa/mixer/profile-sets/default.conf | 4 +- .../alsa/mixer/profile-sets/extra-hdmi.conf | 4 +- 5 files changed, 105 insertions(+), 4 deletions(-) create mode 100644 src/modules/alsa/mixer/paths/analog-input-headset-mic.conf diff --git a/src/Makefile.am b/src/Makefile.am index d360201..6d4425d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1176,6 +1176,7 @@ dist_alsapaths_DATA = \ modules/alsa/mixer/paths/analog-input-dock-mic.conf \ modules/alsa/mixer/paths/analog-input-front-mic.conf \ modules/alsa/mixer/paths/analog-input-headphone-mic.conf \ + modules/alsa/mixer/paths/analog-input-headset-mic.conf \ modules/alsa/mixer/paths/analog-input-internal-mic.conf \ modules/alsa/mixer/paths/analog-input-internal-mic-always.conf \ modules/alsa/mixer/paths/analog-input-rear-mic.conf \ diff --git a/src/Makefile.in b/src/Makefile.in index d360201..6d4425d 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -2615,6 +2615,7 @@ am__dist_alsapaths_DATA_DIST = \ modules/alsa/mixer/paths/analog-input-dock-mic.conf \ modules/alsa/mixer/paths/analog-input-front-mic.conf \ modules/alsa/mixer/paths/analog-input-headphone-mic.conf \ + modules/alsa/mixer/paths/analog-input-headset-mic.conf \ modules/alsa/mixer/paths/analog-input-internal-mic.conf \ modules/alsa/mixer/paths/analog-input-internal-mic-always.conf \ modules/alsa/mixer/paths/analog-input-rear-mic.conf \ @@ -3607,6 +3608,7 @@ libavahi_wrap_la_LIBADD = $(AM_LIBADD) $ @HAVE_ALSA_TRUE@ modules/alsa/mixer/paths/analog-input-dock-mic.conf \ @HAVE_ALSA_TRUE@ modules/alsa/mixer/paths/analog-input-front-mic.conf \ @HAVE_ALSA_TRUE@ modules/alsa/mixer/paths/analog-input-headphone-mic.conf \ +@HAVE_ALSA_TRUE@ modules/alsa/mixer/paths/analog-input-headset-mic.conf \ @HAVE_ALSA_TRUE@ modules/alsa/mixer/paths/analog-input-internal-mic.conf \ @HAVE_ALSA_TRUE@ modules/alsa/mixer/paths/analog-input-internal-mic-always.conf \ @HAVE_ALSA_TRUE@ modules/alsa/mixer/paths/analog-input-rear-mic.conf \ diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c index 761aae1..ee80d25 100644 --- a/src/modules/alsa/alsa-mixer.c +++ b/src/modules/alsa/alsa-mixer.c @@ -2336,6 +2336,7 @@ static int path_verify(pa_alsa_path *p) { { "analog-input-microphone-rear", N_("Rear Microphone") }, { "analog-input-microphone-dock", N_("Dock Microphone") }, { "analog-input-microphone-internal", N_("Internal Microphone") }, + { "analog-input-microphone-headset", N_("Headset Microphone") }, { "analog-input-linein", N_("Line In") }, { "analog-input-radio", N_("Radio") }, { "analog-input-video", N_("Video") }, diff --git a/src/modules/alsa/mixer/paths/analog-input-headset-mic.conf b/src/modules/alsa/mixer/paths/analog-input-headset-mic.conf new file mode 100644 index 0000000..c5aff1c --- /dev/null +++ b/src/modules/alsa/mixer/paths/analog-input-headset-mic.conf @@ -0,0 +1,99 @@ +# 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. + +; For devices where a 'Headset Mic' or 'Headset Mic Boost' element exists +; +; See analog-output.conf.common for an explanation on the directives + +[General] +priority = 87 +name = analog-input-microphone-headset + +[Jack Headset Mic] +required-any = any + +[Jack Headset Mic Phantom] +state.plugged = unknown +state.unplugged = unknown +required-any = any + +[Element Headset Mic Boost] +required-any = any +switch = select +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Headset Mic] +required-any = any +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Capture] +switch = mute +volume = merge +override-map.1 = all +override-map.2 = all-left,all-right + +[Element Input Source] +enumeration = select + +[Option Input Source:Headset Mic] +name = Headset Microphone +required-any = any + +[Element Capture Source] +enumeration = select + +[Option Capture Source:Headset Mic] +name = Headset Microphone +required-any = any + +[Element Front Mic] +switch = off +volume = off + +[Element Internal Mic] +switch = off +volume = off + +[Element Rear Mic] +switch = off +volume = off + +[Element Dock Mic] +switch = off +volume = off + +[Element Dock Mic Boost] +switch = off +volume = off + +[Element Internal Mic Boost] +switch = off +volume = off + +[Element Front Mic Boost] +switch = off +volume = off + +[Element Rear Mic Boost] +switch = off +volume = off + +.include analog-input-mic.conf.common diff --git a/src/modules/alsa/mixer/profile-sets/default.conf b/src/modules/alsa/mixer/profile-sets/default.conf index b040036..c805d36 100644 --- a/src/modules/alsa/mixer/profile-sets/default.conf +++ b/src/modules/alsa/mixer/profile-sets/default.conf @@ -102,14 +102,14 @@ auto-profiles = yes device-strings = hw:%f channel-map = mono paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-headphones analog-output-headphones-2 analog-output-mono -paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line +paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headset-mic priority = 1 [Mapping analog-stereo] device-strings = front:%f hw:%f channel-map = left,right paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-headphones analog-output-headphones-2 analog-output-mono -paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headphone-mic +paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headphone-mic analog-input-headset-mic priority = 10 [Mapping analog-surround-40] diff --git a/src/modules/alsa/mixer/profile-sets/extra-hdmi.conf b/src/modules/alsa/mixer/profile-sets/extra-hdmi.conf index 7075314..aaf4d91 100644 --- a/src/modules/alsa/mixer/profile-sets/extra-hdmi.conf +++ b/src/modules/alsa/mixer/profile-sets/extra-hdmi.conf @@ -28,14 +28,14 @@ auto-profiles = yes device-strings = hw:%f channel-map = mono paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-headphones analog-output-headphones-2 analog-output-mono -paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line +paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headset-mic priority = 1 [Mapping analog-stereo] device-strings = front:%f hw:%f channel-map = left,right paths-output = analog-output analog-output-speaker analog-output-desktop-speaker analog-output-headphones analog-output-headphones-2 analog-output-mono -paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headphone-mic +paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headphone-mic analog-input-headset-mic priority = 10 [Mapping analog-surround-40] -- 1.8.5.3