From f202ec3c23abf16a2382acc0de35900173e32160 Mon Sep 17 00:00:00 2001 From: Hector Martin Date: Sat, 28 Oct 2023 21:33:29 +0900 Subject: [PATCH] mixer: simple: Support dB TLVs for CTL_SINGLE controls 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 Signed-off-by: Jaroslav Kysela --- src/mixer/simple_none.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/mixer/simple_none.c b/src/mixer/simple_none.c index 846b0ca9..dd03fcf1 100644 --- a/src/mixer/simple_none.c +++ b/src/mixer/simple_none.c @@ -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;