]> git.alsa-project.org Git - alsa-lib.git/commitdiff
enable dmix-ing and proper 5.1 routing for USB audio devices
authorClemens Ladisch <clemens@ladisch.de>
Tue, 13 Feb 2007 08:01:31 +0000 (09:01 +0100)
committerClemens Ladisch <clemens@ladisch.de>
Tue, 13 Feb 2007 08:01:31 +0000 (09:01 +0100)
add a configuration file for USB audio devices

src/conf/cards/USB-Audio.conf [new file with mode: 0644]

diff --git a/src/conf/cards/USB-Audio.conf b/src/conf/cards/USB-Audio.conf
new file mode 100644 (file)
index 0000000..470f2b4
--- /dev/null
@@ -0,0 +1,334 @@
+#
+#  USB-Audio.conf - configuration for USB Audio devices
+#
+#
+#  DO NO EDIT; this is an internal ALSA file.
+#  If you want to add your own definitions, put them into /etc/asound.conf or
+#  ~/.asoundrc, with "cards." before the "USB-Audio", e.g.:
+#
+#  cards.USB-Audio.pcm.use_dmix."NoiseBlaster 3000" no
+#
+#  If your device requires such a definition to work correctly, please report it
+#  to <alsa-devel@lists.sourceforge.net>.
+
+
+# If a device has sample formats not supported by dmix, dmix can be disabled
+# here.
+USB-Audio.pcm.use_dmix {
+       "AudioPhile" no    # uses big-endian 24-bit samples
+}
+
+# If a device does not have a four-channel mode for the front/rear outputs,
+# other modes can be selected here.
+# six_channels       - for devices that route the last two of the four channels
+#                      to the center/LFE outputs
+# two_stereo_devices - for devices that have two stereo audio interfaces
+USB-Audio.pcm.surround40_type {
+       "AudioPhile" two_stereo_devices
+       "OmniStudio" two_stereo_devices
+       "Quattro" two_stereo_devices
+       "SB Audigy 2 NX" six_channels
+}
+
+# If a device does not use the first PCM device for digital data, the device
+# number for the iec958 device can be changed here.
+USB-Audio.pcm.iec958_device {
+       # "NoiseBlaster 3000" 42
+}
+
+
+# If a device requires non-standard definitions for front, surround40,
+# surround51, surround71 or iec958, they can be defined here.
+
+# USB-Audio."NoiseBlaster 3000".pcm.surround51 {
+#      @args [ CARD ]
+#      @args.CARD { type string }
+#      ...
+# }
+
+
+################################################################################
+
+<confdir:pcm/front.conf>
+
+USB-Audio.pcm.front.0 {
+       @args [ CARD ]
+       @args.CARD { type string }
+       @func refer
+       name {
+               @func concat
+               strings [
+                       "cards.USB-Audio."
+                       { @func card_name card $CARD }
+                       ".pcm.front:CARD=" $CARD
+               ]
+       }
+       default {
+               # We could use softvol, but the driver might have guessed a
+               # wrong name for the real volume control.
+               type hw
+               card $CARD
+               device 0
+       }
+}      
+
+USB-Audio.pcm.default {
+       @args [ CARD ]
+       @args.CARD { type string }
+       type asym
+       playback.pcm {
+               type plug
+               slave.pcm {
+                       @func refer
+                       name {
+                               @func concat
+                               strings [
+                                       "cards.USB-Audio.pcm.default_playback_dmix_"
+                                       {
+                                               @func refer
+                                               name {
+                                                       @func concat
+                                                       strings [
+                                                               "cards.USB-Audio.pcm.use_dmix."
+                                                               { @func card_name card $CARD }
+                                                       ]
+                                               }
+                                               default yes
+                                       }
+                                       ":CARD=" $CARD
+                               ]
+                       }
+               }
+       }
+       capture.pcm {
+               type plug
+               slave.pcm {
+                       @func concat
+                       strings [ "dsnoop:" $CARD ]
+               }
+       }
+}
+
+USB-Audio.pcm.default_playback_dmix_yes {
+       @args [ CARD ]
+       @args.CARD { type string }
+       @func concat
+       strings [ "dmix:" $CARD ]
+}
+
+USB-Audio.pcm.default_playback_dmix_no {
+       @args [ CARD ]
+       @args.CARD { type string }
+       type hw
+       card $CARD
+       device 0
+}
+
+<confdir:pcm/surround40.conf>
+
+USB-Audio.pcm.surround40.0 {
+       @args [ CARD ]
+       @args.CARD { type string }
+       @func refer
+       name {
+               @func concat
+               strings [
+                       "cards.USB-Audio."
+                       { @func card_name card $CARD }
+                       ".pcm.surround40:CARD=" $CARD
+               ]
+       }
+       default {
+               @func refer
+               name {
+                       @func concat
+                       strings [
+                               "cards.USB-Audio.pcm.surround40_"
+                               {
+                                       @func refer
+                                       name {
+                                               @func concat
+                                               strings [
+                                                       "cards.USB-Audio.pcm.surround40_type."
+                                                       { @func card_name card $CARD }
+                                               ]
+                                       }
+                                       default default
+                               }
+                               ":CARD=" $CARD
+                       ]
+               }
+       }
+}
+
+USB-Audio.pcm.surround40_default {
+       @args [ CARD ]
+       @args.CARD { type string }
+       type hw
+       card $CARD
+       device 0
+}
+
+USB-Audio.pcm.surround40_six_channels {
+       @args [ CARD ]
+       @args.CARD { type string }
+       type route
+       ttable.0.0 1
+       ttable.1.1 1
+       ttable.2.4 1
+       ttable.3.5 1
+       slave {
+               pcm {
+                       type hw
+                       card $CARD
+                       device 0
+               }
+               channels 6
+       }
+}
+
+USB-Audio.pcm.surround40_two_stereo_devices {
+       @args [ CARD ]
+       @args.CARD { type string }
+       type route
+       ttable.0.0 1
+       ttable.1.1 1
+       ttable.2.2 1
+       ttable.3.3 1
+       slave.pcm {
+               type multi
+               slaves {
+                       a {
+                               pcm {
+                                       type hw
+                                       card $CARD
+                                       device 0
+                               }
+                               channels 2
+                       }
+                       b {
+                               pcm {
+                                       type hw
+                                       card $CARD
+                                       device 1
+                               }
+                               channels 2
+                       }
+               }
+               bindings [
+                       { slave a channel 0 }
+                       { slave a channel 1 }
+                       { slave b channel 0 }
+                       { slave b channel 1 }
+               ]
+       }
+}
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+USB-Audio.pcm.surround51.0 {
+       @args [ CARD ]
+       @args.CARD { type string }
+       @func refer
+       name {
+               @func concat
+               strings [
+                       "cards.USB-Audio."
+                       { @func card_name card $CARD }
+                       ".pcm.surround51:CARD=" $CARD
+               ]
+       }
+       default {
+               type route
+               ttable.0.0 1
+               ttable.1.1 1
+               ttable.2.4 1
+               ttable.3.5 1
+               ttable.4.2 1
+               ttable.5.3 1
+               slave {
+                       pcm {
+                               type hw
+                               card $CARD
+                               device 0
+                       }
+                       channels 6
+               }
+       }
+}
+
+<confdir:pcm/surround71.conf>
+
+USB-Audio.pcm.surround71.0 {
+       @args [ CARD ]
+       @args.CARD { type string }
+       @func refer
+       name {
+               @func concat
+               strings [
+                       "cards.USB-Audio."
+                       { @func card_name card $CARD }
+                       ".pcm.surround71:CARD=" $CARD
+               ]
+       }
+       default {
+               type route
+               ttable.0.0 1
+               ttable.1.1 1
+               ttable.2.4 1
+               ttable.3.5 1
+               ttable.4.2 1
+               ttable.5.3 1
+               ttable.6.6 1
+               ttable.7.7 1
+               slave {
+                       pcm {
+                               type hw
+                               card $CARD
+                               device 0
+                       }
+                       channels 8
+               }
+       }
+}
+
+<confdir:pcm/iec958.conf>
+
+USB-Audio.pcm.iec958.0 {
+       @args [ CARD AES0 AES1 AES2 AES3 ]
+       @args.CARD { type string }
+       @args.AES0 { type integer }
+       @args.AES1 { type integer }
+       @args.AES2 { type integer }
+       @args.AES3 { type integer }
+       @func refer
+       name {
+               @func concat
+               strings [
+                       "cards.USB-Audio."
+                       { @func card_name card $CARD }
+                       ".pcm.iec958:CARD=" $CARD
+                       ",AES0=" $AES0 ",AES1=" $AES1 ",AES2=" $AES2 ",AES3=" $AES3
+               ]
+       }
+       default {
+               # FIXME: we cannot set the AES parameters
+               type hw
+               card $CARD
+               device {
+                       @func refer
+                       name {
+                               @func concat
+                               strings [
+                                       "cards.USB-Audio.pcm.iec958_device."
+                                       { @func card_name card $CARD }
+                               ]
+                       }
+                       default 0
+               }
+       }
+}
+
+# vim: ft=alsaconf