![alsamixer / amixer 支持 USB 音频 2 类控件](https://linux22.com/image/229474/alsamixer%20%2F%20amixer%20%E6%94%AF%E6%8C%81%20USB%20%E9%9F%B3%E9%A2%91%202%20%E7%B1%BB%E6%8E%A7%E4%BB%B6.png)
我目前正在开发符合 USB 音频 2 类标准的 USB 声卡。在我当前的设置中,我对 alsamixer 中的多个通道进行了音频和静音控制。
USB 音频 2 类规范还支持许多其他控件,例如低音、中音、高音、均衡器、效果器等。我一直在尝试查找 alsamixer 支持的控件列表,但文档没有提及任何具体内容支持类型的控件。
如果有人有受支持的控件或替代命令行程序的列表,我们将不胜感激。
答案1
不存在这样的
支持的控件列表
因为……无论如何控制元件amixer
设备适当公开的信息可以通过命令列出的 vg考虑在内amixer scontrols
,并根据其类型(分别为布尔型、整数或枚举)通过某些按钮、滑块或列表在图形界面上访问alsalib 的 snd_ctl* 函数。
这些控制元素可以获得不同类型的属性(最小/最大值、步长、可能值列表)
从 amixer 方面来看,绝对没有任何特定于 USB 音频 2 类设备的属性。
这些控制元件定义为司机在struct snd_ctl_elem_info
类似的物体中
static int snd_myctl_mono_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = 1;
uinfo->value.integer.min = 0;
uinfo->value.integer.max = 1;
return 0;
}
对于什么是布尔值控制元件。
参见上面的链接了解更多详细信息控制元件以及ALSA 内核 API 文档有关声音驱动程序代码的官方文档和详细示例。
一些 alsa 驱动程序可以通过预先定义(vg 不限于某些详尽的列表)一些控件来提供帮助,以解决与USB_音频驱动程序具体来说 :
enum {
USB_FEATURE_NONE = 0,
USB_FEATURE_MUTE = 1,
USB_FEATURE_VOLUME,
USB_FEATURE_BASS,
USB_FEATURE_MID,
USB_FEATURE_TREBLE,
USB_FEATURE_GEQ,
USB_FEATURE_AGC,
USB_FEATURE_DELAY,
USB_FEATURE_BASSBOOST,
USB_FEATURE_LOUDNESS
};