licheervnano: add alsa utils

This commit is contained in:
Lu
2024-01-18 11:16:08 +08:00
parent b3b30412ca
commit 5922d30ff3
111 changed files with 12545 additions and 2 deletions

View File

@@ -74,4 +74,4 @@ CONFIG_TARGET_PACKAGE_P7ZIP=y
CONFIG_TARGET_PACKAGE_RAMSPEED=y
CONFIG_TARGET_PACKAGE_UDPCAST=y
CONFIG_TARGET_PACKAGE_UNRAR=y
CONFIG_TARGET_PACKAGE_ALSA=y

View File

@@ -65,4 +65,5 @@ source "../ramdisk/rootfs/public/mmc-utils/Kconfig"
source "../ramdisk/rootfs/public/p7zip/Kconfig"
source "../ramdisk/rootfs/public/ramspeed/Kconfig"
source "../ramdisk/rootfs/public/udpcast/Kconfig"
source "../ramdisk/rootfs/public/unrar/Kconfig"
source "../ramdisk/rootfs/public/unrar/Kconfig"
source "../ramdisk/rootfs/public/alsa/Kconfig"

View File

@@ -0,0 +1,5 @@
config TARGET_PACKAGE_ALSA
bool "Target alsa"
default n
help
target alsa

View File

@@ -0,0 +1,9 @@
pcm.!default {
type hw
card 0
}
ctl.!default {
type hw
card 0
}

View File

@@ -0,0 +1,9 @@
pcm.!default {
type hw
card 0
}
ctl.!default {
type hw
card 0
}

View File

@@ -0,0 +1,9 @@
pcm.!default {
type hw
card 0
}
ctl.!default {
type hw
card 0
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,643 @@
#
# ALSA library configuration file
#
# pre-load the configuration files
@hooks [
{
func load
files [
"/usr/etc/alsa/conf.d"
"/etc/alsa/conf.d"
"/etc/asound.conf|||/usr/etc/asound.conf"
"~/.asoundrc"
{
@func concat
strings [
{
@func getenv
vars [
XDG_CONFIG_HOME
]
default "~/.config"
}
"/alsa/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.tstamp_type default
defaults.pcm.dmix.max_periods 0
defaults.pcm.dmix.channels 2
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.surround21.card defaults.pcm.card
defaults.pcm.surround21.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
defaults.pcm.file_format raw
defaults.pcm.file_truncate true # truncate files via file or tee PCM
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
#
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)"
}
}
# 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.surround21 cards.pcm.surround21
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
#
# Control interface
#
ctl.sysdefault {
type hw
card {
@func getenv
vars [
ALSA_CTL_CARD
ALSA_CARD
]
default {
@func refer
name defaults.ctl.card
}
}
hint.description "Default control device"
}
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
hint.description "Direct control device"
}
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
}
}
hint.description "Default raw MIDI 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
hint.description "Default sequencer device"
}
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
}
}
hint.description "Default hardware dependent 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
hint {
description "Direct hardware dependent device"
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 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
hint {
description "Direct timer device"
device $DEV
}
}

View File

@@ -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 }
]
}

View File

@@ -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
}

View File

@@ -0,0 +1,166 @@
#
# 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/surround21.conf>
<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 ]
}

View File

@@ -0,0 +1,185 @@
#
# 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/surround21.conf>
<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
}
]
}
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -0,0 +1,322 @@
#
# 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
chmap [ "UNKNOWN" "FL,FR" ]
}
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
chmap [ "UNKNOWN" "RL,RR" ]
}
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
chmap [ "UNKNOWN" "FC,LFE" ]
}
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/surround21.conf>
<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
}
]
}
}

View File

@@ -0,0 +1,430 @@
#
# 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
chmap [ "UNKNOWN" "FL,FR" ]
}
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
chmap [ "UNKNOWN" "RL,RR" ]
}
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
chmap [ "UNKNOWN" "FC,LFE" ]
}
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
chmap [ "UNKNOWN" "SL,SR" ]
}
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/surround21.conf>
<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
}
]
}
}

View File

@@ -0,0 +1,180 @@
#
# 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/surround21.conf>
<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
}
}

View File

@@ -0,0 +1,191 @@
#
# 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/surround21.conf>
<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
}
}

View File

@@ -0,0 +1,281 @@
#
# 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/surround21.conf>
<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 ]
}
]
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -0,0 +1,162 @@
#
# 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/surround21.conf>
<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
}
}

View File

@@ -0,0 +1,231 @@
#
# 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/surround21.conf>
<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
}
}

View File

@@ -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/surround21.conf>
<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

View File

@@ -0,0 +1,219 @@
#
# 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/surround21.conf>
<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 ]
}
]
}
}

View File

@@ -0,0 +1,329 @@
#
# 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
chmap [ "UNKNOWN" "FL,FR" ]
}
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
chmap [ "UNKNOWN" "RL,RR" ]
}
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
chmap [ "UNKNOWN" "FC,LFE" ]
}
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/surround21.conf>
<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
}
]
}
}

View File

@@ -0,0 +1,202 @@
#
# 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/surround21.conf>
<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 ]
}
]
}
}

View File

@@ -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 }
]
}

View File

@@ -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 ]
}
]
}
}

View File

@@ -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
}

View File

