mixer: simple - Fix "Capture Volume" and "Capture Switch" being seen as global controls

Fix the "Capture Volume" and "Capture Switch" exceptions no longer
working after commit 86b9c67774 ("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>
This commit is contained in:
Hans de Goede 2021-05-04 17:58:30 +02:00 committed by Jaroslav Kysela
parent 06543e06e9
commit d00d7a184c

View 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.