[alsa-devel] Question about snd_mixer_selem_get_playback_dB_range()
Peter Ujfalusi
peter.ujfalusi at nokia.com
Tue Mar 22 08:02:18 CET 2011
On 03/21/11 16:44, ext Tanu Kaskinen wrote:
>>> Is it a bug in alsa (the driver or alsa-lib or whatever) if
>>> snd_mixer_selem_get_playback_dB_range() returns something else than
>>> SND_CTL_TLV_DB_GAIN_MUTE as the min gain, if the lowest volume step for
>>> the element is mute?
>>
>> Yes.
>
> Thank you for the answer!
AFAIK the SND_CTL_TLV_DB_GAIN_MUTE received a fix regarding to this:
2f6206da0c1ff88235e6eca0077343f22a4b43ee
tlv: fix returned dB information for min-is-mute controls
Looking at the patch itself, it does going to return
min=SND_CTL_TLV_DB_GAIN_MUTE from snd_tlv_get_dB_range function.
However I have my doubts, if this is the correct way...
Take these two gain controls for example:
RAW value GAIN1 GAIN2
0 mute mute
1 -2dB 0dB
2 0dB 1dB
3 2dB 2dB
If user space asks for the dB_range:
min max
GAIN1 mute 2dB
GAIN2 mute 2dB
They are going to return with the same range, however if you ask for
-2dB on both:
GAIN1 will be -2dB
GAIN2 will be muted
So we are kind of hiding the dB range for the control.
I don't know how to fix it (well, I have some ideas, but it would need
changes in the API IMHO).
--
Péter
More information about the Alsa-devel
mailing list