[alsa-devel] [PATCH - alsa-lib 2/3] tlv: Handle 'holes' in SND_CTL_TLVT_DB_RANGE array
clemens at ladisch.de
Tue Jul 20 08:25:00 CEST 2010
Takashi Iwai wrote:
> Mark Brown wrote:
> > It still seems silly to have to paper over this for every single dB
> > interval - if we need to link up the ranges it seems like we ought to
> > be fixing this in one place.
> Well, what I don't feel right is that this breaks the simpleness of
> DB_RANGE handling. It's just damn simple, and works as long as the
> target point is covered by defined ranges. If something is wrong,
> it's the definition, not the parser. That's why I wondered first
> whether it can't be fixed in the driver side.
As a driver writer, I would intuitively assume that the ranges must
not be overlapping. If we require all drivers to get this right,
there will likely be new ones that don't.
> The only worst case is discontinued lines you mentioned. Is there
> a real device that behaves so (and implemented in that way)?
AK4524's and friends' "pseudo-log" controls use piecewise linear ranges
where the boundaries between the ranges would have to be described with
a separate TLV entry if overlapping TLV ranges are required (see page 28
of 4524.pdf). Currently, ak4xxx-adda.c uses a volume lookup table.
More information about the Alsa-devel