@@ -0,0 +1,318 @@
#
# Configuration for the Echo3G driver
#
<confdir:pcm/front.conf>
Echo_Echo3G.pcm.front.0 {
@args [ CARD ]
@args.CARD {
type string
}
type hw
card $CARD
device 0
subdevice 0
}
<confdir:pcm/rear.conf>
Echo_Echo3G.pcm.rear.0 {
@args [ CARD ]
@args.CARD {
type string
}
type hw
card $CARD
device 0
subdevice 4
}
<confdir:pcm/center_lfe.conf>
Echo_Echo3G.pcm.center_lfe.0 {
@args [ CARD ]
@args.CARD {
type string
}
type hw
card $CARD
device 0
subdevice 2
}
<confdir:pcm/side.conf>
Echo_Echo3G.pcm.side.0 {
@args [ CARD ]
@args.CARD {
type string
}
type hw
card $CARD
device 0
subdevice 6
}
<confdir:pcm/surround40.conf>
Echo_Echo3G.pcm.surround40.0 {
@args [ CARD ]
@args.CARD {
type string
}
type multi
slaves [
{
pcm {
@func concat
strings [
"cards.Echo_Echo3G.pcm.front.0:CARD=" $CARD
]
}
channels 2
}
{
pcm {
@func concat
strings [
"cards.Echo_Echo3G.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>
Echo_Echo3G.pcm.surround41.0 {
@args [ CARD ]
@args.CARD {
type string
}
type multi
slaves [
{
pcm {
@func concat
strings [
"cards.Echo_Echo3G.pcm.front.0:CARD=" $CARD
]
}
channels 2
}
{
pcm {
@func concat
strings [
"cards.Echo_Echo3G.pcm.rear.0:CARD=" $CARD
]
}
channels 2
}
{
pcm {
@func concat
strings [
"cards.Echo_Echo3G.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 }
]
}
<confdir:pcm/surround50.conf>
Echo_Echo3G.pcm.surround50.0 {
@args [ CARD ]
@args.CARD {
type string
}
type multi
slaves [
{
pcm {
@func concat
strings [
"cards.Echo_Echo3G.pcm.front.0:CARD=" $CARD
]
}
channels 2
}
{
pcm {
@func concat
strings [
"cards.Echo_Echo3G.pcm.rear.0:CARD=" $CARD
]
}
channels 2
}
{
pcm {
@func concat
strings [
"cards.Echo_Echo3G.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 1 }
]
}
<confdir:pcm/surround51.conf>
Echo_Echo3G.pcm.surround51.0 {
@args [ CARD ]
@args.CARD {
type string
}
type multi
slaves [
{
pcm {
@func concat
strings [
"cards.Echo_Echo3G.pcm.front.0:CARD=" $CARD
]
}
channels 2
}
{
pcm {
@func concat
strings [
"cards.Echo_Echo3G.pcm.rear.0:CARD=" $CARD
]
}
channels 2
}
{
pcm {
@func concat
strings [
"cards.Echo_Echo3G.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>
Echo_Echo3G.pcm.surround71.0 {
@args [ CARD ]
@args.CARD {
type string
}
type multi
slaves [
{
pcm {
@func concat
strings [
"cards.Echo_Echo3G.pcm.front.0:CARD=" $CARD
]
}
channels 2
}
{
pcm {
@func concat
strings [
"cards.Echo_Echo3G.pcm.rear.0:CARD=" $CARD
]
}
channels 2
}
{
pcm {
@func concat
strings [
"cards.Echo_Echo3G.pcm.center_lfe.0:CARD=" $CARD
]
}
channels 2
}
{
pcm {
@func concat
strings [
"cards.Echo_Echo3G.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>
Echo_Echo3G.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 Default"
preserve true
optional true
value [ $AES0 $AES1 $AES2 $AES3 ]
}
]
}
}

View File

@@ -0,0 +1,88 @@
#
# 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/surround21.conf>
<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
}
]
}
}

View File

@@ -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
}

View File

@@ -0,0 +1,51 @@
#
# 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/surround21.conf>
<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
}
}

View File

@@ -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
}
}

View File

@@ -0,0 +1,412 @@
#
# 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/surround21.conf>
<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"
index 16
optional true
lock true
preserve true
value [ $AES0 $AES1 $AES2 $AES3 ]
}
{
name "IEC958 Playback Switch"
index 16
optional true
value true
# if this element is present, skip the rest
skip_rest true
}
{
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
]
}
}
HDA-Intel.pcm.hdmi.4 {
@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=10,"
"CTLINDEX=4,"
"AES0=" $AES0 ","
"AES1=" $AES1 ","
"AES2=" $AES2 ","
"AES3=" $AES3
]
}
}
HDA-Intel.pcm.hdmi.5 {
@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=11,"
"CTLINDEX=5,"
"AES0=" $AES0 ","
"AES1=" $AES1 ","
"AES2=" $AES2 ","
"AES3=" $AES3
]
}
}
HDA-Intel.pcm.hdmi.6 {
@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=12,"
"CTLINDEX=6,"
"AES0=" $AES0 ","
"AES1=" $AES1 ","
"AES2=" $AES2 ","
"AES3=" $AES3
]
}
}
HDA-Intel.pcm.hdmi.7 {
@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=13,"
"CTLINDEX=7,"
"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
}

View File

@@ -0,0 +1,118 @@
#
# Configuration for the Intel HDMI/DP LPE audio
#
<confdir:pcm/hdmi.conf>
HdmiLpeAudio.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
}
type hooks
slave.pcm {
type hw
card $CARD
}
hooks.0 {
type ctl_elems
hook_args [
{
interface PCM
name "IEC958 Playback Default"
device 0
lock true
preserve true
value [ $AES0 $AES1 $AES2 $AES3 ]
}
]
}
}
HdmiLpeAudio.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
}
type hooks
slave.pcm {
type hw
card $CARD
device 1
}
hooks.0 {
type ctl_elems
hook_args [
{
interface PCM
name "IEC958 Playback Default"
device 1
lock true
preserve true
value [ $AES0 $AES1 $AES2 $AES3 ]
}
]
}
}
HdmiLpeAudio.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
}
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
value [ $AES0 $AES1 $AES2 $AES3 ]
}
]
}
}

View File

@@ -0,0 +1,180 @@
#
# 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/surround21.conf>
<confdir:pcm/surround41.conf>
<confdir:pcm/surround50.conf>
<confdir:pcm/surround51.conf>
<confdir:pcm/surround71.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
}
ICE1712.pcm.surround71.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
ttable.6.6 1
ttable.7.7 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
}
}

View File

@@ -0,0 +1,225 @@
#
# 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/surround21.conf>
<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
}
}

View File

@@ -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
}

View File

@@ -0,0 +1,223 @@
#
# 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/surround21.conf>
<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
}
]
}
}

View File

@@ -0,0 +1,214 @@
#
# 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/surround21.conf>
<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
}
]
}
}

View File

@@ -0,0 +1,75 @@
#
# Configuration for the virtual loopback driver (snd-aloop)
#
<confdir:pcm/front.conf>
Loopback.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
Loopback.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/surround21.conf>
<confdir:pcm/surround40.conf>
<confdir:pcm/surround41.conf>
<confdir:pcm/surround50.conf>
<confdir:pcm/surround51.conf>
<confdir:pcm/surround71.conf>
Loopback.pcm.surround40.0 cards.Loopback.pcm.front.0
Loopback.pcm.surround51.0 cards.Loopback.pcm.front.0
Loopback.pcm.surround71.0 cards.Loopback.pcm.front.0

View File

@@ -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 ]
}
}
}

View File

@@ -0,0 +1,296 @@
#
# 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/surround21.conf>
<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
}
]
}
}

View File

@@ -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
}
}

View File

@@ -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" ]
}
}
}

View File

@@ -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" ]
}
}
}

View File

@@ -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 ]
}
]
}
}

View File

@@ -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 ]
}
]
}
}

View File

@@ -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 ]
}
]
}
}

View File

@@ -0,0 +1,109 @@
#
# 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/surround21.conf>
<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
}

View File

@@ -0,0 +1,169 @@
#
# 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
chmap [ "UNKNOWN" "FL,FR" ]
}
<confdir:pcm/rear.conf>
SI7018.pcm.rear.0 {
@args [ CARD ]
@args.CARD {
type string
}
type hooks
slave.pcm {
type hw
card $CARD
chmap [ "UNKNOWN" "RL,RR" ]
}
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/surround21.conf>
<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
}
]
}
}

View File

@@ -0,0 +1,131 @@
#
# 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
chmap [ "UNKNOWN" "FL,FR" ]
}
<confdir:pcm/rear.conf>
TRID4DWAVENX.pcm.rear.0 {
@args [ CARD ]
@args.CARD {
type string
}
type hooks
slave.pcm {
type hw
card $CARD
chmap [ "UNKNOWN" "RL,RR" ]
}
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
}
]
}
}

View File

