ALSA 声卡音量范围编号以及控件名称之间的差异

ALSA 声卡音量范围编号以及控件名称之间的差异

我正在 Ubuntu 中使用 ALSA 开发我的第一个声卡驱动程序。在实现声卡的音量控制时,我偶然发现了几个问题。

1)对于分配给 snd_kcontrol_new.info 的函数,我试图理解选择 snd_ctl_elem_info.value.integer.min 和 max 值背后的逻辑。我的声卡可以在 -100db 和 0db 之间变化,我如何决定是否将其映射到 snd_ctl_elem_info.value.integer.min/max 中的 0-100 或 0-15,或任何其他范围?

2) 我很难理解控制名称 PCM Playback Volume、Master Playback Volume 和 Playback Volume 之间的区别。

感谢您的回答,如果问题非常琐碎,我深表歉意,但我找不到很好的解释。

答案1

  1. 控制值通常只是硬件的寄存器值。

    控制值和 dB 值之间的映射是通过 TLV 元数据完成的。

  2. “PCM”适用于通过 PCM 设备播放的声音,而“Master”适用于所有播放的声音。

相关内容