qcc300x笔记之左右声道合并输出(九)

方式一,修改psr

  • 左右声道合并为右声道输出

将如下的配置Merge到芯片中

// PSKEY_DSP24 = Configuration
&2270 = 2270 2271 FF00 0000
// PSKEY_DSP25 = Configuration
&2271 = 2271 0000 777B 9000 0020 0000 0000
  • 左右声道合并为左声道输出

将如下的配置Merge到芯片中

// PSKEY_DSP24 = Configuration
&2270 = 2270 2271 FF00 0000
// PSKEY_DSP25 = Configuration
&2271 = 2271 0000 787C 9000 2000 0000 0000

方式二,通过调音工具修改

       打开调音工具,adk根目录->tools->bin-> UniversalFrontEnd.exe

选择music manager,并连接dsp

播放音乐的情况下,点击上图中1位置,然后选择cross over。调好参数之后,点2可以将参数下载到芯片

如上图,我要使用右声道合并输出,则将right置为0,left置为-INF。左声道反之。

 

方式三,修改工程

尝试了一些方法,暂未成功,后续成功了在更新

虽然没有成功,但是关于output的部分的逻辑看懂了一些,这里简单的说明一下

 

Audio output框架、逻辑分析

框架如下图所示:

代码逻辑分析:

外部音源编解码之后硬件输出逻辑

/*app处理与dsp通讯之间的消息*/
audioDecodeHandleDspInternalMessage
       /*该消息是从dsp发上来的,dsp层封装起来看不到,猜测应该是dsp中准备好之后,发消息给上层,请求配置将要处理的数据的参数*/
       case :MUSIC_PARAMS_LOADED_MSG
       csrA2dpDecoderDspLoadedAndConfigured
              MusicConnectAudio()
                     /*将dsp的端口与音频源连接,音频源可参考枚举AUDIO_SINK_T的定义,此时音频源做src,dsp做sink*/
                     audioDecoderConnectInputSources(sink_type, localConfig)
                            audioDecodeConnectSources(sources, sink_type, content_protection)
                           
                     /*将dsp的端口与硬件输出端口对应,dsp可参考DSP_OUTPUT_PORT_PRI_LEFT的定义,硬件输出端口参考audio_output_t定义*/
                     audioDecodeConnectDspOutputs
                            AudioOutputAddSourceOrPanic(source,output);
                            AudioOutputConnectOrPanic
                                   connect()
                                          /*将指定的src与sink连接起来*/
                                          StreamConnect()

prompts与tone硬件输出逻辑                       

/*UI层提供的播放提示音的接口*/
AudioPlayAudioPrompt
AudioPlayTone
       handleAudioMessage
              case :AUDIO_PLUGIN_PLAY_AUDIO_PROMPT_MSG
              CsrVoicePromptsPluginPlayPhrase
             

              case :AUDIO_PLUGIN_PLAY_TONE_MSG
              CsrVoicePromptsPluginPlayTone
                     VoicePromptsDspPlay
                            /*需要使用dsp,则连接到对应的dsp端口*/
                            playStandalone
                                   connectPromptSourceToDsp

                            /*不使用额外的dsp,直接播放,连接到硬件输出端口*/
                            VoicePromptsNoDspPlay
                                   AudioOutputConnectStereoSource
                                          AudioOutputConnect(params);
                                                 connect()
                                                        /*将指定的src与sink连接起来*/
                                                        StreamConnect()

上面只贴出了了关键部分的接口,详细接口请参考实际SDK逻辑

 

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在云巅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值