@@ -0,0 +1,498 @@
#
# 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
"USB AudioSport Quattro (tm)" two_stereo_devices
}
# 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
"USB Sound Blaster HD" 1
"Xonar U7" 1
"ASUS XONAR U5" 1
"XONAR U5" 1
"XONAR SOUND CARD" 1
"Xonar SoundCard" 2
# The below don't have digital in/out, so prevent them from being opened.
"Andrea PureAudio USB-SA Headset" 999
"Blue Snowball" 999
"C-Media USB Headphone Set" 999
"HP Digital Stereo Headset" 999
"GN 9330" 999
"Logitech Speaker Lapdesk N700" 999
"Logitech G35 Headset" 999
"Logitech USB Headset" 999
"Logitech USB Headset H540" 999
"Logitech Wireless Headset" 999
"Plantronics GameCom 780" 999
"Plantronics USB Headset" 999
"Plantronics Wireless Audio" 999
"SB WoW Headset" 999
"Scarlett 2i2 USB" 999
"Scarlett 2i4 USB" 999
"Sennheiser USB headset" 999
"SWTOR Gaming Headset by Razer" 999
"ThinkStation P620 Main" 999
"ThinkStation P620 Rear" 999
"Thunderbolt Dock Audio Headset" 999
"Thunderbolt Dock Audio Module" 999
"USB Device 0x46d_0x821" 999
"USB Device 0x46d_0x992" 999
"WD15 Dock" 999
"WD19 Dock" 999
}
# Second iec958 device number, if any.
USB-Audio.pcm.iec958_2_device {
"PHIREE U2" 1 # 0 = PCM S/PDIF, 1 = non-PCM S/PDIF
"PHIREE U2SX" 1 # 0 = PCM S/PDIF, 1 = non-PCM S/PDIF
}
# If a device requires non-standard definitions for front, default, 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:DEV=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
}
}
# For this card we can (and must to get IEC61937) set AES bits
USB-Audio."MicroII".pcm.iec958 "cards.USB-Audio.Audio Advantage MicroII.pcm.iec958"
USB-Audio."Audio Advantage MicroII".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 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 ]
}
{
name "IEC958 Playback Switch"
lock true
preserve true
value 1
}
]
}
}
################################################################################
<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 }
@func refer
name {
@func concat
strings [
"cards.USB-Audio."
{ @func card_name card $CARD }
".pcm.default:CARD=" $CARD
]
}
default {
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/surround21.conf>
<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
}
}
}
USB-Audio.pcm.iec958.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.USB-Audio."
{ @func card_name card $CARD }
".pcm.iec958_2: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_2_device."
{ @func card_name card $CARD }
]
}
default 999
}
}
}
# vim: ft=alsaconf

View File

@@ -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
}
]
}
}

View File

@@ -0,0 +1,201 @@
#
# 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/surround21.conf>
<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
}
]
}
}

View File

@@ -0,0 +1,205 @@
#
# 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/surround21.conf>
<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
}
]
}
}

View File

@@ -0,0 +1,191 @@
#
# 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/surround21.conf>
<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
}
]
}
}

View File

@@ -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 ]
}
]
}
}

View File

@@ -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 ]
}
]
}
}

View File

@@ -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 ]
}
]
}
}

View File

@@ -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 ]
}
]
}
}

View File

@@ -0,0 +1,63 @@
#
# 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
pistachio cards.pistachio-card
VC4-HDMI cards.vc4-hdmi
<confdir:pcm/default.conf>
<confdir:pcm/dmix.conf>
<confdir:pcm/dsnoop.conf>

View File

