summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2021-05-04 17:58:30 +0200
committerJaroslav Kysela <perex@perex.cz>2021-05-04 18:21:18 +0200
commitd00d7a184c82f8e6da61407fda896b0483637adb (patch)
tree00d622493629c8c4413fcd9a7d5c24494f25437b
parent06543e06e913bafb4e2766c244f07be6a232ac4e (diff)
downloadalsa-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.c20
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.