Added snd_config_hook_load_for_all_cards.

Added private_data parameter for snd_config_hooks function.
Fixed the return value mess in the config parser routines.
The include file could begin with 'confdir:' which is replaced with /usr/share/alsa.
The snd_config_search_definitions looks for raw name at first (without suggested root).
Added snd_func_private_card_strtype function.
All configuration files moved to the src/conf directory.
Configuration files modified to use load-on-demand feature using hooks.
This commit is contained in:
Jaroslav Kysela 2001-06-21 13:41:50 +00:00
parent be5529bc3a
commit bc581b87ae
24 changed files with 909 additions and 199 deletions

107
src/conf/cards/CMIPCI.conf Normal file
View file

@ -0,0 +1,107 @@
#
# Configuration for the CMIPCI chip
#
CMIPCI.pcm.front.0 {
@args [ CARD ]
@args.CARD {
type string
}
type hw
card $CARD
device 0
}
# 2nd DAC
# FIXME: we need a volume attenuator for rear channel.
CMIPCI.pcm.rear.0 {
@args [ CARD ]
@args.CARD {
type string
}
type hw
card $CARD
device 1
}
# for the recent CM8738 chips
# cards.CMIPCI.pcm.surround40.0 "cards.CMIPCI.pcm.front.0"
CMIPCI.pcm.surround51.0 "cards.CMIPCI.pcm.front.0"
# for the old CM8738 with 2nd DAC for rear
CMIPCI.pcm.surround40.0 {
@args [ CARD ]
@args.CARD {
type string
}
type multi
master 1
slaves [
{
pcm {
@func concat
strings [
"cards.CMIPCI.pcm.front.0:CARD=" $CARD
]
}
channels 2
}
{
pcm {
@func concat
strings [
"cards.CMIPCI.pcm.rear.0:CARD=" $CARD
]
}
channels 2
}
]
bindings [
{ slave 0 channel 0 }
{ slave 0 channel 1 }
{ slave 1 channel 0 }
{ slave 1 channel 1 }
]
}
CMIPCI.pcm.iec958.0 {
@args [ CARD DEV AES0 AES1 AES2 AES3 ]
@args.CARD {
type string
}
@args.DEV {
type integer
}
@args.AES0 {
type integer
}
@args.AES1 {
type integer
}
@args.AES2 {
type integer
}
@args.AES3 {
type integer
}
type hooks
hooks.0 {
type ctl_elems
hook_args [
{
name "IEC958 Enable"
value 1
lock true
preserve true
}
{
interface PCM
name "IEC958 Playback PCM Stream"
lock true
preserve true
value [ $AES0 $AES1 $AES2 $AES3 ]
}
]
}
}

221
src/conf/cards/EMU10K1.conf Normal file
View file

@ -0,0 +1,221 @@
#
# Configuration for the EMU10K1 chip
#
<confdir:pcm/front.conf>
EMU10K1.pcm.front.0 {
@args [ CARD ]
@args.CARD {
type string
}
type hw
card $CARD
device 0
}
<confdir:pcm/rear.conf>
EMU10K1.pcm.rear.0 {
@args [ CARD ]
@args.CARD {
type string
}
type hooks
slave.pcm {
type hw
card $CARD
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{
name "Wave Surround Playback Volume"
preserve true
lock true
value [ 0 0 ]
}
{
name "EMU10K1 PCM Send Volume"
index { @func private_pcm_subdevice }
lock true
value [ 0 0 0 0 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 hooks
slave.pcm {
type hw
card $CARD
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{
name "Headphone Center Playback Switch"
preserve true
lock true
value true
}
{
name "Headphone LFE Playback Switch"
preserve true
lock true
value true
}
{
name "EMU10K1 PCM Send Volume"
index { @func private_pcm_subdevice }
lock true
value [ 0 0 0 0 255 0 0 0 0 255 0 0 ]
}
{
name "EMU10K1 PCM Send Routing"
index { @func private_pcm_subdevice }
lock true
value [ 0 1 2 3 6 7 0 1 6 7 0 1 ]
}
]
}
}
<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/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 DEV AES0 AES1 AES2 AES3 ]
@args.CARD {
type string
}
@args.DEV {
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 3
}
hooks.0 {
type ctl_elems
hook_args [
{
name "IEC958 Playback Default"
lock true
preserve true
value [ $AES0 $AES1 $AES2 $AES3 ]
}
{
name "IEC958 Optical Raw Playback Switch"
lock true
preserve true
value [ 1 1 ]
}
]
}
}

View file

@ -0,0 +1,84 @@
#
# 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
}
<confdir:pcm/rear.conf>
ENS1370.pcm.rear.0 {
@args [ CARD ]
@args.CARD {
type string
}
type hooks
slave.pcm {
type hw
card $CARD
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{
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 }
]
}

67
src/conf/cards/FM801.conf Normal file
View file

@ -0,0 +1,67 @@
#
# Configuration for the FM801 chip
#
<confdir:pcm/front.conf>
FM801.pcm.front.0 {
@args [ CARD ]
@args.CARD {
type string
}
type hw
card $CARD
device 0
}
<confdir:pcm/surround40.conf>
FM801.pcm.surround40.0 "cards.FM801.pcm.front.0"
<confdir:pcm/surround51.conf>
FM801.pcm.surround51.0 "cards.FM801.pcm.front.0"
<confdir:pcm/iec958.conf>
FM801.pcm.iec958.0 {
@args [ CARD DEV AES0 AES1 AES2 AES3 ]
@args.CARD {
type string
}
@args.DEV {
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 0
}
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
}
]
}
}

