]> git.alsa-project.org Git - alsa-lib.git/commitdiff
mixer: simple - Fix "Capture Volume" and "Capture Switch" being seen as global controls
authorHans de Goede <hdegoede@redhat.com>
Tue, 4 May 2021 15:58:30 +0000 (17:58 +0200)
committerJaroslav Kysela <perex@perex.cz>
Tue, 4 May 2021 16:21:18 +0000 (18:21 +0200)
Fix the "Capture Volume" and "Capture Switch" exceptions no longer
working after commit 86b9c67774bc ("mixer: simple - Unify simple_none:
base_len() exception handling") because they were moved to after the
suffix checking, so they would be treated as CTL_GLOBAL_VOLUME resp.
CTL_GLOBAL_SWITCH based on their suffix before the exception check
has a chance to check for a match.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/mixer/simple_none.c

index 71d88486f19f9311b05d28e75f73173b41c57521..9b9f00005724d7092410d69f3cf1b335247f8f14 100644 (file)
@@ -913,6 +913,16 @@ static int base_len(const char *name, selem_ctl_type_t *type)
        const struct suf *p;
        size_t nlen = strlen(name);
 
+       /* exception: "Capture Volume" and "Capture Switch" */
+       if (!strcmp(name, "Capture Volume")) {
+               *type = CTL_CAPTURE_VOLUME;
+               return strlen("Capture");
+       }
+       if (!strcmp(name, "Capture Switch")) {
+               *type = CTL_CAPTURE_SWITCH;
+               return strlen("Capture");
+       }
+
        for (p = suffixes; p->suffix; p++) {
                size_t slen = strlen(p->suffix);
                size_t l;
@@ -926,16 +936,6 @@ static int base_len(const char *name, selem_ctl_type_t *type)
                }
        }
 
-       /* exception: "Capture Volume" and "Capture Switch" */
-       if (!strcmp(name, "Capture Volume")) {
-               *type = CTL_CAPTURE_VOLUME;
-               return strlen("Capture");
-       }
-       if (!strcmp(name, "Capture Switch")) {
-               *type = CTL_CAPTURE_SWITCH;
-               return strlen("Capture");
-       }
-
        /* Special case - handle "Input Source" as a capture route.
         * Note that it's *NO* capture source.  A capture source is split over
         * sub-elements, and multiple capture-sources will result in an error.