alsamixer / amixer 支持 USB 音频 2 类控件

alsamixer / amixer 支持 USB 音频 2 类控件

我目前正在开发符合 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
};

相关内容