@@ -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.
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> --- src/mixer/simple_none.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-)