From d00d7a184c82f8e6da61407fda896b0483637adb Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Tue, 4 May 2021 17:58:30 +0200 Subject: [PATCH] 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 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 Signed-off-by: Jaroslav Kysela --- 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.47.1