@@ -0,0 +1,58 @@
#
# Configuration for the pistachio chip.
#
# The data sheet of the chip and technical reference manual can be
found at
https://docs.creatordev.io/ci40/guides/hardwaredocs/cXT200_datasheet2.p
df # and
https://docs.creatordev.io/ci40/guides/hardwaredocs/MIPS_Creator_cXT200_Technical_Reference_Manual_1.0.112.pdf.
#
# The list of hardware devices is as per below:
#
# root@OpenWrt:/# arecord -l
# **** List of CAPTURE Hardware Devices **** card 0: pistachiocard [pistachio-card], device 1: pistachio-spdif-in snd-soc-dummy-dai-1 []
# Subdevices: 1/1
# Subdevice #0: subdevice #0
# card 0: pistachiocard [pistachio-card], device 4: pistachio-i2s-in-0 snd-soc-dummy-dai-4 []
# Subdevices: 1/1
# Subdevice #0: subdevice #0
#
# root@OpenWrt:/# aplay -l
# **** List of PLAYBACK Hardware Devices **** card 0: pistachiocard [pistachio-card], device 0: pistachio-spdif-out snd-soc-dummy-dai-0 []
# Subdevices: 1/1
# Subdevice #0: subdevice #0
# card 0: pistachiocard [pistachio-card], device 2: pistachio-parallel-out pistachio_internal_dac-2 []
# Subdevices: 1/1
# Subdevice #0: subdevice #0
# card 0: pistachiocard [pistachio-card], device 3: pistachio-i2s-out snd-soc-dummy-dai-3 []
# Subdevices: 1/1
# Subdevice #0: subdevice #0
#
pistachio-card.pcm.default{
@args [ CARD ]
@args.CARD {
type string
default "pistachio"
}
@args.DEVICE {
type integer
default 2
}
type asym
capture.pcm {
type multi
slaves.a.pcm "hw:0,4"
slaves.a.channels 12
bindings.0.slave a
bindings.0.channel 4
bindings.1.slave a
bindings.1.channel 5
}
playback.pcm {
type hw
card $CARD
device $DEVICE

View File

@@ -0,0 +1,64 @@
#
# Configuration for the VC4-HDMI sound card using software IEC958
# subframe conversion
#
<confdir:pcm/front.conf>
vc4-hdmi.pcm.front.0 {
@args [ CARD ]
@args.CARD {
type string
}
type hw
card $CARD
}
# default with dmix
vc4-hdmi.pcm.default {
@args [ CARD ]
@args.CARD {
type string
}
type asym
playback.pcm {
type plug
slave.pcm {
@func concat
strings [ "dmix:" $CARD ]
}
}
}
<confdir:pcm/iec958.conf>
vc4-hdmi.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 {
format IEC958_SUBFRAME_LE
pcm {
type plug
slave.pcm {
type hw
card $CARD
}
}
}
status [ $AES0 $AES1 $AES2 $AES3 ]
}

View File

@@ -0,0 +1,49 @@
# This is toplevel configuration for for 'alsactl init'.
# See 'man alsactl_init' for syntax.
# set root device directory in sysfs for soundcard for ATTR{} command
CONFIG{sysfs_device}="/class/sound/card$cardinfo{card}/device"
ACCESS!="$sysfsroot$config{sysfs_device}", \
CONFIG{sysfs_device}="/class/sound/controlC$cardinfo{card}/device"
# test for extra commands
ENV{CMD}=="help", INCLUDE="help", GOTO="00main_end"
ENV{CMD}=="info", INCLUDE="info", GOTO="00main_end"
ENV{CMD}=="default", INCLUDE="default", GOTO="00main_end"
ENV{CMD}=="test", INCLUDE="test", GOTO="00main_end"
ENV{CMD}=="*", ERROR="Unknown command '$env{CMD}'\n", GOTO="00main_end"
# include files with real configuration
#
# steps are:
# 1) look for preinit subdirectory and parse all files in it
# 2) if RESULT=="skip", skip ALSA standard configuration files
# 3) do ALSA standard configuration
# 4) look for postinit subdirectory and parse all files in it
# 5) if RESULT!="true", initialize hardware using a guess method,
# print an error message and return with exit code 99
# 6) return with exit code 0 (success)
#
RESULT="unknown"
ACCESS=="preinit", INCLUDE="preinit"
RESULT=="skip", GOTO="init_end"
# real ALSA configuration database
CARDINFO{driver}=="HDA-Intel", INCLUDE="hda", GOTO="init_end"
CARDINFO{driver}=="CA0106", INCLUDE="ca0106", GOTO="init_end"
CARDINFO{driver}=="Test", INCLUDE="test", GOTO="init_end"
LABEL="init_end"
ACCESS=="postinit", INCLUDE="postinit"
RESULT=="true", GOTO="00main_end"
ERROR="Found hardware: \"$cardinfo{driver}\" \"$cardinfo{mixername}\" \"$cardinfo{components}\" \"$attr{subsystem_vendor}\" \"$attr{subsystem_device}\"\n"
ERROR="Hardware is initialized using a generic method\n"
INCLUDE="default"
EXIT="99"
#
# label identifying end of main file
#
LABEL="00main_end"

View File

@@ -0,0 +1,31 @@
# Configuration for CA0106 driver
CTL{reset}="mixer"
CTL{name}="Master Playback Volume", CTL{values}="-20dB"
CTL{name}="Master Playback Switch", CTL{values}="on"
CTL{name}="Analog Front Playback Volume", CTL{values}="0dB"
CTL{name}="Analog Front Playback Switch", CTL{values}="on"
CTL{name}="Analog Rear Playback Volume", CTL{values}="0dB"
CTL{name}="Analog Rear Playback Switch", CTL{values}="on"
CTL{name}="Analog Center/LFE Playback Volume", CTL{values}="0dB"
CTL{name}="Analog Center/LFE Playback Switch", CTL{values}="on"
CTL{name}="Analog Side Playback Volume", CTL{values}="0dB"
CTL{name}="Analog Side Playback Switch", CTL{values}="on"
CTL{name}="IEC958 Front Playback Volume", CTL{values}="0dB"
CTL{name}="IEC958 Rear Playback Volume", CTL{values}="0dB"
CTL{name}="IEC958 Center/LFE Playback Volume", CTL{values}="0dB"
# capture
CTL{name}="Analog Source Capture Enum", CTL{value}="Mic"
CTL{name}="Mic Capture Volume", CTL{values}="6dB"
CTL{name}="Shared Mic/Line in Capture Switch", CTL{values}="Mic in"
# some variants have also AC97 mixer
CTL{reset}="mixer"
CTL{name}="AC97 Line Capture Volume",PROGRAM!="__ctl_search",GOTO="ac97_end"
CTL{name}="Analog Source Capture Enum", CTL{value}="AC97 in"
CTL{name}="AC97 Mic Capture Switch", "on"
CTL{name}="AC97 Mic Capture Value", "6dB"
LABEL="ac97_end"
RESULT="true", EXIT="return"

View File

@@ -0,0 +1,284 @@
#
# Default ALSA volume levels and setting when initialization database fails.
#
# Basic rules are:
# - keep volumes at minimal level, but sound should be hearable
# - enable standard outputs for playback and main microphone for recording
#
# **************************************************************************
# playback
# **************************************************************************
ENV{ppercent}:="75%"
ENV{cpercent}:="75%"
ENV{pvolume}:="-20dB"
ENV{cvolume}:="12dB"
ENV{has_pmaster_vol}:="false"
CTL{reset}="mixer"
CTL{name}="Playback Volume",CTL{do_search}=="1", \
CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
CTL{name}="Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="Master Playback Volume",CTL{do_search}=="1", \
ENV{has_pmaster_vol}:="true", \
CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
CTL{name}="Master Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="Master Front Playback Volume",CTL{do_search}=="1", \
ENV{has_pmaster_vol}:="true", \
CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
CTL{name}="Master Front Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="Master Digital Playback Volume",CTL{do_search}=="1", \
CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
CTL{name}="Master Digital Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="Line Out Playback Volume",PROGRAM!="__ctl_search",GOTO=""
# if master volume control is present, turn line out volume to max
ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
LABEL=""
CTL{name}="Line Out Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="Front Playback Volume",PROGRAM!="__ctl_search",GOTO=""
# if master volume control is present, turn front volume to max
ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
LABEL=""
CTL{name}="Front Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="Surround Playback Volume",PROGRAM!="__ctl_search",GOTO=""
# if master volume control is present, turn front volume to max
ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
LABEL=""
CTL{name}="Surround Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="Center Playback Volume",PROGRAM!="__ctl_search",GOTO=""
# if master volume control is present, turn front volume to max
ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
LABEL=""
CTL{name}="Center Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="LFE Playback Volume",PROGRAM!="__ctl_search",GOTO=""
# if master volume control is present, turn front volume to max
ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
LABEL=""
CTL{name}="LFE Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="Headphone Playback Volume",PROGRAM!="__ctl_search",GOTO=""
# if master volume control is present, turn headphone volume to max
ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
LABEL=""
CTL{name}="Headphone Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="Headphone Playback Volume",CTL{index}="1",PROGRAM!="__ctl_search",\
GOTO=""
# if master volume control is present, turn headphone volume to max
ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
LABEL=""
CTL{name}="Headphone Playback Switch",CTL{index}="1",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="Speaker Playback Volume",PROGRAM!="__ctl_search",GOTO=""
# if master volume control is present, turn speaker volume to max
ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
LABEL=""
CTL{name}="Speaker Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="Front Speaker Playback Volume",PROGRAM!="__ctl_search",GOTO=""
# if master volume control is present, turn speaker volume to max
ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
LABEL=""
CTL{name}="Front Speaker Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="Surround Speaker Playback Volume",PROGRAM!="__ctl_search",GOTO=""
# if master volume control is present, turn speaker volume to max
ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
LABEL=""
CTL{name}="Surround Speaker Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="Center Speaker Playback Volume",PROGRAM!="__ctl_search",GOTO=""
# if master volume control is present, turn speaker volume to max
ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
LABEL=""
CTL{name}="Center Speaker Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="LFE Speaker Playback Volume",PROGRAM!="__ctl_search",GOTO=""
# if master volume control is present, turn speaker volume to max
ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
LABEL=""
CTL{name}="LFE Speaker Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="PC Speaker Playback Volume",CTL{do_search}=="1", \
CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}"
CTL{name}="PC Speaker Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="PCM Playback Volume",PROGRAM!="__ctl_search", \
CTL{name}="PCM Volume",PROGRAM!="__ctl_search", GOTO=""
# if master volume control is present, turn PCM volume to max
ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
# exception - some HDA codecs have shifted dB range
CTL{dBmin}=="-34.50dB",CTL{dBmax}=="12.00dB",CTL{write}=="0dB",GOTO=""
CTL{dBmin}=="-30.00dB",CTL{dBmax}=="0dB",CTL{write}=="0dB",GOTO=""
CTL{write}!="$env{pvolume}",CTL{values}="75%"
LABEL=""
CTL{name}="PCM Playback Switch",CTL{do_search}=="1", CTL{values}="on"
CTL{name}="PCM Switch",CTL{do_search}=="1",CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="PCM Playback Volume",CTL{index}="1",PROGRAM!="__ctl_search", \
CTL{name}="PCM Volume",PROGRAM!="__ctl_search",GOTO=""
# if master volume control is present, turn PCM volume to max
ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
# exception - some HDA codecs have shifted dB range
CTL{dBmin}=="-34.50dB",CTL{dBmax}=="12.00dB",CTL{write}=="0dB",GOTO=""
CTL{dBmin}=="-30.00dB",CTL{dBmax}=="0dB",CTL{write}=="0dB",GOTO=""
CTL{write}!="$env{pvolume}",CTL{values}="75%"
LABEL=""
CTL{name}="PCM Playback Switch",CTL{index}="1",CTL{do_search}=="1", \
CTL{values}="on"
CTL{name}="PCM Switch",CTL{index}="1",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="DAC Playback Volume",CTL{do_search}=="1", \
CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}"
CTL{name}="DAC Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="Synth Playback Volume",CTL{do_search}=="1", \
CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}"
CTL{name}="Synth Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="Wave Playback Volume",CTL{do_search}=="1", \
CTL{values}="100%"
CTL{name}="Wave Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="Music Playback Volume",CTL{do_search}=="1", \
CTL{values}="100%"
CTL{name}="Music Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="CD Playback Volume",CTL{do_search}=="1", \
CTL{values}="0%"
CTL{name}="CD Playback Switch",CTL{do_search}=="1", \
CTL{values}="off"
CTL{reset}="mixer"
CTL{name}="Mono Playback Volume",CTL{do_search}=="1", \
CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}"
CTL{name}="Mono Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="Master Mono Playback Volume",CTL{do_search}=="1", \
CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}"
CTL{name}="Master Mono Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{reset}="mixer"
CTL{name}="AC97 Playback Volume",CTL{do_search}=="1", \
CTL{values}="100%"
CTL{name}="AC97 Playback Switch",CTL{do_search}=="1", \
CTL{values}="on"
#
# Powermacs
#
CTL{reset}="mixer"
CTL{name}="DRC Range",CTL{do_search}=="1", \
CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
# **************************************************************************
# capture
# **************************************************************************
CTL{reset}="mixer"
CTL{name}="Capture Volume",CTL{do_search}=="1", \
CTL{write}!="$env{cvolume}",CTL{values}="$env{cpercent}"
CTL{name}="Capture Switch",CTL{do_search}=="1", \
CTL{values}="on"
CTL{name}="Capture Source",PROGRAM!="__ctl_search", GOTO=""
CTL{enums}=="*|Internal Mic|*",CTL{values}="Internal Mic", GOTO=""
CTL{enums}=="*|Mic|*",CTL{values}="Mic"
LABEL=""
CTL{name}="Input Source",PROGRAM!="__ctl_search", GOTO=""
CTL{enums}=="*|Internal Mic|*",CTL{values}="Internal Mic", GOTO=""
CTL{enums}=="*|Mic|*",CTL{values}="Mic"
LABEL=""
CTL{name}="Digital Input Source",PROGRAM!="__ctl_search", GOTO=""
CTL{enums}=="*|Digital Mic 1|*",CTL{values}="Digital Mic 1", GOTO=""
CTL{enums}=="*|Mic|*",CTL{values}="Mic"
LABEL=""
CTL{name}="Mic Boost",CTL{do_search}=="1", CTL{values}="on"
CTL{name}="Internal Mic Boost",CTL{do_search}=="1", CTL{values}="on"

