]> code.delx.au - pulseaudio/commitdiff
alsa-mixer: Don't remove paths if jacks state.(un)plugged differ
authorDavid Henningsson <david.henningsson@canonical.com>
Mon, 12 Mar 2012 10:32:43 +0000 (11:32 +0100)
committerColin Guthrie <colin@mageia.org>
Mon, 12 Mar 2012 10:49:50 +0000 (10:49 +0000)
If the jack state differs, they are not the same path, so don't
remove them.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
src/modules/alsa/alsa-mixer.c

index 59a9ac9fedda89be081737f9bc4290a4da414d39..102ec8249d39c45fc67b741c8252678116e654e8 100644 (file)
@@ -3183,7 +3183,9 @@ static void path_set_condense(pa_alsa_path_set *ps, snd_mixer_t *m) {
                     continue;
 
                 PA_LLIST_FOREACH(jb, p2->jacks) {
-                    if (jb->has_control && !strcmp(jb->alsa_name, ja->alsa_name)) {
+                    if (jb->has_control && !strcmp(jb->alsa_name, ja->alsa_name) &&
+                       (ja->state_plugged == jb->state_plugged) &&
+                       (ja->state_unplugged == jb->state_unplugged)) {
                         exists = TRUE;
                         break;
                     }