[pulseaudio-commits] [Git][pulseaudio/pulseaudio][master] alsa-mixer: add support for Sennheiser GSX 1000 gaming DAC

PulseAudio Marge Bot gitlab at gitlab.freedesktop.org
Wed Dec 9 16:57:35 UTC 2020



PulseAudio Marge Bot pushed to branch master at PulseAudio / pulseaudio


Commits:
7ec6ee47 by Patrick McLean at 2020-12-09T16:51:16+00:00
alsa-mixer: add support for Sennheiser GSX 1000 gaming DAC

This same profile should also work for the GSX 1200, but I don't know the USB id
for that.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/257>

- - - - -


6 changed files:

- src/Makefile.am
- src/modules/alsa/90-pulseaudio.rules
- src/modules/alsa/alsa-mixer.c
- + src/modules/alsa/mixer/paths/analog-output-chat.conf
- + src/modules/alsa/mixer/paths/virtual-surround-7.1.conf
- + src/modules/alsa/mixer/profile-sets/sennheiser-gsx.conf


Changes:

=====================================
src/Makefile.am
=====================================
@@ -1370,7 +1370,8 @@ dist_alsaprofilesets_DATA = \
 		modules/alsa/mixer/profile-sets/dell-dock-tb16-usb-audio.conf \
 		modules/alsa/mixer/profile-sets/cmedia-high-speed-true-hdaudio.conf \
 		modules/alsa/mixer/profile-sets/hp-tbt-dock-120w-g2.conf \
-		modules/alsa/mixer/profile-sets/hp-tbt-dock-audio-module.conf
+		modules/alsa/mixer/profile-sets/hp-tbt-dock-audio-module.conf \
+		modules/alsa/mixer/profile-sets/sennheiser-gsx.conf
 
 if HAVE_UDEV
 dist_udevrules_DATA = \
@@ -1417,7 +1418,9 @@ dist_alsapaths_DATA = \
 		modules/alsa/mixer/paths/steelseries-arctis-output-game-common.conf \
 		modules/alsa/mixer/paths/usb-gaming-headset-input.conf \
 		modules/alsa/mixer/paths/usb-gaming-headset-output-mono.conf \
-		modules/alsa/mixer/paths/usb-gaming-headset-output-stereo.conf
+		modules/alsa/mixer/paths/usb-gaming-headset-output-stereo.conf \
+		modules/alsa/mixer/paths/analog-output-chat.conf \
+		modules/alsa/mixer/paths/virtual-surround-7.1.conf
 
 endif
 


=====================================
src/modules/alsa/90-pulseaudio.rules
=====================================
@@ -150,6 +150,13 @@ ATTRS{idVendor}=="0951", ATTRS{idProduct}=="1703", ENV{ID_ID}="usb-HyperX_Cloud_
 # OnePlus Type-C Bullets (ED117)
 ATTRS{idVendor}=="2a70", ATTRS{idProduct}=="1881", ENV{PULSE_PROFILE_SET}="simple-headphones-mic.conf"
 
+# ID 1395:005e is for Sennheiser GSX 1000
+# ID 1395:00a0 is for Sennheiser GSX 1000
+# ID 1395:005f is for Sennheiser GSX 1200
+ATTRS{idVendor}=="1395", ATTRS{idProduct}=="005e", ENV{PULSE_PROFILE_SET}="sennheiser-gsx.conf"
+ATTRS{idVendor}=="1395", ATTRS{idProduct}=="00a0", ENV{PULSE_PROFILE_SET}="sennheiser-gsx.conf"
+ATTRS{idVendor}=="1395", ATTRS{idProduct}=="005f", ENV{PULSE_PROFILE_SET}="sennheiser-gsx.conf"
+
 GOTO="pulseaudio_end"
 
 LABEL="pulseaudio_check_pci"


