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).