blob: 0726c34bb0cf657298c6bfe214ad5ffe5462f498 [file] [log] [blame]
#
# 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@alsa-project.org>.
# 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
"Audiophile USB (tm)" no
}
# 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
"Audiophile USB (tm)" 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.
# M-Audio AudioPhile USB:
# device 0: analog output, digital input
# device 1: digital output, analog input
USB-Audio."AudioPhile".pcm.default "cards.USB-Audio.Audiophile USB (tm).pcm.default"
USB-Audio."Audiophile USB (tm)".pcm.default {
@args [ CARD ]
@args.CARD { type string }
type asym
playback.pcm {
type plug
slave.pcm {
type hw
card $CARD
device 0
}
}
capture.pcm {
type plug
slave.pcm {
@func concat
strings [ "dsnoop:DEVICE=1,CARD=" $CARD ]
}
}
}
USB-Audio."AudioPhile".pcm.iec958 "cards.USB-Audio.Audiophile USB (tm).pcm.iec958"
USB-Audio."Audiophile USB (tm)".pcm.iec958 {
@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 }
type asym
playback.pcm {
type hw
card $CARD
device 1
}
capture.pcm {
type hw
card $CARD
device 0
}
}
################################################################################
<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