interpellation).
default 0
}
}
- refer {
- file {
- @func concat
- strings [
- {
- @func datadir
- }
- "/cards/"
- {
- @func card_strtype
- card $CARD
- }
- ".conf"
- ]
- }
- name {
- @func concat
- strings [
- "pcm.front_" $DEV ":CARD=" $CARD
- ]
- }
+ @func refer
+ file {
+ @func concat
+ strings [
+ {
+ @func datadir
+ }
+ "/cards/"
+ {
+ @func card_strtype
+ card $CARD
+ }
+ ".conf"
+ ]
+ }
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_strtype
+ card $CARD
+ }
+ ".pcm.front." $DEV ":CARD=" $CARD
+ ]
}
}
default 0
}
}
- refer {
- file {
- @func concat
- strings [
- {
- @func datadir
- }
- "/cards/"
- {
- @func card_strtype
- card $CARD
- }
- ".conf"
- ]
- }
- name {
- @func concat
- strings [
- "pcm.rear_" $DEV ":CARD=" $CARD
- ]
- }
+ @func refer
+ file {
+ @func concat
+ strings [
+ {
+ @func datadir
+ }
+ "/cards/"
+ {
+ @func card_strtype
+ card $CARD
+ }
+ ".conf"
+ ]
+ }
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_strtype
+ card $CARD
+ }
+ ".pcm.rear." $DEV ":CARD=" $CARD
+ ]
}
}
default 0
}
}
- refer {
- file {
- @func concat
- strings [
- {
- @func datadir
- }
- "/cards/"
- {
- @func card_strtype
- card $CARD
- }
- ".conf"
- ]
- }
- name {
- @func concat
- strings [
- "pcm.center_lfe_" $DEV ":CARD=" $CARD
- ]
- }
+ @func refer
+ file {
+ @func concat
+ strings [
+ {
+ @func datadir
+ }
+ "/cards/"
+ {
+ @func card_strtype
+ card $CARD
+ }
+ ".conf"
+ ]
+ }
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_strtype
+ card $CARD
+ }
+ ".pcm.center_lfe." $DEV ":CARD=" $CARD
+ ]
}
}
default 0
}
}
- refer {
- file {
- @func concat
- strings [
- {
- @func datadir
- }
- "/cards/"
- {
- @func card_strtype
- card $CARD
- }
- ".conf"
- ]
- }
- name {
- @func concat
- strings [
- "pcm.surround40_" $DEV ":CARD=" $CARD
- ]
- }
+ @func refer
+ file {
+ @func concat
+ strings [
+ {
+ @func datadir
+ }
+ "/cards/"
+ {
+ @func card_strtype
+ card $CARD
+ }
+ ".conf"
+ ]
+ }
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_strtype
+ card $CARD
+ }
+ ".pcm.surround40." $DEV ":CARD=" $CARD
+ ]
}
}
default 0
}
}
- refer {
- file {
- @func concat
- strings [
- {
- @func datadir
- }
- "/cards/"
- {
- @func card_strtype
- card $CARD
- }
- ".conf"
- ]
- }
- name {
- @func concat
- strings [
- "pcm.surround51_" $DEV ":CARD=" $CARD
- ]
- }
+ @func refer
+ file {
+ @func concat
+ strings [
+ {
+ @func datadir
+ }
+ "/cards/"
+ {
+ @func card_strtype
+ card $CARD
+ }
+ ".conf"
+ ]
+ }
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_strtype
+ card $CARD
+ }
+ ".pcm.surround51." $DEV ":CARD=" $CARD
+ ]
}
}
# fs=48000Hz, clock accuracy=1000ppm
default 0x02
}
- refer {
- file {
- @func concat
- strings [
- {
- @func datadir
- }
- "/cards/"
- {
- @func card_strtype
- card $CARD
- }
- ".conf"
- ]
- }
- name {
- @func concat
- strings [
- "pcm.iec958_" $DEV ":"
- "CARD=" $CARD ","
- "AES0=" $AES0 ","
- "AES1=" $AES1 ","
- "AES2=" $AES2 ","
- "AES3=" $AES3
- ]
- }
+ @func refer
+ file {
+ @func concat
+ strings [
+ {
+ @func datadir
+ }
+ "/cards/"
+ {
+ @func card_strtype
+ card $CARD
+ }
+ ".conf"
+ ]
+ }
+ name {
+ @func concat
+ strings [
+ "cards."
+ {
+ @func card_strtype
+ card $CARD
+ }
+ ".pcm.iec958." $DEV ":"
+ "CARD=" $CARD ","
+ "AES0=" $AES0 ","
+ "AES1=" $AES1 ","
+ "AES2=" $AES2 ","
+ "AES3=" $AES3
+ ]
}
}
# Configuration for the EMU10K1 chip
#
-pcm.emu10k1_front {
- @args [ CARD DEV SUBDEV ]
+cards.EMU10K1.pcm.front.0 {
+ @args [ CARD ]
@args.CARD {
type integer
}
- @args.DEV {
- type integer
- }
- @args.SUBDEV {
- type integer
- default -1
- }
type hw
card $CARD
- device $DEV
- subdevice $SUBDEV
+ device 0
}
-pcm.front_0 {
+cards.EMU10K1.pcm.rear.0 {
@args [ CARD ]
@args.CARD {
type integer
}
- @func refer
- name {
- @func concat
- strings [ "pcm.emu10k1_front:" $CARD ",0,-1" ]
- }
-}
-
-pcm.emu10k1_rear {
- @args [ CARD DEV SUBDEV ]
- @args.CARD {
- type integer
- }
- @args.DEV {
- type integer
- }
- @args.SUBDEV {
- type integer
- default -1
- }
type hooks
slave.pcm {
- @func concat
- strings [
- "pcm.emu10k1_front:" $CARD "," $DEV "," $SUBDEV
- ]
+ type hw
+ card $CARD
+ device 0
}
hooks.0 {
type ctl_elems
}
}
-pcm.rear_0 {
+cards.EMU10K1.pcm.center_lfe {
@args [ CARD ]
- @args.CARD {
- type integer
- }
- @func refer
- name {
- @func concat
- strings [ "pcm.emu10k1_rear:" $CARD ",0,-1" ]
- }
-}
-
-pcm.emu10k1_center_lfe {
- @args [ CARD DEV SUBDEV ]
- @args.CARD {
- type integer
- }
- @args.DEV {
- type integer
- }
- @args.SUBDEV {
- type integer
- default -1
- }
type hooks
slave.pcm {
- @func concat
- strings [
- "pcm.emu10k1_front:" $CARD "," $DEV "," $SUBDEV
- ]
+ type hw
+ card $CARD
+ device 0
}
hooks.0 {
type ctl_elems
}
}
-pcm.center_lfe_0 {
- @args [ CARD ]
- @args.CARD {
- type integer
- }
- @func refer
- name {
- @func concat
- strings [ "pcm.emu10k1_center_lfe:" $CARD ",0,-1" ]
- }
-}
-
-pcm.surround40_0 {
+cards.EMU10K1.pcm.surround40.0 {
@args [ CARD ]
@args.CARD {
type integer
pcm {
@func concat
strings [
- "pcm.emu10k1_front:" $CARD ",0,-1"
+ "cards.EMU10K1.pcm.front.0:CARD=" $CARD
]
}
channels 2
pcm {
@func concat
strings [
- "pcm.emu10k1_rear:" $CARD ",0,-1"
+ "cards.EMU10K1.pcm.rear.0:CARD=" $CARD
]
}
channels 2
]
}
-pcm.surround51_0 {
+cards.EMU10K1.pcm.surround51.0 {
@args [ CARD ]
@args.CARD {
type integer
pcm {
@func concat
strings [
- "pcm.emu10k1_front:" $CARD ",0,-1"
+ "cards.EMU10K1.pcm.front.0:CARD=" $CARD
]
}
channels 2
pcm {
@func concat
strings [
- "pcm.emu10k1_rear:" $CARD ",0,-1"
+ "cards.EMU10K1.pcm.rear.0:CARD=" $CARD
]
}
channels 2
pcm {
@func concat
strings [
- "pcm.emu10k1_center_lfe:" $CARD ",0,-1"
+ "cards.EMU10K1.pcm.center_lfe.0:CARD=" $CARD
]
}
channels 2
]
}
-pcm.iec958_0 {
+cards.EMU10K1.pcm.iec958.0 {
@args [ CARD DEV AES0 AES1 AES2 AES3 ]
@args.CARD {
type integer
}
type hooks
slave.pcm {
- @func concat
- strings [
- "hw:"
- "CARD=" $CARD ","
- "DEV=3,"
- "SUBDEV=0"
- ]
+ type hw
+ card $CARD
+ device 3
}
hooks.0 {
type ctl_elems
# Configuration for the ENS1370 chip
#
-pcm.ens1370_front {
- @args [ CARD DEV SUBDEV ]
+cards.ENS1370.pcm.front.0 {
+ @args [ CARD ]
@args.CARD {
type integer
}
- @args.DEV {
- type integer
- }
- @args.SUBDEV {
- type integer
- default -1
- }
type hw
card $CARD
- device $DEV
- subdevice $SUBDEV
+ device 1
}
-pcm.front_0 {
+cards.ENS1370.pcm.rear.0 {
@args [ CARD ]
@args.CARD {
type integer
}
- @func refer
- name {
- @func concat
- strings [ "pcm.ens1370_front:" $CARD ",0,-1" ]
- }
-}
-
-pcm.ens1370_rear {
- @args [ CARD DEV SUBDEV ]
- @args.CARD {
- type integer
- }
- @args.DEV {
- type integer
- }
- @args.SUBDEV {
- type integer
- default -1
- }
type hooks
slave.pcm {
- @func concat
- strings [
- "pcm.ens1370_front:" $CARD "," $DEV "," $SUBDEV
- ]
+ type hw
+ card $CARD
+ device 0
}
hooks.0 {
type ctl_elems
}
}
-pcm.rear_0 {
- @args [ CARD ]
- @args.CARD {
- type integer
- }
- @func refer
- name {
- @func concat
- strings [ "pcm.ens1370_rear:" $CARD ",0,-1" ]
- }
-}
-
-pcm.surround40_0 {
+cards.ENS1370.pcm.surround40.0 {
@args [ CARD ]
@args.CARD {
type integer
pcm {
@func concat
strings [
- "pcm.ens1370_front:" $CARD ",0,-1"
+ "cards.ENS1370.pcm.front.0:CARD=" $CARD
]
}
channels 2
pcm {
@func concat
strings [
- "pcm.ens1370_rear:" $CARD ",0,-1"
+ "cards.ENS1370.pcm.rear.0:CARD=" $CARD
]
}
channels 2
# Configuration for the FM801 chip
#
-pcm.fm801_front {
- @args [ CARD DEV SUBDEV ]
- @args.CARD {
- type integer
- }
- @args.DEV {
- type integer
- }
- @args.SUBDEV {
- type integer
- default -1
- }
- type hw
- card $CARD
- device $DEV
- subdevice $SUBDEV
-}
-
-pcm.front_0 {
- @args [ CARD ]
- @args.CARD {
- type integer
- }
- @func refer
- name {
- @func concat
- strings [ "pcm.fm801_front:" $CARD ",0,-1" ]
- }
-}
-
-pcm.surround40_0 {
+cards.FM801.front.0 {
@args [ CARD ]
@args.CARD {
type integer
type hw
card $CARD
device 0
- subdevice 0
-}
+}
-pcm.surround51_0 {
- @args [ CARD ]
- @args.CARD {
- type integer
- }
- type hw
- card $CARD
- device 0
- subdevice 0
-}
+cards.FM801.surround40.0 "cards.FM801.front.0"
+cards.FM801.surround51.0 "cards.FM801.front.0"
-pcm.iec958_0 {
+cards.FM801.iec958.0 {
@args [ CARD DEV AES0 AES1 AES2 AES3 ]
@args.CARD {
type integer
}
type hooks
slave.pcm {
- @func concat
- strings [
- "hw:"
- "CARD=" $CARD ","
- "DEV=0,"
- "SUBDEV=0"
- ]
+ type hw
+ card $CARD
+ device 0
}
hooks.0 {
type ctl_elems
# Configuration for the INTEL8X0 chip
#
-pcm.intel8x0_front {
- @args [ CARD DEV SUBDEV ]
+cards.INTEL8X0.pcm.front.0 {
+ @args [ CARD ]
@args.CARD {
type integer
}
- @args.DEV {
- type integer
- }
- @args.SUBDEV {
- type integer
- default -1
- }
type hw
card $CARD
- device $DEV
- subdevice $SUBDEV
+ device 0
}
-pcm.front_0 {
- @args [ CARD ]
- @args.CARD {
- type integer
- }
- @func refer
- name {
- @func concat
- strings [ "pcm.intel8x0_front:" $CARD ",0,-1" ]
- }
-}
-
-pcm.surround40_0 {
+cards.INTEL8X0.pcm.surround40.0 {
@args [ CARD ]
@args.CARD {
type integer
pcm {
@func concat
strings [
- "pcm.intel8x0_front:" $CARD ",0,-1"
+ "cards.INTEL8X0.pcm.front.0:CARD=" $CARD
]
}
channels 4
]
}
-pcm.surround51_0 {
+cards.INTEL8X0.pcm.surround51.0 {
@args [ CARD ]
@args.CARD {
type integer
pcm {
@func concat
strings [
- "pcm.intel8x0_front:" $CARD ",0,-1"
+ "cards.INTEL8X0.pcm.front.0:CARD=" $CARD
]
}
channels 2
]
}
-pcm.iec958_0 {
+cards.INTEL8X0.pcm.iec958.0 {
@args [ CARD DEV AES0 AES1 AES2 AES3 ]
@args.CARD {
type integer
}
type hooks
slave.pcm {
- @func concat
- strings [
- "hw:"
- "CARD=" $CARD ","
- "DEV=0,"
- "SUBDEV=0"
- ]
+ type hw
+ card $CARD
+ device 0
}
hooks.0 {
type ctl_elems
# Configuration for the SI7018 chip
#
-pcm.si7018_front {
- @args [ CARD DEV SUBDEV ]
+cards.SI_7018.pcm.front.0 {
+ @args [ CARD ]
@args.CARD {
type integer
}
- @args.DEV {
- type integer
- }
- @args.SUBDEV {
- type integer
- default -1
- }
type hw
card $CARD
- device $DEV
- subdevice $SUBDEV
+ device 0
}
-pcm.front_0 {
+cards.SI_7018.pcm.rear.0 {
@args [ CARD ]
@args.CARD {
type integer
}
- @func refer
- name {
- @func concat
- strings [ "pcm.si7018_front:" $CARD ",0,-1" ]
- }
-}
-
-pcm.si7018_rear {
- @args [ CARD DEV SUBDEV ]
- @args.CARD {
- type integer
- }
- @args.DEV {
- type integer
- }
- @args.SUBDEV {
- type integer
- default -1
- }
type hooks
slave.pcm {
- @func concat
- strings [
- "pcm.si7018_front:" $CARD "," $DEV "," $SUBDEV
- ]
+ type hw
+ card $CARD
+ device 0
}
hooks.0 {
type ctl_elems
}
}
-pcm.rear_0 {
- @args [ CARD ]
- @args.CARD {
- type integer
- }
- @func refer
- name {
- @func concat
- strings [ "pcm.si7018_rear:" $CARD ",0,-1" ]
- }
-}
-
-pcm.surround40_0 {
+cards.SI_7018.pcm.surround40.0 {
@args [ CARD ]
@args.CARD {
type integer
pcm {
@func concat
strings [
- "pcm.si7018_front:" $CARD ",0,-1"
+ "cards.SI_7018.pcm.front.0:CARD=" $CARD
]
}
channels 2
pcm {
@func concat
strings [
- "pcm.si7018_rear:" $CARD ",0,-1"
+ "cards.SI_7018.pcm.rear.0:CARD=" $CARD
]
}
channels 2
# Configuration for the Trident 4D-Wave NX chip
#
-pcm.trid4dwavenx_front {
- @args [ CARD DEV SUBDEV ]
+cards.TRID4DWAVENX.pcm.front.0 {
+ @args [ CARD ]
@args.CARD {
type integer
}
- @args.DEV {
- type integer
- }
- @args.SUBDEV {
- type integer
- default -1
- }
type hw
card $CARD
- device $DEV
- subdevice $SUBDEV
+ device 0
}
-pcm.front_0 {
+cards.TRID4DWAVENX.pcm.rear.0 {
@args [ CARD ]
@args.CARD {
type integer
}
- @func refer
- name {
- @func concat
- strings [ "pcm.trid4dwavenx_front:" $CARD ",0,-1" ]
- }
-}
-
-pcm.trid4dwavenx_rear {
- @args [ CARD DEV SUBDEV ]
- @args.CARD {
- type integer
- }
- @args.DEV {
- type integer
- }
- @args.SUBDEV {
- type integer
- default -1
- }
type hooks
slave.pcm {
- @func concat
- strings [
- "pcm.trid4dwavenx_front:CARD=" $CARD ",DEV=" $DEV ",SUBDEV=" $SUBDEV
- ]
+ type hw
+ card $CARD
+ device 0
}
hooks.0 {
type ctl_elems
hook_args [
{
name "Rear Path"
- index { @func private_pcm_subdevice }
lock true
preserve true
value true
index { @func private_pcm_subdevice }
lock true
preserve true
- value [ 0 0 ]
+ value 0
}
{
name "PCM Reverb Playback Volume"
index { @func private_pcm_subdevice }
lock true
preserve true
- value [ 127 127 ]
+ value 127
}
]
}
}
-pcm.rear_0 {
- @args [ CARD ]
- @args.CARD {
- type integer
- }
- @func refer
- name {
- @func concat
- strings [ "pcm.trid4dwavenx_rear:" $CARD ]
- }
-}
-
-pcm.surround40_0 {
+cards.TRID4DWAVENX.pcm.surround40.0 {
@args [ CARD ]
@args.CARD {
type integer
pcm {
@func concat
strings [
- "pcm.trid4dwavenx_front:" $CARD ",0,-1"
+ "cards.TRID4DWAVENX.pcm.front.0:CARD=" $CARD
]
}
channels 2
pcm {
@func concat
strings [
- "pcm.trid4dwavenx_rear:" $CARD ",0,-1"
+ "cards.TRID4DWAVENX.pcm.rear.0:CARD=" $CARD
]
}
channels 2
]
}
-pcm.iec958_0 {
- @args [ CARD DEV AES0 AES1 AES2 AES3 ]
+cards.TRID4DWAVENX.pcm.iec958.0 {
+ @args [ CARD AES0 AES1 AES2 AES3 ]
@args.CARD {
type integer
}
- @args.DEV {
- type integer
- }
@args.AES0 {
type integer
}
# Configuration for the YMFPCI chip
#
-pcm.ymfpci_front {
- @args [ CARD DEV SUBDEV ]
+cards.YMFPCI.front.0 {
+ @args [ CARD ]
@args.CARD {
type integer
}
- @args.DEV {
- type integer
- }
- @args.SUBDEV {
- type integer
- default -1
- }
type hw
card $CARD
- device $DEV
- subdevice $SUBDEV
+ device 0
}
-pcm.front_0 {
- @args [ CARD ]
- @args.CARD {
- type integer
- }
- @func refer
- name {
- @func concat
- strings [ "pcm.ymfpci_front:" $CARD ",0,-1" ]
- }
-}
-
-pcm.ymfpci_rear {
+cards.YMFPCI.rear.0 {
@args [ CARD ]
@args.CARD {
type integer
type hw
card $CARD
device 2
- subdevice 0
}
-pcm.rear_0 {
- @args [ CARD ]
- @args.CARD {
- type integer
- }
- @func refer
- name {
- @func concat
- strings [ "pcm.ymfpci_rear:" $CARD ]
- }
-}
-
-pcm.surround40_0 {
+cards.YMFPCI.surround40.0 {
@args [ CARD ]
@args.CARD {
type integer
pcm {
@func concat
strings [
- "pcm.ymfpci_front:" $CARD ",0,-1"
+ "cards.YMFPCI.front.0:CARD=" $CARD
]
}
channels 2
pcm {
@func concat
strings [
- "pcm.ymfpci_rear:" $CARD
+ "cards.YMFPCI.rear.0:CARD=" $CARD
]
}
channels 2
]
}
-pcm.iec958_0 {
+cards.YMFPCI.iec958.0 {
@args [ CARD DEV AES0 AES1 AES2 AES3 ]
@args.CARD {
type integer
}
type hooks
slave.pcm {
- @func concat
- strings [
- "hw:"
- "CARD=" $CARD ","
- "DEV=1,"
- "SUBDEV=0"
- ]
+ type hw
+ card $CARD
+ device 1
}
hooks.0 {
type ctl_elems
return err;
}
-int snd_func_refer(snd_config_t **dst, snd_config_t *_root, snd_config_t *src, void *private_data)
+int snd_func_refer(snd_config_t **dst, snd_config_t *root, snd_config_t *src, void *private_data)
{
snd_config_t *n;
- snd_config_t *root;
const char *file = NULL, *name = NULL;
int err;
err = snd_config_search(src, "file", &n);
if (err >= 0) {
- err = snd_config_evaluate(n, _root, private_data, NULL);
+ err = snd_config_evaluate(n, root, private_data, NULL);
if (err < 0) {
SNDERR("error evaluating file");
goto _end;
}
err = snd_config_search(src, "name", &n);
if (err >= 0) {
- err = snd_config_evaluate(n, _root, private_data, NULL);
+ err = snd_config_evaluate(n, root, private_data, NULL);
if (err < 0) {
SNDERR("error evaluating name");
goto _end;
goto _end;
}
}
- if (!file && !name) {
+ if (!name) {
err = -EINVAL;
- SNDERR("neither file or name are specified");
+ SNDERR("name is not specified");
goto _end;
}
- if (!file)
- root = _root;
- else {
+ if (file) {
snd_input_t *input;
- err = snd_config_top(&root);
- if (err < 0)
- goto _end;
err = snd_input_stdio_open(&input, file, "r");
if (err < 0) {
SNDERR("Unable to open file %s: %s", file, snd_strerror(err));
goto _end;
}
}
- if (!name) {
- if (root == _root)
- err = snd_config_copy(dst, root);
- else {
- *dst = root;
- err = 0;
- }
- } else
- err = snd_config_search_definition(root, NULL, name, dst);
+ err = snd_config_search_definition(root, NULL, name, dst);
if (err >= 0)
err = snd_config_set_id(*dst, snd_config_get_id(src));
+ else
+ SNDERR("Unable to find definition '%s'", name);
_end:
- if (root && root != _root)
- snd_config_delete(root);
return err;
}