=====================================
src/modules/alsa/alsa-mixer.c
=====================================
@@ -2729,6 +2729,9 @@ static int path_verify(pa_alsa_path *p) {
         { "multichannel-output",              N_("Multichannel Output"),          PA_DEVICE_PORT_TYPE_LINE },
         { "steelseries-arctis-output-game-common", N_("Game Output"),             PA_DEVICE_PORT_TYPE_HEADSET },
         { "steelseries-arctis-output-chat-common", N_("Chat Output"),             PA_DEVICE_PORT_TYPE_HEADSET },
+        { "analog-chat-output",               N_("Chat Output"),                  PA_DEVICE_PORT_TYPE_HEADSET },
+        { "analog-chat-input",                N_("Chat Input"),                   PA_DEVICE_PORT_TYPE_HEADSET },
+        { "virtual-surround-7.1",             N_("Virtual Surround 7.1"),         PA_DEVICE_PORT_TYPE_HEADPHONES },
     };
 
     pa_alsa_element *e;
@@ -4567,6 +4570,7 @@ static int profile_verify(pa_alsa_profile *p) {
         { "output:iec958-stereo+input:iec958-stereo", N_("Digital Stereo Duplex (IEC958)") },
         { "output:multichannel-output+input:multichannel-input", N_("Multichannel Duplex") },
         { "output:unknown-stereo+input:unknown-stereo", N_("Stereo Duplex") },
+        { "output:analog-output-surround71+output:analog-output-chat+input:analog-input", N_("Mono Chat + 7.1 Surround") },
         { "off",                                      N_("Off") }
     };
     const char *description_key = p->description_key ? p->description_key : p->name;


=====================================
src/modules/alsa/mixer/paths/analog-output-chat.conf
=====================================
@@ -0,0 +1,5 @@
+; Some gaming devices have a separate "chat" device, this is for voice chat
+; while playing games. This device is just a fairly standard analog mono
+; device, but it's nicer to make it clear that this is the "chat" device
+; as is mentioned in the marketing info and manual.
+.include analog-output.conf.common


=====================================
src/modules/alsa/mixer/paths/virtual-surround-7.1.conf
=====================================
@@ -0,0 +1,5 @@
+[Element PCM,1]
+switch = mute
+volume = merge
+override-map.1 = all
+override-map.2 = all-left,all-right


=====================================
src/modules/alsa/mixer/profile-sets/sennheiser-gsx.conf
=====================================
@@ -0,0 +1,58 @@
+# 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, see <http://www.gnu.org/licenses/>.
+
+; USB Gaming DAC.
+; These devices have two output devices. The first one is mono, meant for
+; voice audio, and the second one is 7.1 surround, meant for everything
+; else. The 7.1 surround is mapped to headphones within the device.
+; The purpose of the mono/7.1 design is to provide separate volume
+; controls for voice and other audio, which can be useful in gaming.
+;
+; Works with:
+; Sennheiser GSX 1000
+; Sennheiser GSX 1200
+;
+; See default.conf for an explanation on the directives used here.
+
+[General]
+auto-profiles = no
+
+[Mapping analog-chat-output]
+device-strings = hw:%f,0
+channel-map = mono
+paths-output = analog-chat-output
+direction = output
+priority = 4000
+intended-roles = phone
+
+[Mapping analog-output-surround71]
+device-strings = hw:%f,1
+channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right
+paths-output = virtual-surround-7.1
+priority = 4100
+direction = output
+
+[Mapping analog-chat-input]
+device-strings = hw:%f,0
+channel-map = mono
+paths-input = analog-chat-input
+priority = 4100
+direction = input
+
+[Profile output:analog-output-surround71+output:analog-output-chat+input:analog-input]
+output-mappings = analog-output-surround71 analog-chat-output
+input-mappings = analog-chat-input
+priority = 5100
+skip-probe = yes



View it on GitLab: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/commit/7ec6ee4725a72b42ddcb38550efc968a06e6be2f

-- 
View it on GitLab: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/commit/7ec6ee4725a72b42ddcb38550efc968a06e6be2f
You're receiving this email because of your account on gitlab.freedesktop.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pulseaudio-commits/attachments/20201209/082adcda/attachment-0001.htm>


More information about the pulseaudio-commits mailing list