BTM_unblock_sniff_mode_for(p_scb->PeerAddress());
if (p_scb->co_started) {
- uint16_t handle = get_btm_client_interface().lifecycle.BTM_GetHCIConnHandle(
- p_scb->PeerAddress(), BT_TRANSPORT_BR_EDR);
- if (bta_av_cb.offload_started_acl_hdl == handle) {
+ if (bta_av_cb.offload_started_hndl == p_scb->hndl) {
bta_av_vendor_offload_stop();
- bta_av_cb.offload_started_acl_hdl = HCI_INVALID_HANDLE;
- } else if (bta_av_cb.offload_start_pending_acl_hdl == handle) {
+ bta_av_cb.offload_started_hndl = 0;
+ } else if (bta_av_cb.offload_start_pending_hndl == p_scb->hndl) {
APPL_TRACE_WARNING("%s: Stop pending offload start command", __func__);
bta_av_vendor_offload_stop();
- bta_av_cb.offload_start_pending_acl_hdl = HCI_INVALID_HANDLE;
+ bta_av_cb.offload_start_pending_hndl = 0;
}
bta_av_stream_chg(p_scb, false);
/* in case that we received suspend_ind, we may need to call co_stop here */
if (p_scb->co_started) {
- uint16_t handle = get_btm_client_interface().lifecycle.BTM_GetHCIConnHandle(
- p_scb->PeerAddress(), BT_TRANSPORT_BR_EDR);
- if (bta_av_cb.offload_started_acl_hdl == handle) {
+ if (bta_av_cb.offload_started_hndl == p_scb->hndl) {
bta_av_vendor_offload_stop();
- bta_av_cb.offload_started_acl_hdl = HCI_INVALID_HANDLE;
- } else if (bta_av_cb.offload_start_pending_acl_hdl == handle) {
+ bta_av_cb.offload_started_hndl = 0;
+ } else if (bta_av_cb.offload_start_pending_hndl == p_scb->hndl) {
APPL_TRACE_WARNING("%s: Stop pending offload start command", __func__);
bta_av_vendor_offload_stop();
- bta_av_cb.offload_start_pending_acl_hdl = HCI_INVALID_HANDLE;
+ bta_av_cb.offload_start_pending_hndl = 0;
}
bta_av_stream_chg(p_scb, false);
APPL_TRACE_DEBUG("%s: VS_HCI_STOP_A2DP_MEDIA successful", __func__);
break;
case VS_HCI_A2DP_OFFLOAD_START:
- if (bta_av_cb.offload_start_pending_acl_hdl != HCI_INVALID_HANDLE) {
- bta_av_cb.offload_started_acl_hdl =
- bta_av_cb.offload_start_pending_acl_hdl;
- bta_av_cb.offload_start_pending_acl_hdl = HCI_INVALID_HANDLE;
+ LOG_INFO("%s, bta_av_cb.offload_start_pending_hndl=%d", __func__,
+ bta_av_cb.offload_start_pending_hndl);
+ if (bta_av_cb.offload_start_pending_hndl) {
+ APPL_TRACE_DEBUG("%s: VS_HCI_START_A2DP_MEDIA successful", __func__);
+ bta_av_cb.offload_started_hndl =
+ bta_av_cb.offload_start_pending_hndl;
+ bta_av_cb.offload_start_pending_hndl = 0;
} else {
LOG_INFO("%s: No pending start command due to AVDTP suspend immediately", __func__);
}
APPL_TRACE_DEBUG("%s: Offload failed for subopcode= %d", __func__,
sub_opcode);
if (param->opcode != VS_HCI_A2DP_OFFLOAD_STOP) {
- bta_av_cb.offload_start_pending_acl_hdl = HCI_INVALID_HANDLE;
+ bta_av_cb.offload_start_pending_hndl = 0;
(*bta_av_cb.p_cback)(BTA_AV_OFFLOAD_START_RSP_EVT, &value);
}
}
UINT16_TO_STREAM(p_param, offload_start->mtu);
ARRAY_TO_STREAM(p_param, offload_start->codec_info,
(int8_t)sizeof(offload_start->codec_info));
- bta_av_cb.offload_start_pending_acl_hdl = offload_start->acl_hdl;
+ bta_av_cb.offload_start_pending_hndl = p_scb->hndl;
+ //bta_av_cb.offload_start_pending_hndl = offload_start->hndl;
BTM_VendorSpecificCommand(HCI_CONTROLLER_A2DP, p_param - param,
param, offload_vendor_callback);
}
/* Support offload if only one audio source stream is open. */
if (p_scb->started != true) {
status = BTA_AV_FAIL_STREAM;
- } else if (bta_av_cb.offload_start_pending_acl_hdl != HCI_INVALID_HANDLE ||
- bta_av_cb.offload_started_acl_hdl != HCI_INVALID_HANDLE) {
+ } else if (bta_av_cb.offload_start_pending_hndl ||
+ bta_av_cb.offload_started_hndl) {
APPL_TRACE_WARNING("%s: offload already started, ignore request", __func__);
return;
} else {
status = BTA_AV_FAIL_STREAM;
}
- bta_av_cb.offload_start_pending_acl_hdl = HCI_INVALID_HANDLE;
+ bta_av_cb.offload_start_pending_hndl = 0;
tBTA_AV bta_av_data;
bta_av_data.status = status;
(*bta_av_cb.p_cback)(BTA_AV_OFFLOAD_START_RSP_EVT, &bta_av_data);
/* store parameters */
bta_av_cb.p_cback = p_data->api_enable.p_cback;
bta_av_cb.features = p_data->api_enable.features;
- bta_av_cb.offload_start_pending_acl_hdl = HCI_INVALID_HANDLE;
- bta_av_cb.offload_started_acl_hdl = HCI_INVALID_HANDLE;
+ bta_av_cb.offload_start_pending_hndl = 0;
+ bta_av_cb.offload_started_hndl = 0;
tBTA_AV_ENABLE enable;
enable.features = bta_av_cb.features;
evt = BTA_AV_SIG_CHG_EVT;
if (event == AVDT_DISCONNECT_IND_EVT) {
p_scb = bta_av_addr_to_scb(bd_addr);
- if (p_scb) {
- uint16_t handle =
- BTM_GetHCIConnHandle(p_scb->PeerAddress(), BT_TRANSPORT_BR_EDR);
- if (bta_av_cb.offload_started_acl_hdl == handle ||
- bta_av_cb.offload_start_pending_acl_hdl == handle) {
- LOG_INFO("%s: Cleanup offload related flag", __func__);
- bta_av_cb.offload_started_acl_hdl = HCI_INVALID_HANDLE;
- bta_av_cb.offload_start_pending_acl_hdl = HCI_INVALID_HANDLE;
- }
- }
} else if (event == AVDT_CONNECT_IND_EVT) {
APPL_TRACE_DEBUG("%s: CONN_IND is ACP:%d", __func__,
p_data->hdr.err_param);
dprintf(fd, " Registered audio channels mask: 0x%x\n", bta_av_cb.reg_audio);
dprintf(fd, " Connected LCBs mask: 0x%x\n", bta_av_cb.conn_lcb);
dprintf(fd, " Offload start pending handle: %d\n",
- bta_av_cb.offload_start_pending_acl_hdl);
+ bta_av_cb.offload_start_pending_hndl);
dprintf(fd, " Offload started handle: %d\n",
- bta_av_cb.offload_started_acl_hdl);
+ bta_av_cb.offload_started_hndl);
for (size_t i = 0; i < sizeof(bta_av_cb.lcb) / sizeof(bta_av_cb.lcb[0]);
i++) {