View File

@@ -0,0 +1,39 @@
# Configuration for HDA Intel driver (High Definition Audio - Azalia)
CARDINFO{mixername}=="Realtek ALC880", \
ATTR{subsystem_vendor}=="0x1025", ATTR{subsystem_device}=="0x0070", \
GOTO="Acer Travelmate 8100"
CARDINFO{mixername}=="Analog Devices AD1984", \
ATTR{subsystem_vendor}=="0x17aa", ATTR{subsystem_device}=="0x20ac", \
GOTO="Lenovo T61"
RESULT="false", EXIT="return"
LABEL="Acer Travelmate 8100"
# playback
CTL{reset}="mixer"
CTL{name}="Master Playback Volume", CTL{values}="-21dB"
CTL{name}="Master Playback Switch", CTL{values}="on"
CTL{name}="Headphone Playback Switch", CTL{values}="on"
CTL{name}="Front Playback Volume", CTL{values}="-29dB"
CTL{name}="Front Playback Switch", CTL{values}="on"
CTL{name}="PCM Playback Volume", CTL{values}="0dB"
# capture
CTL{name}="Input Source", CTL{value}="Mic"
CTL{name}="Capture Volume", CTL{values}="20dB"
CTL{name}="Capture Switch", CTL{values}="on"
RESULT="true", EXIT="return"
LABEL="Lenovo T61"
# playback
CTL{reset}="mixer"
CTL{name}="Master Playback Volume", CTL{values}="-13.5dB"
CTL{name}="Master Playback Switch", CTL{values}="on"
CTL{name}="Headphone Playback Switch", CTL{values}="on"
CTL{name}="Speaker Playback Switch", CTL{values}="on"
CTL{name}="PCM Playback Volume", CTL{values}="0dB"
# capture
CTL{name}="Input Source", CTL{value}="Internal Mic"
CTL{name}="Internal Mic Boost", CTL{values}="1"
CTL{name}="Capture Volume", CTL{values}="9dB"
CTL{name}="Capture Switch", CTL{values}="on"
RESULT="true", EXIT="return"

View File

@@ -0,0 +1,8 @@
# help page
PRINT="Available commands (identified by the environment variable CMD):\n\n"
PRINT=" (not set) Do a soundcard initialization\n"
PRINT=" default Do a default (guess method) initialization\n"
PRINT=" help Show this information\n"
PRINT=" info Print all available hardware identification\n"
PRINT=" test Do alsactl utility parser tests\n"

View File

@@ -0,0 +1,22 @@
# show information about card
PRINT="CARDINFO:\n"
PRINT=" CARDINFO{id}=\"$CARDINFO{id}\"\n"
PRINT=" CARDINFO{card}=\"$CARDINFO{card}\"\n"
PRINT=" CARDINFO{driver}=\"$CARDINFO{driver}\"\n"
PRINT=" CARDINFO{name}=\"$CARDINFO{name}\"\n"
PRINT=" CARDINFO{longname}=\"$CARDINFO{longname}\"\n"
PRINT=" CARDINFO{mixername}=\"$CARDINFO{mixername}\"\n"
PRINT=" CARDINFO{components}=\"$CARDINFO{components}\"\n"
# sysfs stuff
PRINT="sysfs:\n"
ATTR{bus}=="*", PRINT=" ATTR{bus}=\"$ATTR{bus}\"\n"
ATTR{class}=="*", PRINT=" ATTR{class}=\"$ATTR{class}\"\n"
ATTR{driver}=="*", PRINT=" ATTR{driver}=\"$ATTR{driver}\"\n"
ATTR{vendor}=="*", PRINT=" ATTR{vendor}=\"$ATTR{vendor}\"\n"
ATTR{device}=="*", PRINT=" ATTR{device}=\"$ATTR{device}\"\n"
ATTR{subsystem_vendor}=="*", \
PRINT=" ATTR{subsystem_vendor}=\"$ATTR{subsystem_vendor}\"\n"
ATTR{subsystem_device}=="*", \
PRINT=" ATTR{subsystem_device}=\"$ATTR{subsystem_device}\"\n"

