void hfpHandlerAudioConnectInd( const HFP_AUDIO_CONNECT_IND_T *ind ) { HFP *active_hfp = 0; hfp_audio_params audio_params_data, *audio_params = NULL; /* Accept audio if its for a task we own */ if ((ind->hfp == theHeadset.hfp) || (ind->hfp == theHeadset.hsp)) active_hfp = ind->hfp; if (active_hfp) { /* Accept the audio connection */ { /* CVSD codec */ if (theHeadset.HFP_features.eSCO_Parameters_Enabled ) { audio_params_data.bandwidth = theHeadset.HFP_features.bandwidth ; audio_params_data.max_latency = theHeadset.HFP_features.max_latency ; audio_params_data.voice_settings = theHeadset.HFP_features.voice_settings ; audio_params_data.retx_effort = theHeadset.HFP_features.retx_effort ; audio_params = &audio_params_data; } HfpAudioConnectResponse(active_hfp, 1, theHeadset.HFP_features.supportedSyncPacketTypes, audio_params, ind->bd_addr); } } else { HfpAudioConnectResponse(active_hfp, 0, sync_hv1, 0, ind->bd_addr); } }
/**************************************************************************** NAME audioHandleSyncConnectInd DESCRIPTION Handle HFP_AUDIO_CONNECT_IND. This indicates that an incoming sychronous connection is being requested RETURNS */ void audioHandleSyncConnectInd ( const HFP_AUDIO_CONNECT_IND_T *pInd ) { sync_pkt_type packet_types; hfp_audio_params* audio_params; bool disable_wbs_override = FALSE; AUD_DEBUG(("AUD: Synchronous Connect Ind [%d] from [%x]:\n" , pInd->codec, PROFILE_INDEX(pInd->priority))) ; audio_params = audioGetSettings(pInd->priority, &packet_types); AUD_DEBUG(("AUD : [%lx][%x][%x][%x]\n" , audio_params->bandwidth ,audio_params->max_latency , audio_params->voice_settings ,audio_params->retx_effort)) ; /* WBS test case - use bad WBS params */ if(theSink.FailAudioNegotiation) { packet_types = sync_all_sco; disable_wbs_override = TRUE; } HfpAudioConnectResponse(pInd->priority, TRUE, packet_types, audio_params, disable_wbs_override); }