[RK3288][Android6.0] 用户空间对音频寄存器的控制

本文介绍了在Rockchip RK3288平台上,使用Android 6.0系统和内核3.10.92时,如何在用户空间通过kcontrol结构控制音频寄存器。涉及的kcontrol类型包括简单型控件、Mixer控件和Mux控件,以及对应的宏定义如SOC_SINGLE、SOC_ENUM等。用户空间通过ioctl调用SNDRV_CTL_IOCTL_ELEM_WRITE命令进行控制,主要在tinymix和rk audio HAL模块中应用。
摘要由CSDN通过智能技术生成

Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92

Audio HAL控制驱动中的寄存器是通过kcontrol结构实现的,kcontrol有多种类型,如mixer, mux等,由struct snd_kcontrol_new表示。

简单型控件:
只有一个控制量,比如一个开关。如:

static const struct snd_kcontrol_new rt3261_snd_controls[] = {
    SOC_SINGLE("Mono Playback Switch", RT3261_MONO_OUT,
                RT3261_L_MUTE_SFT, 1, 1),
};

名字是”Mono Playback Switch”, 寄存器是RT3261_MONO_OUT, 控制的bit位是RT3261_L_MUTE_SFT

对应的宏定义:

SOC_SINGLE
SOC_DOUBLE
还有衍生版本: SOC_DOUBLE_TLV, SOC_DOUBLE_EXT_TLV等等。

Mixer控件:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值