View File

@@ -0,0 +1,270 @@
# Test code
# Just for debugging purposes
PRINT="Default CTL:\n"
PRINT=" CTL{numid}=\"$ctl{numid}\"\n"
PRINT=" CTL{iface}=\"$ctl{iface}\"\n"
PRINT=" CTL{device}=\"$ctl{device}\"\n"
PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n"
PRINT=" CTL{name}=\"$ctl{name}\"\n"
PRINT=" CTL{index}=\"$ctl{index}\"\n"
CTL{reset}="mixer"
PRINT="After CTL{reset}=\"mixer\":\n"
PRINT=" CTL{numid}=\"$ctl{numid}\"\n"
PRINT=" CTL{iface}=\"$ctl{iface}\"\n"
PRINT=" CTL{device}=\"$ctl{device}\"\n"
PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n"
PRINT=" CTL{name}=\"$ctl{name}\"\n"
PRINT=" CTL{index}=\"$ctl{index}\"\n"
CTL{numid}="987"
CTL{iface}="sequencer"
CTL{device}="10"
CTL{subdevice}="20"
CTL{name}="Just Test"
CTL{index}="999"
PRINT="After test sequence:\n"
PRINT=" CTL{numid}=\"$ctl{numid}\"\n"
PRINT=" CTL{iface}=\"$ctl{iface}\"\n"
PRINT=" CTL{device}=\"$ctl{device}\"\n"
PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n"
PRINT=" CTL{name}=\"$ctl{name}\"\n"
PRINT=" CTL{index}=\"$ctl{index}\"\n"
ERROR="Ignore following error:\n "
PROGRAM="__just_test"
PRINT="CTL{do_count} test:\n"
CTL{search}="mixer", CTL{name}="*Switch*", \
PRINT=" *Switch* count result: $ctl{do_count}\n"
PRINT="__ctl_search test:\n"
CTL{search}="mixer", CTL{name}="*Switch*", PROGRAM!="__ctl_search", GOTO="skip_switch_search"
PRINT=" *Switch 0* search result: $result\n"
PRINT=" CTL{numid}=\"$ctl{numid}\"\n"
PRINT=" CTL{iface}=\"$ctl{iface}\"\n"
PRINT=" CTL{device}=\"$ctl{device}\"\n"
PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n"
PRINT=" CTL{name}=\"$ctl{name}\"\n"
PRINT=" CTL{index}=\"$ctl{index}\"\n"
CTL{search}="mixer", CTL{name}="*Switch*", PROGRAM!="__ctl_search 1", GOTO="skip_switch_search"
PRINT=" *Switch 1* search result: $result\n"
PRINT=" CTL{numid}=\"$ctl{numid}\"\n"
PRINT=" CTL{iface}=\"$ctl{iface}\"\n"
PRINT=" CTL{device}=\"$ctl{device}\"\n"
PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n"
PRINT=" CTL{name}=\"$ctl{name}\"\n"
PRINT=" CTL{index}=\"$ctl{index}\"\n"
PRINT="First ten elements:\n"
CTL{search}="mixer", CTL{name}="*", CTL{do_search 0}!="1", GOTO="skip_first_ten_search"
PRINT=" Element #0:\n"
PRINT=" CTL{numid}=\"$ctl{numid}\"\n"
PRINT=" CTL{iface}=\"$ctl{iface}\"\n"
PRINT=" CTL{device}=\"$ctl{device}\"\n"
PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n"
PRINT=" CTL{name}=\"$ctl{name}\"\n"
PRINT=" CTL{index}=\"$ctl{index}\"\n"
PRINT=" CTL{type}=\"$ctl{type}\"\n"
PRINT=" CTL{attr}=\"$ctl{attr}\"\n"
PRINT=" CTL{owner}=\"$ctl{owner}\"\n"
PRINT=" CTL{count}=\"$ctl{count}\"\n"
PRINT=" CTL{min}=\"$ctl{min}\"\n"
PRINT=" CTL{max}=\"$ctl{max}\"\n"
PRINT=" CTL{step}=\"$ctl{step}\"\n"
PRINT=" CTL{dBmin}=\"$ctl{dBmin}\"\n"
PRINT=" CTL{dBmax}=\"$ctl{dBmax}\"\n"
PRINT=" CTL{items}=\"$ctl{items}\"\n"
PRINT=" CTL{value}=\"$ctl{value}\"\n"
CTL{search}="mixer", CTL{name}="*", CTL{do_search 1}!="1", GOTO="skip_first_ten_search"
PRINT=" Element #1:\n"
PRINT=" CTL{numid}=\"$ctl{numid}\"\n"
PRINT=" CTL{iface}=\"$ctl{iface}\"\n"
PRINT=" CTL{device}=\"$ctl{device}\"\n"
PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n"
PRINT=" CTL{name}=\"$ctl{name}\"\n"
PRINT=" CTL{index}=\"$ctl{index}\"\n"
PRINT=" CTL{type}=\"$ctl{type}\"\n"
PRINT=" CTL{attr}=\"$ctl{attr}\"\n"
PRINT=" CTL{owner}=\"$ctl{owner}\"\n"
PRINT=" CTL{count}=\"$ctl{count}\"\n"
PRINT=" CTL{min}=\"$ctl{min}\"\n"
PRINT=" CTL{max}=\"$ctl{max}\"\n"
PRINT=" CTL{step}=\"$ctl{step}\"\n"
PRINT=" CTL{dBmin}=\"$ctl{dBmin}\"\n"
PRINT=" CTL{dBmax}=\"$ctl{dBmax}\"\n"
PRINT=" CTL{items}=\"$ctl{items}\"\n"
PRINT=" CTL{value}=\"$ctl{value}\"\n"
CTL{search}="mixer", CTL{name}="*", CTL{do_search 2}!="1", GOTO="skip_first_ten_search"
PRINT=" Element #2:\n"
PRINT=" CTL{numid}=\"$ctl{numid}\"\n"
PRINT=" CTL{iface}=\"$ctl{iface}\"\n"
PRINT=" CTL{device}=\"$ctl{device}\"\n"
PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n"
PRINT=" CTL{name}=\"$ctl{name}\"\n"
PRINT=" CTL{index}=\"$ctl{index}\"\n"
PRINT=" CTL{type}=\"$ctl{type}\"\n"
PRINT=" CTL{attr}=\"$ctl{attr}\"\n"
PRINT=" CTL{owner}=\"$ctl{owner}\"\n"
PRINT=" CTL{count}=\"$ctl{count}\"\n"
PRINT=" CTL{min}=\"$ctl{min}\"\n"
PRINT=" CTL{max}=\"$ctl{max}\"\n"
PRINT=" CTL{step}=\"$ctl{step}\"\n"
PRINT=" CTL{dBmin}=\"$ctl{dBmin}\"\n"
PRINT=" CTL{dBmax}=\"$ctl{dBmax}\"\n"
PRINT=" CTL{items}=\"$ctl{items}\"\n"
PRINT=" CTL{value}=\"$ctl{value}\"\n"
CTL{search}="mixer", CTL{name}="*", CTL{do_search 3}!="3", GOTO="skip_first_ten_search"
PRINT=" Element #3:\n"
PRINT=" CTL{numid}=\"$ctl{numid}\"\n"
PRINT=" CTL{iface}=\"$ctl{iface}\"\n"
PRINT=" CTL{device}=\"$ctl{device}\"\n"
PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n"
PRINT=" CTL{name}=\"$ctl{name}\"\n"
PRINT=" CTL{index}=\"$ctl{index}\"\n"
PRINT=" CTL{type}=\"$ctl{type}\"\n"
PRINT=" CTL{attr}=\"$ctl{attr}\"\n"
PRINT=" CTL{owner}=\"$ctl{owner}\"\n"
PRINT=" CTL{count}=\"$ctl{count}\"\n"
PRINT=" CTL{min}=\"$ctl{min}\"\n"
PRINT=" CTL{max}=\"$ctl{max}\"\n"
PRINT=" CTL{dBmin}=\"$ctl{dBmin}\"\n"
PRINT=" CTL{dBmax}=\"$ctl{dBmax}\"\n"
PRINT=" CTL{step}=\"$ctl{step}\"\n"
PRINT=" CTL{items}=\"$ctl{items}\"\n"
PRINT=" CTL{value}=\"$ctl{value}\"\n"
CTL{search}="mixer", CTL{name}="*", CTL{do_search 4}!="1", GOTO="skip_first_ten_search"
PRINT=" Element #4:\n"
PRINT=" CTL{numid}=\"$ctl{numid}\"\n"
PRINT=" CTL{iface}=\"$ctl{iface}\"\n"
PRINT=" CTL{device}=\"$ctl{device}\"\n"
PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n"
PRINT=" CTL{name}=\"$ctl{name}\"\n"
PRINT=" CTL{index}=\"$ctl{index}\"\n"
PRINT=" CTL{type}=\"$ctl{type}\"\n"
PRINT=" CTL{attr}=\"$ctl{attr}\"\n"
PRINT=" CTL{owner}=\"$ctl{owner}\"\n"
PRINT=" CTL{count}=\"$ctl{count}\"\n"
PRINT=" CTL{min}=\"$ctl{min}\"\n"
PRINT=" CTL{max}=\"$ctl{max}\"\n"
PRINT=" CTL{step}=\"$ctl{step}\"\n"
PRINT=" CTL{dBmin}=\"$ctl{dBmin}\"\n"
PRINT=" CTL{dBmax}=\"$ctl{dBmax}\"\n"
PRINT=" CTL{items}=\"$ctl{items}\"\n"
PRINT=" CTL{value}=\"$ctl{value}\"\n"
CTL{search}="mixer", CTL{name}="*", CTL{do_search 5}!="1", GOTO="skip_first_ten_search"
PRINT=" Element #5:\n"
PRINT=" CTL{numid}=\"$ctl{numid}\"\n"
PRINT=" CTL{iface}=\"$ctl{iface}\"\n"
PRINT=" CTL{device}=\"$ctl{device}\"\n"
PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n"
PRINT=" CTL{name}=\"$ctl{name}\"\n"
PRINT=" CTL{index}=\"$ctl{index}\"\n"
PRINT=" CTL{type}=\"$ctl{type}\"\n"
PRINT=" CTL{attr}=\"$ctl{attr}\"\n"
PRINT=" CTL{owner}=\"$ctl{owner}\"\n"
PRINT=" CTL{count}=\"$ctl{count}\"\n"
PRINT=" CTL{min}=\"$ctl{min}\"\n"
PRINT=" CTL{max}=\"$ctl{max}\"\n"
PRINT=" CTL{step}=\"$ctl{step}\"\n"
PRINT=" CTL{dBmin}=\"$ctl{dBmin}\"\n"
PRINT=" CTL{dBmax}=\"$ctl{dBmax}\"\n"
PRINT=" CTL{items}=\"$ctl{items}\"\n"
PRINT=" CTL{value}=\"$ctl{value}\"\n"
CTL{search}="mixer", CTL{name}="*", CTL{do_search 6}!="1", GOTO="skip_first_ten_search"
PRINT=" Element #6:\n"
PRINT=" CTL{numid}=\"$ctl{numid}\"\n"
PRINT=" CTL{iface}=\"$ctl{iface}\"\n"
PRINT=" CTL{device}=\"$ctl{device}\"\n"
PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n"
PRINT=" CTL{name}=\"$ctl{name}\"\n"
PRINT=" CTL{index}=\"$ctl{index}\"\n"
PRINT=" CTL{type}=\"$ctl{type}\"\n"
PRINT=" CTL{attr}=\"$ctl{attr}\"\n"
PRINT=" CTL{owner}=\"$ctl{owner}\"\n"
PRINT=" CTL{count}=\"$ctl{count}\"\n"
PRINT=" CTL{min}=\"$ctl{min}\"\n"
PRINT=" CTL{max}=\"$ctl{max}\"\n"
PRINT=" CTL{step}=\"$ctl{step}\"\n"
PRINT=" CTL{dBmin}=\"$ctl{dBmin}\"\n"
PRINT=" CTL{dBmax}=\"$ctl{dBmax}\"\n"
PRINT=" CTL{items}=\"$ctl{items}\"\n"
PRINT=" CTL{value}=\"$ctl{value}\"\n"
CTL{search}="mixer", CTL{name}="*", CTL{do_search 7}!="1", GOTO="skip_first_ten_search"
PRINT=" Element #7:\n"
PRINT=" CTL{numid}=\"$ctl{numid}\"\n"
PRINT=" CTL{iface}=\"$ctl{iface}\"\n"
PRINT=" CTL{device}=\"$ctl{device}\"\n"
PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n"
PRINT=" CTL{name}=\"$ctl{name}\"\n"
PRINT=" CTL{index}=\"$ctl{index}\"\n"
PRINT=" CTL{type}=\"$ctl{type}\"\n"
PRINT=" CTL{attr}=\"$ctl{attr}\"\n"
PRINT=" CTL{owner}=\"$ctl{owner}\"\n"
PRINT=" CTL{count}=\"$ctl{count}\"\n"
PRINT=" CTL{min}=\"$ctl{min}\"\n"
PRINT=" CTL{max}=\"$ctl{max}\"\n"
PRINT=" CTL{step}=\"$ctl{step}\"\n"
PRINT=" CTL{dBmin}=\"$ctl{dBmin}\"\n"
PRINT=" CTL{dBmax}=\"$ctl{dBmax}\"\n"
PRINT=" CTL{items}=\"$ctl{items}\"\n"
PRINT=" CTL{value}=\"$ctl{value}\"\n"
CTL{search}="mixer", CTL{name}="*", CTL{do_search 8}!="1", GOTO="skip_first_ten_search"
PRINT=" Element #8:\n"
PRINT=" CTL{numid}=\"$ctl{numid}\"\n"
PRINT=" CTL{iface}=\"$ctl{iface}\"\n"
PRINT=" CTL{device}=\"$ctl{device}\"\n"
PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n"
PRINT=" CTL{name}=\"$ctl{name}\"\n"
PRINT=" CTL{index}=\"$ctl{index}\"\n"
PRINT=" CTL{type}=\"$ctl{type}\"\n"
PRINT=" CTL{attr}=\"$ctl{attr}\"\n"
PRINT=" CTL{owner}=\"$ctl{owner}\"\n"
PRINT=" CTL{count}=\"$ctl{count}\"\n"
PRINT=" CTL{min}=\"$ctl{min}\"\n"
PRINT=" CTL{max}=\"$ctl{max}\"\n"
PRINT=" CTL{step}=\"$ctl{step}\"\n"
PRINT=" CTL{dBmin}=\"$ctl{dBmin}\"\n"
PRINT=" CTL{dBmax}=\"$ctl{dBmax}\"\n"
PRINT=" CTL{items}=\"$ctl{items}\"\n"
PRINT=" CTL{value}=\"$ctl{value}\"\n"
CTL{search}="mixer", CTL{name}="*", CTL{do_search 9}!="1", GOTO="skip_first_ten_search"
PRINT=" Element #9:\n"
PRINT=" CTL{numid}=\"$ctl{numid}\"\n"
PRINT=" CTL{iface}=\"$ctl{iface}\"\n"
PRINT=" CTL{device}=\"$ctl{device}\"\n"
PRINT=" CTL{subdevice}=\"$ctl{subdevice}\"\n"
PRINT=" CTL{name}=\"$ctl{name}\"\n"
PRINT=" CTL{index}=\"$ctl{index}\"\n"
PRINT=" CTL{type}=\"$ctl{type}\"\n"
PRINT=" CTL{attr}=\"$ctl{attr}\"\n"
PRINT=" CTL{owner}=\"$ctl{owner}\"\n"
PRINT=" CTL{count}=\"$ctl{count}\"\n"
PRINT=" CTL{min}=\"$ctl{min}\"\n"
PRINT=" CTL{max}=\"$ctl{max}\"\n"
PRINT=" CTL{step}=\"$ctl{step}\"\n"
PRINT=" CTL{dBmin}=\"$ctl{dBmin}\"\n"
PRINT=" CTL{dBmax}=\"$ctl{dBmax}\"\n"
PRINT=" CTL{items}=\"$ctl{items}\"\n"
PRINT=" CTL{value}=\"$ctl{value}\"\n"
LABEL="skip_first_ten_search"
PRINT="Elements write test #1:\n", \
CTL{search}="mixer", CTL{name}="Front Playback Switch", \
CTL{do_search}=="1", CTL{value}="on,on", \
PRINT=" result=$result\n"
PRINT="Elements write test #2:\n", \
CTL{search}="mixer", CTL{name}="Front Playback Volume", \
CTL{do_search}=="1", CTL{value}="32,32", \
PRINT=" result=$result\n"
PRINT="Elements write test #3:\n", \
CTL{search}="mixer", CTL{name}="Front Playback Volume Error", \
CTL{do_search}=="1", \
PRINT=" result=$result\n"
#CTL{reset}="mixer", CTL{name}="Input Source", PRINT="***$ctl{enums}\n"
PRINT="\nAll tests done..\n"

