summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2006-10-04 17:32:22 +0200
committerTakashi Iwai <tiwai@suse.de>2006-10-04 17:32:22 +0200
commit1827d9ccffc4a080a33b9bdc9fd21deb19aa055a (patch)
tree603b047a3132ce4ece630032b5c50cefcd9309ea
parent285d8599749e956f22ab0ad49ebd4eb56e70ddc5 (diff)
downloadalsa-lib-1827d9ccffc4a080a33b9bdc9fd21deb19aa055a.tar.gz
Fix snd_pcm_open_noupdate() to refer alias
Fixed snd_pcm_open_noupdate() to refer alias. This fixes the call like % aplay -Dplug:bah where bah is an alias of a certain definition.
-rw-r--r--src/pcm/pcm.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c
index 15125923..eaf1a19e 100644
--- a/src/pcm/pcm.c
+++ b/src/pcm/pcm.c
@@ -2138,13 +2138,20 @@ static int snd_pcm_open_noupdate(snd_pcm_t **pcmp, snd_config_t *root,
{
int err;
snd_config_t *pcm_conf;
+ const char *str;
+
err = snd_config_search_definition(root, "pcm", name, &pcm_conf);
if (err < 0) {
SNDERR("Unknown PCM %s", name);
return err;
}
- snd_config_set_hop(pcm_conf, hop);
- err = snd_pcm_open_conf(pcmp, name, root, pcm_conf, stream, mode);
+ if (snd_config_get_string(pcm_conf, &str) >= 0)
+ err = snd_pcm_open_noupdate(pcmp, root, str, stream, mode,
+ hop + 1);
+ else {
+ snd_config_set_hop(pcm_conf, hop);
+ err = snd_pcm_open_conf(pcmp, name, root, pcm_conf, stream, mode);
+ }
snd_config_delete(pcm_conf);
return err;
}