Ticket #624: pulseaudio-add-profile-sets-for-Terratec-EWS88-MT.patch

File pulseaudio-add-profile-sets-for-Terratec-EWS88-MT.patch, 12.5 KB (added by aelschuring, 3 years ago)

Revised patch: better channel map support and working analog+digital profile

  • src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules

    From d6b2526254ea71302b4a243c2d74f89208a3a2fd Mon Sep 17 00:00:00 2001
    From: Arno Schuring <aelschuring@hotmail.com>
    Date: Fri, 21 Aug 2009 03:15:48 +0200
    Subject: [PATCH 1/2] Add a profile set for the Terratec EWS88 MT.
    
    The Terratec EWS88 is a professional audio card supporting full 24bit/96kHz
    sampling on 8 separate input/output channels (4 stereo pairs). It also has a
    digital SPDIF input/output channel and a simple "monitor" stereo output.
    
    This card identifies as PCI ID 1412:1712, which is the generic VIA ICE1712
    chip, so udev rules must target the Terratec subsystem ID. There are two of
    them, :1115 for regular use and :1125 for the Master card when multiple cards
    are linked together.
    ---
     .../alsa/mixer/profile-sets/90-pulseaudio.rules    |    4 +
     .../alsa/mixer/profile-sets/terratec-ews88-mt.conf |  167 +++++++++++++++++++
     .../alsa/mixer/profile-sets/via-ice1712.conf       |  128 ++++++++++++++
     3 files changed, 306 insertions(+), 0 deletions(-)
     create mode 100644 src/modules/alsa/mixer/profile-sets/terratec-ews88-mt.conf
     create mode 100644 src/modules/alsa/mixer/profile-sets/via-ice1712.conf
    
    diff --git a/src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules b/src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules
    index ea1a2fe..ced202e 100644
    a b  
    2323SUBSYSTEMS=="usb", ATTRS{idVendor}=="17cc", ATTRS{idProduct}=="1978", ENV{PULSE_PROFILE_SET}="native-instruments-audio8dj.conf" 
    2424SUBSYSTEMS=="usb", ATTRS{idVendor}=="17cc", ATTRS{idProduct}=="0839", ENV{PULSE_PROFILE_SET}="native-instruments-audio4dj.conf" 
    2525 
     26SUBSYSTEMS=="pci", ATTRS{vendor}=="0x1412", ATTRS{device}=="0x1712", ATTRS{subsystem_vendor}=="0x153b", ATTRS{subsystem_device}=="0x1115", ENV{PULSE_PROFILE_SET}="terratec-ews88-mt.conf" 
     27SUBSYSTEMS=="pci", ATTRS{vendor}=="0x1412", ATTRS{device}=="0x1712", ATTRS{subsystem_vendor}=="0x153b", ATTRS{subsystem_device}=="0x1125", ENV{PULSE_PROFILE_SET}="terratec-ews88-mt.conf" 
     28 
     29 
    2630LABEL="pulseaudio_end" 
  • (a) /dev/null vs. (b) b/src/modules/alsa/mixer/profile-sets/terratec-ews88-mt.conf

    diff --git a/src/modules/alsa/mixer/profile-sets/terratec-ews88-mt.conf b/src/modules/alsa/mixer/profile-sets/terratec-ews88-mt.conf
    new file mode 100644
    index 0000000..05d1395
    a b  
     1# This file is part of PulseAudio. 
     2# 
     3# PulseAudio is free software; you can redistribute it and/or modify 
     4# it under the terms of the GNU Lesser General Public License as 
     5# published by the Free Software Foundation; either version 2.1 of the 
     6# License, or (at your option) any later version. 
     7# 
     8# PulseAudio is distributed in the hope that it will be useful, but 
     9# WITHOUT ANY WARRANTY; without even the implied warranty of 
     10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 
     11# General Public License for more details. 
     12# 
     13# You should have received a copy of the GNU Lesser General Public License 
     14# along with PulseAudio; if not, write to the Free Software Foundation, 
     15# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 
     16 
     17; Terratec EWS88 MT 
     18; 
     19; This card has four stereo pairs of input and four stereo pairs of 
     20; output, named channels 1 to 8. Also available are separate S/PDIF stereo 
     21; channels (input and output), and a separate "system-out" stereo jack that 
     22; supports 6-channel hardware mixing. 
     23; 
     24; We knowingly only define a subset of the theoretically possible 
     25; mapping combinations as profiles here. 
     26; 
     27; See default.conf for an explanation on the directives used here. 
     28 
     29[General] 
     30auto-profiles = no 
     31 
     32[Mapping analog-stereo-in] 
     33description = Analog Stereo Main Input 
     34device-strings = hw:%f,0 
     35channel-map = front-left,front-right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,aux8,aux9 
     36direction = input 
     37 
     38[Mapping analog-8ch-in] 
     39description = Analog 8-Channel Main Input 
     40device-strings = hw:%f,0 
     41channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right,aux0,aux1,aux2,aux3 
     42direction = input 
     43 
     44[Mapping analog-stereo-out] 
     45description = Analog Stereo Main Output 
     46device-strings = hw:%f,0 
     47channel-map = front-left,front-right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7 
     48direction = output 
     49 
     50[Mapping analog-40-out] 
     51description = Analog 4.0 Main Output 
     52device-strings = hw:%f,0 
     53channel-map = front-left,front-right,rear-left,rear-right,aux0,aux1,aux2,aux3,aux4,aux5 
     54direction = output 
     55 
     56[Mapping analog-41-out] 
     57description = Analog 4.1 Main Output 
     58device-strings = hw:%f,0 
     59channel-map = front-left,front-right,rear-left,rear-right,aux0,lfe,aux1,aux2,aux3,aux4 
     60direction = output 
     61 
     62[Mapping analog-51-out] 
     63description = Analog 5.1 Main Output 
     64device-strings = hw:%f,0 
     65channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,aux0,aux1,aux2,aux3 
     66direction = output 
     67 
     68[Mapping analog-71-out] 
     69description = Analog 7.1 Main Output 
     70device-strings = hw:%f,0 
     71channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right,aux0,aux1 
     72direction = output 
     73 
     74[Mapping analog-digital-stereo-out] 
     75description = Analog+Digital 2-Channel Main Output 
     76device-strings = hw:%f,0 
     77channel-map = front-left,front-right,aux0,aux1,aux2,aux3,aux4,aux5,front-left,front-right 
     78direction = output 
     79 
     80[Mapping digital-stereo-in] 
     81description = Digital Stereo Input 
     82device-strings = hw:%f,0 
     83channel-map = aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,front-left,front-right,aux8,aux9 
     84direction = input 
     85 
     86[Mapping digital-stereo-out] 
     87description = Digital Stereo Output 
     88device-strings = hw:%f,0 
     89channel-map = aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,front-left,front-right 
     90direction = output 
     91 
     92[Mapping digital-mixer-in] 
     93description = Virtual Mixer Input 
     94device-strings = hw:%f,0 
     95channel-map = aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,aux8,aux9,front-left,front-right 
     96direction = input 
     97 
     98# purpose of hw:,1 isn't clear 
     99#[Mapping digital-mixer] 
     100#description = Virtual Mixer Input 
     101#device-strings = hw:%f,1 
     102#channel-map = left,right 
     103#direction = input 
     104 
     105[Mapping analog-system-out] 
     106description = Analog Stereo System-Out 
     107device-strings = hw:%f,2 
     108channel-map = front-left,front-right 
     109direction = output 
     110 
     111 
     112[Profile output:stereo] 
     113description = Analog Stereo Output (Digital Output Disabled) 
     114output-mappings = analog-stereo-out analog-system-out 
     115input-mappings =  
     116priority = 45 
     117skip-probe = yes 
     118 
     119[Profile output:stereo_all+input:stereo] 
     120description = Analog/Digital Stereo Output, Analog Stereo Input 
     121output-mappings = analog-digital-stereo-out analog-system-out 
     122input-mappings = analog-stereo-in 
     123priority = 95 
     124skip-probe = yes 
     125 
     126[Profile output:stereo_all+input:digital] 
     127description = Analog/Digital Stereo Output, Digital Stereo Input 
     128output-mappings = analog-digital-stereo-out analog-system-out 
     129input-mappings = digital-stereo-in 
     130priority = 75 
     131skip-probe = yes 
     132 
     133[Profile output:stereo_all+input:virtual] 
     134description = Analog/Digital Stereo Output, Virtual Mixer Input 
     135output-mappings = analog-digital-stereo-out analog-system-out 
     136input-mappings = digital-mixer-in 
     137priority = 90 
     138skip-probe = yes 
     139 
     140[Profile output:8ch+input:8ch] 
     141description = Analog 7.1 Output, Analog 8-Channel Input 
     142output-mappings = analog-71-out analog-system-out 
     143input-mappings = analog-8ch-in 
     144priority = 100 
     145skip-probe = yes 
     146 
     147[Profile output:spdif] 
     148description = Digital Output (Analog Output Disabled) 
     149output-mappings = digital-stereo-out analog-system-out 
     150input-mappings =  
     151priority = 40 
     152skip-probe = yes 
     153 
     154[Profile output:spdif+input:spdif] 
     155description = Digital Input/Output (Analog Output Disabled) 
     156output-mappings = digital-stereo-out analog-system-out 
     157input-mappings = digital-stereo-in 
     158priority = 50 
     159skip-probe = yes 
     160 
     161[Profile output:system] 
     162description = System Output Only 
     163output-mappings = analog-system-out 
     164input-mappings =  
     165priority = 10 
     166skip-probe = yes 
     167 
  • (a) /dev/null vs. (b) b/src/modules/alsa/mixer/profile-sets/via-ice1712.conf

    diff --git a/src/modules/alsa/mixer/profile-sets/via-ice1712.conf b/src/modules/alsa/mixer/profile-sets/via-ice1712.conf
    new file mode 100644
    index 0000000..e08747a
    a b  
     1# This file is part of PulseAudio. 
     2# 
     3# PulseAudio is free software; you can redistribute it and/or modify 
     4# it under the terms of the GNU Lesser General Public License as 
     5# published by the Free Software Foundation; either version 2.1 of the 
     6# License, or (at your option) any later version. 
     7# 
     8# PulseAudio is distributed in the hope that it will be useful, but 
     9# WITHOUT ANY WARRANTY; without even the implied warranty of 
     10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 
     11# General Public License for more details. 
     12# 
     13# You should have received a copy of the GNU Lesser General Public License 
     14# along with PulseAudio; if not, write to the Free Software Foundation, 
     15# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 
     16 
     17; Via ICE1712 multi-channel audio chipset 
     18; 
     19; This chipset has up to four stereo pairs of input and four stereo pairs of 
     20; output, named channels 1 to 8. Also available are separate S/PDIF stereo 
     21; channels (input and output), and a separate "system-out" stereo jack that 
     22; supports 6-channel hardware mixing. 
     23; 
     24; The S/PDIF stereo channels can be controlled via the mixer for hw:0, and 
     25; additionally, the 8 main outputs can be loop-routed to a separate stereo 
     26; input pair, available as channels 11 and 12. 
     27; 
     28; Many cards available from vendors do not expose all channels from this chip 
     29; to an external port, which effectively reduces the number of channels that 
     30; are useful to the user. However, the ALSA driver still exposes all channels 
     31; even if they are not connected. 
     32; 
     33; This file only serves as a reference file for those wanting to create and/or 
     34; test a profile for their card. Although this profile-set will work for 
     35; every ICE1712-based card, it will either expose features not available on 
     36; a particular card or expose less features than the card supports. 
     37; 
     38; 
     39; See default.conf for an explanation on the directives used here. 
     40 
     41[General] 
     42auto-profiles = no 
     43 
     44[Mapping analog-mch-in] 
     45description = Analog Multi-Channel Main Input 
     46device-strings = hw:%f,0 
     47channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right,aux0,aux1,aux2,aux3 
     48direction = input 
     49 
     50[Mapping analog-stereo-in] 
     51description = Analog Stereo Input 
     52device-strings = hw:%f,0 
     53channel-map = front-left,front-right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,aux8,aux9 
     54direction = input 
     55 
     56[Mapping analog-mch-out] 
     57description = Analog Multi-Channel Main Output 
     58device-strings = hw:%f,0 
     59channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right,aux0,aux1 
     60direction = output 
     61 
     62[Mapping analog-digital-stereo-out] 
     63description = Analog/Digital Stereo Output 
     64device-strings = hw:%f,0 
     65channel-map = front-left,front-right,aux0,aux1,aux2,aux3,aux4,aux5,front-left,front-right 
     66direction = output 
     67 
     68[Mapping digital-stereo-out] 
     69description = Digital Stereo Output 
     70device-strings = hw:%f,0 
     71channel-map = aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,front-left,front-right 
     72direction = output 
     73 
     74[Mapping digital-stereo-in] 
     75description = Digital Stereo Input 
     76device-strings = hw:%f,0 
     77channel-map = aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,front-left,front-right,aux8,aux9 
     78direction = input 
     79 
     80[Mapping analog-system-out] 
     81description = Analog Stereo System-Out 
     82device-strings = hw:%f,2 
     83channel-map = left,right 
     84direction = output 
     85 
     86 
     87[Profile output:mch] 
     88description = Analog Multi-Channel Output (Digital Disabled) 
     89output-mappings = analog-mch-out analog-system-out 
     90input-mappings =  
     91priority = 60 
     92skip-probe = yes 
     93 
     94[Profile output:mch+input:mch] 
     95description = Analog Multi-Channel Input/Output (Digital Disabled) 
     96output-mappings = analog-mch-out analog-system-out 
     97input-mappings = analog-mch-in 
     98priority = 100 
     99skip-probe = yes 
     100 
     101[Profile output:stereo-da+input:stereo-analog] 
     102description = Analog Stereo Input/Output, Digital Stereo Output 
     103output-mappings = analog-digital-stereo-out analog-system-out 
     104input-mappings = analog-stereo-in 
     105priority = 90 
     106skip-probe = yes 
     107 
     108[Profile output:spdif] 
     109description = Digital Stereo Output (Multi-Channel Disabled) 
     110output-mappings = digital-stereo-out analog-system-out 
     111input-mappings =  
     112priority = 70 
     113skip-probe = yes 
     114 
     115[Profile output:spdif+input:spdif] 
     116description = Digital Stereo Input/Output (Multi-Channel Disabled) 
     117output-mappings = digital-stereo-out analog-system-out 
     118input-mappings = digital-stereo-in 
     119priority = 80 
     120skip-probe = yes 
     121 
     122[Profile output:system] 
     123description = System Output Only 
     124output-mappings = analog-system-out 
     125input-mappings =  
     126priority = 50 
     127skip-probe = yes 
     128