100
src/conf/cards/ICE1712.conf Normal file
View file

@ -0,0 +1,100 @@
#
# Configuration for the ICE1712 (Envy24) chip
#
<confdir:pcm/front.conf>
ICE1712.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
}
}
<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
}
}
<confdir:pcm/surround51.conf>
ICE1712.pcm.surround51.0 {
@args [ CARD ]
@args.CARD {
type string
}
type route
ttable.0.0 1
ttable.1.1 1
ttable.2.2 1
ttable.3.3 1
ttable.4.4 1
ttable.5.5 1
slave.pcm {
type hw
card $CARD
}
}
<confdir:pcm/iec958.conf>
ICE1712.pcm.iec958.0 {
@args [ CARD DEV AES0 AES1 AES2 AES3 ]
@args.CARD {
type string
}
@args.DEV {
type integer
}
@args.AES0 {
type integer
}
@args.AES1 {
type integer
}
@args.AES2 {
type integer
}
@args.AES3 {
type integer
}
type hooks
slave.pcm {
type plug
ttable.0.8 1
ttable.1.9 1
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,101 @@
#
# Configuration for the INTEL8X0 chip
#
<confdir:pcm/front.conf>
INTEL8X0.pcm.front.0 {
@args [ CARD ]
@args.CARD {
type string
}
type hw
card $CARD
device 0
}
<confdir:pcm/surround40.conf>
INTEL8X0.pcm.surround40.0 "cards.INTEL8X0.pcm.front.0"
<confdir:pcm/surround51.conf>
INTEL8X0.pcm.surround51.0 {
@args [ CARD ]
@args.CARD {
type string
}
type multi
slaves [
{
pcm {
@func concat
strings [
"cards.INTEL8X0.pcm.front.0:CARD=" $CARD
]
}
channels 6
}
]
bindings [
{ slave 0 channel 0 }
{ slave 0 channel 1 }
{ slave 2 channel 0 }
{ slave 2 channel 1 }
{ slave 1 channel 0 }
{ slave 1 channel 1 }
]
}
<confdir:pcm/iec958.conf>
INTEL8X0.pcm.iec958.0 {
@args [ CARD DEV AES0 AES1 AES2 AES3 ]
@args.CARD {
type string
}
@args.DEV {
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 0
}
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,6 @@
alsadir = $(datadir)/alsa/cards
cfg_files = SI_7018.conf EMU10K1.conf TRID4DWAVENX.conf ENS1370.conf \
INTEL8X0.conf YMFPCI.conf FM801.conf ICE1712.conf CMIPCI.conf
EXTRA_DIST = $(cfg_files)
alsa_DATA = $(cfg_files)

View file

@ -0,0 +1,77 @@
#
# Configuration for the SI7018 chip
#
<confdir:pcm/front.conf>
SI_7018.pcm.front.0 {
@args [ CARD ]
@args.CARD {
type string
}
type hw
card $CARD
device 0
}
<confdir:pcm/rear.conf>
SI_7018.pcm.rear.0 {
@args [ CARD ]
@args.CARD {
type string
}
type hooks
slave.pcm {
type hw
card $CARD
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{
name "PCM Playback Volume"
preserve true
lock true
value [ 24 24 ]
}
]
}
}
<confdir:pcm/surround40.conf>
SI_7018.pcm.surround40.0 {
@args [ CARD ]
@args.CARD {
type string
}
type multi
slaves [
{
pcm {
@func concat
strings [
"cards.SI_7018.pcm.front.0:CARD=" $CARD
]
}
channels 2
}
{
pcm {
@func concat
strings [
"cards.SI_7018.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,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
device 0
}
<confdir:pcm/rear.conf>
TRID4DWAVENX.pcm.rear.0 {
@args [ CARD ]
@args.CARD {
type string
}
type hooks
slave.pcm {
type hw
card $CARD
device 0
}
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
}
]
}
}

105
src/conf/cards/YMFPCI.conf Normal file
View file

@ -0,0 +1,105 @@
#
# Configuration for the YMFPCI chip
#
<confdir:pcm/front.conf>
YMFPCI.pcm.front.0 {
@args [ CARD ]
@args.CARD {
type string
}
type hw
card $CARD
device 0
}
<confdir:pcm/rear.conf>
YMFPCI.pcm.rear.0 {
@args [ CARD ]
@args.CARD {
type string
}
type hw
card $CARD
device 2
}
<confdir:pcm/surround40.conf>
YMFPCI.pcm.surround40.0 {
@args [ CARD ]
@args.CARD {
type string
}
type multi
slaves [
{
pcm {
@func concat
strings [
"cards.YMFPCI.pcm.front.0:CARD=" $CARD
]
}
channels 2
}
{
pcm {
@func concat
strings [
"cards.YMFPCI.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>
YMFPCI.pcm.iec958.0 {
@args [ CARD DEV AES0 AES1 AES2 AES3 ]
@args.CARD {
type string
}
@args.DEV {
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 1
}
hooks.0 {
type ctl_elems
hook_args [
{
interface PCM
name "IEC958 Playback PCM Stream"
lock true
preserve true
value [ $AES0 $AES1 $AES2 $AES3 ]
}
]
}
}