将模拟PA的Kcontrol注册进系统,并将其添加进mixer_paths.xml中的对应场景path中。
1、将Kcontrol注册到系统;
在codec_probe函数中中增加函数接口“aw87xxx_add_codec_controls()”如下代码示例:
static int wcd937x_soc_codec_probe(struct snd_soc_component *component)
{...
ret = aw87xxx_add_codec_controls((void *)component);
if (ret < 0) {
pr_err("%s: add_codec_controls failed, ret %d\n",
__func__, ret);
retrun ret;
};
return ret;
err_hwdep:
…}
2、检查Kcontrol创建是否成功;
依次进行:编译 刷机 重启 执行如下命令,如果出现如下kcontrol则说明创建成功;
PROJECT:/ # tinymix |grep aw //查看系统创建的kctl
ENUM 1 aw87xxx_profile_switch_0 Voice
INT 1 aw87xxx_vmax_get_0 -2032350
ENUM 1 aw87xxx_monitor_switch_0 Disable
PROJECT:/ # tinymix aw87xxx_profile_switch_0 //打印当前支持的场景,
aw87xxx_profile_switch_0: Music >Voice Fm Receiver Off
3、配置mixer_paths.xml来切换控制切换PA场景;
问题1:
如何确认当前项目使用的mixer_paths.xml文件路径?
在终端执行如下命令:
$ adb root//获取root权限
# pkill audioserver //杀死音频服务,强制其进行重启
# logcat | grep mixer_path//搜索mixer_paths.xml文件路径信息
出现如下log, 即可确认该mixer_paths.xml文件路径为:/vendor/etc/mixer_paths.xml
08:41:43 7279 7279 D msm8974_platform: platform_init: Loading mixer file: /vendor/etc/mixer_paths.xml