From 455edb9e21a6e2b85d441af5e24c17e0c4dd62cd Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Tue, 19 Jun 2001 10:36:31 +0000 Subject: [PATCH] Ok, back to use '@func refer' inside alsa.conf (following Abramo's interpellation). --- src/alsa.conf | 286 +++++++++++++++++++----------------- src/cards/EMU10K1.conf | 111 +++----------- src/cards/ENS1370.conf | 60 ++------ src/cards/FM801.conf | 59 +------- src/cards/INTEL8X0.conf | 46 ++---- src/cards/SI_7018.conf | 60 ++------ src/cards/TRID4DWAVENX.conf | 72 ++------- src/cards/YMFPCI.conf | 59 ++------ src/confmisc.c | 32 ++-- 9 files changed, 250 insertions(+), 535 deletions(-) diff --git a/src/alsa.conf b/src/alsa.conf index 14bbc978..49144a8d 100644 --- a/src/alsa.conf +++ b/src/alsa.conf @@ -190,27 +190,31 @@ pcm.front { 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 + ] } } @@ -238,27 +242,31 @@ pcm.rear { 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 + ] } } @@ -286,27 +294,31 @@ pcm.center_lfe { 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 + ] } } @@ -334,27 +346,31 @@ pcm.surround40 { 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 + ] } } @@ -382,27 +398,31 @@ pcm.surround51 { 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 + ] } } @@ -450,32 +470,36 @@ pcm.iec958 { # 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 + ] } } diff --git a/src/cards/EMU10K1.conf b/src/cards/EMU10K1.conf index df74bd51..d8b3d909 100644 --- a/src/cards/EMU10K1.conf +++ b/src/cards/EMU10K1.conf @@ -2,54 +2,26 @@ # 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 @@ -70,36 +42,13 @@ pcm.emu10k1_rear { } } -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 @@ -132,19 +81,7 @@ pcm.emu10k1_center_lfe { } } -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 @@ -155,7 +92,7 @@ pcm.surround40_0 { pcm { @func concat strings [ - "pcm.emu10k1_front:" $CARD ",0,-1" + "cards.EMU10K1.pcm.front.0:CARD=" $CARD ] } channels 2 @@ -164,7 +101,7 @@ pcm.surround40_0 { pcm { @func concat strings [ - "pcm.emu10k1_rear:" $CARD ",0,-1" + "cards.EMU10K1.pcm.rear.0:CARD=" $CARD ] } channels 2 @@ -178,7 +115,7 @@ pcm.surround40_0 { ] } -pcm.surround51_0 { +cards.EMU10K1.pcm.surround51.0 { @args [ CARD ] @args.CARD { type integer @@ -189,7 +126,7 @@ pcm.surround51_0 { pcm { @func concat strings [ - "pcm.emu10k1_front:" $CARD ",0,-1" + "cards.EMU10K1.pcm.front.0:CARD=" $CARD ] } channels 2 @@ -198,7 +135,7 @@ pcm.surround51_0 { pcm { @func concat strings [ - "pcm.emu10k1_rear:" $CARD ",0,-1" + "cards.EMU10K1.pcm.rear.0:CARD=" $CARD ] } channels 2 @@ -207,7 +144,7 @@ pcm.surround51_0 { pcm { @func concat strings [ - "pcm.emu10k1_center_lfe:" $CARD ",0,-1" + "cards.EMU10K1.pcm.center_lfe.0:CARD=" $CARD ] } channels 2 @@ -223,7 +160,7 @@ pcm.surround51_0 { ] } -pcm.iec958_0 { +cards.EMU10K1.pcm.iec958.0 { @args [ CARD DEV AES0 AES1 AES2 AES3 ] @args.CARD { type integer @@ -245,13 +182,9 @@ pcm.iec958_0 { } 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 diff --git a/src/cards/ENS1370.conf b/src/cards/ENS1370.conf index 69fc304b..b80d969a 100644 --- a/src/cards/ENS1370.conf +++ b/src/cards/ENS1370.conf @@ -2,54 +2,26 @@ # 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 @@ -70,19 +42,7 @@ pcm.ens1370_rear { } } -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 @@ -94,7 +54,7 @@ pcm.surround40_0 { pcm { @func concat strings [ - "pcm.ens1370_front:" $CARD ",0,-1" + "cards.ENS1370.pcm.front.0:CARD=" $CARD ] } channels 2 @@ -103,7 +63,7 @@ pcm.surround40_0 { pcm { @func concat strings [ - "pcm.ens1370_rear:" $CARD ",0,-1" + "cards.ENS1370.pcm.rear.0:CARD=" $CARD ] } channels 2 diff --git a/src/cards/FM801.conf b/src/cards/FM801.conf index e75ce891..ecd5b869 100644 --- a/src/cards/FM801.conf +++ b/src/cards/FM801.conf @@ -2,37 +2,7 @@ # 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 @@ -40,21 +10,12 @@ pcm.surround40_0 { 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 @@ -76,13 +37,9 @@ pcm.iec958_0 { } 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 diff --git a/src/cards/INTEL8X0.conf b/src/cards/INTEL8X0.conf index bf064d3d..c9a956a0 100644 --- a/src/cards/INTEL8X0.conf +++ b/src/cards/INTEL8X0.conf @@ -2,37 +2,17 @@ # 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 @@ -43,7 +23,7 @@ pcm.surround40_0 { pcm { @func concat strings [ - "pcm.intel8x0_front:" $CARD ",0,-1" + "cards.INTEL8X0.pcm.front.0:CARD=" $CARD ] } channels 4 @@ -57,7 +37,7 @@ pcm.surround40_0 { ] } -pcm.surround51_0 { +cards.INTEL8X0.pcm.surround51.0 { @args [ CARD ] @args.CARD { type integer @@ -68,7 +48,7 @@ pcm.surround51_0 { pcm { @func concat strings [ - "pcm.intel8x0_front:" $CARD ",0,-1" + "cards.INTEL8X0.pcm.front.0:CARD=" $CARD ] } channels 2 @@ -84,7 +64,7 @@ pcm.surround51_0 { ] } -pcm.iec958_0 { +cards.INTEL8X0.pcm.iec958.0 { @args [ CARD DEV AES0 AES1 AES2 AES3 ] @args.CARD { type integer @@ -106,13 +86,9 @@ pcm.iec958_0 { } 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 diff --git a/src/cards/SI_7018.conf b/src/cards/SI_7018.conf index 4782753f..1193c6cb 100644 --- a/src/cards/SI_7018.conf +++ b/src/cards/SI_7018.conf @@ -2,54 +2,26 @@ # 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 @@ -64,19 +36,7 @@ pcm.si7018_rear { } } -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 @@ -87,7 +47,7 @@ pcm.surround40_0 { pcm { @func concat strings [ - "pcm.si7018_front:" $CARD ",0,-1" + "cards.SI_7018.pcm.front.0:CARD=" $CARD ] } channels 2 @@ -96,7 +56,7 @@ pcm.surround40_0 { pcm { @func concat strings [ - "pcm.si7018_rear:" $CARD ",0,-1" + "cards.SI_7018.pcm.rear.0:CARD=" $CARD ] } channels 2 diff --git a/src/cards/TRID4DWAVENX.conf b/src/cards/TRID4DWAVENX.conf index 20a4b42a..d3ba927b 100644 --- a/src/cards/TRID4DWAVENX.conf +++ b/src/cards/TRID4DWAVENX.conf @@ -2,61 +2,32 @@ # 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 @@ -66,32 +37,20 @@ pcm.trid4dwavenx_rear { 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 @@ -102,7 +61,7 @@ pcm.surround40_0 { pcm { @func concat strings [ - "pcm.trid4dwavenx_front:" $CARD ",0,-1" + "cards.TRID4DWAVENX.pcm.front.0:CARD=" $CARD ] } channels 2 @@ -111,7 +70,7 @@ pcm.surround40_0 { pcm { @func concat strings [ - "pcm.trid4dwavenx_rear:" $CARD ",0,-1" + "cards.TRID4DWAVENX.pcm.rear.0:CARD=" $CARD ] } channels 2 @@ -125,14 +84,11 @@ pcm.surround40_0 { ] } -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 } diff --git a/src/cards/YMFPCI.conf b/src/cards/YMFPCI.conf index 4bb2b0ac..b5479182 100644 --- a/src/cards/YMFPCI.conf +++ b/src/cards/YMFPCI.conf @@ -2,37 +2,17 @@ # 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 @@ -40,22 +20,9 @@ pcm.ymfpci_rear { 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 @@ -66,7 +33,7 @@ pcm.surround40_0 { pcm { @func concat strings [ - "pcm.ymfpci_front:" $CARD ",0,-1" + "cards.YMFPCI.front.0:CARD=" $CARD ] } channels 2 @@ -75,7 +42,7 @@ pcm.surround40_0 { pcm { @func concat strings [ - "pcm.ymfpci_rear:" $CARD + "cards.YMFPCI.rear.0:CARD=" $CARD ] } channels 2 @@ -89,7 +56,7 @@ pcm.surround40_0 { ] } -pcm.iec958_0 { +cards.YMFPCI.iec958.0 { @args [ CARD DEV AES0 AES1 AES2 AES3 ] @args.CARD { type integer @@ -111,13 +78,9 @@ pcm.iec958_0 { } 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 diff --git a/src/confmisc.c b/src/confmisc.c index 63d44b01..3f86a8bc 100644 --- a/src/confmisc.c +++ b/src/confmisc.c @@ -624,16 +624,15 @@ int snd_func_private_pcm_subdevice(snd_config_t **dst, snd_config_t *root ATTRIB 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; @@ -646,7 +645,7 @@ int snd_func_refer(snd_config_t **dst, snd_config_t *_root, snd_config_t *src, v } 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; @@ -657,18 +656,13 @@ int snd_func_refer(snd_config_t **dst, snd_config_t *_root, snd_config_t *src, v 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)); @@ -680,19 +674,11 @@ int snd_func_refer(snd_config_t **dst, snd_config_t *_root, snd_config_t *src, v 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; } -- 2.47.1