On 2015-04-30 11:49, Tanu Kaskinen wrote:
On Thu, 2015-04-30 at 11:07 +0200, David Henningsson wrote:

On 2015-04-27 13:34, Tanu Kaskinen wrote:
This card can be used in analog or digital mode, and in the digital
mode there's no hardware volume or mute support. With the default
configuration PulseAudio only sees a single "speaker" port, and
assumes that controlling the Speaker element has some effect, which
is not true in the digital mode. To work around this, let's add a
special path configuration for this card to disable hardware volume.

It would be better to disable hardware volume only in the digital
mode, but I believe there's no way to automatically figure out which
mode is in use, and requiring the user to tell which mode is in use
at any given time would not be user-friendly.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=81777
---
   src/Makefile.am                                    |  6 ++--
   src/modules/alsa/alsa-mixer.c                      |  2 ++
   .../paths/terratec-aureon-dual-usb-output.conf     | 37 +++++++++++++++++++
   .../alsa/mixer/profile-sets/90-pulseaudio.rules    |  1 +
   .../profile-sets/terratec-aureon-dual-usb.conf     | 42 
++++++++++++++++++++++
   5 files changed, 86 insertions(+), 2 deletions(-)
   create mode 100644 
src/modules/alsa/mixer/paths/terratec-aureon-dual-usb-output.conf
   create mode 100644 
src/modules/alsa/mixer/profile-sets/terratec-aureon-dual-usb.conf

diff --git a/src/Makefile.am b/src/Makefile.am
index d582e57..ca432be 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1277,7 +1277,8 @@ dist_alsaprofilesets_DATA = \
                
modules/alsa/mixer/profile-sets/native-instruments-traktor-audio10.conf \
                
modules/alsa/mixer/profile-sets/native-instruments-traktorkontrol-s4.conf \
                
modules/alsa/mixer/profile-sets/native-instruments-korecontroller.conf \
-               modules/alsa/mixer/profile-sets/kinect-audio.conf
+               modules/alsa/mixer/profile-sets/kinect-audio.conf \
+               modules/alsa/mixer/profile-sets/terratec-aureon-dual-usb.conf

   if HAVE_UDEV
   dist_udevrules_DATA = \
@@ -1318,7 +1319,8 @@ dist_alsapaths_DATA = \
                modules/alsa/mixer/paths/hdmi-output-4.conf \
                modules/alsa/mixer/paths/hdmi-output-5.conf \
                modules/alsa/mixer/paths/hdmi-output-6.conf \
-               modules/alsa/mixer/paths/hdmi-output-7.conf
+               modules/alsa/mixer/paths/hdmi-output-7.conf \
+               modules/alsa/mixer/paths/terratec-aureon-dual-usb-output.conf

   endif

diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c
index e921f8b..71459e1 100644
--- a/src/modules/alsa/alsa-mixer.c
+++ b/src/modules/alsa/alsa-mixer.c
@@ -2386,6 +2386,7 @@ static int path_verify(pa_alsa_path *p) {
           { "analog-output-lineout",      N_("Line Out") },
           { "analog-output-mono",         N_("Analog Mono Output") },
           { "analog-output-speaker",      N_("Speakers") },
+        { "output-speaker",             N_("Speakers") },
           { "hdmi-output",                N_("HDMI / DisplayPort") },
           { "iec958-stereo-output",       N_("Digital Output (S/PDIF)") },
           { "iec958-stereo-input",        N_("Digital Input (S/PDIF)") },
@@ -3900,6 +3901,7 @@ static void mapping_paths_probe(pa_alsa_mapping *m, 
pa_alsa_profile *profile,
   static int mapping_verify(pa_alsa_mapping *m, const pa_channel_map *bonus) {

       static const struct description_map well_known_descriptions[] = {
+        { "stereo",                 N_("Stereo") },
           { "analog-mono",            N_("Analog Mono") },
           { "analog-stereo",          N_("Analog Stereo") },
           /* Note: Not translated to "Multichannel Input" - then the source name would 
be "Multichannel Input Input".
diff --git a/src/modules/alsa/mixer/paths/terratec-aureon-dual-usb-output.conf 
b/src/modules/alsa/mixer/paths/terratec-aureon-dual-usb-output.conf
new file mode 100644
index 0000000..4bb4746
--- /dev/null
+++ b/src/modules/alsa/mixer/paths/terratec-aureon-dual-usb-output.conf
@@ -0,0 +1,37 @@
+# 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 Terratec Aureon Dual USB.
+#
+# See analog-output.conf.common for an explanation on the directives.
+
+[General]
+description-key = output-speaker

Why don't you just reuse the existing analog-output-speaker
description-key here?

Because this path may be digital.

Is there then a reason to call it "speaker"?

--
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic
_______________________________________________
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

Reply via email to