Loading system/bta/av/bta_av_aact.cc +43 −7 Original line number Diff line number Diff line Loading @@ -405,6 +405,8 @@ static bool bta_av_next_getcap(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { /* if no streams available then stream open fails */ if (!sent_cmd) { APPL_TRACE_ERROR("%s: BTA_AV_STR_GETCAP_FAIL_EVT: peer_addr=%s", __func__, p_scb->peer_addr.ToString().c_str()); bta_av_ssm_execute(p_scb, BTA_AV_STR_GETCAP_FAIL_EVT, p_data); } Loading Loading @@ -925,6 +927,8 @@ void bta_av_do_disc_a2dp(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { case BTA_AV_RS_FAIL: /* report a new failure event */ p_scb->open_status = BTA_AV_FAIL_ROLE; APPL_TRACE_ERROR("%s: BTA_AV_SDP_DISC_FAIL_EVT: peer_addr=%s", __func__, p_scb->peer_addr.ToString().c_str()); bta_av_ssm_execute(p_scb, BTA_AV_SDP_DISC_FAIL_EVT, NULL); break; Loading Loading @@ -1177,7 +1181,8 @@ void bta_av_disconnect_req(tBTA_AV_SCB* p_scb, UNUSED_ATTR tBTA_AV_DATA* p_data) { tBTA_AV_RCB* p_rcb; APPL_TRACE_DEBUG("%s: conn_lcb: 0x%x", __func__, bta_av_cb.conn_lcb); APPL_TRACE_WARNING("%s: conn_lcb: 0x%x peer_addr: %s", __func__, bta_av_cb.conn_lcb, p_scb->peer_addr.ToString().c_str()); alarm_cancel(bta_av_cb.link_signalling_timer); alarm_cancel(p_scb->avrc_ct_timer); Loading Loading @@ -1531,7 +1536,12 @@ void bta_av_connect_req(tBTA_AV_SCB* p_scb, UNUSED_ATTR tBTA_AV_DATA* p_data) { * ******************************************************************************/ void bta_av_sdp_failed(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { if (!p_scb->open_status) p_scb->open_status = BTA_AV_FAIL_SDP; APPL_TRACE_ERROR("%s: peer_addr=%s open_status=%d", __func__, p_scb->peer_addr.ToString().c_str(), p_scb->open_status); if (p_scb->open_status == BTA_AV_SUCCESS) { p_scb->open_status = BTA_AV_FAIL_SDP; } p_scb->sdp_discovery_started = false; bta_av_str_closed(p_scb, p_data); Loading Loading @@ -1586,6 +1596,8 @@ void bta_av_disc_results(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { } /* else we got discover response but with no streams; we're done */ else { APPL_TRACE_ERROR("%s: BTA_AV_STR_DISC_FAIL_EVT: peer_addr=%s", __func__, p_scb->peer_addr.ToString().c_str()); bta_av_ssm_execute(p_scb, BTA_AV_STR_DISC_FAIL_EVT, p_data); } } Loading Loading @@ -1630,6 +1642,8 @@ void bta_av_disc_res_as_acp(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { } /* else we got discover response but with no streams; we're done */ else { APPL_TRACE_ERROR("%s: BTA_AV_STR_DISC_FAIL_EVT: peer_addr=%s", __func__, p_scb->peer_addr.ToString().c_str()); bta_av_ssm_execute(p_scb, BTA_AV_STR_DISC_FAIL_EVT, p_data); } } Loading Loading @@ -1727,7 +1741,8 @@ void bta_av_open_failed(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { tBTA_AV_SCB* p_opened_scb = NULL; uint8_t idx; APPL_TRACE_DEBUG("%s", __func__); APPL_TRACE_ERROR("%s: peer_addr=%s", __func__, p_scb->peer_addr.ToString().c_str()); p_scb->open_status = BTA_AV_FAIL_STREAM; bta_av_cco_close(p_scb, p_data); Loading Loading @@ -1760,6 +1775,12 @@ void bta_av_open_failed(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { open.sep = AVDT_TSEP_SRC; } APPL_TRACE_ERROR( "%s: there is already an active connection: peer_addr=%s chnl=%d " "hndl=%d status=%d starting=%d edr=%d", __func__, open.bd_addr.ToString().c_str(), open.chnl, open.hndl, open.status, open.starting, open.edr); tBTA_AV bta_av_data; bta_av_data.open = open; (*bta_av_cb.p_cback)(BTA_AV_OPEN_EVT, &bta_av_data); Loading Loading @@ -1902,6 +1923,9 @@ void bta_av_discover_req(tBTA_AV_SCB* p_scb, UNUSED_ATTR tBTA_AV_DATA* p_data) { * ******************************************************************************/ void bta_av_conn_failed(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { APPL_TRACE_ERROR("%s: peer_addr=%s open_status=%d", __func__, p_scb->peer_addr.ToString().c_str(), p_scb->open_status); p_scb->open_status = BTA_AV_FAIL_STREAM; bta_av_str_closed(p_scb, p_data); } Loading Loading @@ -2475,6 +2499,11 @@ void bta_av_str_closed(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { tBTA_AV_EVT event; uint8_t policy = HCI_ENABLE_SNIFF_MODE; APPL_TRACE_WARNING( "%s: peer_addr=%s open_status=%d chnl=%d hndl=%d co_started=%d", __func__, p_scb->peer_addr.ToString().c_str(), p_scb->open_status, p_scb->chnl, p_scb->hndl, p_scb->co_started); if ((bta_av_cb.features & BTA_AV_FEAT_MASTER) == 0 || bta_av_cb.audio_open_cnt == 1) policy |= HCI_ENABLE_MASTER_SLAVE_SWITCH; Loading @@ -2484,7 +2513,7 @@ void bta_av_str_closed(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { L2CA_SetDesireRole(L2CAP_ROLE_ALLOW_SWITCH); } if (p_scb->open_status) { if (p_scb->open_status != BTA_AV_SUCCESS) { /* must be failure when opening the stream */ data.open.bd_addr = p_scb->peer_addr; data.open.status = p_scb->open_status; Loading Loading @@ -2677,8 +2706,10 @@ void bta_av_rcfg_str_ok(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { * ******************************************************************************/ void bta_av_rcfg_failed(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { APPL_TRACE_DEBUG("%s: num_recfg: %d, conn_lcb:0x%x", __func__, p_scb->num_recfg, bta_av_cb.conn_lcb); APPL_TRACE_ERROR("%s: num_recfg=%d conn_lcb=0x%x peer_addr=%s", __func__, p_scb->num_recfg, bta_av_cb.conn_lcb, p_scb->peer_addr.ToString().c_str()); if (p_scb->num_recfg > BTA_AV_RECONFIG_RETRY) { bta_av_cco_close(p_scb, p_data); /* report failure */ Loading Loading @@ -2733,7 +2764,10 @@ void bta_av_rcfg_connect(tBTA_AV_SCB* p_scb, UNUSED_ATTR tBTA_AV_DATA* p_data) { * ******************************************************************************/ void bta_av_rcfg_discntd(tBTA_AV_SCB* p_scb, UNUSED_ATTR tBTA_AV_DATA* p_data) { APPL_TRACE_DEBUG("%s: num_recfg: %d", __func__, p_scb->num_recfg); APPL_TRACE_ERROR("%s: num_recfg=%d conn_lcb=0x%x peer_addr=%s", __func__, p_scb->num_recfg, bta_av_cb.conn_lcb, p_scb->peer_addr.ToString().c_str()); p_scb->num_recfg++; if (p_scb->num_recfg > BTA_AV_RECONFIG_RETRY) { /* report failure */ Loading Loading @@ -2774,6 +2808,8 @@ void bta_av_suspend_cont(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { tBTA_AV bta_av_data; bta_av_data.reconfig = reconfig; (*bta_av_cb.p_cback)(BTA_AV_RECONFIG_EVT, &bta_av_data); APPL_TRACE_ERROR("%s: BTA_AV_STR_DISC_FAIL_EVT: peer_addr=%s", __func__, p_scb->peer_addr.ToString().c_str()); bta_av_ssm_execute(p_scb, BTA_AV_STR_DISC_FAIL_EVT, NULL); } else { APPL_TRACE_ERROR("%s: suspend rejected, try close", __func__); Loading system/bta/av/bta_av_act.cc +3 −1 Original line number Diff line number Diff line Loading @@ -1473,7 +1473,9 @@ void bta_av_sig_chg(tBTA_AV_DATA* p_data) { if (((mask & p_lcb->conn_msk) || bta_av_cb.conn_lcb) && p_cb->p_scb[xx] && p_cb->p_scb[xx]->peer_addr == p_data->str_msg.bd_addr) { APPL_TRACE_DEBUG("%s: Sending AVDT_DISCONNECT_EVT", __func__); APPL_TRACE_WARNING("%s: Sending AVDT_DISCONNECT_EVT peer_addr=%s", __func__, p_cb->p_scb[xx]->peer_addr.ToString().c_str()); bta_av_ssm_execute(p_cb->p_scb[xx], BTA_AV_AVDT_DISCONNECT_EVT, NULL); } } Loading system/btif/src/btif_a2dp.cc +10 −4 Original line number Diff line number Diff line Loading @@ -33,7 +33,8 @@ #include "osi/include/log.h" void btif_a2dp_on_idle(void) { APPL_TRACE_EVENT("## ON A2DP IDLE ## peer_sep = %d", btif_av_get_peer_sep()); APPL_TRACE_WARNING("## ON A2DP IDLE ## peer_sep = %d", btif_av_get_peer_sep()); if (btif_av_get_peer_sep() == AVDT_TSEP_SNK) { btif_a2dp_source_on_idle(); } else if (btif_av_get_peer_sep() == AVDT_TSEP_SRC) { Loading @@ -44,7 +45,7 @@ void btif_a2dp_on_idle(void) { bool btif_a2dp_on_started(tBTA_AV_START* p_av_start, bool pending_start) { bool ack = false; APPL_TRACE_EVENT("## ON A2DP STARTED ##"); APPL_TRACE_WARNING("## ON A2DP STARTED ##"); if (p_av_start == NULL) { /* ack back a local start request */ Loading @@ -52,6 +53,11 @@ bool btif_a2dp_on_started(tBTA_AV_START* p_av_start, bool pending_start) { return true; } APPL_TRACE_WARNING( "%s: pending_start = %d status = %d suspending = %d initiator = %d", __func__, pending_start, p_av_start->status, p_av_start->suspending, p_av_start->initiator); if (p_av_start->status == BTA_AV_SUCCESS) { if (!p_av_start->suspending) { if (p_av_start->initiator) { Loading @@ -78,7 +84,7 @@ bool btif_a2dp_on_started(tBTA_AV_START* p_av_start, bool pending_start) { } void btif_a2dp_on_stopped(tBTA_AV_SUSPEND* p_av_suspend) { APPL_TRACE_EVENT("## ON A2DP STOPPED ##"); APPL_TRACE_WARNING("## ON A2DP STOPPED ##"); if (btif_av_get_peer_sep() == AVDT_TSEP_SRC) { btif_a2dp_sink_on_stopped(p_av_suspend); Loading @@ -89,7 +95,7 @@ void btif_a2dp_on_stopped(tBTA_AV_SUSPEND* p_av_suspend) { } void btif_a2dp_on_suspended(tBTA_AV_SUSPEND* p_av_suspend) { APPL_TRACE_EVENT("## ON A2DP SUSPENDED ##"); APPL_TRACE_WARNING("## ON A2DP SUSPENDED ##"); if (btif_av_get_peer_sep() == AVDT_TSEP_SRC) { btif_a2dp_sink_on_suspended(p_av_suspend); } else { Loading Loading
system/bta/av/bta_av_aact.cc +43 −7 Original line number Diff line number Diff line Loading @@ -405,6 +405,8 @@ static bool bta_av_next_getcap(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { /* if no streams available then stream open fails */ if (!sent_cmd) { APPL_TRACE_ERROR("%s: BTA_AV_STR_GETCAP_FAIL_EVT: peer_addr=%s", __func__, p_scb->peer_addr.ToString().c_str()); bta_av_ssm_execute(p_scb, BTA_AV_STR_GETCAP_FAIL_EVT, p_data); } Loading Loading @@ -925,6 +927,8 @@ void bta_av_do_disc_a2dp(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { case BTA_AV_RS_FAIL: /* report a new failure event */ p_scb->open_status = BTA_AV_FAIL_ROLE; APPL_TRACE_ERROR("%s: BTA_AV_SDP_DISC_FAIL_EVT: peer_addr=%s", __func__, p_scb->peer_addr.ToString().c_str()); bta_av_ssm_execute(p_scb, BTA_AV_SDP_DISC_FAIL_EVT, NULL); break; Loading Loading @@ -1177,7 +1181,8 @@ void bta_av_disconnect_req(tBTA_AV_SCB* p_scb, UNUSED_ATTR tBTA_AV_DATA* p_data) { tBTA_AV_RCB* p_rcb; APPL_TRACE_DEBUG("%s: conn_lcb: 0x%x", __func__, bta_av_cb.conn_lcb); APPL_TRACE_WARNING("%s: conn_lcb: 0x%x peer_addr: %s", __func__, bta_av_cb.conn_lcb, p_scb->peer_addr.ToString().c_str()); alarm_cancel(bta_av_cb.link_signalling_timer); alarm_cancel(p_scb->avrc_ct_timer); Loading Loading @@ -1531,7 +1536,12 @@ void bta_av_connect_req(tBTA_AV_SCB* p_scb, UNUSED_ATTR tBTA_AV_DATA* p_data) { * ******************************************************************************/ void bta_av_sdp_failed(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { if (!p_scb->open_status) p_scb->open_status = BTA_AV_FAIL_SDP; APPL_TRACE_ERROR("%s: peer_addr=%s open_status=%d", __func__, p_scb->peer_addr.ToString().c_str(), p_scb->open_status); if (p_scb->open_status == BTA_AV_SUCCESS) { p_scb->open_status = BTA_AV_FAIL_SDP; } p_scb->sdp_discovery_started = false; bta_av_str_closed(p_scb, p_data); Loading Loading @@ -1586,6 +1596,8 @@ void bta_av_disc_results(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { } /* else we got discover response but with no streams; we're done */ else { APPL_TRACE_ERROR("%s: BTA_AV_STR_DISC_FAIL_EVT: peer_addr=%s", __func__, p_scb->peer_addr.ToString().c_str()); bta_av_ssm_execute(p_scb, BTA_AV_STR_DISC_FAIL_EVT, p_data); } } Loading Loading @@ -1630,6 +1642,8 @@ void bta_av_disc_res_as_acp(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { } /* else we got discover response but with no streams; we're done */ else { APPL_TRACE_ERROR("%s: BTA_AV_STR_DISC_FAIL_EVT: peer_addr=%s", __func__, p_scb->peer_addr.ToString().c_str()); bta_av_ssm_execute(p_scb, BTA_AV_STR_DISC_FAIL_EVT, p_data); } } Loading Loading @@ -1727,7 +1741,8 @@ void bta_av_open_failed(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { tBTA_AV_SCB* p_opened_scb = NULL; uint8_t idx; APPL_TRACE_DEBUG("%s", __func__); APPL_TRACE_ERROR("%s: peer_addr=%s", __func__, p_scb->peer_addr.ToString().c_str()); p_scb->open_status = BTA_AV_FAIL_STREAM; bta_av_cco_close(p_scb, p_data); Loading Loading @@ -1760,6 +1775,12 @@ void bta_av_open_failed(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { open.sep = AVDT_TSEP_SRC; } APPL_TRACE_ERROR( "%s: there is already an active connection: peer_addr=%s chnl=%d " "hndl=%d status=%d starting=%d edr=%d", __func__, open.bd_addr.ToString().c_str(), open.chnl, open.hndl, open.status, open.starting, open.edr); tBTA_AV bta_av_data; bta_av_data.open = open; (*bta_av_cb.p_cback)(BTA_AV_OPEN_EVT, &bta_av_data); Loading Loading @@ -1902,6 +1923,9 @@ void bta_av_discover_req(tBTA_AV_SCB* p_scb, UNUSED_ATTR tBTA_AV_DATA* p_data) { * ******************************************************************************/ void bta_av_conn_failed(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { APPL_TRACE_ERROR("%s: peer_addr=%s open_status=%d", __func__, p_scb->peer_addr.ToString().c_str(), p_scb->open_status); p_scb->open_status = BTA_AV_FAIL_STREAM; bta_av_str_closed(p_scb, p_data); } Loading Loading @@ -2475,6 +2499,11 @@ void bta_av_str_closed(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { tBTA_AV_EVT event; uint8_t policy = HCI_ENABLE_SNIFF_MODE; APPL_TRACE_WARNING( "%s: peer_addr=%s open_status=%d chnl=%d hndl=%d co_started=%d", __func__, p_scb->peer_addr.ToString().c_str(), p_scb->open_status, p_scb->chnl, p_scb->hndl, p_scb->co_started); if ((bta_av_cb.features & BTA_AV_FEAT_MASTER) == 0 || bta_av_cb.audio_open_cnt == 1) policy |= HCI_ENABLE_MASTER_SLAVE_SWITCH; Loading @@ -2484,7 +2513,7 @@ void bta_av_str_closed(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { L2CA_SetDesireRole(L2CAP_ROLE_ALLOW_SWITCH); } if (p_scb->open_status) { if (p_scb->open_status != BTA_AV_SUCCESS) { /* must be failure when opening the stream */ data.open.bd_addr = p_scb->peer_addr; data.open.status = p_scb->open_status; Loading Loading @@ -2677,8 +2706,10 @@ void bta_av_rcfg_str_ok(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { * ******************************************************************************/ void bta_av_rcfg_failed(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { APPL_TRACE_DEBUG("%s: num_recfg: %d, conn_lcb:0x%x", __func__, p_scb->num_recfg, bta_av_cb.conn_lcb); APPL_TRACE_ERROR("%s: num_recfg=%d conn_lcb=0x%x peer_addr=%s", __func__, p_scb->num_recfg, bta_av_cb.conn_lcb, p_scb->peer_addr.ToString().c_str()); if (p_scb->num_recfg > BTA_AV_RECONFIG_RETRY) { bta_av_cco_close(p_scb, p_data); /* report failure */ Loading Loading @@ -2733,7 +2764,10 @@ void bta_av_rcfg_connect(tBTA_AV_SCB* p_scb, UNUSED_ATTR tBTA_AV_DATA* p_data) { * ******************************************************************************/ void bta_av_rcfg_discntd(tBTA_AV_SCB* p_scb, UNUSED_ATTR tBTA_AV_DATA* p_data) { APPL_TRACE_DEBUG("%s: num_recfg: %d", __func__, p_scb->num_recfg); APPL_TRACE_ERROR("%s: num_recfg=%d conn_lcb=0x%x peer_addr=%s", __func__, p_scb->num_recfg, bta_av_cb.conn_lcb, p_scb->peer_addr.ToString().c_str()); p_scb->num_recfg++; if (p_scb->num_recfg > BTA_AV_RECONFIG_RETRY) { /* report failure */ Loading Loading @@ -2774,6 +2808,8 @@ void bta_av_suspend_cont(tBTA_AV_SCB* p_scb, tBTA_AV_DATA* p_data) { tBTA_AV bta_av_data; bta_av_data.reconfig = reconfig; (*bta_av_cb.p_cback)(BTA_AV_RECONFIG_EVT, &bta_av_data); APPL_TRACE_ERROR("%s: BTA_AV_STR_DISC_FAIL_EVT: peer_addr=%s", __func__, p_scb->peer_addr.ToString().c_str()); bta_av_ssm_execute(p_scb, BTA_AV_STR_DISC_FAIL_EVT, NULL); } else { APPL_TRACE_ERROR("%s: suspend rejected, try close", __func__); Loading
system/bta/av/bta_av_act.cc +3 −1 Original line number Diff line number Diff line Loading @@ -1473,7 +1473,9 @@ void bta_av_sig_chg(tBTA_AV_DATA* p_data) { if (((mask & p_lcb->conn_msk) || bta_av_cb.conn_lcb) && p_cb->p_scb[xx] && p_cb->p_scb[xx]->peer_addr == p_data->str_msg.bd_addr) { APPL_TRACE_DEBUG("%s: Sending AVDT_DISCONNECT_EVT", __func__); APPL_TRACE_WARNING("%s: Sending AVDT_DISCONNECT_EVT peer_addr=%s", __func__, p_cb->p_scb[xx]->peer_addr.ToString().c_str()); bta_av_ssm_execute(p_cb->p_scb[xx], BTA_AV_AVDT_DISCONNECT_EVT, NULL); } } Loading
system/btif/src/btif_a2dp.cc +10 −4 Original line number Diff line number Diff line Loading @@ -33,7 +33,8 @@ #include "osi/include/log.h" void btif_a2dp_on_idle(void) { APPL_TRACE_EVENT("## ON A2DP IDLE ## peer_sep = %d", btif_av_get_peer_sep()); APPL_TRACE_WARNING("## ON A2DP IDLE ## peer_sep = %d", btif_av_get_peer_sep()); if (btif_av_get_peer_sep() == AVDT_TSEP_SNK) { btif_a2dp_source_on_idle(); } else if (btif_av_get_peer_sep() == AVDT_TSEP_SRC) { Loading @@ -44,7 +45,7 @@ void btif_a2dp_on_idle(void) { bool btif_a2dp_on_started(tBTA_AV_START* p_av_start, bool pending_start) { bool ack = false; APPL_TRACE_EVENT("## ON A2DP STARTED ##"); APPL_TRACE_WARNING("## ON A2DP STARTED ##"); if (p_av_start == NULL) { /* ack back a local start request */ Loading @@ -52,6 +53,11 @@ bool btif_a2dp_on_started(tBTA_AV_START* p_av_start, bool pending_start) { return true; } APPL_TRACE_WARNING( "%s: pending_start = %d status = %d suspending = %d initiator = %d", __func__, pending_start, p_av_start->status, p_av_start->suspending, p_av_start->initiator); if (p_av_start->status == BTA_AV_SUCCESS) { if (!p_av_start->suspending) { if (p_av_start->initiator) { Loading @@ -78,7 +84,7 @@ bool btif_a2dp_on_started(tBTA_AV_START* p_av_start, bool pending_start) { } void btif_a2dp_on_stopped(tBTA_AV_SUSPEND* p_av_suspend) { APPL_TRACE_EVENT("## ON A2DP STOPPED ##"); APPL_TRACE_WARNING("## ON A2DP STOPPED ##"); if (btif_av_get_peer_sep() == AVDT_TSEP_SRC) { btif_a2dp_sink_on_stopped(p_av_suspend); Loading @@ -89,7 +95,7 @@ void btif_a2dp_on_stopped(tBTA_AV_SUSPEND* p_av_suspend) { } void btif_a2dp_on_suspended(tBTA_AV_SUSPEND* p_av_suspend) { APPL_TRACE_EVENT("## ON A2DP SUSPENDED ##"); APPL_TRACE_WARNING("## ON A2DP SUSPENDED ##"); if (btif_av_get_peer_sep() == AVDT_TSEP_SRC) { btif_a2dp_sink_on_suspended(p_av_suspend); } else { Loading