欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

qcc304x笔记之提示音配置(六)

程序员文章站 2022-03-07 20:48:44
代码逻辑分析/*处理来自系统和内部的消息*/uiPrompts_HandleMessage/*从earbud_ui_prompts_table匹配当前事件是否设置了提示音*/uiPrompts_GetPromptIndexFromMappingTable/*提示音播放任务调度*/uiPrompts_SchedulePromptPlayuiPrompts_PlayPromptappKymeraPromptPlay/*通知对端同步播放提示音*/Ui_RaiseUiE...

代码逻辑分析

/*处理来自系统和内部的消息*/
uiPrompts_HandleMessage
	/*从earbud_ui_prompts_table匹配当前事件是否设置了提示音*/
	uiPrompts_GetPromptIndexFromMappingTable
	/*提示音播放任务调度*/
	uiPrompts_SchedulePromptPlay
		uiPrompts_PlayPrompt
			appKymeraPromptPlay
	
/*通知对端同步播放提示音*/
Ui_RaiseUiEvent(ui_indication_type_audio_prompt, prompt_index, time_to_play)
	peerUi_ForwardToPeer(sniff_ui_event_funcptr)
	peerUi_ForwardUiEventToSecondary
		appPeerSigMarshalledMsgChannelTx
		
/*由对端请求同步播放提示音*/
peerUi_HandleMarshalledMsgChannelRxInd
	peerUi_InjectUiEvent
		Ui_NotifyUiEvent
			ui_indication_type_audio_prompt
			UiPrompts_NotifyUiIndication
				uiPrompts_PlayPrompt
					appKymeraPromptPlay

配置提示音

首先我们打开earbud_prompts_config_table.c文件

qcc304x笔记之提示音配置(六)

结合上面的代码逻辑分析,当开机的时候(POWER_ON)事件触发,就会去播放power_on_8k.sbc这个语言文件。需要说明的是,3020余3040支持两种音频格式sbc与pcm,但是实际测试中发现,如果使用高通提供的.wav格式的提示音,播音乐是播放提示音会出卡顿,所以最好还是转换为sbc格式使用。

如何新增一个事件,并加入新的提示音呢?比如新增低电提示音

1.首先我们先新增一个系统事件BATTERY_LOW

qcc304x笔记之提示音配置(六)

2.在earbud_ui_prompts_table中加入低电提示音配置

qcc304x笔记之提示音配置(六)

当低电的时候,通过TaskList_MessageSendId这个接口发送BATTERY_LOW消息,他会把消息发到所有注册到tasklist的task, led,prompt,tone模块都能收到,进而做对应的UI提示

3.把battery_low_8k.sbc加入工程中

将adk提供的wav格式的低电提示音通过工具转换为sbc格式,放到earbud\prompts文件夹,然后在MDE中加入到工程,重新编译,deploy all即可

qcc304x笔记之提示音配置(六)

加入提示音的时候,要注意空间大小,默认分配的是400k byte的空间,且那些.edkcs文件已经用了120k左右的空间,所以只有280k的空间可用

qcc304x笔记之提示音配置(六)

 

相关的工具资料等,请到我的博客<qcc514x_qcc304x开发调试笔记>最下面的网盘链接中下载。

本文地址:https://blog.csdn.net/ylangeia/article/details/107287220