Loading system/bta/ag/bta_ag_act.cc +26 −25 Original line number Diff line number Diff line Loading @@ -86,9 +86,9 @@ static void bta_ag_cback_open(tBTA_AG_SCB* p_scb, tBTA_AG_DATA* p_data, if (p_data) { /* if p_data is provided then we need to pick the bd address from the open * api structure */ bdcpy(open.bd_addr, p_data->api_open.bd_addr); open.bd_addr = p_data->api_open.bd_addr; } else { bdcpy(open.bd_addr, p_scb->peer_addr); open.bd_addr = p_scb->peer_addr; } (*bta_ag_cb.p_cback)(BTA_AG_OPEN_EVT, (tBTA_AG*)&open); Loading Loading @@ -185,7 +185,7 @@ void bta_ag_start_open(tBTA_AG_SCB* p_scb, tBTA_AG_DATA* p_data) { /* store parameters */ if (p_data) { bdcpy(p_scb->peer_addr, p_data->api_open.bd_addr); p_scb->peer_addr = p_data->api_open.bd_addr; p_scb->open_services = p_data->api_open.services; p_scb->cli_sec_mask = p_data->api_open.sec_mask; } Loading @@ -195,7 +195,7 @@ void bta_ag_start_open(tBTA_AG_SCB* p_scb, tBTA_AG_DATA* p_data) { /* Let the incoming connection goes through. */ /* Issue collision for this scb for now. */ /* We will decide what to do when we find incoming connetion later. */ bta_ag_collision_cback(0, BTA_ID_AG, 0, p_scb->peer_addr); bta_ag_collision_cback(0, BTA_ID_AG, 0, to_BD_ADDR(p_scb->peer_addr)); return; } Loading Loading @@ -305,7 +305,7 @@ void bta_ag_disc_fail(tBTA_AG_SCB* p_scb, UNUSED_ATTR tBTA_AG_DATA* p_data) { /* reinitialize stuff */ /* clear the remote BD address */ bdcpy(p_scb->peer_addr, bd_addr_null); p_scb->peer_addr = bd_addr_null; /* call open cback w. failure */ bta_ag_cback_open(p_scb, NULL, BTA_AG_FAIL_SDP); Loading Loading @@ -347,7 +347,7 @@ void bta_ag_rfc_fail(tBTA_AG_SCB* p_scb, UNUSED_ATTR tBTA_AG_DATA* p_data) { p_scb->svc_conn = false; p_scb->hsp_version = HSP_VERSION_1_2; /*Clear the BD address*/ bdcpy(p_scb->peer_addr, bd_addr_null); p_scb->peer_addr = bd_addr_null; /* reopen registered servers */ bta_ag_start_servers(p_scb, p_scb->reg_services); Loading Loading @@ -395,9 +395,9 @@ void bta_ag_rfc_close(tBTA_AG_SCB* p_scb, UNUSED_ATTR tBTA_AG_DATA* p_data) { close.hdr.handle = bta_ag_scb_to_idx(p_scb); close.hdr.app_id = p_scb->app_id; bdcpy(close.bd_addr, p_scb->peer_addr); close.bd_addr = p_scb->peer_addr; bta_sys_conn_close(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_conn_close(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); /* call close call-out */ bta_ag_co_data_close(close.hdr.handle); Loading @@ -408,7 +408,7 @@ void bta_ag_rfc_close(tBTA_AG_SCB* p_scb, UNUSED_ATTR tBTA_AG_DATA* p_data) { /* if not deregistering (deallocating) reopen registered servers */ if (p_scb->dealloc == false) { /* Clear peer bd_addr so instance can be reused */ bdcpy(p_scb->peer_addr, bd_addr_null); p_scb->peer_addr = bd_addr_null; /* start only unopened server */ services = p_scb->reg_services; Loading @@ -430,7 +430,7 @@ void bta_ag_rfc_close(tBTA_AG_SCB* p_scb, UNUSED_ATTR tBTA_AG_DATA* p_data) { } if (!num_active_conn) { bta_sys_sco_unuse(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_sco_unuse(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); } } Loading Loading @@ -473,7 +473,7 @@ void bta_ag_rfc_open(tBTA_AG_SCB* p_scb, tBTA_AG_DATA* p_data) { bta_ag_co_data_open(bta_ag_scb_to_idx(p_scb), bta_ag_svc_id[p_scb->conn_service]); bta_sys_conn_open(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_conn_open(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); bta_ag_cback_open(p_scb, NULL, BTA_AG_SUCCESS); Loading Loading @@ -501,7 +501,7 @@ void bta_ag_rfc_acp_open(tBTA_AG_SCB* p_scb, tBTA_AG_DATA* p_data) { uint16_t lcid; int i; tBTA_AG_SCB *ag_scb, *other_scb; BD_ADDR dev_addr; bt_bdaddr_t dev_addr; int status; /* set role */ Loading @@ -511,8 +511,9 @@ void bta_ag_rfc_acp_open(tBTA_AG_SCB* p_scb, tBTA_AG_DATA* p_data) { p_scb->serv_handle[0], p_scb->serv_handle[1]); /* get bd addr of peer */ if (PORT_SUCCESS != (status = PORT_CheckConnection(p_data->rfc.port_handle, dev_addr, &lcid))) { if (PORT_SUCCESS != (status = PORT_CheckConnection(p_data->rfc.port_handle, to_BD_ADDR(dev_addr), &lcid))) { APPL_TRACE_DEBUG( "bta_ag_rfc_acp_open error PORT_CheckConnection returned status %d", status); Loading @@ -523,7 +524,7 @@ void bta_ag_rfc_acp_open(tBTA_AG_SCB* p_scb, tBTA_AG_DATA* p_data) { if (ag_scb->in_use && alarm_is_scheduled(ag_scb->collision_timer)) { alarm_cancel(ag_scb->collision_timer); if (bdcmp(dev_addr, ag_scb->peer_addr) == 0) { if (dev_addr == ag_scb->peer_addr) { /* If incoming and outgoing device are same, nothing more to do. */ /* Outgoing conn will be aborted because we have successful incoming * conn. */ Loading @@ -531,7 +532,7 @@ void bta_ag_rfc_acp_open(tBTA_AG_SCB* p_scb, tBTA_AG_DATA* p_data) { /* Resume outgoing connection. */ other_scb = bta_ag_get_other_idle_scb(p_scb); if (other_scb) { bdcpy(other_scb->peer_addr, ag_scb->peer_addr); other_scb->peer_addr = ag_scb->peer_addr; other_scb->open_services = ag_scb->open_services; other_scb->cli_sec_mask = ag_scb->cli_sec_mask; Loading @@ -543,7 +544,7 @@ void bta_ag_rfc_acp_open(tBTA_AG_SCB* p_scb, tBTA_AG_DATA* p_data) { } } bdcpy(p_scb->peer_addr, dev_addr); p_scb->peer_addr = dev_addr; /* determine connected service from port handle */ for (i = 0; i < BTA_AG_NUM_IDX; i++) { Loading Loading @@ -604,14 +605,14 @@ void bta_ag_rfc_data(tBTA_AG_SCB* p_scb, UNUSED_ATTR tBTA_AG_DATA* p_data) { } /* run AT command interpreter on data */ bta_sys_busy(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_busy(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); bta_ag_at_parse(&p_scb->at_cb, buf, len); if ((p_scb->sco_idx != BTM_INVALID_SCO_INDEX) && bta_ag_sco_is_open(p_scb)) { APPL_TRACE_DEBUG("%s change link policy for SCO", __func__); bta_sys_sco_open(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_sco_open(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); } else { bta_sys_idle(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_idle(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); } /* no more data to read, we're done */ Loading Loading @@ -755,12 +756,12 @@ void bta_ag_svc_conn_open(tBTA_AG_SCB* p_scb, evt.hdr.handle = bta_ag_scb_to_idx(p_scb); evt.hdr.app_id = p_scb->app_id; evt.peer_feat = p_scb->peer_features; bdcpy(evt.bd_addr, p_scb->peer_addr); evt.bd_addr = p_scb->peer_addr; evt.peer_codec = p_scb->peer_codecs; if ((p_scb->call_ind != BTA_AG_CALL_INACTIVE) || (p_scb->callsetup_ind != BTA_AG_CALLSETUP_NONE)) { bta_sys_sco_use(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_sco_use(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); } (*bta_ag_cb.p_cback)(BTA_AG_CONN_EVT, (tBTA_AG*)&evt); Loading @@ -784,13 +785,13 @@ void bta_ag_ci_rx_data(tBTA_AG_SCB* p_scb, tBTA_AG_DATA* p_data) { APPL_TRACE_DEBUG("bta_ag_ci_rx_data:"); /* send to RFCOMM */ bta_sys_busy(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_busy(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); PORT_WriteData(p_scb->conn_handle, p_data_area, strlen(p_data_area), &len); if ((p_scb->sco_idx != BTM_INVALID_SCO_INDEX) && bta_ag_sco_is_open(p_scb)) { APPL_TRACE_DEBUG("bta_ag_rfc_data, change link policy for SCO"); bta_sys_sco_open(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_sco_open(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); } else { bta_sys_idle(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_idle(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); } } Loading system/bta/ag/bta_ag_api.cc +2 −2 Original line number Diff line number Diff line Loading @@ -155,14 +155,14 @@ void BTA_AgDeregister(uint16_t handle) { * Returns void * ******************************************************************************/ void BTA_AgOpen(uint16_t handle, BD_ADDR bd_addr, tBTA_SEC sec_mask, void BTA_AgOpen(uint16_t handle, const bt_bdaddr_t& bd_addr, tBTA_SEC sec_mask, tBTA_SERVICE_MASK services) { tBTA_AG_API_OPEN* p_buf = (tBTA_AG_API_OPEN*)osi_malloc(sizeof(tBTA_AG_API_OPEN)); p_buf->hdr.event = BTA_AG_API_OPEN_EVT; p_buf->hdr.layer_specific = handle; bdcpy(p_buf->bd_addr, bd_addr); p_buf->bd_addr = bd_addr; p_buf->services = services; p_buf->sec_mask = sec_mask; Loading system/bta/ag/bta_ag_cmd.cc +7 −5 Original line number Diff line number Diff line Loading @@ -842,7 +842,7 @@ void bta_ag_at_hfp_cback(tBTA_AG_SCB* p_scb, uint16_t cmd, uint8_t arg_type, val.hdr.app_id = p_scb->app_id; val.hdr.status = BTA_AG_SUCCESS; val.num = int_arg; bdcpy(val.bd_addr, p_scb->peer_addr); val.bd_addr = p_scb->peer_addr; strlcpy(val.str, p_arg, sizeof(val.str)); /** Loading Loading @@ -1304,7 +1304,7 @@ void bta_ag_hsp_result(tBTA_AG_SCB* p_scb, tBTA_AG_API_RESULT* p_result) { case BTA_AG_IN_CALL_RES: /* tell sys to stop av if any */ bta_sys_sco_use(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_sco_use(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); /* if sco already opened or no inband ring send ring now */ if (bta_ag_sco_is_open(p_scb) || !bta_ag_inband_enabled(p_scb) || Loading Loading @@ -1352,7 +1352,8 @@ void bta_ag_hsp_result(tBTA_AG_SCB* p_scb, tBTA_AG_API_RESULT* p_result) { bta_ag_sco_close(p_scb, (tBTA_AG_DATA*)p_result); } else { /* if av got suspended by this call, let it resume. */ bta_sys_sco_unuse(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_sco_unuse(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); } break; Loading Loading @@ -1400,7 +1401,7 @@ void bta_ag_hfp_result(tBTA_AG_SCB* p_scb, tBTA_AG_API_RESULT* p_result) { case BTA_AG_IN_CALL_RES: /* tell sys to stop av if any */ bta_sys_sco_use(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_sco_use(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); /* store caller id string. * append type info at the end. Loading Loading @@ -1527,7 +1528,8 @@ void bta_ag_hfp_result(tBTA_AG_SCB* p_scb, tBTA_AG_API_RESULT* p_result) { bta_ag_send_call_inds(p_scb, p_result->result); /* if av got suspended by this call, let it resume. */ bta_sys_sco_unuse(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_sco_unuse(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); } break; Loading system/bta/ag/bta_ag_int.h +3 −3 Original line number Diff line number Diff line Loading @@ -154,7 +154,7 @@ typedef struct { /* data type for BTA_AG_API_OPEN_EVT */ typedef struct { BT_HDR hdr; BD_ADDR bd_addr; bt_bdaddr_t bd_addr; tBTA_SERVICE_MASK services; tBTA_SEC sec_mask; } tBTA_AG_API_OPEN; Loading Loading @@ -225,7 +225,7 @@ typedef struct { char clip[BTA_AG_AT_MAX_LEN + 1]; /* number string used for CLIP */ uint16_t serv_handle[BTA_AG_NUM_IDX]; /* RFCOMM server handles */ tBTA_AG_AT_CB at_cb; /* AT command interpreter */ BD_ADDR peer_addr; /* peer bd address */ bt_bdaddr_t peer_addr; /* peer bd address */ tSDP_DISCOVERY_DB* p_disc_db; /* pointer to discovery database */ tBTA_SERVICE_MASK reg_services; /* services specified in register API */ tBTA_SERVICE_MASK open_services; /* services specified in open API */ Loading Loading @@ -323,7 +323,7 @@ extern void bta_ag_scb_dealloc(tBTA_AG_SCB* p_scb); extern uint16_t bta_ag_scb_to_idx(tBTA_AG_SCB* p_scb); extern tBTA_AG_SCB* bta_ag_scb_by_idx(uint16_t idx); extern uint8_t bta_ag_service_to_idx(tBTA_SERVICE_MASK services); extern uint16_t bta_ag_idx_by_bdaddr(BD_ADDR peer_addr); extern uint16_t bta_ag_idx_by_bdaddr(const bt_bdaddr_t* peer_addr); extern bool bta_ag_other_scb_open(tBTA_AG_SCB* p_curr_scb); extern bool bta_ag_scb_open(tBTA_AG_SCB* p_curr_scb); extern tBTA_AG_SCB* bta_ag_get_other_idle_scb(tBTA_AG_SCB* p_curr_scb); Loading system/bta/ag/bta_ag_main.cc +3 −3 Original line number Diff line number Diff line Loading @@ -393,13 +393,13 @@ uint8_t bta_ag_service_to_idx(tBTA_SERVICE_MASK services) { * Returns Index of SCB or zero if none found. * ******************************************************************************/ uint16_t bta_ag_idx_by_bdaddr(BD_ADDR peer_addr) { uint16_t bta_ag_idx_by_bdaddr(const bt_bdaddr_t* peer_addr) { tBTA_AG_SCB* p_scb = &bta_ag_cb.scb[0]; uint16_t i; if (peer_addr != NULL) { for (i = 0; i < BTA_AG_NUM_SCB; i++, p_scb++) { if (p_scb->in_use && !bdcmp(peer_addr, p_scb->peer_addr)) { if (p_scb->in_use && *peer_addr == p_scb->peer_addr) { return (i + 1); } } Loading Loading @@ -516,7 +516,7 @@ void bta_ag_collision_cback(UNUSED_ATTR tBTA_SYS_CONN_STATUS status, uint8_t id, tBTA_AG_SCB* p_scb; /* Check if we have opening scb for the peer device. */ handle = bta_ag_idx_by_bdaddr(peer_addr); handle = bta_ag_idx_by_bdaddr(&from_BD_ADDR(peer_addr)); p_scb = bta_ag_scb_by_idx(handle); if (p_scb && (p_scb->state == BTA_AG_OPENING_ST)) { Loading Loading
system/bta/ag/bta_ag_act.cc +26 −25 Original line number Diff line number Diff line Loading @@ -86,9 +86,9 @@ static void bta_ag_cback_open(tBTA_AG_SCB* p_scb, tBTA_AG_DATA* p_data, if (p_data) { /* if p_data is provided then we need to pick the bd address from the open * api structure */ bdcpy(open.bd_addr, p_data->api_open.bd_addr); open.bd_addr = p_data->api_open.bd_addr; } else { bdcpy(open.bd_addr, p_scb->peer_addr); open.bd_addr = p_scb->peer_addr; } (*bta_ag_cb.p_cback)(BTA_AG_OPEN_EVT, (tBTA_AG*)&open); Loading Loading @@ -185,7 +185,7 @@ void bta_ag_start_open(tBTA_AG_SCB* p_scb, tBTA_AG_DATA* p_data) { /* store parameters */ if (p_data) { bdcpy(p_scb->peer_addr, p_data->api_open.bd_addr); p_scb->peer_addr = p_data->api_open.bd_addr; p_scb->open_services = p_data->api_open.services; p_scb->cli_sec_mask = p_data->api_open.sec_mask; } Loading @@ -195,7 +195,7 @@ void bta_ag_start_open(tBTA_AG_SCB* p_scb, tBTA_AG_DATA* p_data) { /* Let the incoming connection goes through. */ /* Issue collision for this scb for now. */ /* We will decide what to do when we find incoming connetion later. */ bta_ag_collision_cback(0, BTA_ID_AG, 0, p_scb->peer_addr); bta_ag_collision_cback(0, BTA_ID_AG, 0, to_BD_ADDR(p_scb->peer_addr)); return; } Loading Loading @@ -305,7 +305,7 @@ void bta_ag_disc_fail(tBTA_AG_SCB* p_scb, UNUSED_ATTR tBTA_AG_DATA* p_data) { /* reinitialize stuff */ /* clear the remote BD address */ bdcpy(p_scb->peer_addr, bd_addr_null); p_scb->peer_addr = bd_addr_null; /* call open cback w. failure */ bta_ag_cback_open(p_scb, NULL, BTA_AG_FAIL_SDP); Loading Loading @@ -347,7 +347,7 @@ void bta_ag_rfc_fail(tBTA_AG_SCB* p_scb, UNUSED_ATTR tBTA_AG_DATA* p_data) { p_scb->svc_conn = false; p_scb->hsp_version = HSP_VERSION_1_2; /*Clear the BD address*/ bdcpy(p_scb->peer_addr, bd_addr_null); p_scb->peer_addr = bd_addr_null; /* reopen registered servers */ bta_ag_start_servers(p_scb, p_scb->reg_services); Loading Loading @@ -395,9 +395,9 @@ void bta_ag_rfc_close(tBTA_AG_SCB* p_scb, UNUSED_ATTR tBTA_AG_DATA* p_data) { close.hdr.handle = bta_ag_scb_to_idx(p_scb); close.hdr.app_id = p_scb->app_id; bdcpy(close.bd_addr, p_scb->peer_addr); close.bd_addr = p_scb->peer_addr; bta_sys_conn_close(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_conn_close(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); /* call close call-out */ bta_ag_co_data_close(close.hdr.handle); Loading @@ -408,7 +408,7 @@ void bta_ag_rfc_close(tBTA_AG_SCB* p_scb, UNUSED_ATTR tBTA_AG_DATA* p_data) { /* if not deregistering (deallocating) reopen registered servers */ if (p_scb->dealloc == false) { /* Clear peer bd_addr so instance can be reused */ bdcpy(p_scb->peer_addr, bd_addr_null); p_scb->peer_addr = bd_addr_null; /* start only unopened server */ services = p_scb->reg_services; Loading @@ -430,7 +430,7 @@ void bta_ag_rfc_close(tBTA_AG_SCB* p_scb, UNUSED_ATTR tBTA_AG_DATA* p_data) { } if (!num_active_conn) { bta_sys_sco_unuse(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_sco_unuse(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); } } Loading Loading @@ -473,7 +473,7 @@ void bta_ag_rfc_open(tBTA_AG_SCB* p_scb, tBTA_AG_DATA* p_data) { bta_ag_co_data_open(bta_ag_scb_to_idx(p_scb), bta_ag_svc_id[p_scb->conn_service]); bta_sys_conn_open(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_conn_open(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); bta_ag_cback_open(p_scb, NULL, BTA_AG_SUCCESS); Loading Loading @@ -501,7 +501,7 @@ void bta_ag_rfc_acp_open(tBTA_AG_SCB* p_scb, tBTA_AG_DATA* p_data) { uint16_t lcid; int i; tBTA_AG_SCB *ag_scb, *other_scb; BD_ADDR dev_addr; bt_bdaddr_t dev_addr; int status; /* set role */ Loading @@ -511,8 +511,9 @@ void bta_ag_rfc_acp_open(tBTA_AG_SCB* p_scb, tBTA_AG_DATA* p_data) { p_scb->serv_handle[0], p_scb->serv_handle[1]); /* get bd addr of peer */ if (PORT_SUCCESS != (status = PORT_CheckConnection(p_data->rfc.port_handle, dev_addr, &lcid))) { if (PORT_SUCCESS != (status = PORT_CheckConnection(p_data->rfc.port_handle, to_BD_ADDR(dev_addr), &lcid))) { APPL_TRACE_DEBUG( "bta_ag_rfc_acp_open error PORT_CheckConnection returned status %d", status); Loading @@ -523,7 +524,7 @@ void bta_ag_rfc_acp_open(tBTA_AG_SCB* p_scb, tBTA_AG_DATA* p_data) { if (ag_scb->in_use && alarm_is_scheduled(ag_scb->collision_timer)) { alarm_cancel(ag_scb->collision_timer); if (bdcmp(dev_addr, ag_scb->peer_addr) == 0) { if (dev_addr == ag_scb->peer_addr) { /* If incoming and outgoing device are same, nothing more to do. */ /* Outgoing conn will be aborted because we have successful incoming * conn. */ Loading @@ -531,7 +532,7 @@ void bta_ag_rfc_acp_open(tBTA_AG_SCB* p_scb, tBTA_AG_DATA* p_data) { /* Resume outgoing connection. */ other_scb = bta_ag_get_other_idle_scb(p_scb); if (other_scb) { bdcpy(other_scb->peer_addr, ag_scb->peer_addr); other_scb->peer_addr = ag_scb->peer_addr; other_scb->open_services = ag_scb->open_services; other_scb->cli_sec_mask = ag_scb->cli_sec_mask; Loading @@ -543,7 +544,7 @@ void bta_ag_rfc_acp_open(tBTA_AG_SCB* p_scb, tBTA_AG_DATA* p_data) { } } bdcpy(p_scb->peer_addr, dev_addr); p_scb->peer_addr = dev_addr; /* determine connected service from port handle */ for (i = 0; i < BTA_AG_NUM_IDX; i++) { Loading Loading @@ -604,14 +605,14 @@ void bta_ag_rfc_data(tBTA_AG_SCB* p_scb, UNUSED_ATTR tBTA_AG_DATA* p_data) { } /* run AT command interpreter on data */ bta_sys_busy(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_busy(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); bta_ag_at_parse(&p_scb->at_cb, buf, len); if ((p_scb->sco_idx != BTM_INVALID_SCO_INDEX) && bta_ag_sco_is_open(p_scb)) { APPL_TRACE_DEBUG("%s change link policy for SCO", __func__); bta_sys_sco_open(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_sco_open(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); } else { bta_sys_idle(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_idle(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); } /* no more data to read, we're done */ Loading Loading @@ -755,12 +756,12 @@ void bta_ag_svc_conn_open(tBTA_AG_SCB* p_scb, evt.hdr.handle = bta_ag_scb_to_idx(p_scb); evt.hdr.app_id = p_scb->app_id; evt.peer_feat = p_scb->peer_features; bdcpy(evt.bd_addr, p_scb->peer_addr); evt.bd_addr = p_scb->peer_addr; evt.peer_codec = p_scb->peer_codecs; if ((p_scb->call_ind != BTA_AG_CALL_INACTIVE) || (p_scb->callsetup_ind != BTA_AG_CALLSETUP_NONE)) { bta_sys_sco_use(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_sco_use(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); } (*bta_ag_cb.p_cback)(BTA_AG_CONN_EVT, (tBTA_AG*)&evt); Loading @@ -784,13 +785,13 @@ void bta_ag_ci_rx_data(tBTA_AG_SCB* p_scb, tBTA_AG_DATA* p_data) { APPL_TRACE_DEBUG("bta_ag_ci_rx_data:"); /* send to RFCOMM */ bta_sys_busy(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_busy(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); PORT_WriteData(p_scb->conn_handle, p_data_area, strlen(p_data_area), &len); if ((p_scb->sco_idx != BTM_INVALID_SCO_INDEX) && bta_ag_sco_is_open(p_scb)) { APPL_TRACE_DEBUG("bta_ag_rfc_data, change link policy for SCO"); bta_sys_sco_open(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_sco_open(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); } else { bta_sys_idle(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_idle(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); } } Loading
system/bta/ag/bta_ag_api.cc +2 −2 Original line number Diff line number Diff line Loading @@ -155,14 +155,14 @@ void BTA_AgDeregister(uint16_t handle) { * Returns void * ******************************************************************************/ void BTA_AgOpen(uint16_t handle, BD_ADDR bd_addr, tBTA_SEC sec_mask, void BTA_AgOpen(uint16_t handle, const bt_bdaddr_t& bd_addr, tBTA_SEC sec_mask, tBTA_SERVICE_MASK services) { tBTA_AG_API_OPEN* p_buf = (tBTA_AG_API_OPEN*)osi_malloc(sizeof(tBTA_AG_API_OPEN)); p_buf->hdr.event = BTA_AG_API_OPEN_EVT; p_buf->hdr.layer_specific = handle; bdcpy(p_buf->bd_addr, bd_addr); p_buf->bd_addr = bd_addr; p_buf->services = services; p_buf->sec_mask = sec_mask; Loading
system/bta/ag/bta_ag_cmd.cc +7 −5 Original line number Diff line number Diff line Loading @@ -842,7 +842,7 @@ void bta_ag_at_hfp_cback(tBTA_AG_SCB* p_scb, uint16_t cmd, uint8_t arg_type, val.hdr.app_id = p_scb->app_id; val.hdr.status = BTA_AG_SUCCESS; val.num = int_arg; bdcpy(val.bd_addr, p_scb->peer_addr); val.bd_addr = p_scb->peer_addr; strlcpy(val.str, p_arg, sizeof(val.str)); /** Loading Loading @@ -1304,7 +1304,7 @@ void bta_ag_hsp_result(tBTA_AG_SCB* p_scb, tBTA_AG_API_RESULT* p_result) { case BTA_AG_IN_CALL_RES: /* tell sys to stop av if any */ bta_sys_sco_use(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_sco_use(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); /* if sco already opened or no inband ring send ring now */ if (bta_ag_sco_is_open(p_scb) || !bta_ag_inband_enabled(p_scb) || Loading Loading @@ -1352,7 +1352,8 @@ void bta_ag_hsp_result(tBTA_AG_SCB* p_scb, tBTA_AG_API_RESULT* p_result) { bta_ag_sco_close(p_scb, (tBTA_AG_DATA*)p_result); } else { /* if av got suspended by this call, let it resume. */ bta_sys_sco_unuse(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_sco_unuse(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); } break; Loading Loading @@ -1400,7 +1401,7 @@ void bta_ag_hfp_result(tBTA_AG_SCB* p_scb, tBTA_AG_API_RESULT* p_result) { case BTA_AG_IN_CALL_RES: /* tell sys to stop av if any */ bta_sys_sco_use(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_sco_use(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); /* store caller id string. * append type info at the end. Loading Loading @@ -1527,7 +1528,8 @@ void bta_ag_hfp_result(tBTA_AG_SCB* p_scb, tBTA_AG_API_RESULT* p_result) { bta_ag_send_call_inds(p_scb, p_result->result); /* if av got suspended by this call, let it resume. */ bta_sys_sco_unuse(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr); bta_sys_sco_unuse(BTA_ID_AG, p_scb->app_id, to_BD_ADDR(p_scb->peer_addr)); } break; Loading
system/bta/ag/bta_ag_int.h +3 −3 Original line number Diff line number Diff line Loading @@ -154,7 +154,7 @@ typedef struct { /* data type for BTA_AG_API_OPEN_EVT */ typedef struct { BT_HDR hdr; BD_ADDR bd_addr; bt_bdaddr_t bd_addr; tBTA_SERVICE_MASK services; tBTA_SEC sec_mask; } tBTA_AG_API_OPEN; Loading Loading @@ -225,7 +225,7 @@ typedef struct { char clip[BTA_AG_AT_MAX_LEN + 1]; /* number string used for CLIP */ uint16_t serv_handle[BTA_AG_NUM_IDX]; /* RFCOMM server handles */ tBTA_AG_AT_CB at_cb; /* AT command interpreter */ BD_ADDR peer_addr; /* peer bd address */ bt_bdaddr_t peer_addr; /* peer bd address */ tSDP_DISCOVERY_DB* p_disc_db; /* pointer to discovery database */ tBTA_SERVICE_MASK reg_services; /* services specified in register API */ tBTA_SERVICE_MASK open_services; /* services specified in open API */ Loading Loading @@ -323,7 +323,7 @@ extern void bta_ag_scb_dealloc(tBTA_AG_SCB* p_scb); extern uint16_t bta_ag_scb_to_idx(tBTA_AG_SCB* p_scb); extern tBTA_AG_SCB* bta_ag_scb_by_idx(uint16_t idx); extern uint8_t bta_ag_service_to_idx(tBTA_SERVICE_MASK services); extern uint16_t bta_ag_idx_by_bdaddr(BD_ADDR peer_addr); extern uint16_t bta_ag_idx_by_bdaddr(const bt_bdaddr_t* peer_addr); extern bool bta_ag_other_scb_open(tBTA_AG_SCB* p_curr_scb); extern bool bta_ag_scb_open(tBTA_AG_SCB* p_curr_scb); extern tBTA_AG_SCB* bta_ag_get_other_idle_scb(tBTA_AG_SCB* p_curr_scb); Loading
system/bta/ag/bta_ag_main.cc +3 −3 Original line number Diff line number Diff line Loading @@ -393,13 +393,13 @@ uint8_t bta_ag_service_to_idx(tBTA_SERVICE_MASK services) { * Returns Index of SCB or zero if none found. * ******************************************************************************/ uint16_t bta_ag_idx_by_bdaddr(BD_ADDR peer_addr) { uint16_t bta_ag_idx_by_bdaddr(const bt_bdaddr_t* peer_addr) { tBTA_AG_SCB* p_scb = &bta_ag_cb.scb[0]; uint16_t i; if (peer_addr != NULL) { for (i = 0; i < BTA_AG_NUM_SCB; i++, p_scb++) { if (p_scb->in_use && !bdcmp(peer_addr, p_scb->peer_addr)) { if (p_scb->in_use && *peer_addr == p_scb->peer_addr) { return (i + 1); } } Loading Loading @@ -516,7 +516,7 @@ void bta_ag_collision_cback(UNUSED_ATTR tBTA_SYS_CONN_STATUS status, uint8_t id, tBTA_AG_SCB* p_scb; /* Check if we have opening scb for the peer device. */ handle = bta_ag_idx_by_bdaddr(peer_addr); handle = bta_ag_idx_by_bdaddr(&from_BD_ADDR(peer_addr)); p_scb = bta_ag_scb_by_idx(handle); if (p_scb && (p_scb->state == BTA_AG_OPENING_ST)) { Loading