For nest-cam v350 release
Bug: 259322762
diff --git a/etc/asound.conf b/etc/asound.conf
new file mode 100644
index 0000000..34fd695
--- /dev/null
+++ b/etc/asound.conf
@@ -0,0 +1,36 @@
+# This PCM is used to test 6 channels via a stereo (2 channels) audio stream.
+pcm.ch51dup {
+ type route
+ slave.pcm surround51
+ slave.channels 6
+
+ ttable.0.0 1
+ ttable.1.1 1
+ ttable.0.2 1
+ ttable.1.3 1
+ ttable.0.4 1
+ ttable.1.5 1
+}
+
+# This PCM is used to test 4 channels via a stereo (2 channels) audio stream.
+pcm.ch40dup {
+ type route
+ slave.pcm surround40
+ slave.channels 4
+
+ ttable.0.0 1
+ ttable.1.1 1
+ ttable.0.2 1
+ ttable.1.3 1
+}
+
+# This PCM is used to swap a stereo (2 channels) audio stream
+pcm.ch2swp {
+ type route
+ slave.pcm "hw:0,0"
+ slave.channels 2
+
+ ttable.0.1 1
+ ttable.1.0 1
+}
+
diff --git a/usr/bin/aserver b/usr/bin/aserver
new file mode 100755
index 0000000..6c2e968
--- /dev/null
+++ b/usr/bin/aserver
Binary files differ
diff --git a/usr/lib/alsa-lib/smixer/smixer-ac97.so b/usr/lib/alsa-lib/smixer/smixer-ac97.so
new file mode 100755
index 0000000..83504d0
--- /dev/null
+++ b/usr/lib/alsa-lib/smixer/smixer-ac97.so
Binary files differ
diff --git a/usr/lib/alsa-lib/smixer/smixer-hda.so b/usr/lib/alsa-lib/smixer/smixer-hda.so
new file mode 100755
index 0000000..987624c
--- /dev/null
+++ b/usr/lib/alsa-lib/smixer/smixer-hda.so
Binary files differ
diff --git a/usr/lib/alsa-lib/smixer/smixer-sbase.so b/usr/lib/alsa-lib/smixer/smixer-sbase.so
new file mode 100755
index 0000000..ce2ceac
--- /dev/null
+++ b/usr/lib/alsa-lib/smixer/smixer-sbase.so
Binary files differ
diff --git a/usr/lib/libasound.so b/usr/lib/libasound.so
new file mode 120000
index 0000000..42dfc99
--- /dev/null
+++ b/usr/lib/libasound.so
@@ -0,0 +1 @@
+libasound.so.2.0.0
\ No newline at end of file
diff --git a/usr/lib/libasound.so.2 b/usr/lib/libasound.so.2
new file mode 120000
index 0000000..42dfc99
--- /dev/null
+++ b/usr/lib/libasound.so.2
@@ -0,0 +1 @@
+libasound.so.2.0.0
\ No newline at end of file
diff --git a/usr/lib/libasound.so.2.0.0 b/usr/lib/libasound.so.2.0.0
new file mode 100755
index 0000000..a397918
--- /dev/null
+++ b/usr/lib/libasound.so.2.0.0
Binary files differ
diff --git a/usr/share/alsa/alsa.conf b/usr/share/alsa/alsa.conf
new file mode 100644
index 0000000..bc91df3
--- /dev/null
+++ b/usr/share/alsa/alsa.conf
@@ -0,0 +1,618 @@
+#
+# ALSA library configuration file
+#
+
+# pre-load the configuration files
+
+@hooks [
+ {
+ func load
+ files [
+ {
+ @func concat
+ strings [
+ { @func datadir }
+ "/alsa.conf.d/"
+ ]
+ }
+ "/etc/asound.conf"
+ "~/.asoundrc"
+ ]
+ errors false
+ }
+]
+
+# load card-specific configuration files (on request)
+
+cards.@hooks [
+ {
+ func load
+ files [
+ {
+ @func concat
+ strings [
+ { @func datadir }
+ "/cards/aliases.conf"
+ ]
+ }
+ ]
+ }
+ {
+ func load_for_all_cards
+ files [
+ {
+ @func concat
+ strings [
+ { @func datadir }
+ "/cards/"
+ { @func private_string }
+ ".conf"
+ ]
+ }
+ ]
+ errors false
+ }
+]
+
+#
+# defaults
+#
+
+# show all name hints also for definitions without hint {} section
+defaults.namehint.showall off
+# show just basic name hints
+defaults.namehint.basic on
+# show extended name hints
+defaults.namehint.extended off
+#
+defaults.ctl.card 0
+defaults.pcm.card 0
+defaults.pcm.device 0
+defaults.pcm.subdevice -1
+defaults.pcm.nonblock 1
+defaults.pcm.compat 0
+defaults.pcm.minperiodtime 5000 # in us
+defaults.pcm.ipc_key 5678293
+defaults.pcm.ipc_gid audio
+defaults.pcm.ipc_perm 0660
+defaults.pcm.dmix.max_periods 0
+defaults.pcm.dmix.rate 48000
+defaults.pcm.dmix.format "unchanged"
+defaults.pcm.dmix.card defaults.pcm.card
+defaults.pcm.dmix.device defaults.pcm.device
+defaults.pcm.dsnoop.card defaults.pcm.card
+defaults.pcm.dsnoop.device defaults.pcm.device
+defaults.pcm.front.card defaults.pcm.card
+defaults.pcm.front.device defaults.pcm.device
+defaults.pcm.rear.card defaults.pcm.card
+defaults.pcm.rear.device defaults.pcm.device
+defaults.pcm.center_lfe.card defaults.pcm.card
+defaults.pcm.center_lfe.device defaults.pcm.device
+defaults.pcm.side.card defaults.pcm.card
+defaults.pcm.side.device defaults.pcm.device
+defaults.pcm.surround40.card defaults.pcm.card
+defaults.pcm.surround40.device defaults.pcm.device
+defaults.pcm.surround41.card defaults.pcm.card
+defaults.pcm.surround41.device defaults.pcm.device
+defaults.pcm.surround50.card defaults.pcm.card
+defaults.pcm.surround50.device defaults.pcm.device
+defaults.pcm.surround51.card defaults.pcm.card
+defaults.pcm.surround51.device defaults.pcm.device
+defaults.pcm.surround71.card defaults.pcm.card
+defaults.pcm.surround71.device defaults.pcm.device
+defaults.pcm.iec958.card defaults.pcm.card
+defaults.pcm.iec958.device defaults.pcm.device
+defaults.pcm.modem.card defaults.pcm.card
+defaults.pcm.modem.device defaults.pcm.device
+# truncate files via file or tee PCM
+defaults.pcm.file_format "raw"
+defaults.pcm.file_truncate true
+defaults.rawmidi.card 0
+defaults.rawmidi.device 0
+defaults.rawmidi.subdevice -1
+defaults.hwdep.card 0
+defaults.hwdep.device 0
+defaults.timer.class 2
+defaults.timer.sclass 0
+defaults.timer.card 0
+defaults.timer.device 0
+defaults.timer.subdevice 0
+
+#
+# PCM interface
+#
+
+# redirect to load-on-demand extended pcm definitions
+pcm.cards cards.pcm
+
+pcm.default cards.pcm.default
+pcm.sysdefault cards.pcm.default
+pcm.front cards.pcm.front
+pcm.rear cards.pcm.rear
+pcm.center_lfe cards.pcm.center_lfe
+pcm.side cards.pcm.side
+pcm.surround40 cards.pcm.surround40
+pcm.surround41 cards.pcm.surround41
+pcm.surround50 cards.pcm.surround50
+pcm.surround51 cards.pcm.surround51
+pcm.surround71 cards.pcm.surround71
+pcm.iec958 cards.pcm.iec958
+pcm.spdif iec958
+pcm.hdmi cards.pcm.hdmi
+pcm.dmix cards.pcm.dmix
+pcm.dsnoop cards.pcm.dsnoop
+pcm.modem cards.pcm.modem
+pcm.phoneline cards.pcm.phoneline
+
+pcm.hw {
+ @args [ CARD DEV SUBDEV ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_PCM_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.pcm.card
+ }
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func igetenv
+ vars [
+ ALSA_PCM_DEVICE
+ ]
+ default {
+ @func refer
+ name defaults.pcm.device
+ }
+ }
+ }
+ @args.SUBDEV {
+ type integer
+ default {
+ @func refer
+ name defaults.pcm.subdevice
+ }
+ }
+ type hw
+ card $CARD
+ device $DEV
+ subdevice $SUBDEV
+ hint {
+ show {
+ @func refer
+ name defaults.namehint.extended
+ }
+ description "Direct hardware device without any conversions"
+ }
+}
+
+pcm.plughw {
+ @args [ CARD DEV SUBDEV ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_PCM_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.pcm.card
+ }
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func igetenv
+ vars [
+ ALSA_PCM_DEVICE
+ ]
+ default {
+ @func refer
+ name defaults.pcm.device
+ }
+ }
+ }
+ @args.SUBDEV {
+ type integer
+ default {
+ @func refer
+ name defaults.pcm.subdevice
+ }
+ }
+ type plug
+ slave.pcm {
+ type hw
+ card $CARD
+ device $DEV
+ subdevice $SUBDEV
+ }
+ hint {
+ show {
+ @func refer
+ name defaults.namehint.extended
+ }
+ description "Hardware device with all software conversions"
+ }
+}
+
+pcm.plug {
+ @args [ SLAVE ]
+ @args.SLAVE {
+ type string
+ }
+ type plug
+ slave.pcm $SLAVE
+}
+
+pcm.shm {
+ @args [ SOCKET PCM ]
+ @args.SOCKET {
+ type string
+ }
+ @args.PCM {
+ type string
+ }
+ type shm
+ server $SOCKET
+ pcm $PCM
+}
+
+pcm.tee {
+ @args [ SLAVE FILE FORMAT ]
+ @args.SLAVE {
+ type string
+ }
+ @args.FILE {
+ type string
+ }
+ @args.FORMAT {
+ type string
+ default {
+ @func refer
+ name defaults.pcm.file_format
+ }
+ }
+ type file
+ slave.pcm $SLAVE
+ file $FILE
+ format $FORMAT
+ truncate {
+ @func refer
+ name defaults.pcm.file_truncate
+ }
+}
+
+pcm.file {
+ @args [ FILE FORMAT ]
+ @args.FILE {
+ type string
+ }
+ @args.FORMAT {
+ type string
+ default {
+ @func refer
+ name defaults.pcm.file_format
+ }
+ }
+ type file
+ slave.pcm null
+ file $FILE
+ format $FORMAT
+ truncate {
+ @func refer
+ name defaults.pcm.file_truncate
+ }
+}
+
+pcm.null {
+ type null
+ hint {
+ show {
+ @func refer
+ name defaults.namehint.basic
+ }
+ description "Discard all samples (playback) or generate zero samples (capture)"
+ }
+}
+
+#
+# Control interface
+#
+
+ctl.sysdefault {
+ type hw
+ card {
+ @func getenv
+ vars [
+ ALSA_CTL_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.ctl.card
+ }
+ }
+}
+ctl.default ctl.sysdefault
+
+ctl.hw {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_CTL_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.ctl.card
+ }
+ }
+ }
+ type hw
+ card $CARD
+}
+
+ctl.shm {
+ @args [ SOCKET CTL ]
+ @args.SOCKET {
+ type string
+ }
+ @args.CTL {
+ type string
+ }
+ type shm
+ server $SOCKET
+ ctl $CTL
+}
+
+#
+# RawMidi interface
+#
+
+rawmidi.default {
+ type hw
+ card {
+ @func getenv
+ vars [
+ ALSA_RAWMIDI_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.rawmidi.card
+ }
+ }
+ device {
+ @func igetenv
+ vars [
+ ALSA_RAWMIDI_DEVICE
+ ]
+ default {
+ @func refer
+ name defaults.rawmidi.device
+ }
+ }
+}
+
+rawmidi.hw {
+ @args [ CARD DEV SUBDEV ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_RAWMIDI_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.rawmidi.card
+ }
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func igetenv
+ vars [
+ ALSA_RAWMIDI_DEVICE
+ ]
+ default {
+ @func refer
+ name defaults.rawmidi.device
+ }
+ }
+ }
+ @args.SUBDEV {
+ type integer
+ default -1
+ }
+ type hw
+ card $CARD
+ device $DEV
+ subdevice $SUBDEV
+ hint {
+ description "Direct rawmidi driver device"
+ device $DEV
+ }
+}
+
+rawmidi.virtual {
+ @args [ MERGE ]
+ @args.MERGE {
+ type string
+ default 1
+ }
+ type virtual
+ merge $MERGE
+}
+
+#
+# Sequencer interface
+#
+
+seq.default {
+ type hw
+}
+
+seq.hw {
+ type hw
+}
+
+#
+# HwDep interface
+#
+
+hwdep.default {
+ type hw
+ card {
+ @func getenv
+ vars [
+ ALSA_HWDEP_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.hwdep.card
+ }
+ }
+ device {
+ @func igetenv
+ vars [
+ ALSA_HWDEP_DEVICE
+ ]
+ default {
+ @func refer
+ name defaults.hwdep.device
+ }
+ }
+}
+
+hwdep.hw {
+ @args [ CARD DEV ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_HWDEP_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.hwdep.card
+ }
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func igetenv
+ vars [
+ ALSA_HWDEP_DEVICE
+ ]
+ default {
+ @func refer
+ name defaults.hwdep.device
+ }
+ }
+ }
+ type hw
+ card $CARD
+ device $DEV
+}
+
+#
+# Timer interface
+#
+
+timer_query.default {
+ type hw
+}
+
+timer_query.hw {
+ type hw
+}
+
+timer.default {
+ type hw
+ class {
+ @func refer
+ name defaults.timer.class
+ }
+ sclass {
+ @func refer
+ name defaults.timer.sclass
+ }
+ card {
+ @func refer
+ name defaults.timer.card
+ }
+ device {
+ @func refer
+ name defaults.timer.device
+ }
+ subdevice {
+ @func refer
+ name defaults.timer.subdevice
+ }
+ hint.description "Default direct hardware timer device"
+}
+
+timer.hw {
+ @args [ CLASS SCLASS CARD DEV SUBDEV ]
+ @args.CLASS {
+ type integer
+ default {
+ @func refer
+ name defaults.timer.class
+ }
+ }
+ @args.SCLASS {
+ type integer
+ default {
+ @func refer
+ name defaults.timer.sclass
+ }
+ }
+ @args.CARD {
+ type string
+ default {
+ @func refer
+ name defaults.timer.card
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func refer
+ name defaults.timer.device
+ }
+ }
+ @args.SUBDEV {
+ type integer
+ default {
+ @func refer
+ name defaults.timer.subdevice
+ }
+ }
+ type hw
+ class $CLASS
+ sclass $SCLASS
+ card $CARD
+ device $DEV
+ subdevice $SUBDEV
+}
diff --git a/usr/share/alsa/alsa.conf.d/README b/usr/share/alsa/alsa.conf.d/README
new file mode 100644
index 0000000..9997884
--- /dev/null
+++ b/usr/share/alsa/alsa.conf.d/README
@@ -0,0 +1,2 @@
+You can place files named *.conf in this folder and they will be processed
+when initialising alsa-lib.
diff --git a/usr/share/alsa/cards/AACI.conf b/usr/share/alsa/cards/AACI.conf
new file mode 100644
index 0000000..748586a
--- /dev/null
+++ b/usr/share/alsa/cards/AACI.conf
@@ -0,0 +1,47 @@
+#
+# ALSA library configuration for ARM AACI Primecell PL-041
+#
+
+<confdir:pcm/front.conf>
+
+AACI.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+<confdir:pcm/surround40.conf>
+
+AACI.pcm.surround40.0 "cards.AACI.pcm.front.0"
+
+<confdir:pcm/surround51.conf>
+
+AACI.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.AACI.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 6
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 0 channel 3 }
+ { slave 0 channel 4 }
+ { slave 0 channel 2 }
+ { slave 0 channel 5 }
+ ]
+}
diff --git a/usr/share/alsa/cards/ATIIXP-MODEM.conf b/usr/share/alsa/cards/ATIIXP-MODEM.conf
new file mode 100644
index 0000000..6e52af0
--- /dev/null
+++ b/usr/share/alsa/cards/ATIIXP-MODEM.conf
@@ -0,0 +1,22 @@
+#
+# Configuration for the ATI IXP 150/200/250 modem controllers
+#
+
+<confdir:pcm/modem.conf>
+
+ATIIXP-MODEM.pcm.modem.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type route
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ slave.channels 2
+ slave.format S16_LE
+ ttable.0.1 1
+ ttable.1.0 0
+ hint.show off
+}
diff --git a/usr/share/alsa/cards/ATIIXP-SPDMA.conf b/usr/share/alsa/cards/ATIIXP-SPDMA.conf
new file mode 100644
index 0000000..5c80815
--- /dev/null
+++ b/usr/share/alsa/cards/ATIIXP-SPDMA.conf
@@ -0,0 +1,165 @@
+#
+# Configuration for the ATI IXP 150/200/250 chips
+#
+
+<confdir:pcm/front.conf>
+
+ATIIXP-SPDMA.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+# default with dmix/dsnoop
+ATIIXP.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ]
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ]
+ }
+ }
+}
+
+<confdir:pcm/surround40.conf>
+
+ATIIXP-SPDMA.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ channels 4
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Channel Mode"
+ preserve true
+ value "4ch"
+ lock true
+ optional true
+ }
+ # for old drivers
+ {
+ name "Line-In As Surround"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Surround Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ ]
+ }
+}
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+ATIIXP-SPDMA.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ channels 6
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Channel Mode"
+ preserve true
+ value "6ch"
+ lock true
+ optional true
+ }
+ # for old drivers
+ {
+ name "Line-In As Surround"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Mic As Center/LFE"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Surround Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ {
+ name "Center/LFE Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ ]
+ }
+}
+
+<confdir:pcm/iec958.conf>
+
+ATIIXP-SPDMA.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
+ }
+ type iec958
+ slave {
+ pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+ format IEC958_SUBFRAME_LE
+ }
+ status [ $AES0 $AES1 $AES2 $AES3 ]
+}
diff --git a/usr/share/alsa/cards/ATIIXP.conf b/usr/share/alsa/cards/ATIIXP.conf
new file mode 100644
index 0000000..38d8023
--- /dev/null
+++ b/usr/share/alsa/cards/ATIIXP.conf
@@ -0,0 +1,184 @@
+#
+# Configuration for the ATI IXP 150/200/250 chips
+#
+
+<confdir:pcm/front.conf>
+
+ATIIXP.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+# default with dmix/dsnoop
+ATIIXP.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ]
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ]
+ }
+ }
+}
+
+<confdir:pcm/surround40.conf>
+
+ATIIXP.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ channels 4
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Channel Mode"
+ preserve true
+ value "4ch"
+ lock true
+ optional true
+ }
+ # for old drivers
+ {
+ name "Line-In As Surround"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Surround Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ ]
+ }
+}
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+ATIIXP.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ channels 6
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Channel Mode"
+ preserve true
+ value "6ch"
+ lock true
+ optional true
+ }
+ # for old drivers
+ {
+ name "Line-In As Surround"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Mic As Center/LFE"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Surround Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ {
+ name "Center/LFE Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ ]
+ }
+}
+
+<confdir:pcm/iec958.conf>
+
+ATIIXP.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "IEC958 Playback AC97-SPSA"
+ lock true
+ preserve true
+ value 3
+ }
+ {
+ name "IEC958 Playback Default"
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ name "IEC958 Playback Switch"
+ lock true
+ preserve true
+ value true
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/AU8810.conf b/usr/share/alsa/cards/AU8810.conf
new file mode 100644
index 0000000..24d46c3
--- /dev/null
+++ b/usr/share/alsa/cards/AU8810.conf
@@ -0,0 +1,38 @@
+#
+# Configuration for the AU8810 chip
+#
+
+<confdir:pcm/front.conf>
+
+AU8810.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+<confdir:pcm/iec958.conf>
+
+AU8810.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
+ }
+ type hw
+ card $CARD
+ device 1
+}
diff --git a/usr/share/alsa/cards/AU8820.conf b/usr/share/alsa/cards/AU8820.conf
new file mode 100644
index 0000000..0789025
--- /dev/null
+++ b/usr/share/alsa/cards/AU8820.conf
@@ -0,0 +1,14 @@
+#
+# Configuration for the AU8820 chip
+#
+
+<confdir:pcm/front.conf>
+
+AU8820.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
diff --git a/usr/share/alsa/cards/AU8830.conf b/usr/share/alsa/cards/AU8830.conf
new file mode 100644
index 0000000..39e66d5
--- /dev/null
+++ b/usr/share/alsa/cards/AU8830.conf
@@ -0,0 +1,42 @@
+#
+# Configuration for the AU8830 chip
+#
+
+<confdir:pcm/front.conf>
+
+AU8830.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+<confdir:pcm/surround40.conf>
+
+AU8830.pcm.surround40.0 "cards.AU8830.pcm.front.0"
+
+<confdir:pcm/iec958.conf>
+
+AU8830.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
+ }
+ type hw
+ card $CARD
+ device 1
+}
diff --git a/usr/share/alsa/cards/Audigy.conf b/usr/share/alsa/cards/Audigy.conf
new file mode 100644
index 0000000..ea1e53d
--- /dev/null
+++ b/usr/share/alsa/cards/Audigy.conf
@@ -0,0 +1,318 @@
+#
+# Configuration for the Audigy chip
+#
+
+<confdir:pcm/front.conf>
+
+Audigy.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ]
+ }
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Routing"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 8 9 0 0 0 0 0 0 8 9 0 0 0 0 0 0 8 9 0 0 0 0 0 0 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Routing"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 8 9 0 0 0 0 0 0 8 9 0 0 0 0 0 0 8 9 0 0 0 0 0 0 ]
+ }
+
+ ]
+ }
+}
+
+<confdir:pcm/rear.conf>
+
+Audigy.pcm.rear.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 0 0 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 0 0 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 ]
+ }
+ ]
+ }
+}
+
+<confdir:pcm/center_lfe.conf>
+
+Audigy.pcm.center_lfe.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ]
+ }
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Routing"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 6 7 0 0 0 0 0 0 6 7 0 0 0 0 0 0 6 7 0 0 0 0 0 0 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Routing"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 6 7 0 0 0 0 0 0 6 7 0 0 0 0 0 0 6 7 0 0 0 0 0 0 ]
+ }
+ ]
+ }
+}
+
+<confdir:pcm/surround40.conf>
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+
+Audigy.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.Audigy.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.Audigy.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ ]
+}
+
+<confdir:pcm/surround51.conf>
+
+Audigy.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.Audigy.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.Audigy.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.Audigy.pcm.center_lfe.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ { slave 2 channel 0 }
+ { slave 2 channel 1 }
+ ]
+}
+
+<confdir:pcm/iec958.conf>
+
+Audigy.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "IEC958 Playback Default"
+ lock true
+ preserve true
+ optional true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "IEC958 Playback Default"
+ lock true
+ preserve true
+ optional true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ name "IEC958 Optical Raw Playback Switch"
+ lock true
+ preserve true
+ value [ 1 1 ]
+ }
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ]
+ }
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Routing"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 20 21 0 0 0 0 0 0 20 21 0 0 0 0 0 0 20 21 0 0 0 0 0 0 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Routing"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 20 21 0 0 0 0 0 0 20 21 0 0 0 0 0 0 20 21 0 0 0 0 0 0 ]
+ }
+ {
+ name "Audigy Analog/Digital Output Jack"
+ lock true
+ preserve true
+ value 1
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/Audigy2.conf b/usr/share/alsa/cards/Audigy2.conf
new file mode 100644
index 0000000..0290f6f
--- /dev/null
+++ b/usr/share/alsa/cards/Audigy2.conf
@@ -0,0 +1,425 @@
+#
+# Configuration for the Audigy2 chip
+#
+
+<confdir:pcm/front.conf>
+
+Audigy2.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ]
+ }
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Routing"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 8 9 0 0 0 0 0 0 8 9 0 0 0 0 0 0 8 9 0 0 0 0 0 0 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Routing"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 8 9 0 0 0 0 0 0 8 9 0 0 0 0 0 0 8 9 0 0 0 0 0 0 ]
+ }
+
+ ]
+ }
+}
+
+<confdir:pcm/rear.conf>
+
+Audigy2.pcm.rear.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 0 0 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 0 0 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 ]
+ }
+ ]
+ }
+}
+
+<confdir:pcm/center_lfe.conf>
+
+Audigy2.pcm.center_lfe.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ]
+ }
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Routing"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 6 7 0 0 0 0 0 0 6 7 0 0 0 0 0 0 6 7 0 0 0 0 0 0 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Routing"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 6 7 0 0 0 0 0 0 6 7 0 0 0 0 0 0 6 7 0 0 0 0 0 0 ]
+ }
+ ]
+ }
+}
+
+<confdir:pcm/side.conf>
+
+Audigy2.pcm.side.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ]
+ }
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Routing"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 14 15 0 0 0 0 0 0 14 15 0 0 0 0 0 0 14 15 0 0 0 0 0 0 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Routing"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 14 15 0 0 0 0 0 0 14 15 0 0 0 0 0 0 14 15 0 0 0 0 0 0 ]
+ }
+ ]
+ }
+}
+
+<confdir:pcm/surround40.conf>
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+
+Audigy2.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.Audigy2.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.Audigy2.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ ]
+}
+
+<confdir:pcm/surround51.conf>
+
+Audigy2.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.Audigy2.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.Audigy2.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.Audigy2.pcm.center_lfe.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ { slave 2 channel 0 }
+ { slave 2 channel 1 }
+ ]
+}
+
+<confdir:pcm/surround71.conf>
+
+Audigy2.pcm.surround71.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.Audigy2.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.Audigy2.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.Audigy2.pcm.center_lfe.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.Audigy2.pcm.side.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ { slave 2 channel 0 }
+ { slave 2 channel 1 }
+ { slave 3 channel 0 }
+ { slave 3 channel 1 }
+ ]
+}
+
+<confdir:pcm/iec958.conf>
+
+Audigy2.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "IEC958 Playback Default"
+ preserve true
+ optional true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "IEC958 Playback Default"
+ preserve true
+ optional true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ name "IEC958 Optical Raw Playback Switch"
+ lock true
+ preserve true
+ value [ 1 1 ]
+ }
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 255 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 ]
+ }
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Routing"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 20 21 0 0 0 0 0 0 20 21 0 0 0 0 0 0 20 21 0 0 0 0 0 0 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Routing"
+ index { @func private_pcm_subdevice }
+ lock true
+ optional true
+ value [ 20 21 0 0 0 0 0 0 20 21 0 0 0 0 0 0 20 21 0 0 0 0 0 0 ]
+ }
+ {
+ name "Audigy Analog/Digital Output Jack"
+ lock true
+ preserve true
+ value 1
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/Aureon51.conf b/usr/share/alsa/cards/Aureon51.conf
new file mode 100644
index 0000000..24b4d94
--- /dev/null
+++ b/usr/share/alsa/cards/Aureon51.conf
@@ -0,0 +1,179 @@
+#
+# Configuration for the Aureon51 (Envy24HT) chip
+#
+
+# default with dmix & dsnoop
+Aureon51.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ",FORMAT=S32_LE" ]
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ",FORMAT=S32_LE" ]
+ }
+ }
+}
+
+<confdir:pcm/front.conf>
+
+Aureon51.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+<confdir:pcm/rear.conf>
+
+Aureon51.pcm.rear.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 2
+ subdevice 1
+}
+
+<confdir:pcm/center_lfe.conf>
+
+Aureon51.pcm.center_lfe.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 2
+}
+
+<confdir:pcm/side.conf>
+
+Aureon51.pcm.side.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 2
+ subdevice 2
+}
+
+<confdir:pcm/surround40.conf>
+
+Aureon51.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ channels 4
+}
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+Aureon51.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ channels 6
+}
+
+<confdir:pcm/iec958.conf>
+
+Aureon51.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
+ }
+ type asym
+ playback.pcm {
+ type linear
+ slave.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface MIXER
+ name "IEC958 Output Switch"
+ lock true
+ preserve true
+ value true
+ }
+ {
+ interface PCM
+ name "IEC958 Playback Default"
+ device 1
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ ]
+ }
+ }
+ slave.format S32_LE
+ }
+ capture.pcm {
+ type linear
+ slave.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface MIXER
+ name "IEC958 Capture Switch"
+ lock true
+ preserve true
+ value true
+ }
+ ]
+ }
+ }
+ slave.format S32_LE
+ }
+}
diff --git a/usr/share/alsa/cards/Aureon71.conf b/usr/share/alsa/cards/Aureon71.conf
new file mode 100644
index 0000000..1479c25
--- /dev/null
+++ b/usr/share/alsa/cards/Aureon71.conf
@@ -0,0 +1,190 @@
+#
+# Configuration for the Aureon71 (Envy24HT) chip
+#
+
+# default with dmix & dsnoop
+Aureon71.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ",FORMAT=S32_LE" ]
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ",FORMAT=S32_LE" ]
+ }
+ }
+}
+
+<confdir:pcm/front.conf>
+
+Aureon71.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+<confdir:pcm/rear.conf>
+
+Aureon71.pcm.rear.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 2
+}
+
+<confdir:pcm/center_lfe.conf>
+
+Aureon71.pcm.center_lfe.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 2
+ subdevice 1
+}
+
+<confdir:pcm/side.conf>
+
+Aureon71.pcm.side.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 2
+ subdevice 2
+}
+
+<confdir:pcm/surround40.conf>
+
+Aureon71.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ channels 4
+}
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+Aureon71.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ channels 6
+}
+
+<confdir:pcm/surround71.conf>
+
+Aureon71.pcm.surround71.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+<confdir:pcm/iec958.conf>
+
+Aureon71.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
+ }
+ type asym
+ playback.pcm {
+ type linear
+ slave.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface MIXER
+ name "IEC958 Output Switch"
+ lock true
+ preserve true
+ value true
+ }
+ {
+ interface PCM
+ name "IEC958 Playback Default"
+ device 1
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ ]
+ }
+ }
+ slave.format S32_LE
+ }
+ capture.pcm {
+ type linear
+ slave.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface MIXER
+ name "IEC958 Capture Switch"
+ lock true
+ preserve true
+ value true
+ }
+ ]
+ }
+ }
+ slave.format S32_LE
+ }
+}
diff --git a/usr/share/alsa/cards/CA0106.conf b/usr/share/alsa/cards/CA0106.conf
new file mode 100644
index 0000000..9d21770
--- /dev/null
+++ b/usr/share/alsa/cards/CA0106.conf
@@ -0,0 +1,280 @@
+#
+# Configuration for the CA0106 chip
+#
+
+# default with dmix & dsnoop
+CA0106.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ]
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ]
+ }
+ }
+}
+
+<confdir:pcm/front.conf>
+
+CA0106.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+<confdir:pcm/rear.conf>
+
+CA0106.pcm.rear.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 1
+}
+
+<confdir:pcm/center_lfe.conf>
+
+CA0106.pcm.center_lfe.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 2
+}
+
+<confdir:pcm/side.conf>
+
+CA0106.pcm.side.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 3
+}
+
+<confdir:pcm/surround40.conf>
+
+CA0106.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.CA0106.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.CA0106.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ ]
+}
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+<confdir:pcm/surround71.conf>
+
+CA0106.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.CA0106.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.CA0106.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.CA0106.pcm.center_lfe.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ { slave 2 channel 0 }
+ { slave 2 channel 1 }
+ ]
+}
+
+CA0106.pcm.surround71.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.CA0106.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.CA0106.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.CA0106.pcm.center_lfe.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.CA0106.pcm.side.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ { slave 2 channel 0 }
+ { slave 2 channel 1 }
+ { slave 3 channel 0 }
+ { slave 3 channel 1 }
+ ]
+}
+
+
+
+
+<confdir:pcm/iec958.conf>
+
+CA0106.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "IEC958 Front Playback Volume"
+ index 0
+ lock true
+ preserve true
+ value [ 207 207 ] # Puts 0x30303030 in the Volume register. 0xff - 0x30 = 0xcf = 207
+ }
+ {
+ name "IEC958 Playback Switch"
+ lock true
+ preserve true
+ value 1
+ }
+ {
+ interface PCM
+ name "IEC958 Playback Default"
+ index 1
+ lock true
+ preserve true
+ optional true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "IEC958 Playback Default"
+ index 1
+ lock true
+ preserve true
+ optional true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/CMI8338-SWIEC.conf b/usr/share/alsa/cards/CMI8338-SWIEC.conf
new file mode 100644
index 0000000..af3a579
--- /dev/null
+++ b/usr/share/alsa/cards/CMI8338-SWIEC.conf
@@ -0,0 +1,129 @@
+#
+# Configuration for the CMI8338/8738 chip (w/o multi-channel support)
+# using software IEC958 subframe conversion
+#
+
+<confdir:pcm/front.conf>
+
+CMI8338-SWIEC.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+# default with dmix/dsnoop
+CMI8338-SWIEC.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ]
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ]
+ }
+ }
+}
+
+<confdir:pcm/rear.conf>
+
+# 2nd DAC
+# FIXME: we need a volume attenuator for rear channel.
+CMI8338-SWIEC.pcm.rear.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 1
+}
+
+<confdir:pcm/surround40.conf>
+
+# for the old CM8738 with 2nd DAC for rear
+CMI8338-SWIEC.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ master 1
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.CMI8338-SWIEC.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.CMI8338-SWIEC.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ ]
+}
+
+<confdir:pcm/iec958.conf>
+
+CMI8338-SWIEC.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
+ }
+ type asym
+ playback.pcm {
+ type iec958
+ slave.pcm {
+ type hw
+ card $CARD
+ device 2
+ }
+ status [ $AES0 $AES1 $AES2 $AES3 ]
+ preamble.z 3
+ preamble.y 5
+ preamble.x 9
+ }
+ capture.pcm {
+ type hw
+ card $CARD
+ device 2
+ }
+}
diff --git a/usr/share/alsa/cards/CMI8338.conf b/usr/share/alsa/cards/CMI8338.conf
new file mode 100644
index 0000000..144fc9b
--- /dev/null
+++ b/usr/share/alsa/cards/CMI8338.conf
@@ -0,0 +1,143 @@
+#
+# Configuration for the CMI8338/8738 chip (w/o multi-channel support)
+#
+
+<confdir:pcm/front.conf>
+
+CMI8338.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+# default with dmix/dsnoop
+CMI8338.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ]
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ]
+ }
+ }
+}
+
+<confdir:pcm/rear.conf>
+
+# 2nd DAC
+# FIXME: we need a volume attenuator for rear channel.
+CMI8338.pcm.rear.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 1
+}
+
+<confdir:pcm/surround40.conf>
+
+# for the old CM8738 with 2nd DAC for rear
+CMI8338.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ master 1
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.CMI8338.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.CMI8338.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ ]
+}
+
+<confdir:pcm/iec958.conf>
+
+CMI8338.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
+ }
+ type asym
+ playback.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 2
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "IEC958 Playback PCM Stream"
+ device 2
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ name "IEC958 Loop"
+ lock true
+ preserve true
+ value off
+ }
+ ]
+ }
+ }
+ capture.pcm {
+ type hw
+ card $CARD
+ device 2
+ }
+}
diff --git a/usr/share/alsa/cards/CMI8738-MC6.conf b/usr/share/alsa/cards/CMI8738-MC6.conf
new file mode 100644
index 0000000..171c772
--- /dev/null
+++ b/usr/share/alsa/cards/CMI8738-MC6.conf
@@ -0,0 +1,161 @@
+#
+# Configuration for the CMI8738 chip with 4/6 multi-channel support
+#
+
+<confdir:pcm/front.conf>
+
+CMI8738-MC6.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+# default with dmix/dsnoop
+CMI8738-MC6.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ]
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ]
+ }
+ }
+}
+
+<confdir:pcm/rear.conf>
+
+# 2nd DAC
+# FIXME: we need a volume attenuator for rear channel.
+CMI8738-MC6.pcm.rear.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 1
+}
+
+<confdir:pcm/surround40.conf>
+
+CMI8738-MC6.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ channels 4
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Four Channel Mode"
+ lock true
+ preserve true
+ value false
+ }
+ ]
+ }
+}
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+CMI8738-MC6.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ channels 6
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Four Channel Mode"
+ lock true
+ preserve true
+ value false
+ }
+ ]
+ }
+}
+
+<confdir:pcm/iec958.conf>
+
+CMI8738-MC6.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
+ }
+ type asym
+ playback.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 2
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "IEC958 Playback PCM Stream"
+ device 2
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ name "IEC958 Loop"
+ lock true
+ preserve true
+ value off
+ }
+ ]
+ }
+ }
+ capture.pcm {
+ type hw
+ card $CARD
+ device 2
+ }
+}
diff --git a/usr/share/alsa/cards/CMI8738-MC8.conf b/usr/share/alsa/cards/CMI8738-MC8.conf
new file mode 100644
index 0000000..a5bf6cb
--- /dev/null
+++ b/usr/share/alsa/cards/CMI8738-MC8.conf
@@ -0,0 +1,230 @@
+#
+# Configuration for the CMI8768 chip with 8 multi-channel support
+#
+
+<confdir:pcm/front.conf>
+
+CMI8738-MC8.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type softvol
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+}
+
+# default with dmix+softvol & dsnoop
+CMI8738-MC8.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ type softvol
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ]
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ]
+ }
+ }
+}
+
+<confdir:pcm/rear.conf>
+
+# 2nd DAC
+CMI8738-MC8.pcm.rear.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type softvol
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+}
+
+<confdir:pcm/surround40.conf>
+
+CMI8738-MC8.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type softvol
+ slave.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ channels 4
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Four Channel Mode"
+ lock true
+ preserve true
+ value false
+ }
+ ]
+ }
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+}
+
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+CMI8738-MC8.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type softvol
+ slave.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ channels 6
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Four Channel Mode"
+ lock true
+ preserve true
+ value false
+ }
+ ]
+ }
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+}
+
+<confdir:pcm/surround71.conf>
+
+CMI8738-MC8.pcm.surround71.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type softvol
+ slave.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ channels 8
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Four Channel Mode"
+ lock true
+ preserve true
+ value false
+ }
+ ]
+ }
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+}
+
+<confdir:pcm/iec958.conf>
+
+CMI8738-MC8.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
+ }
+ type asym
+ playback.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 2
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "IEC958 Playback PCM Stream"
+ device 2
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ name "IEC958 Loop"
+ lock true
+ preserve true
+ value off
+ }
+ ]
+ }
+ }
+ capture.pcm {
+ type hw
+ card $CARD
+ device 2
+ }
+}
diff --git a/usr/share/alsa/cards/CMI8788.conf b/usr/share/alsa/cards/CMI8788.conf
new file mode 100644
index 0000000..0ca71e9
--- /dev/null
+++ b/usr/share/alsa/cards/CMI8788.conf
@@ -0,0 +1,126 @@
+#
+# Configuration for the CMI8788 chip
+#
+
+<confdir:pcm/front.conf>
+
+CMI8788.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+# default with dmix & dsnoop
+CMI8788.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ",FORMAT=S32_LE" ]
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ",FORMAT=S32_LE" ]
+ }
+ }
+}
+
+<confdir:pcm/surround40.conf>
+
+CMI8788.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ channels 4
+}
+
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+CMI8788.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ channels 6
+}
+
+<confdir:pcm/surround71.conf>
+
+CMI8788.pcm.surround71.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ channels 8
+}
+
+<confdir:pcm/iec958.conf>
+
+CMI8788.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
+ }
+ type asym
+ playback.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ device 1
+ name "IEC958 Playback PCM Stream"
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ ]
+ }
+ }
+ capture.pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+}
+
+# vim: ft=alsaconf
diff --git a/usr/share/alsa/cards/CS46xx.conf b/usr/share/alsa/cards/CS46xx.conf
new file mode 100644
index 0000000..1983142
--- /dev/null
+++ b/usr/share/alsa/cards/CS46xx.conf
@@ -0,0 +1,218 @@
+#
+# Configuration for the CS46xx chip
+#
+
+<confdir:pcm/front.conf>
+
+CS46xx.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+# default with plughw
+# CS46xx supports multi-playback
+CS46xx.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "hw:" $CARD ]
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "hw:" $CARD ]
+ }
+ }
+}
+
+<confdir:pcm/rear.conf>
+
+CS46xx.pcm.rear.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Duplicate Front"
+ lock true
+ preserve true
+ value 0
+ optional true
+ }
+ ]
+ }
+}
+
+<confdir:pcm/center_lfe.conf>
+
+CS46xx.pcm.center_lfe.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 3
+}
+
+<confdir:pcm/surround40.conf>
+
+CS46xx.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.CS46xx.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.CS46xx.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ ]
+}
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+CS46xx.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.CS46xx.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.CS46xx.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.CS46xx.pcm.center_lfe.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ { slave 2 channel 0 }
+ { slave 2 channel 1 }
+ ]
+}
+
+<confdir:pcm/iec958.conf>
+
+CS46xx.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 2
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "IEC958 Output Switch"
+ lock true
+ preserve true
+ value 1
+ }
+ {
+ interface PCM
+ name "IEC958 Playback PCM Stream"
+ device 2
+ lock true
+ preserve true
+ optional true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ # for compatibility with older drivers
+ interface PCM
+ name "IEC958 Playback PCM Stream"
+ lock true
+ preserve true
+ optional true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/EMU10K1.conf b/usr/share/alsa/cards/EMU10K1.conf
new file mode 100644
index 0000000..706da0a
--- /dev/null
+++ b/usr/share/alsa/cards/EMU10K1.conf
@@ -0,0 +1,325 @@
+#
+# Configuration for the EMU10K1 chip
+#
+
+<confdir:pcm/front.conf>
+
+EMU10K1.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ # lock true
+ optional true
+ value [ 255 255 0 0 255 0 0 0 0 255 0 0 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ # lock true
+ optional true
+ value [ 255 255 0 0 255 0 0 0 0 255 0 0 ]
+ }
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Routing"
+ index { @func private_pcm_subdevice }
+ # lock true
+ optional true
+ value [ 8 9 0 0 8 9 0 0 8 9 0 0 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Routing"
+ index { @func private_pcm_subdevice }
+ # lock true
+ optional true
+ value [ 8 9 0 0 8 9 0 0 8 9 0 0 ]
+ }
+ ]
+ }
+ }
+ capture.pcm {
+ type hw
+ card $CARD
+ }
+}
+
+<confdir:pcm/rear.conf>
+
+EMU10K1.pcm.rear.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ # lock true
+ optional true
+ value [ 0 0 255 255 0 0 255 0 0 0 0 255 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ # lock true
+ optional true
+ value [ 0 0 255 255 0 0 255 0 0 0 0 255 ]
+ }
+ ]
+ }
+ }
+}
+
+<confdir:pcm/center_lfe.conf>
+
+EMU10K1.pcm.center_lfe.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Headphone Center Playback Switch"
+ index 1
+ preserve true
+ # lock true
+ optional true
+ value true
+ }
+ {
+ name "Headphone LFE Playback Switch"
+ index 1
+ preserve true
+ # lock true
+ optional true
+ value true
+ }
+# if you have a creative's digital receiver, you can get surround/center/lfe
+# output through the digital jack. so, the following is commented out.
+# pay attention in case of analog output from the shared center/digital
+# jack!
+# {
+# name "SB Live Analog/Digital Output Jack"
+# preserve true
+# lock true
+# value 0
+# }
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ # lock true
+ optional true
+ value [ 255 255 0 0 255 0 0 0 0 255 0 0 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ # lock true
+ optional true
+ value [ 255 255 0 0 255 0 0 0 0 255 0 0 ]
+ }
+ {
+ interface PCM
+ name "EMU10K1 PCM Send Routing"
+ index { @func private_pcm_subdevice }
+ # lock true
+ optional true
+ value [ 6 7 0 0 6 7 0 0 6 7 0 0 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "EMU10K1 PCM Send Routing"
+ index { @func private_pcm_subdevice }
+ # lock true
+ optional true
+ value [ 6 7 0 0 6 7 0 0 6 7 0 0 ]
+ }
+ ]
+ }
+ }
+}
+
+<confdir:pcm/surround40.conf>
+
+EMU10K1.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.EMU10K1.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.EMU10K1.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ ]
+}
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+EMU10K1.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.EMU10K1.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.EMU10K1.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.EMU10K1.pcm.center_lfe.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ { slave 2 channel 0 }
+ { slave 2 channel 1 }
+ ]
+}
+
+<confdir:pcm/iec958.conf>
+
+EMU10K1.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 2
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "IEC958 Playback Default"
+ device 2
+ lock true
+ preserve true
+ optional true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "IEC958 Playback Default"
+ lock true
+ preserve true
+ optional true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ name "IEC958 Optical Raw Playback Switch"
+ lock true
+ preserve true
+ value [ 1 1 ]
+ }
+ {
+ name "SB Live Analog/Digital Output Jack"
+ lock true
+ preserve true
+ value 1
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/EMU10K1X.conf b/usr/share/alsa/cards/EMU10K1X.conf
new file mode 100644
index 0000000..b5fc708
--- /dev/null
+++ b/usr/share/alsa/cards/EMU10K1X.conf
@@ -0,0 +1,201 @@
+#
+# Configuration for the EMU10K1X chip
+#
+
+# default with dmix & dsnoop
+EMU10K1X.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ]
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ]
+ }
+ }
+}
+
+<confdir:pcm/front.conf>
+
+EMU10K1X.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+<confdir:pcm/rear.conf>
+
+EMU10K1X.pcm.rear.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 1
+}
+
+<confdir:pcm/center_lfe.conf>
+
+EMU10K1X.pcm.center_lfe.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 2
+}
+
+<confdir:pcm/surround40.conf>
+
+EMU10K1X.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.EMU10K1X.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.EMU10K1X.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ ]
+}
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+EMU10K1X.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.EMU10K1X.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.EMU10K1X.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.EMU10K1X.pcm.center_lfe.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ { slave 2 channel 0 }
+ { slave 2 channel 1 }
+ ]
+}
+
+<confdir:pcm/iec958.conf>
+
+EMU10K1X.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Analog/Digital Output Jack"
+ lock true
+ preserve true
+ value 0
+ }
+ {
+ interface PCM
+ name "IEC958 Playback Default"
+ index 0
+ lock true
+ preserve true
+ optional true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "IEC958 Playback Default"
+ index 0
+ lock true
+ preserve true
+ optional true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/ENS1370.conf b/usr/share/alsa/cards/ENS1370.conf
new file mode 100644
index 0000000..32e4782
--- /dev/null
+++ b/usr/share/alsa/cards/ENS1370.conf
@@ -0,0 +1,107 @@
+#
+# Configuration for the ENS1370 chip
+#
+
+<confdir:pcm/front.conf>
+
+ENS1370.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 1
+}
+
+# default with dmix/dsnoop
+ENS1370.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ]
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ]
+ }
+ }
+}
+
+<confdir:pcm/rear.conf>
+
+ENS1370.pcm.rear.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface CARD
+ name "PCM 0 Output also on Line-In Jack"
+ preserve true
+ lock true
+ value true
+ }
+ {
+ name "PCM Switch"
+ preserve true
+ lock true
+ value [ false false ]
+ }
+ ]
+ }
+}
+
+<confdir:pcm/surround40.conf>
+
+ENS1370.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ master 1
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.ENS1370.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.ENS1370.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ ]
+}
diff --git a/usr/share/alsa/cards/ENS1371.conf b/usr/share/alsa/cards/ENS1371.conf
new file mode 100644
index 0000000..a6df425
--- /dev/null
+++ b/usr/share/alsa/cards/ENS1371.conf
@@ -0,0 +1,134 @@
+#
+# Configuration for the ENS1370 chip
+#
+
+<confdir:pcm/front.conf>
+
+ENS1371.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+# default with dmix/dsnoop
+ENS1371.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ]
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ]
+ }
+ }
+}
+
+<confdir:pcm/rear.conf>
+
+ENS1371.pcm.rear.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface MIXER
+ name "AC97 2ch->4ch Copy Switch"
+ lock true
+ preserve true
+ value 0
+ }
+ ]
+ }
+}
+
+<confdir:pcm/surround40.conf>
+
+ENS1371.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [ "cards.ENS1371.pcm.front.0:CARD=" $CARD ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [ "cards.ENS1371.pcm.rear.0:CARD=" $CARD ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ ]
+}
+
+<confdir:pcm/iec958.conf>
+
+ENS1371.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "IEC958 Playback PCM Stream"
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/ES1968.conf b/usr/share/alsa/cards/ES1968.conf
new file mode 100644
index 0000000..a6ee119
--- /dev/null
+++ b/usr/share/alsa/cards/ES1968.conf
@@ -0,0 +1,12 @@
+# configuration for ESS Maestro2
+
+<confdir:pcm/front.conf>
+
+ES1968.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
diff --git a/usr/share/alsa/cards/FM801.conf b/usr/share/alsa/cards/FM801.conf
new file mode 100644
index 0000000..997b218
--- /dev/null
+++ b/usr/share/alsa/cards/FM801.conf
@@ -0,0 +1,87 @@
+#
+# Configuration for the FM801 chip
+#
+
+<confdir:pcm/front.conf>
+
+FM801.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+# default with dmix/dsnoop
+FM801.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ]
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ]
+ }
+ }
+}
+
+<confdir:pcm/surround40.conf>
+
+FM801.pcm.surround40.0 "cards.FM801.pcm.front.0"
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+FM801.pcm.surround51.0 "cards.FM801.pcm.front.0"
+
+<confdir:pcm/iec958.conf>
+
+FM801.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ # {
+ # name "IEC958 Playback Default"
+ # value [ $AES0 $AES1 $AES2 $AES3 ]
+ # }
+ {
+ name "IEC958 Raw Data Playback Switch"
+ preserve true
+ value true
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/FWSpeakers.conf b/usr/share/alsa/cards/FWSpeakers.conf
new file mode 100644
index 0000000..cd6fa60
--- /dev/null
+++ b/usr/share/alsa/cards/FWSpeakers.conf
@@ -0,0 +1,26 @@
+#
+# Configuration for the LaCie Firewire speakers
+#
+
+FWSpeakers.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ",FORMAT=S32" ]
+ }
+}
+
+<confdir:pcm/front.conf>
+
+FWSpeakers.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
diff --git a/usr/share/alsa/cards/FireWave.conf b/usr/share/alsa/cards/FireWave.conf
new file mode 100644
index 0000000..63fb23d
--- /dev/null
+++ b/usr/share/alsa/cards/FireWave.conf
@@ -0,0 +1,50 @@
+#
+# Configuration for the Griffin FireWave Surround
+#
+
+FireWave.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ",FORMAT=S32" ]
+ }
+}
+
+<confdir:pcm/front.conf>
+
+FireWave.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+FireWave.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type route
+ ttable [
+ [ 1 0 0 0 0 0 ]
+ [ 0 1 0 0 0 0 ]
+ [ 0 0 0 0 1 0 ]
+ [ 0 0 0 0 0 1 ]
+ [ 0 0 1 0 0 0 ]
+ [ 0 0 0 1 0 0 ]
+ ]
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+}
diff --git a/usr/share/alsa/cards/GUS.conf b/usr/share/alsa/cards/GUS.conf
new file mode 100644
index 0000000..d744c54
--- /dev/null
+++ b/usr/share/alsa/cards/GUS.conf
@@ -0,0 +1,19 @@
+#
+# Configuration for the GUS soundcards
+#
+
+<confdir:pcm/front.conf>
+
+GUS.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type route
+ ttable.0.0 1
+ ttable.1.1 1
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+}
diff --git a/usr/share/alsa/cards/HDA-Intel.conf b/usr/share/alsa/cards/HDA-Intel.conf
new file mode 100644
index 0000000..d4f2667
--- /dev/null
+++ b/usr/share/alsa/cards/HDA-Intel.conf
@@ -0,0 +1,303 @@
+#
+# Configuration for the Intel HD audio (ICH6/ICH7)
+#
+
+<confdir:pcm/front.conf>
+
+HDA-Intel.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type softvol
+ slave.pcm {
+ type hw
+ card $CARD
+ subdevice 0
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+ }
+ capture.pcm {
+ type hw
+ card $CARD
+ }
+}
+
+# default with dmix+softvol & dsnoop
+HDA-Intel.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ type softvol
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ]
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ type softvol
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ]
+ }
+ control {
+ name "Digital Capture Volume"
+ card $CARD
+ }
+ min_dB -30.0
+ max_dB 30.0
+ resolution 121
+ }
+ # to avoid possible phase inversions with digital mics
+ route_policy copy
+ }
+ hint.device 0
+}
+
+<confdir:pcm/surround40.conf>
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+<confdir:pcm/surround71.conf>
+
+HDA-Intel.pcm.surround40.0 cards.HDA-Intel.pcm.front.0
+HDA-Intel.pcm.surround51.0 cards.HDA-Intel.pcm.front.0
+HDA-Intel.pcm.surround71.0 cards.HDA-Intel.pcm.front.0
+
+<confdir:pcm/iec958.conf>
+
+HDA-Intel.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
+ }
+ type asym
+ playback.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "IEC958 Playback Default"
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ name "IEC958 Playback Switch"
+ value true
+ }
+ ]
+ }
+ }
+ capture.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "IEC958 Capture Switch"
+ lock true
+ preserve true
+ value true
+ }
+ ]
+ }
+ }
+ hint.device 1
+}
+
+<confdir:pcm/hdmi.conf>
+
+HDA-Intel.pcm.hdmi.common {
+ @args [ CARD DEVICE CTLINDEX AES0 AES1 AES2 AES3 ]
+ @args.CARD {
+ type string
+ }
+ @args.DEVICE {
+ type integer
+ }
+ @args.CTLINDEX {
+ type integer
+ }
+ @args.AES0 {
+ type integer
+ }
+ @args.AES1 {
+ type integer
+ }
+ @args.AES2 {
+ type integer
+ }
+ @args.AES3 {
+ type integer
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device $DEVICE
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "IEC958 Playback Default"
+ index $CTLINDEX
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ name "IEC958 Playback Switch"
+ index $CTLINDEX
+ value true
+ }
+ ]
+ }
+ hint.device $DEVICE
+}
+
+HDA-Intel.pcm.hdmi.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.HDA-Intel.pcm.hdmi.common:"
+ "CARD=" $CARD ","
+ "DEVICE=3,"
+ "CTLINDEX=0,"
+ "AES0=" $AES0 ","
+ "AES1=" $AES1 ","
+ "AES2=" $AES2 ","
+ "AES3=" $AES3
+ ]
+ }
+}
+
+HDA-Intel.pcm.hdmi.1 {
+ @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.HDA-Intel.pcm.hdmi.common:"
+ "CARD=" $CARD ","
+ "DEVICE=7,"
+ "CTLINDEX=1,"
+ "AES0=" $AES0 ","
+ "AES1=" $AES1 ","
+ "AES2=" $AES2 ","
+ "AES3=" $AES3
+ ]
+ }
+}
+
+HDA-Intel.pcm.hdmi.2 {
+ @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.HDA-Intel.pcm.hdmi.common:"
+ "CARD=" $CARD ","
+ "DEVICE=8,"
+ "CTLINDEX=2,"
+ "AES0=" $AES0 ","
+ "AES1=" $AES1 ","
+ "AES2=" $AES2 ","
+ "AES3=" $AES3
+ ]
+ }
+}
+
+HDA-Intel.pcm.hdmi.3 {
+ @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.HDA-Intel.pcm.hdmi.common:"
+ "CARD=" $CARD ","
+ "DEVICE=9,"
+ "CTLINDEX=3,"
+ "AES0=" $AES0 ","
+ "AES1=" $AES1 ","
+ "AES2=" $AES2 ","
+ "AES3=" $AES3
+ ]
+ }
+}
+
+<confdir:pcm/modem.conf>
+
+HDA-Intel.pcm.modem.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 6
+ hint.show off
+}
diff --git a/usr/share/alsa/cards/ICE1712.conf b/usr/share/alsa/cards/ICE1712.conf
new file mode 100644
index 0000000..f5b8add
--- /dev/null
+++ b/usr/share/alsa/cards/ICE1712.conf
@@ -0,0 +1,157 @@
+#
+# Configuration for the ICE1712 (Envy24) chip
+#
+
+# default with dmix & dsnoop
+ICE1712.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ",FORMAT=S32_LE" ]
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ",FORMAT=S32_LE" ]
+ }
+ }
+}
+
+<confdir:pcm/front.conf>
+
+ICE1712.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type route
+ ttable.0.0 1
+ ttable.1.1 1
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ slave.channels 10
+ }
+ capture.pcm {
+ type route
+ ttable.0.0 1
+ ttable.1.1 1
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ slave.channels 12
+ }
+}
+
+<confdir:pcm/surround40.conf>
+
+ICE1712.pcm.surround40.0 {
+ @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 hw
+ card $CARD
+ }
+ slave.channels 10
+}
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+ICE1712.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type route
+ ttable.0.0 1
+ ttable.1.1 1
+ ttable.2.2 1
+ ttable.3.3 1
+ ttable.4.4 1
+ ttable.5.5 1
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ slave.channels 10
+}
+
+<confdir:pcm/iec958.conf>
+
+ICE1712.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
+ }
+ type asym
+ playback.pcm {
+ type hooks
+ slave.pcm {
+ type route
+ ttable.0.8 1
+ ttable.1.9 1
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ slave.format S32_LE
+ slave.channels 10
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "IEC958 Playback PCM Stream"
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ ]
+ }
+ }
+ capture.pcm {
+ type route
+ ttable.0.8 1
+ ttable.1.9 1
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ slave.format S32_LE
+ slave.channels 12
+ }
+}
diff --git a/usr/share/alsa/cards/ICE1724.conf b/usr/share/alsa/cards/ICE1724.conf
new file mode 100644
index 0000000..e806b36
--- /dev/null
+++ b/usr/share/alsa/cards/ICE1724.conf
@@ -0,0 +1,224 @@
+#
+# Configuration for the ICE1724 (Envy24HT) chip
+#
+
+# default with dmix & dsnoop
+ICE1724.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ",FORMAT=S32_LE" ]
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ",FORMAT=S32_LE" ]
+ }
+ }
+}
+
+<confdir:pcm/front.conf>
+
+ICE1724.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+<confdir:pcm/rear.conf>
+
+ICE1724.pcm.rear.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 2
+ subdevice 1
+}
+
+<confdir:pcm/center_lfe.conf>
+
+ICE1724.pcm.center_lfe.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 2
+}
+
+<confdir:pcm/side.conf>
+
+ICE1724.pcm.side.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 2
+ subdevice 2
+}
+
+<confdir:pcm/surround40.conf>
+
+ICE1724.pcm.surround40.0 {
+ @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 {
+ channels 6
+ pcm {
+ type hw
+ card $CARD
+ }
+ }
+}
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+ICE1724.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ 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 {
+ channels 6
+ pcm {
+ type hw
+ card $CARD
+ }
+ }
+}
+
+<confdir:pcm/surround71.conf>
+
+ICE1724.pcm.surround71.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ 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 {
+ channels 8
+ pcm {
+ type hw
+ card $CARD
+ }
+ }
+}
+
+<confdir:pcm/iec958.conf>
+
+ICE1724.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
+ }
+ type asym
+ playback.pcm {
+ type linear
+ slave.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface MIXER
+ name "IEC958 Output Switch"
+ lock true
+ preserve true
+ value true
+ }
+ {
+ interface PCM
+ name "IEC958 Playback Default"
+ device 1
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ ]
+ }
+ }
+ slave.format S32_LE
+ }
+ capture.pcm {
+ type linear
+ slave.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface MIXER
+ name "IEC958 Capture Switch"
+ lock true
+ preserve true
+ value true
+ }
+ ]
+ }
+ }
+ slave.format S32_LE
+ }
+}
diff --git a/usr/share/alsa/cards/ICH-MODEM.conf b/usr/share/alsa/cards/ICH-MODEM.conf
new file mode 100644
index 0000000..b96b5aa
--- /dev/null
+++ b/usr/share/alsa/cards/ICH-MODEM.conf
@@ -0,0 +1,15 @@
+#
+# Configuration for the Intel/AMD modem controllers
+#
+
+<confdir:pcm/modem.conf>
+
+ICH-MODEM.pcm.modem.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ hint.show off
+}
diff --git a/usr/share/alsa/cards/ICH.conf b/usr/share/alsa/cards/ICH.conf
new file mode 100644
index 0000000..47ffef9
--- /dev/null
+++ b/usr/share/alsa/cards/ICH.conf
@@ -0,0 +1,222 @@
+#
+# Configuration for the Intel ICH/ICH2/ICH3 chips
+#
+
+<confdir:pcm/front.conf>
+
+ICH.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type softvol
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+}
+
+# default with dmix+softvol & dsnoop
+ICH.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ type softvol
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ]
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ]
+ }
+ }
+}
+
+<confdir:pcm/surround40.conf>
+
+ICH.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type softvol
+ slave.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ channels 4
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Channel Mode"
+ preserve true
+ value "4ch"
+ lock true
+ optional true
+ }
+ # for old drivers
+ {
+ name "Line-In As Surround"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Surround Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ ]
+ }
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+}
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+ICH.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type softvol
+ slave.pcm {
+ 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 hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ channels 6
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Channel Mode"
+ preserve true
+ value "6ch"
+ lock true
+ optional true
+ }
+ # for old drivers
+ {
+ name "Line-In As Surround"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Mic As Center/LFE"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Surround Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ {
+ name "Center/LFE Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ ]
+ }
+ }
+ slave.channels 6
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+}
+
+<confdir:pcm/iec958.conf>
+
+ICH.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "IEC958 Playback AC97-SPSA"
+ lock true
+ preserve true
+ value 0
+ optional true
+ }
+ {
+ name "IEC958 Playback Default"
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ name "IEC958 Playback Switch"
+ lock true
+ preserve true
+ value true
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/ICH4.conf b/usr/share/alsa/cards/ICH4.conf
new file mode 100644
index 0000000..1bf5605
--- /dev/null
+++ b/usr/share/alsa/cards/ICH4.conf
@@ -0,0 +1,213 @@
+#
+# Configuration for the Intel ICH4/ICH5/ICH6 chips
+#
+
+<confdir:pcm/front.conf>
+
+ICH4.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type softvol
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+}
+
+# default with dmix+softvol & dsnoop
+ICH4.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ type softvol
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ]
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ]
+ }
+ }
+}
+
+<confdir:pcm/surround40.conf>
+
+ICH4.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type softvol
+ slave.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ channels 4
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Channel Mode"
+ preserve true
+ value "4ch"
+ lock true
+ optional true
+ }
+ # for old drivers
+ {
+ name "Line-In As Surround"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Surround Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ ]
+ }
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+}
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+ICH4.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type softvol
+ slave.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ channels 6
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Channel Mode"
+ preserve true
+ value "6ch"
+ lock true
+ optional true
+ }
+ # for old drivers
+ {
+ name "Line-In As Surround"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Mic As Center/LFE"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Surround Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ {
+ name "Center/LFE Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ ]
+ }
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+}
+
+<confdir:pcm/iec958.conf>
+
+ICH4.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 4
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "IEC958 Playback AC97-SPSA"
+ lock true
+ preserve true
+ value 3
+ optional true
+ }
+ {
+ name "IEC958 Playback Default"
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ name "IEC958 Playback Switch"
+ lock true
+ preserve true
+ value true
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/Maestro3.conf b/usr/share/alsa/cards/Maestro3.conf
new file mode 100644
index 0000000..9432322
--- /dev/null
+++ b/usr/share/alsa/cards/Maestro3.conf
@@ -0,0 +1,38 @@
+# configuration for ESS Maestro3
+
+<confdir:pcm/front.conf>
+
+Maestro3.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+# default with dmix/dsnoop
+Maestro3.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ # we need to specify device and subdevice numbers
+ # for a device with multiple substreams
+ @func concat
+ strings [ "dmix:" $CARD ",0,0" ]
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ]
+ }
+ }
+}
+
diff --git a/usr/share/alsa/cards/NFORCE.conf b/usr/share/alsa/cards/NFORCE.conf
new file mode 100644
index 0000000..6ebefe3
--- /dev/null
+++ b/usr/share/alsa/cards/NFORCE.conf
@@ -0,0 +1,295 @@
+#
+# Configuration for the nVIDIA nForce/2/3
+#
+
+<confdir:pcm/front.conf>
+
+NFORCE.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type softvol
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+}
+
+# default with dmix+softvol & dsnoop
+NFORCE.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ type softvol
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ]
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ]
+ }
+ }
+}
+
+<confdir:pcm/surround40.conf>
+
+NFORCE.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type softvol
+ slave.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ channels 4
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Channel Mode"
+ preserve true
+ value "4ch"
+ lock true
+ optional true
+ }
+ # for old drivers
+ {
+ name "Line-In As Surround"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Surround Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ ]
+ }
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+}
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+NFORCE.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type softvol
+ slave.pcm {
+ 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 hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ channels 6
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Channel Mode"
+ preserve true
+ value "6ch"
+ lock true
+ optional true
+ }
+ # for old drivers
+ {
+ name "Line-In As Surround"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Mic As Center/LFE"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Surround Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ {
+ name "Center/LFE Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ ]
+ }
+ }
+ slave.channels 6
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+}
+
+<confdir:pcm/surround71.conf>
+
+NFORCE.pcm.surround71.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type softvol
+ slave.pcm {
+ 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 hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 0
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Channel Mode"
+ preserve true
+ value "8ch"
+ lock true
+ optional true
+ }
+ # for old drivers
+ {
+ name "Line-In As Surround"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Mic As Center/LFE"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Surround Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ {
+ name "Center/LFE Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ ]
+ }
+ }
+ slave.channels 8
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+}
+
+<confdir:pcm/iec958.conf>
+
+NFORCE.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 2
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "IEC958 Playback AC97-SPSA"
+ lock true
+ preserve true
+ value 0
+ }
+ {
+ name "IEC958 Playback Default"
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ name "IEC958 Playback Switch"
+ lock true
+ preserve true
+ value true
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/PC-Speaker.conf b/usr/share/alsa/cards/PC-Speaker.conf
new file mode 100644
index 0000000..c82654d
--- /dev/null
+++ b/usr/share/alsa/cards/PC-Speaker.conf
@@ -0,0 +1,52 @@
+#
+# Configuration for PC-Speaker driver
+#
+
+<confdir:pcm/front.conf>
+
+PC-Speaker.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type softvol
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ control {
+ name "Master Playback Volume"
+ card $CARD
+ }
+ min_dB -10.0
+ max_dB 20.0
+}
+
+# default with dmix & null
+PC-Speaker.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ type softvol
+ control {
+ name "Master Playback Volume"
+ card $CARD
+ }
+ min_dB -10.0
+ max_dB 20.0
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ]
+ }
+ }
+ }
+ capture.pcm {
+ type null
+ }
+}
+
diff --git a/usr/share/alsa/cards/PMac.conf b/usr/share/alsa/cards/PMac.conf
new file mode 100644
index 0000000..d1fdb17
--- /dev/null
+++ b/usr/share/alsa/cards/PMac.conf
@@ -0,0 +1,37 @@
+#
+# Configuration for PMac
+#
+
+<confdir:pcm/front.conf>
+
+PMac.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+# default with dmix/dsnoop
+PMac.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dmix:CARD=" $CARD ",FORMAT=S16_BE" ]
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:CARD=" $CARD ",FORMAT=S16_BE" ]
+ }
+ }
+}
diff --git a/usr/share/alsa/cards/PMacToonie.conf b/usr/share/alsa/cards/PMacToonie.conf
new file mode 100644
index 0000000..1e0eb59
--- /dev/null
+++ b/usr/share/alsa/cards/PMacToonie.conf
@@ -0,0 +1,51 @@
+#
+# Configuration for PMac Toonie
+#
+
+<confdir:pcm/front.conf>
+
+PMacToonie.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type softvol
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+}
+
+# default with dmix+softvol & dsnoop
+PMacToonie.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ type softvol
+ slave.pcm {
+ @func concat
+ strings [ "dmix:CARD=" $CARD ",FORMAT=S16_BE" ]
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:CARD=" $CARD ",FORMAT=S16_BE" ]
+ }
+ }
+}
diff --git a/usr/share/alsa/cards/PS3.conf b/usr/share/alsa/cards/PS3.conf
new file mode 100644
index 0000000..b642f0d
--- /dev/null
+++ b/usr/share/alsa/cards/PS3.conf
@@ -0,0 +1,85 @@
+#
+# Configuration for PS3
+#
+
+<confdir:pcm/front.conf>
+
+PS3.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type softvol
+ slave.pcm {
+ type hw
+ card $CARD
+ device 0
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+}
+
+# default with dmix+softvol
+PS3.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ type softvol
+ slave.pcm {
+ @func concat
+ #strings [ "dmix:CARD=" $CARD ]
+ strings [ "dmix:CARD=" $CARD ",FORMAT=S16" ]
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+ }
+ }
+}
+
+<confdir:pcm/iec958.conf>
+
+PS3.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "IEC958 Playback Default"
+ lock true
+ preserve true
+ optional true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/RME9636.conf b/usr/share/alsa/cards/RME9636.conf
new file mode 100644
index 0000000..e8dc5fa
--- /dev/null
+++ b/usr/share/alsa/cards/RME9636.conf
@@ -0,0 +1,61 @@
+#
+# Configuration for the RME9636
+#
+
+<confdir:pcm/front.conf>
+
+RME9636.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+# FIXME: This configuration is not valid for double-speed rates.
+
+<confdir:pcm/iec958.conf>
+
+RME9636.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
+ }
+ type hooks
+ slave.pcm {
+ type route
+ slave {
+ pcm {
+ type hw
+ card $CARD
+ }
+ channels 18
+ }
+ ttable.0.16 1
+ ttable.1.17 1
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "IEC958 Playback PCM Stream"
+ lock true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/RME9652.conf b/usr/share/alsa/cards/RME9652.conf
new file mode 100644
index 0000000..1147d81
--- /dev/null
+++ b/usr/share/alsa/cards/RME9652.conf
@@ -0,0 +1,61 @@
+#
+# Configuration for the RME9652
+#
+
+<confdir:pcm/front.conf>
+
+RME9652.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+# FIXME: This configuration is not valid for double-speed rates.
+
+<confdir:pcm/iec958.conf>
+
+RME9652.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
+ }
+ type hooks
+ slave.pcm {
+ type route
+ slave {
+ pcm {
+ type hw
+ card $CARD
+ }
+ channels 26
+ }
+ ttable.0.24 1
+ ttable.1.25 1
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "IEC958 Playback PCM Stream"
+ lock true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/SB-XFi.conf b/usr/share/alsa/cards/SB-XFi.conf
new file mode 100644
index 0000000..38d0027
--- /dev/null
+++ b/usr/share/alsa/cards/SB-XFi.conf
@@ -0,0 +1,108 @@
+#
+# Configuration for the SB X-Fi driver
+#
+
+<confdir:pcm/front.conf>
+
+SB-XFi.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 0
+}
+
+<confdir:pcm/rear.conf>
+
+SB-XFi.pcm.rear.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 1
+ hint.device 1
+}
+
+<confdir:pcm/center_lfe.conf>
+
+SB-XFi.pcm.center_lfe.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 2
+ hint.device 2
+}
+
+<confdir:pcm/side.conf>
+
+SB-XFi.pcm.side.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 3
+ hint.device 3
+}
+
+<confdir:pcm/surround40.conf>
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+<confdir:pcm/surround71.conf>
+
+SB-XFi.pcm.surround40.0 cards.SB-XFi.pcm.front.0
+SB-XFi.pcm.surround51.0 cards.SB-XFi.pcm.front.0
+SB-XFi.pcm.surround71.0 cards.SB-XFi.pcm.front.0
+
+<confdir:pcm/iec958.conf>
+
+SB-XFi.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
+ }
+ type asym
+ playback.pcm {
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 4
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "IEC958 Playback PCM Stream"
+ device 4
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ ]
+ }
+ }
+ hint.device 4
+}
diff --git a/usr/share/alsa/cards/SI7018.conf b/usr/share/alsa/cards/SI7018.conf
new file mode 100644
index 0000000..15972a4
--- /dev/null
+++ b/usr/share/alsa/cards/SI7018.conf
@@ -0,0 +1,166 @@
+#
+# Configuration for the SI7018 chip
+#
+# This configuration does not reflect hardware.
+#
+
+<confdir:pcm/front.conf>
+
+SI7018.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+<confdir:pcm/rear.conf>
+
+SI7018.pcm.rear.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "PCM Playback Volume"
+ preserve true
+ lock true
+ value [ 24 24 ]
+ }
+ ]
+ }
+}
+
+<confdir:pcm/surround40.conf>
+
+SI7018.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.SI7018.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.SI7018.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ ]
+}
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+SI7018.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.SI7018.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.SI7018.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.SI7018.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ { slave 2 channel 0 }
+ { slave 2 channel 1 }
+ ]
+}
+
+<confdir:pcm/iec958.conf>
+
+SI7018.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "IEC958 Playback PCM Stream"
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ device 1
+ lock true
+ preserve true
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/TRID4DWAVENX.conf b/usr/share/alsa/cards/TRID4DWAVENX.conf
new file mode 100644
index 0000000..bbf6b7c
--- /dev/null
+++ b/usr/share/alsa/cards/TRID4DWAVENX.conf
@@ -0,0 +1,129 @@
+#
+# Configuration for the Trident 4D-Wave NX chip
+#
+
+<confdir:pcm/front.conf>
+
+TRID4DWAVENX.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+<confdir:pcm/rear.conf>
+
+TRID4DWAVENX.pcm.rear.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Rear Path"
+ lock true
+ preserve true
+ value true
+ }
+ {
+ name "PCM Front Playback Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ preserve true
+ value 0
+ }
+ {
+ name "PCM Reverb Playback Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ preserve true
+ value 127
+ }
+ ]
+ }
+}
+
+<confdir:pcm/surround40.conf>
+
+TRID4DWAVENX.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.TRID4DWAVENX.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.TRID4DWAVENX.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ ]
+}
+
+<confdir:pcm/iec958.conf>
+
+TRID4DWAVENX.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 2
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "IEC958 Playback PCM Stream"
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ device 2
+ lock true
+ preserve true
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/USB-Audio.conf b/usr/share/alsa/cards/USB-Audio.conf
new file mode 100644
index 0000000..0726c34
--- /dev/null
+++ b/usr/share/alsa/cards/USB-Audio.conf
@@ -0,0 +1,375 @@
+#
+# 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
diff --git a/usr/share/alsa/cards/VIA686A.conf b/usr/share/alsa/cards/VIA686A.conf
new file mode 100644
index 0000000..e4a06f2
--- /dev/null
+++ b/usr/share/alsa/cards/VIA686A.conf
@@ -0,0 +1,89 @@
+#
+# Configuration for the VIA686A chip
+#
+# SPDIF support is not complete - it might not work, especially with AC3
+# passthru mode...
+#
+
+<confdir:pcm/front.conf>
+
+VIA686A.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+# default with dmix/dsnoop
+VIA686A.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ]
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ]
+ }
+ }
+}
+
+<confdir:pcm/iec958.conf>
+
+VIA686A.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "IEC958 Playback AC97-SPSA"
+ lock true
+ preserve true
+ value 0
+ }
+ {
+ name "IEC958 Playback Default"
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ name "IEC958 Playback Switch"
+ lock true
+ preserve true
+ value true
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/VIA8233.conf b/usr/share/alsa/cards/VIA8233.conf
new file mode 100644
index 0000000..668bfd9
--- /dev/null
+++ b/usr/share/alsa/cards/VIA8233.conf
@@ -0,0 +1,200 @@
+#
+# Configuration for the VIA8233/VIA8233C/VIA8235 chip with 4/6 multi-channel support
+#
+
+<confdir:pcm/front.conf>
+
+VIA8233.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+# default with softvol/dsnoop
+# VIA8233 supports multi-playback
+VIA8233.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ type softvol
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ]
+ }
+ }
+}
+
+<confdir:pcm/surround40.conf>
+
+VIA8233.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ channels 4
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Channel Mode"
+ preserve true
+ value "4ch"
+ lock true
+ optional true
+ }
+ # for old drivers
+ {
+ name "Line-In As Surround"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Surround Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ ]
+ }
+}
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+VIA8233.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ channels 6
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Channel Mode"
+ preserve true
+ value "6ch"
+ lock true
+ optional true
+ }
+ # for old drivers
+ {
+ name "Line-In As Surround"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Mic As Center/LFE"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Surround Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ {
+ name "Center/LFE Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ ]
+ }
+}
+
+<confdir:pcm/iec958.conf>
+
+VIA8233.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ subdevice 3
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "IEC958 Playback AC97-SPSA"
+ lock true
+ preserve true
+ value 3
+ }
+ {
+ name "IEC958 Playback Default"
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ name "IEC958 Playback Switch"
+ lock true
+ preserve true
+ value true
+ }
+ {
+ name "IEC958 Output Switch"
+ lock true
+ preserve true
+ value true
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/VIA8233A.conf b/usr/share/alsa/cards/VIA8233A.conf
new file mode 100644
index 0000000..97d2a7d
--- /dev/null
+++ b/usr/share/alsa/cards/VIA8233A.conf
@@ -0,0 +1,204 @@
+#
+# Configuration for the VIA8233A chip with 4/6 multi-channel support
+#
+
+<confdir:pcm/front.conf>
+
+VIA8233A.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+# default with dmix/dsnoop
+VIA8233A.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dmix:" $CARD ]
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ]
+ }
+ }
+}
+
+<confdir:pcm/surround40.conf>
+
+VIA8233A.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ channels 4
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Swap Surround Slot"
+ lock true
+ preserve true
+ value false
+ optional true
+ }
+ {
+ name "Channel Mode"
+ preserve true
+ value "4ch"
+ lock true
+ optional true
+ }
+ # for old drivers
+ {
+ name "Line-In As Surround"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Surround Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ ]
+ }
+}
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+VIA8233A.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ channels 6
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Swap Surround Slot"
+ lock true
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Channel Mode"
+ preserve true
+ value "6ch"
+ lock true
+ optional true
+ }
+ # for old drivers
+ {
+ name "Line-In As Surround"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Mic As Center/LFE"
+ preserve true
+ value true
+ optional true
+ }
+ {
+ name "Surround Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ {
+ name "Center/LFE Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ ]
+ }
+}
+
+<confdir:pcm/iec958.conf>
+
+VIA8233A.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "IEC958 Playback AC97-SPSA"
+ lock true
+ preserve true
+ value 3
+ }
+ {
+ name "IEC958 Playback Default"
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ name "IEC958 Playback Switch"
+ lock true
+ preserve true
+ value true
+ }
+ {
+ name "IEC958 Output Switch"
+ lock true
+ preserve true
+ value true
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/VIA8237.conf b/usr/share/alsa/cards/VIA8237.conf
new file mode 100644
index 0000000..404e190
--- /dev/null
+++ b/usr/share/alsa/cards/VIA8237.conf
@@ -0,0 +1,190 @@
+#
+# Configuration for the VIA8237 chip with 4/6 multi-channel support
+#
+
+<confdir:pcm/front.conf>
+
+VIA8237.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+# default with softvol/dsnoop
+# VIA8237 supports multi-playback
+VIA8237.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ type softvol
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ @func concat
+ strings [ "dsnoop:" $CARD ]
+ }
+ }
+}
+
+<confdir:pcm/surround40.conf>
+
+VIA8237.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ channels 4
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Channel Mode"
+ preserve true
+ value "4ch"
+ lock true
+ optional true
+ }
+ {
+ name "Surround Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ ]
+ }
+}
+
+<confdir:pcm/surround41.conf>
+<confdir:pcm/surround50.conf>
+<confdir:pcm/surround51.conf>
+
+VIA8237.pcm.surround51.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ 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 hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ channels 6
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Channel Mode"
+ preserve true
+ value "6ch"
+ lock true
+ optional true
+ }
+ {
+ name "Surround Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ {
+ name "Center/LFE Down Mix"
+ preserve true
+ value off
+ lock true
+ optional true
+ }
+ ]
+ }
+ }
+ slave.channels 6
+}
+
+<confdir:pcm/iec958.conf>
+
+VIA8237.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ subdevice 3
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "IEC958 Playback AC97-SPSA"
+ lock true
+ preserve true
+ value 3
+ }
+ {
+ name "IEC958 Playback Default"
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ name "IEC958 Playback Switch"
+ lock true
+ preserve true
+ value true
+ }
+ {
+ name "IEC958 Output Switch"
+ lock true
+ preserve true
+ value true
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/VX222.conf b/usr/share/alsa/cards/VX222.conf
new file mode 100644
index 0000000..3385f25
--- /dev/null
+++ b/usr/share/alsa/cards/VX222.conf
@@ -0,0 +1,61 @@
+#
+# Configuration for Digigram VX222
+#
+
+<confdir:pcm/front.conf>
+
+VX222.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+<confdir:pcm/iec958.conf>
+
+VX222.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "IEC958 Playback Default"
+ lock true
+ preserve true
+ optional true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "IEC958 Playback Default"
+ lock true
+ preserve true
+ optional true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/VXPocket.conf b/usr/share/alsa/cards/VXPocket.conf
new file mode 100644
index 0000000..fe44ff5
--- /dev/null
+++ b/usr/share/alsa/cards/VXPocket.conf
@@ -0,0 +1,61 @@
+#
+# Configuration for Digigram VXpocket
+#
+
+<confdir:pcm/front.conf>
+
+VXPocket.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+<confdir:pcm/iec958.conf>
+
+VXPocket.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "IEC958 Playback Default"
+ lock true
+ preserve true
+ optional true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "IEC958 Playback Default"
+ lock true
+ preserve true
+ optional true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/VXPocket440.conf b/usr/share/alsa/cards/VXPocket440.conf
new file mode 100644
index 0000000..197c2d6
--- /dev/null
+++ b/usr/share/alsa/cards/VXPocket440.conf
@@ -0,0 +1,110 @@
+#
+# Configuration for Digigram VXpocket440
+#
+
+<confdir:pcm/front.conf>
+
+VXPocket440.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+<confdir:pcm/rear.conf>
+
+VXPocket440.pcm.rear.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 1
+}
+
+<confdir:pcm/surround40.conf>
+
+VXPocket440.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ master 1
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.VXPocket440.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.VXPocket440.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ ]
+}
+
+<confdir:pcm/iec958.conf>
+
+VXPocket440.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface PCM
+ name "IEC958 Playback Default"
+ lock true
+ preserve true
+ optional true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ {
+ # for compatibility with older drivers
+ name "IEC958 Playback Default"
+ lock true
+ preserve true
+ optional true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/YMF744.conf b/usr/share/alsa/cards/YMF744.conf
new file mode 100644
index 0000000..84dbcbe
--- /dev/null
+++ b/usr/share/alsa/cards/YMF744.conf
@@ -0,0 +1,108 @@
+#
+# Configuration for the YMF744 chip
+#
+
+<confdir:pcm/front.conf>
+
+YMF744.pcm.front.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+}
+
+<confdir:pcm/rear.conf>
+
+YMF744.pcm.rear.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type hw
+ card $CARD
+ device 2
+}
+
+<confdir:pcm/surround40.conf>
+
+YMF744.pcm.surround40.0 {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.YMF744.pcm.front.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "cards.YMF744.pcm.rear.0:CARD=" $CARD
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ ]
+}
+
+<confdir:pcm/iec958.conf>
+
+YMF744.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
+ }
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "IEC958 Playback Switch"
+ lock true
+ preserve true
+ value 1
+ }
+ {
+ interface PCM
+ name "IEC958 Playback PCM Stream"
+ device 1
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ ]
+ }
+}
diff --git a/usr/share/alsa/cards/aliases.conf b/usr/share/alsa/cards/aliases.conf
new file mode 100644
index 0000000..4a92fb2
--- /dev/null
+++ b/usr/share/alsa/cards/aliases.conf
@@ -0,0 +1,61 @@
+#
+# Define aliases for various drivers
+#
+
+YMF724 cards.YMF744
+YMF724F cards.YMF744
+YMF740 cards.YMF744
+YMF740C cards.YMF744
+YMF754 cards.YMF744
+CMIPCI cards.CMI8338
+CMI8738 cards.CMI8338
+CMI8738-SWIEC cards.CMI8338-SWIEC
+CMI8738-MC4 cards.CMI8738-MC6
+'E-mu APS' cards.EMU10K1
+'GUS MAX' cards.GUS
+'GUS ACE' cards.GUS
+'GUS Extreme' cards.GUS
+'AMD InterWave' cards.GUS
+'Dynasonic 3-D' cards.GUS
+'InterWave STB' cards.GUS
+au8810 cards.AU8810
+au8820 cards.AU8820
+au8830 cards.AU8830
+Prodigy71 cards.Aureon71
+Prodigy71LT cards.Aureon71
+Prodigy71HIFI cards.Aureon71
+Aureon71Univ cards.Aureon71
+VIA82XX-MODEM cards.ICH-MODEM
+'MPU-401 UART' cards.MPU-401
+'VX222/Old' cards.VX222
+'VX222/v2' cards.VX222
+'VX222/Mic' cards.VX222
+'CMI8330/C3D' cards.CMI8330
+'SB AWE' cards.SBAWE
+'SB Pro' cards.SBPro
+'PMac Burgundy' cards.PMac
+'PMac DACA' cards.PMac
+'PMac Tumbler' cards.PMac
+'PMac Snapper' cards.PMac
+'PMac Screamer' cards.PMac
+'PMac AWACS' cards.PMac
+'PMac Toonie' cards.PMacToonie
+AppleOnbdAudio cards.PMacToonie
+'USB US-X2Y' cards.US-X2Y
+'Serial MIDI' cards.SerialMIDI
+'Prodif Plus' cards.ProdifPlus
+ESM1 cards.ES1968
+ES1978 cards.ES1968
+Allegro cards.Maestro3
+Canyon3D-2 cards.Maestro3
+Azalia cards.HDA-Intel
+aaci-pl041 cards.AACI
+AV66 cards.CMI8788
+AV100 cards.CMI8788
+AV200 cards.CMI8788
+CMI8786 cards.CMI8788
+CMI8787 cards.CMI8788
+
+<confdir:pcm/default.conf>
+<confdir:pcm/dmix.conf>
+<confdir:pcm/dsnoop.conf>
diff --git a/usr/share/alsa/pcm/center_lfe.conf b/usr/share/alsa/pcm/center_lfe.conf
new file mode 100644
index 0000000..4ef6f49
--- /dev/null
+++ b/usr/share/alsa/pcm/center_lfe.conf
@@ -0,0 +1,58 @@
+#
+# Hardware output from center & lfe speakers
+#
+
+pcm.!center_lfe {
+ @args [ CARD DEV ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_CENTER_LFE_CARD
+ ALSA_PCM_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.pcm.center_lfe.card
+ }
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func igetenv
+ vars [
+ ALSA_CENTER_LFE_DEVICE
+ ]
+ default {
+ @func refer
+ name defaults.pcm.center_lfe.device
+ }
+ }
+ }
+ type empty
+ slave.pcm {
+ @func refer
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_driver
+ card $CARD
+ }
+ ".pcm.center_lfe." $DEV ":CARD=" $CARD
+ ]
+ }
+ }
+ hint {
+ show {
+ @func refer
+ name defaults.namehint.basic
+ }
+ description "Center and Subwoofer speakers"
+ device $DEV
+ }
+}
diff --git a/usr/share/alsa/pcm/default.conf b/usr/share/alsa/pcm/default.conf
new file mode 100644
index 0000000..864a903
--- /dev/null
+++ b/usr/share/alsa/pcm/default.conf
@@ -0,0 +1,57 @@
+#
+# Default output
+#
+
+pcm.!default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_PCM_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.pcm.card
+ }
+ }
+ }
+ type empty
+ slave.pcm {
+ # use card-specific definition if exists
+ @func refer
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_driver
+ card $CARD
+ }
+ ".pcm.default:CARD=" $CARD
+ ]
+ }
+ default {
+ # use plughw as default
+ type plug
+ slave.pcm {
+ type hw
+ card $CARD
+ }
+ hint.device 0
+ }
+ }
+ hint {
+ description "Default Audio Device"
+ device_output {
+ @func refer
+ name defaults.pcm.dmix.device
+ }
+ device_input {
+ @func refer
+ name defaults.pcm.dsnoop.device
+ }
+ }
+}
diff --git a/usr/share/alsa/pcm/dmix.conf b/usr/share/alsa/pcm/dmix.conf
new file mode 100644
index 0000000..e62cb29
--- /dev/null
+++ b/usr/share/alsa/pcm/dmix.conf
@@ -0,0 +1,115 @@
+#
+# dmix output
+#
+
+pcm.!dmix {
+ @args [ CARD DEV SUBDEV FORMAT RATE ]
+ @args.CARD {
+ type string
+ default {
+ @func refer
+ name defaults.pcm.dmix.card
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func refer
+ name defaults.pcm.dmix.device
+ }
+ }
+ @args.SUBDEV {
+ type integer
+ default 0
+ }
+ @args.FORMAT {
+ type string
+ default {
+ @func refer
+ name defaults.pcm.dmix.format
+ }
+ }
+ @args.RATE {
+ type integer
+ default {
+ @func refer
+ name defaults.pcm.dmix.rate
+ }
+ }
+ type dmix
+ ipc_key {
+ @func refer
+ name defaults.pcm.ipc_key
+ }
+ ipc_gid {
+ @func refer
+ name defaults.pcm.ipc_gid
+ }
+ ipc_perm {
+ @func refer
+ name defaults.pcm.ipc_perm
+ }
+ slave {
+ pcm {
+ type hw
+ card $CARD
+ device $DEV
+ subdevice $SUBDEV
+ }
+ format $FORMAT
+ rate $RATE
+ period_size {
+ @func refer
+ name {
+ @func concat
+ strings [
+ "defaults.dmix."
+ {
+ @func card_driver
+ card $CARD
+ }
+ ".period_size"
+ ]
+ }
+ default 1024
+ }
+ period_time {
+ @func refer
+ name {
+ @func concat
+ strings [
+ "defaults.dmix."
+ {
+ @func card_driver
+ card $CARD
+ }
+ ".period_time"
+ ]
+ }
+ default -1
+ }
+ periods {
+ @func refer
+ name {
+ @func concat
+ strings [
+ "defaults.dmix."
+ {
+ @func card_driver
+ card $CARD
+ }
+ ".periods"
+ ]
+ }
+ default 16
+ }
+ }
+ hint {
+ show {
+ @func refer
+ name defaults.namehint.extended
+ }
+ description "Direct sample mixing device"
+ device $DEV
+ }
+}
diff --git a/usr/share/alsa/pcm/dpl.conf b/usr/share/alsa/pcm/dpl.conf
new file mode 100644
index 0000000..1009bb3
--- /dev/null
+++ b/usr/share/alsa/pcm/dpl.conf
@@ -0,0 +1,43 @@
+pcm.!dpl {
+ @args [ SLAVE ]
+ @args.SLAVE {
+ type string
+ }
+ type route
+ slave.pcm $SLAVE
+ slave.channels 2
+ # input: FL/FR/SL/SR/C/LFE
+ # S=SL+SR, LFE not used
+ ttable.0.0 1
+ ttable.1.1 1
+ ttable.2.0 0.707
+ ttable.2.1 -0.707
+ ttable.3.0 0.707
+ ttable.3.1 -0.707
+ ttable.4.0 0.707
+ ttable.4.1 0.707
+ ttable.5.0 0
+ ttable.5.1 0
+}
+
+pcm.!dpl2 {
+ @args [SLAVE]
+ @args.SLAVE {
+ type string
+ }
+ type route
+ slave.pcm $SLAVE
+ slave.channels 2
+ # input: FL/FR/SL/SR/C/LFE
+ # LFE not used
+ ttable.0.0 1
+ ttable.1.1 1
+ ttable.2.0 0.866
+ ttable.2.1 -0.5
+ ttable.3.0 0.5
+ ttable.3.1 -0.866
+ ttable.4.0 0.707
+ ttable.4.1 0.707
+ ttable.5.0 0
+ ttable.5.1 0
+}
diff --git a/usr/share/alsa/pcm/dsnoop.conf b/usr/share/alsa/pcm/dsnoop.conf
new file mode 100644
index 0000000..49cfca9
--- /dev/null
+++ b/usr/share/alsa/pcm/dsnoop.conf
@@ -0,0 +1,115 @@
+#
+# dsnoop
+#
+
+pcm.!dsnoop {
+ @args [ CARD DEV SUBDEV FORMAT RATE ]
+ @args.CARD {
+ type string
+ default {
+ @func refer
+ name defaults.pcm.dsnoop.card
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func refer
+ name defaults.pcm.dsnoop.device
+ }
+ }
+ @args.SUBDEV {
+ type integer
+ default 0
+ }
+ @args.FORMAT {
+ type string
+ default {
+ @func refer
+ name defaults.pcm.dmix.format
+ }
+ }
+ @args.RATE {
+ type integer
+ default {
+ @func refer
+ name defaults.pcm.dmix.rate
+ }
+ }
+ type dsnoop
+ ipc_key {
+ @func refer
+ name defaults.pcm.ipc_key
+ }
+ ipc_gid {
+ @func refer
+ name defaults.pcm.ipc_gid
+ }
+ ipc_perm {
+ @func refer
+ name defaults.pcm.ipc_perm
+ }
+ slave {
+ pcm {
+ type hw
+ card $CARD
+ device $DEV
+ subdevice $SUBDEV
+ }
+ format $FORMAT
+ rate $RATE
+ period_size {
+ @func refer
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_driver
+ card $CARD
+ }
+ ".pcm.dsnoop.period_size"
+ ]
+ }
+ default 1024
+ }
+ period_time {
+ @func refer
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_driver
+ card $CARD
+ }
+ ".pcm.dsnoop.period_time"
+ ]
+ }
+ default -1
+ }
+ periods {
+ @func refer
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_driver
+ card $CARD
+ }
+ ".pcm.dsnoop.periods"
+ ]
+ }
+ default 16
+ }
+ }
+ hint {
+ show {
+ @func refer
+ name defaults.namehint.extended
+ }
+ description "Direct sample snooping device"
+ device $DEV
+ }
+}
diff --git a/usr/share/alsa/pcm/front.conf b/usr/share/alsa/pcm/front.conf
new file mode 100644
index 0000000..7aff0cb
--- /dev/null
+++ b/usr/share/alsa/pcm/front.conf
@@ -0,0 +1,58 @@
+#
+# Hardware output from front speakers
+#
+
+pcm.!front {
+ @args [ CARD DEV ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_FRONT_CARD
+ ALSA_PCM_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.pcm.front.card
+ }
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func igetenv
+ vars [
+ ALSA_FRONT_DEVICE
+ ]
+ default {
+ @func refer
+ name defaults.pcm.front.device
+ }
+ }
+ }
+ type empty
+ slave.pcm {
+ @func refer
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_driver
+ card $CARD
+ }
+ ".pcm.front." $DEV ":CARD=" $CARD
+ ]
+ }
+ }
+ hint {
+ show {
+ @func refer
+ name defaults.namehint.basic
+ }
+ description "Front speakers"
+ device $DEV
+ }
+}
diff --git a/usr/share/alsa/pcm/hdmi.conf b/usr/share/alsa/pcm/hdmi.conf
new file mode 100644
index 0000000..aad7065
--- /dev/null
+++ b/usr/share/alsa/pcm/hdmi.conf
@@ -0,0 +1,83 @@
+#
+# Hardware output from HDMI
+#
+
+pcm.!hdmi {
+ @args [ CARD DEV AES0 AES1 AES2 AES3 ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_IEC958_CARD
+ ALSA_PCM_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.pcm.iec958.card
+ }
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func igetenv
+ vars [
+ ALSA_IEC958_DEVICE
+ ]
+ default {
+ @func refer
+ name defaults.pcm.iec958.device
+ }
+ }
+ }
+ @args.AES0 {
+ type integer
+ # consumer, not-copyright, emphasis-none, mode=0
+ default 0x04
+ }
+ @args.AES1 {
+ type integer
+ # original, PCM coder
+ default 0x82
+ }
+ @args.AES2 {
+ type integer
+ # source and channel
+ default 0x00
+ }
+ @args.AES3 {
+ type integer
+ # fs=48000Hz, clock accuracy=1000ppm
+ default 0x02
+ }
+ type empty
+ slave.pcm {
+ @func refer
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_driver
+ card $CARD
+ }
+ ".pcm.hdmi." $DEV ":"
+ "CARD=" $CARD ","
+ "AES0=" $AES0 ","
+ "AES1=" $AES1 ","
+ "AES2=" $AES2 ","
+ "AES3=" $AES3
+ ]
+ }
+ }
+ hint {
+ show {
+ @func refer
+ name defaults.namehint.basic
+ }
+ description "HDMI Audio Output"
+ device $DEV
+ }
+}
diff --git a/usr/share/alsa/pcm/iec958.conf b/usr/share/alsa/pcm/iec958.conf
new file mode 100644
index 0000000..ac139b5
--- /dev/null
+++ b/usr/share/alsa/pcm/iec958.conf
@@ -0,0 +1,83 @@
+#
+# Hardware output from iec958
+#
+
+pcm.!iec958 {
+ @args [ CARD DEV AES0 AES1 AES2 AES3 ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_IEC958_CARD
+ ALSA_PCM_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.pcm.iec958.card
+ }
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func igetenv
+ vars [
+ ALSA_IEC958_DEVICE
+ ]
+ default {
+ @func refer
+ name defaults.pcm.iec958.device
+ }
+ }
+ }
+ @args.AES0 {
+ type integer
+ # consumer, not-copyright, emphasis-none, mode=0
+ default 0x04
+ }
+ @args.AES1 {
+ type integer
+ # original, PCM coder
+ default 0x82
+ }
+ @args.AES2 {
+ type integer
+ # source and channel
+ default 0x00
+ }
+ @args.AES3 {
+ type integer
+ # fs=48000Hz, clock accuracy=1000ppm
+ default 0x02
+ }
+ type empty
+ slave.pcm {
+ @func refer
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_driver
+ card $CARD
+ }
+ ".pcm.iec958." $DEV ":"
+ "CARD=" $CARD ","
+ "AES0=" $AES0 ","
+ "AES1=" $AES1 ","
+ "AES2=" $AES2 ","
+ "AES3=" $AES3
+ ]
+ }
+ }
+ hint {
+ show {
+ @func refer
+ name defaults.namehint.basic
+ }
+ description "IEC958 (S/PDIF) Digital Audio Output"
+ device $DEV
+ }
+}
diff --git a/usr/share/alsa/pcm/modem.conf b/usr/share/alsa/pcm/modem.conf
new file mode 100644
index 0000000..0af0e72
--- /dev/null
+++ b/usr/share/alsa/pcm/modem.conf
@@ -0,0 +1,106 @@
+#
+# "raw" modem - phoneline
+#
+
+pcm.!phoneline {
+ @args [ CARD DEV ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_MODEM_CARD
+ ALSA_PCM_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.pcm.modem.card
+ }
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func igetenv
+ vars [
+ ALSA_MODEM_DEVICE
+ ]
+ default {
+ @func refer
+ name defaults.pcm.modem.device
+ }
+ }
+ }
+ @func refer
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_driver
+ card $CARD
+ }
+ ".pcm.modem." $DEV ":CARD=" $CARD
+ ]
+ }
+ hint.show off
+}
+
+#
+# "autohooked" modem
+#
+
+pcm.!modem {
+ @args [ CARD DEV ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_MODEM_CARD
+ ALSA_PCM_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.pcm.modem.card
+ }
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func igetenv
+ vars [
+ ALSA_MODEM_DEVICE
+ ]
+ default {
+ @func refer
+ name defaults.pcm.modem.device
+ }
+ }
+ }
+ type hooks
+ slave {
+ pcm {
+ @func concat
+ strings [
+ "cards.pcm.phoneline:CARD=" $CARD ",DEV=" $DEV
+ ]
+ }
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Off-hook Switch"
+ preserve true
+ value "on"
+ lock false
+ optional true
+ }
+ ]
+ }
+ hint.show off
+}
diff --git a/usr/share/alsa/pcm/rear.conf b/usr/share/alsa/pcm/rear.conf
new file mode 100644
index 0000000..85c70aa
--- /dev/null
+++ b/usr/share/alsa/pcm/rear.conf
@@ -0,0 +1,58 @@
+#
+# Hardware output from rear speakers
+#
+
+pcm.!rear {
+ @args [ CARD DEV ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_REAR_CARD
+ ALSA_PCM_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.pcm.rear.card
+ }
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func igetenv
+ vars [
+ ALSA_REAR_DEVICE
+ ]
+ default {
+ @func refer
+ name defaults.pcm.rear.device
+ }
+ }
+ }
+ type empty
+ slave.pcm {
+ @func refer
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_driver
+ card $CARD
+ }
+ ".pcm.rear." $DEV ":CARD=" $CARD
+ ]
+ }
+ }
+ hint {
+ show {
+ @func refer
+ name defaults.namehint.basic
+ }
+ description "Rear speakers"
+ device $DEV
+ }
+}
diff --git a/usr/share/alsa/pcm/side.conf b/usr/share/alsa/pcm/side.conf
new file mode 100644
index 0000000..4a81af0
--- /dev/null
+++ b/usr/share/alsa/pcm/side.conf
@@ -0,0 +1,58 @@
+#
+# Hardware output from side speakers
+#
+
+pcm.!side {
+ @args [ CARD DEV ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_SIDE_CARD
+ ALSA_PCM_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.pcm.side.card
+ }
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func igetenv
+ vars [
+ ALSA_SIDE_DEVICE
+ ]
+ default {
+ @func refer
+ name defaults.pcm.side.device
+ }
+ }
+ }
+ type empty
+ slave.pcm {
+ @func refer
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_driver
+ card $CARD
+ }
+ ".pcm.side." $DEV ":CARD=" $CARD
+ ]
+ }
+ }
+ hint {
+ show {
+ @func refer
+ name defaults.namehint.basic
+ }
+ description "Side speakers"
+ device $DEV
+ }
+}
diff --git a/usr/share/alsa/pcm/surround40.conf b/usr/share/alsa/pcm/surround40.conf
new file mode 100644
index 0000000..361ccaa
--- /dev/null
+++ b/usr/share/alsa/pcm/surround40.conf
@@ -0,0 +1,59 @@
+#
+# Hardware output from 4.0 speakers.
+# Samples must be positioned:
+# chn0 - front left
+# chn1 - front right
+# chn2 - rear left
+# chn3 - rear right
+#
+
+pcm.!surround40 {
+ @args [ CARD DEV ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_SURROUND40_CARD
+ ALSA_PCM_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.pcm.surround40.card
+ }
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func igetenv
+ vars [
+ ALSA_SURROUND40_DEVICE
+ ]
+ default {
+ @func refer
+ name defaults.pcm.surround40.device
+ }
+ }
+ }
+ type empty
+ slave.pcm {
+ @func refer
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_driver
+ card $CARD
+ }
+ ".pcm.surround40." $DEV ":CARD=" $CARD
+ ]
+ }
+ }
+ hint {
+ description "4.0 Surround output to Front and Rear speakers"
+ device $DEV
+ }
+}
diff --git a/usr/share/alsa/pcm/surround41.conf b/usr/share/alsa/pcm/surround41.conf
new file mode 100644
index 0000000..10e486e
--- /dev/null
+++ b/usr/share/alsa/pcm/surround41.conf
@@ -0,0 +1,66 @@
+#
+# Hardware output from 4.1 speakers.
+# Samples must be positioned:
+# chn0 - front left
+# chn1 - front right
+# chn2 - rear left
+# chn3 - rear right
+# chn4 - LFE
+#
+
+pcm.!surround41 {
+ @args [ CARD DEV ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_SURROUND41_CARD
+ ALSA_PCM_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.pcm.surround41.card
+ }
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func igetenv
+ vars [
+ ALSA_SURROUND41_DEVICE
+ ]
+ default {
+ @func refer
+ name defaults.pcm.surround41.device
+ }
+ }
+ }
+ type route
+ slave.pcm {
+ @func refer
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_driver
+ card $CARD
+ }
+ ".pcm.surround51." $DEV ":CARD=" $CARD
+ ]
+ }
+ }
+ slave.channels 6
+ ttable.0.0 1
+ ttable.1.1 1
+ ttable.2.2 1
+ ttable.3.3 1
+ ttable.4.5 1
+ hint {
+ description "4.1 Surround output to Front, Rear and Subwoofer speakers"
+ device $DEV
+ }
+}
diff --git a/usr/share/alsa/pcm/surround50.conf b/usr/share/alsa/pcm/surround50.conf
new file mode 100644
index 0000000..7b7b17e
--- /dev/null
+++ b/usr/share/alsa/pcm/surround50.conf
@@ -0,0 +1,66 @@
+#
+# Hardware output from 5.0 speakers.
+# Samples must be positioned:
+# chn0 - front left
+# chn1 - front right
+# chn2 - rear left
+# chn3 - rear right
+# chn4 - center
+#
+
+pcm.!surround50 {
+ @args [ CARD DEV ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_SURROUND50_CARD
+ ALSA_PCM_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.pcm.surround50.card
+ }
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func igetenv
+ vars [
+ ALSA_SURROUND50_DEVICE
+ ]
+ default {
+ @func refer
+ name defaults.pcm.surround50.device
+ }
+ }
+ }
+ type route
+ slave.pcm {
+ @func refer
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_driver
+ card $CARD
+ }
+ ".pcm.surround51." $DEV ":CARD=" $CARD
+ ]
+ }
+ }
+ slave.channels 6
+ ttable.0.0 1
+ ttable.1.1 1
+ ttable.2.2 1
+ ttable.3.3 1
+ ttable.4.4 1
+ hint {
+ description "5.0 Surround output to Front, Center and Rear speakers"
+ device $DEV
+ }
+}
diff --git a/usr/share/alsa/pcm/surround51.conf b/usr/share/alsa/pcm/surround51.conf
new file mode 100644
index 0000000..3a7543f
--- /dev/null
+++ b/usr/share/alsa/pcm/surround51.conf
@@ -0,0 +1,61 @@
+#
+# Hardware output from 5.1 speakers
+# Samples must be positioned:
+# chn0 - front left
+# chn1 - front right
+# chn2 - rear left
+# chn3 - rear right
+# chn4 - center
+# chn5 - lfe
+#
+
+pcm.!surround51 {
+ @args [ CARD DEV ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_SURROUND51_CARD
+ ALSA_PCM_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.pcm.surround51.card
+ }
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func igetenv
+ vars [
+ ALSA_SURROUND51_DEVICE
+ ]
+ default {
+ @func refer
+ name defaults.pcm.surround51.device
+ }
+ }
+ }
+ type empty
+ slave.pcm {
+ @func refer
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_driver
+ card $CARD
+ }
+ ".pcm.surround51." $DEV ":CARD=" $CARD
+ ]
+ }
+ }
+ hint {
+ description "5.1 Surround output to Front, Center, Rear and Subwoofer speakers"
+ device $DEV
+ }
+}
diff --git a/usr/share/alsa/pcm/surround71.conf b/usr/share/alsa/pcm/surround71.conf
new file mode 100644
index 0000000..076a97d
--- /dev/null
+++ b/usr/share/alsa/pcm/surround71.conf
@@ -0,0 +1,63 @@
+#
+# Hardware output from 7.1 speakers
+# Samples must be positioned:
+# chn0 - front left
+# chn1 - front right
+# chn2 - rear left
+# chn3 - rear right
+# chn4 - center
+# chn5 - lfe
+# chn6 - side left
+# chn7 - side right
+#
+
+pcm.!surround71 {
+ @args [ CARD DEV ]
+ @args.CARD {
+ type string
+ default {
+ @func getenv
+ vars [
+ ALSA_SURROUND71_CARD
+ ALSA_PCM_CARD
+ ALSA_CARD
+ ]
+ default {
+ @func refer
+ name defaults.pcm.surround71.card
+ }
+ }
+ }
+ @args.DEV {
+ type integer
+ default {
+ @func igetenv
+ vars [
+ ALSA_SURROUND71_DEVICE
+ ]
+ default {
+ @func refer
+ name defaults.pcm.surround71.device
+ }
+ }
+ }
+ type empty
+ slave.pcm {
+ @func refer
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_driver
+ card $CARD
+ }
+ ".pcm.surround71." $DEV ":CARD=" $CARD
+ ]
+ }
+ }
+ hint {
+ description "7.1 Surround output to Front, Center, Side, Rear and Woofer speakers"
+ device $DEV
+ }
+}
diff --git a/usr/share/alsa/smixer.conf b/usr/share/alsa/smixer.conf
new file mode 100644
index 0000000..f215661
--- /dev/null
+++ b/usr/share/alsa/smixer.conf
@@ -0,0 +1,13 @@
+_full smixer-python.so
+usb {
+ searchl "USB"
+ lib smixer-usb.so
+}
+ac97 {
+ searchl "AC97a:"
+ lib smixer-ac97.so
+}
+hda {
+ searchl "HDA:"
+ lib smixer-hda.so
+}
diff --git a/var/lib/alsa/asound.state b/var/lib/alsa/asound.state
new file mode 100644
index 0000000..87b3a3c
--- /dev/null
+++ b/var/lib/alsa/asound.state
@@ -0,0 +1,17 @@
+#Sound Card State
+state.A5SEVK {
+ control.25 {
+ iface MIXER
+ name 'Input Mux'
+ value 'Both Mic'
+ comment {
+ access 'read write'
+ type ENUMERATED
+ count 1
+ item.0 Line-in
+ item.1 'Both Mic'
+ item.2 Unknown
+ }
+ }
+}
+