QCC3040/QCC3056/QCCXXX 发射(TX SOURCE)USB发射A2DP音乐
A2DP发射音乐,一拖二如下图
QCC3040/QCC3056/QCCXXX 发射(TX SOURCE)USB发射HFP通话时需要A2DP 切换到HFP模式,这样保证了可以听到游戏的声音,同时在连接的耳机上也可以通过MIC说话传输到游戏机上,即声音的双向性。
void Kymera_A2dpHandlePrepareStage(const audio_a2dp_start_params_t *params)
{
kymeraTaskData *theKymera = KymeraGetTaskData();
uint8 seid = params->codec_settings.seid;
uint32 rate = params->codec_settings.rate;
uint8 q2q = params->q2q_mode;
DEBUG_LOG("Kymera_A2dpHandlePrepareStage: enum:kymera_a2dp_state_t:%d, enum:appKymeraState:%d, seid %u, rate %u, q2q %u",
appKymeraA2dpGetState(), appKymeraGetState(), seid, rate, q2q);
if (appA2dpIsSeidNonTwsSink(seid))
{
/* Only stop Leakthrough chain with non-TWS message */
Kymera_LeakthroughStopChainIfRunning();
PanicFalse(appKymeraA2dpGetState() == kymera_a2dp_idle);
PanicNotNull(theKymera->chain_input_handle);
theKymera->a2dp_seid = seid;
theKymera->q2q_mode = q2q;
appKymeraA2dpSetState(kymera_a2dp_preparing);
kymera_A2dpCreateChain(¶ms->codec_settings, params->max_bitrate, params->nq2q_ttp);
Kymera_LeakthroughSetAecUseCase(aec_usecase_create_leakthrough_chain);
appKymeraA2dpSetState(kymera_a2dp_prepared);
Kymera_LatencyManagerA2dpPrepare(params);
}
else
{
/* Unsupported SEID, control should never reach here */
Panic();
}
}