diff options
author | Hans de Goede <hdegoede@redhat.com> | 2021-05-04 17:58:30 +0200 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2021-05-04 18:21:18 +0200 |
commit | d00d7a184c82f8e6da61407fda896b0483637adb (patch) | |
tree | 00d622493629c8c4413fcd9a7d5c24494f25437b | |
parent | 06543e06e913bafb4e2766c244f07be6a232ac4e (diff) | |
download | alsa-lib-d00d7a184c82f8e6da61407fda896b0483637adb.tar.gz |
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 <hdegoede@redhat.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-rw-r--r-- | src/mixer/simple_none.c | 20 |
1 files 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. |