View File

@@ -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
}
}

View File

@@ -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
}
}
}

View File

@@ -0,0 +1,127 @@
#
# dmix output
#
pcm.!dmix {
@args [ CARD DEV SUBDEV FORMAT RATE CHANNELS ]
@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
}
}
@args.CHANNELS {
type integer
default {
@func refer
name defaults.pcm.dmix.channels
}
}
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
}
tstamp_type {
@func refer
name defaults.pcm.tstamp_type
}
slave {
pcm {
type hw
card $CARD
device $DEV
subdevice $SUBDEV
}
format $FORMAT
rate $RATE
channels $CHANNELS
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_output $DEV
}
}

View File

@@ -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
}

View File

@@ -0,0 +1,119 @@
#
# 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
}
tstamp_type {
@func refer
name defaults.pcm.tstamp_type
}
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_input $DEV
}
}

View File

@@ -0,0 +1,60 @@
#
# 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 output / input"
device_output $DEV
device_input $DEV
omit_noargs true
}
}

View File

@@ -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
}
}

View File

@@ -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_output $DEV
}
}

View File

@@ -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
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -0,0 +1,62 @@
#
# Hardware output from 2.1 speakers.
# Samples must be positioned:
# chn0 - front left
# chn1 - front right
# chn2 - LFE
#
pcm.!surround21 {
@args [ CARD DEV ]
@args.CARD {
type string
default {
@func getenv
vars [
ALSA_SURROUND21_CARD
ALSA_PCM_CARD
ALSA_CARD
]
default {
@func refer
name defaults.pcm.surround21.card
}
}
}
@args.DEV {
type integer
default {
@func igetenv
vars [
ALSA_SURROUND21_DEVICE
]
default {
@func refer
name defaults.pcm.surround21.device
}
}
}
type route
slave.pcm {
@func refer
name {
@func concat
strings [
"cards."
{
@func card_driver
card $CARD
}
".pcm.surround51." $DEV ":CARD=" $CARD
]
}
}
ttable.0.FL 1
ttable.1.FR 1
ttable.2.LFE 1
hint {
description "2.1 Surround output to Front and Subwoofer speakers"
device_output $DEV
omit_noargs true
}
}

