OSDN Git Service

Use Bind in BTA_JvL2capConnectLE
authorJakub Pawlowski <jpawlowski@google.com>
Fri, 27 Oct 2017 19:33:58 +0000 (12:33 -0700)
committerJakub Pawlowski <jpawlowski@google.com>
Sat, 28 Oct 2017 02:58:27 +0000 (19:58 -0700)
Bug: 68359837
Test: compilation test
Change-Id: Iaef4695db6b46af59641d5af508b87f20bcf5232

bta/jv/bta_jv_act.cc
bta/jv/bta_jv_api.cc
bta/jv/bta_jv_int.h
bta/jv/bta_jv_main.cc

index d192b90..2d62017 100644 (file)
@@ -2348,17 +2348,11 @@ static void fcchan_data_cbk(uint16_t chan, const RawAddress& bd_addr,
   if (sock_cback) sock_cback(BTA_JV_L2CAP_DATA_IND_EVT, &evt_data, sock_id);
 }
 
-/*******************************************************************************
- *
- * Function     bta_jv_l2cap_connect_le
- *
- * Description  makes an le l2cap client connection
- *
- * Returns      void
- *
- ******************************************************************************/
-void bta_jv_l2cap_connect_le(tBTA_JV_MSG* p_data) {
-  tBTA_JV_API_L2CAP_CONNECT* cc = &(p_data->l2cap_connect);
+/** makes an le l2cap client connection */
+void bta_jv_l2cap_connect_le(uint16_t remote_chan,
+                             const RawAddress& peer_bd_addr,
+                             tBTA_JV_L2CAP_CBACK* p_cback,
+                             uint32_t l2cap_socket_id) {
   tBTA_JV evt;
   uint32_t id;
   char call_init_f = true;
@@ -2367,15 +2361,15 @@ void bta_jv_l2cap_connect_le(tBTA_JV_MSG* p_data) {
   evt.l2c_cl_init.handle = GAP_INVALID_HANDLE;
   evt.l2c_cl_init.status = BTA_JV_FAILURE;
 
-  t = fcclient_alloc(cc->remote_chan, false, NULL);
+  t = fcclient_alloc(remote_chan, false, NULL);
   if (!t) {
-    cc->p_cback(BTA_JV_L2CAP_CL_INIT_EVT, &evt, cc->l2cap_socket_id);
+    p_cback(BTA_JV_L2CAP_CL_INIT_EVT, &evt, l2cap_socket_id);
     return;
   }
 
-  t->p_cback = cc->p_cback;
-  t->l2cap_socket_id = cc->l2cap_socket_id;
-  t->remote_addr = cc->peer_bd_addr;
+  t->p_cback = p_cback;
+  t->l2cap_socket_id = l2cap_socket_id;
+  t->remote_addr = peer_bd_addr;
   id = t->id;
   t->init_called = false;
 
@@ -2392,8 +2386,7 @@ void bta_jv_l2cap_connect_le(tBTA_JV_MSG* p_data) {
     else
       fcclient_free(t);
   }
-  if (call_init_f)
-    cc->p_cback(BTA_JV_L2CAP_CL_INIT_EVT, &evt, cc->l2cap_socket_id);
+  if (call_init_f) p_cback(BTA_JV_L2CAP_CL_INIT_EVT, &evt, l2cap_socket_id);
   t->init_called = true;
 }
 
index 920e217..2ae50cb 100644 (file)
@@ -257,10 +257,10 @@ tBTA_JV_STATUS BTA_JvDeleteRecord(uint32_t handle) {
  *                  BTA_JV_FAILURE, otherwise.
  *
  ******************************************************************************/
-tBTA_JV_STATUS BTA_JvL2capConnectLE(tBTA_SEC sec_mask, tBTA_JV_ROLE role,
-                                    const tL2CAP_ERTM_INFO* ertm_info,
-                                    uint16_t remote_chan, uint16_t rx_mtu,
-                                    tL2CAP_CFG_INFO* cfg,
+tBTA_JV_STATUS BTA_JvL2capConnectLE(tBTA_SEC sec_mask, tBTA_JV_ROLE,
+                                    const tL2CAP_ERTM_INFO*,
+                                    uint16_t remote_chan, uint16_t,
+                                    tL2CAP_CFG_INFO*,
                                     const RawAddress& peer_bd_addr,
                                     tBTA_JV_L2CAP_CBACK* p_cback,
                                     uint32_t l2cap_socket_id) {
@@ -268,30 +268,8 @@ tBTA_JV_STATUS BTA_JvL2capConnectLE(tBTA_SEC sec_mask, tBTA_JV_ROLE role,
 
   if (p_cback == NULL) return BTA_JV_FAILURE; /* Nothing to do */
 
-  tBTA_JV_API_L2CAP_CONNECT* p_msg =
-      (tBTA_JV_API_L2CAP_CONNECT*)osi_malloc(sizeof(tBTA_JV_API_L2CAP_CONNECT));
-  p_msg->hdr.event = BTA_JV_API_L2CAP_CONNECT_LE_EVT;
-  p_msg->sec_mask = sec_mask;
-  p_msg->role = role;
-  p_msg->remote_chan = remote_chan;
-  p_msg->rx_mtu = rx_mtu;
-  if (cfg != NULL) {
-    p_msg->has_cfg = true;
-    p_msg->cfg = *cfg;
-  } else {
-    p_msg->has_cfg = false;
-  }
-  if (ertm_info != NULL) {
-    p_msg->has_ertm_info = true;
-    p_msg->ertm_info = *ertm_info;
-  } else {
-    p_msg->has_ertm_info = false;
-  }
-  p_msg->peer_bd_addr = peer_bd_addr;
-  p_msg->p_cback = p_cback;
-  p_msg->l2cap_socket_id = l2cap_socket_id;
-
-  bta_sys_sendmsg(p_msg);
+  do_in_bta_thread(FROM_HERE, Bind(&bta_jv_l2cap_connect_le, remote_chan,
+                                   peer_bd_addr, p_cback, l2cap_socket_id));
 
   return BTA_JV_SUCCESS;
 }
index 8f2074b..97a5e0b 100644 (file)
@@ -50,7 +50,6 @@ enum {
   BTA_JV_API_RFCOMM_WRITE_EVT,
   BTA_JV_API_SET_PM_PROFILE_EVT,
   BTA_JV_API_PM_STATE_CHANGE_EVT,
-  BTA_JV_API_L2CAP_CONNECT_LE_EVT,
   BTA_JV_API_L2CAP_START_SERVER_LE_EVT,
   BTA_JV_API_L2CAP_STOP_SERVER_LE_EVT,
   BTA_JV_API_L2CAP_WRITE_FIXED_EVT,
@@ -139,7 +138,7 @@ typedef struct {
   int curr_sess;          /* current sessions count*/
 } tBTA_JV_RFC_CB;
 
-/* data type for BTA_JV_API_L2CAP_CONNECT_EVT & BTA_JV_API_L2CAP_CONNECT_LE_EVT
+/* data type for BTA_JV_API_L2CAP_CONNECT_EVT
  */
 typedef struct {
   BT_HDR hdr;
@@ -355,7 +354,10 @@ extern void bta_jv_rfcomm_read(tBTA_JV_MSG* p_data);
 extern void bta_jv_rfcomm_write(tBTA_JV_MSG* p_data);
 extern void bta_jv_set_pm_profile(tBTA_JV_MSG* p_data);
 extern void bta_jv_change_pm_state(tBTA_JV_MSG* p_data);
-extern void bta_jv_l2cap_connect_le(tBTA_JV_MSG* p_data);
+extern void bta_jv_l2cap_connect_le(uint16_t remote_chan,
+                                    const RawAddress& peer_bd_addr,
+                                    tBTA_JV_L2CAP_CBACK* p_cback,
+                                    uint32_t l2cap_socket_id);
 extern void bta_jv_l2cap_start_server_le(tBTA_JV_MSG* p_data);
 extern void bta_jv_l2cap_stop_server_le(tBTA_JV_MSG* p_data);
 extern void bta_jv_l2cap_write_fixed(tBTA_JV_MSG* p_data);
index eb572d1..617ced3 100644 (file)
@@ -55,7 +55,6 @@ const tBTA_JV_ACTION bta_jv_action[] = {
     bta_jv_rfcomm_write,          /* BTA_JV_API_RFCOMM_WRITE_EVT */
     bta_jv_set_pm_profile,        /* BTA_JV_API_SET_PM_PROFILE_EVT */
     bta_jv_change_pm_state,       /* BTA_JV_API_PM_STATE_CHANGE_EVT */
-    bta_jv_l2cap_connect_le,      /* BTA_JV_API_L2CAP_CONNECT_LE_EVT */
     bta_jv_l2cap_start_server_le, /* BTA_JV_API_L2CAP_START_SERVER_LE_EVT */
     bta_jv_l2cap_stop_server_le,  /* BTA_JV_API_L2CAP_STOP_SERVER_LE_EVT */
     bta_jv_l2cap_write_fixed,     /* BTA_JV_API_L2CAP_WRITE_FIXED_EVT */