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@xxxxxxxxxx> --- src/mixer/simple_none.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/mixer/simple_none.c b/src/mixer/simple_none.c index 71d88486..9b9f0000 100644 --- a/src/mixer/simple_none.c +++ b/src/mixer/simple_none.c @@ -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. -- 2.31.1