View File

@@ -0,0 +1,60 @@
#
# 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_output $DEV
omit_noargs true
}
}

View File

@@ -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
]
}
}
ttable.0.FL 1
ttable.1.FR 1
ttable.2.RL 1
ttable.3.RR 1
ttable.4.LFE 1
hint {
description "4.1 Surround output to Front, Rear and Subwoofer speakers"
device_output $DEV
omit_noargs true
}
}

View File

@@ -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
]
}
}
ttable.0.FL 1
ttable.1.FR 1
ttable.2.RL 1
ttable.3.RR 1
ttable.4.FC 1
hint {
description "5.0 Surround output to Front, Center and Rear speakers"
device_output $DEV
omit_noargs true
}
}

View File

@@ -0,0 +1,62 @@
#
# 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_output $DEV
omit_noargs true
}
}

View File

@@ -0,0 +1,64 @@
#
# 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_output $DEV
omit_noargs true
}
}

View File

@@ -0,0 +1,2 @@
0, "Front Left", "/usr/share/alsa/samples/Front_Left.wav"
1, "Front Right", "/usr/share/alsa/samples/Front_Right.wav"
1 0 Front Left /usr/share/alsa/samples/Front_Left.wav
2 1 Front Right /usr/share/alsa/samples/Front_Right.wav

Some files were not shown because too many files have changed in this diff Show More