From 43455a9268a5de1936daaf76dcdb1ed9658ebeb9 Mon Sep 17 00:00:00 2001 From: Abramo Bagnara Date: Sat, 16 Jun 2001 09:40:20 +0000 Subject: [PATCH] Some fixes. Added conf for trident --- src/cards/Makefile.am | 2 +- src/cards/TRID4DWAVENX.conf | 40 +++++++++++++++++++++++++++++++++++++ src/conf.c | 11 +++++++++- src/control/setup.c | 1 + 4 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 src/cards/TRID4DWAVENX.conf diff --git a/src/cards/Makefile.am b/src/cards/Makefile.am index 76853b90..4d21c9e4 100644 --- a/src/cards/Makefile.am +++ b/src/cards/Makefile.am @@ -1,5 +1,5 @@ alsadir = $(datadir)/alsa/cards -cfg_files = SI_7018.conf EMU10K1.conf +cfg_files = SI_7018.conf EMU10K1.conf TRID4DWAVENX.conf EXTRA_DIST = $(cfg_files) alsa_DATA = $(cfg_files) diff --git a/src/cards/TRID4DWAVENX.conf b/src/cards/TRID4DWAVENX.conf new file mode 100644 index 00000000..f308a594 --- /dev/null +++ b/src/cards/TRID4DWAVENX.conf @@ -0,0 +1,40 @@ +pcm.iec958_0 { + @args [ CARD DEV AES0 AES1 AES2 AES3 ] + @args.CARD { + type integer + } + @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 2 + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback PCM Stream" + value [ $(AES0) $(AES1) $(AES2) $(AES3) ] + device 2 + lock true + preserve true + } + ] + } +} diff --git a/src/conf.c b/src/conf.c index f6252f3c..f37207dd 100644 --- a/src/conf.c +++ b/src/conf.c @@ -1864,8 +1864,17 @@ static int _snd_config_expand(snd_config_t *src, void snd_config_substitute(snd_config_t *dst, snd_config_t *src) { + if (src->type == SND_CONFIG_TYPE_COMPOUND) { + snd_config_iterator_t i, next; + snd_config_for_each(i, next, src) { + snd_config_t *n = snd_config_iterator_entry(i); + n->father = dst; + } + src->u.compound.fields.next->prev = &dst->u.compound.fields; + src->u.compound.fields.prev->next = &dst->u.compound.fields; + } free(dst->id); - dst->id = src->id; + dst->id = src->id; dst->type = src->type; dst->u = src->u; } diff --git a/src/control/setup.c b/src/control/setup.c index 220a7435..73acb135 100644 --- a/src/control/setup.c +++ b/src/control/setup.c @@ -460,6 +460,7 @@ static int add_elem(snd_sctl_t *h, snd_config_t *conf, free(tmp); goto _err; } + iface = err; free(tmp); continue; } -- 2.47.1