From: Hans de Goede Date: Tue, 4 May 2021 15:58:30 +0000 (+0200) Subject: mixer: simple - Fix "Capture Volume" and "Capture Switch" being seen as global controls X-Git-Tag: v1.2.5~33 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=d00d7a184c82f8e6da61407fda896b0483637adb;p=alsa-lib.git 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 --- 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.