--- /dev/null
+#
+# 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