]> git.alsa-project.org Git - alsa-lib.git/commitdiff
mixer: simple: Support dB TLVs for CTL_SINGLE controls
authorHector Martin <marcan@marcan.st>
Sat, 28 Oct 2023 12:33:29 +0000 (21:33 +0900)
committerJaroslav Kysela <perex@perex.cz>
Tue, 7 Nov 2023 09:30:46 +0000 (10:30 +0100)
dB mappings do not work for controls not named "* Volume", since we do not
fall back to CTL_SINGLE in get_selem_ctl. Add that branch to make it
work.

Fixes dB ranges for e.g. controls named "* Gain".

Closes: https://github.com/alsa-project/alsa-lib/pull/358
Signed-off-by: Hector Martin <marcan@marcan.st>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/mixer/simple_none.c

index 846b0ca92467eac8f33b7e76757ca52002c60095..dd03fcf13d01d432509a3813f801c0d958d6f062 100644 (file)
@@ -1155,11 +1155,12 @@ static selem_ctl_t *get_selem_ctl(selem_none_t *s, int dir)
                c = &s->ctls[CTL_CAPTURE_VOLUME];
        else
                return NULL;
-       if (! c->elem) {
+       if (! c->elem)
                c = &s->ctls[CTL_GLOBAL_VOLUME];
-               if (! c->elem)
-                       return NULL;
-       }
+       if (! c->elem)
+               c = &s->ctls[CTL_SINGLE];
+       if (! c->elem)
+               return NULL;
        if (c->type != SND_CTL_ELEM_TYPE_INTEGER)
                return NULL;
        return c;