diff options
author | Takashi Iwai <tiwai@suse.de> | 2006-10-04 17:32:22 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2006-10-04 17:32:22 +0200 |
commit | 1827d9ccffc4a080a33b9bdc9fd21deb19aa055a (patch) | |
tree | 603b047a3132ce4ece630032b5c50cefcd9309ea | |
parent | 285d8599749e956f22ab0ad49ebd4eb56e70ddc5 (diff) | |
download | alsa-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.c | 11 |
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; } |