kcontrol 总结

1 kcontrol 表示一种功能 控制一个或多个寄存器

2 tinymix 可以看出 kcontrol 名字对应的 序号

3 如何使用kcontrol
首先 open 打开 dev/snd 里面 控制节点

4所有的 kcontrol 都会经过 tinyalsa 里面的 control.c 文件中的 snd_ctl_ioctl

5 snd_soc_dapm_path不需要自己定义,会在注册snd_soc_dapm_route时动态地生成。

6 widget
应用程序无法直接访问 widget

7 widget 是为了连接而生的, 那么控制连接或者不连接 只能是 kcontrol
(根据 kcontrol 状态, 设置 path状态标志位。
所以有些没用 kcontrol的path,标志位一直是连接 )

8 那么 xml 中的 kcontrol 应该都存在于 snd_soc_dapm_route 中呀

9 添加widget snd_soc_dapm_new_controls
添加route snd_soc_dapm_add_routes

10 如果 把几个 设置通路的话,应该有 widget route

11 kcontrol 的名字(尤其是 mix 跟 mux)
ALSA中Widget、route、kcontrol 命名规则

猜你喜欢

转载自blog.csdn.net/aningxiaoxixi/article/details/109609988