From: Tanu Kaskinen Date: Fri, 25 Feb 2011 14:27:27 +0000 (+0200) Subject: alsa-mixer: Fix path set building when using the element-output or element-input... X-Git-Tag: submit/2.0-panda/20130828.192557~827 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=46359043c45df4a89cd73eb0c4ca655c6b90f6d2;p=profile%2Fivi%2Fpulseaudio-panda.git alsa-mixer: Fix path set building when using the element-output or element-input mapping options in profile set configuration. When creating synthesized paths, pa_alsa_path_set_new() created duplicate elements for each path, and one of the duplicate elements would be marked as required absent. That made path probing fail. While debugging this, I noticed also that pa_alsa_path_synthesize() didn't initialize p->last_element properly. --- diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c index 946cbe2..7d811a8 100644 --- a/src/modules/alsa/alsa-mixer.c +++ b/src/modules/alsa/alsa-mixer.c @@ -1992,6 +1992,7 @@ pa_alsa_path* pa_alsa_path_synthesize(const char*element, pa_alsa_direction_t di e->volume_use = PA_ALSA_VOLUME_MERGE; PA_LLIST_PREPEND(pa_alsa_element, p->elements, e); + p->last_element = e; return p; } @@ -2390,6 +2391,10 @@ pa_alsa_path_set *pa_alsa_path_set_new(pa_alsa_mapping *m, pa_alsa_direction_t d /* Mark all other passed elements for require-absent */ for (je = en; *je; je++) { pa_alsa_element *e; + + if (je == ie) + continue; + e = pa_xnew0(pa_alsa_element, 1); e->path = p; e->alsa_name = pa_xstrdup(*je);