OSDN Git Service

Simplify btif_le_test_mode
authorZach Johnson <zachoverflow@google.com>
Fri, 14 Aug 2020 21:25:49 +0000 (14:25 -0700)
committerZach Johnson <zachoverflow@google.com>
Sat, 15 Aug 2020 00:48:19 +0000 (17:48 -0700)
inline checking into bluetooth.cc

break into separate functions so we can post internally

Bug: 159815595
Tag: #refactor
Test: compile & verify basic functions working
Change-Id: Iecbcfe2490c25b1371deb24dfbbc3b5a1900cfca

btif/include/btif_api.h
btif/src/bluetooth.cc
btif/src/btif_dm.cc

index add80c4..3e8038e 100644 (file)
@@ -349,16 +349,11 @@ bool btif_is_dut_mode();
  ******************************************************************************/
 void btif_dut_mode_send(uint16_t opcode, uint8_t* buf, uint8_t len);
 
-/*******************************************************************************
- *
- * Function         btif_le_test_mode
- *
- * Description     Sends a HCI BLE Test command to the Controller
- *
- * Returns          BT_STATUS_SUCCESS on success
- *
- ******************************************************************************/
-bt_status_t btif_le_test_mode(uint16_t opcode, uint8_t* buf, uint8_t len);
+void btif_ble_transmitter_test(uint8_t tx_freq, uint8_t test_data_len,
+                               uint8_t packet_payload);
+
+void btif_ble_receiver_test(uint8_t rx_freq);
+void btif_ble_test_end();
 
 /*******************************************************************************
  *
index 8ba140c..6f41124 100644 (file)
@@ -466,12 +466,26 @@ int dut_mode_send(uint16_t opcode, uint8_t* buf, uint8_t len) {
 }
 
 int le_test_mode(uint16_t opcode, uint8_t* buf, uint8_t len) {
-  LOG_INFO("%s", __func__);
-
-  /* sanity check */
   if (!interface_ready()) return BT_STATUS_NOT_READY;
 
-  return btif_le_test_mode(opcode, buf, len);
+  switch (opcode) {
+    case HCI_BLE_TRANSMITTER_TEST:
+      if (len != 3) return BT_STATUS_PARM_INVALID;
+      do_in_jni_thread(FROM_HERE, base::BindOnce(btif_ble_transmitter_test,
+                                                 buf[0], buf[1], buf[2]));
+      break;
+    case HCI_BLE_RECEIVER_TEST:
+      if (len != 1) return BT_STATUS_PARM_INVALID;
+      do_in_jni_thread(FROM_HERE,
+                       base::BindOnce(btif_ble_receiver_test, buf[0]));
+      break;
+    case HCI_BLE_TEST_END:
+      do_in_jni_thread(FROM_HERE, base::BindOnce(btif_ble_test_end));
+      break;
+    default:
+      return BT_STATUS_UNSUPPORTED;
+  }
+  return BT_STATUS_SUCCESS;
 }
 
 static bt_os_callouts_t* wakelock_os_callouts_saved = nullptr;
index 9f60e14..35fc11d 100644 (file)
@@ -3156,36 +3156,19 @@ static void btif_dm_ble_test_end_cback(void* p) {
                                                            : BT_STATUS_FAIL,
                                              count));
 }
-/*******************************************************************************
- *
- * Function         btif_le_test_mode
- *
- * Description     Sends a HCI BLE Test command to the Controller
- *
- * Returns          BT_STATUS_SUCCESS on success
- *
- ******************************************************************************/
-bt_status_t btif_le_test_mode(uint16_t opcode, uint8_t* buf, uint8_t len) {
-  switch (opcode) {
-    case HCI_BLE_TRANSMITTER_TEST:
-      if (len != 3) return BT_STATUS_PARM_INVALID;
-      BTM_BleTransmitterTest(buf[0], buf[1], buf[2], btif_dm_ble_tx_test_cback);
-      break;
-    case HCI_BLE_RECEIVER_TEST:
-      if (len != 1) return BT_STATUS_PARM_INVALID;
-      BTM_BleReceiverTest(buf[0], btif_dm_ble_rx_test_cback);
-      break;
-    case HCI_BLE_TEST_END:
-      BTM_BleTestEnd(btif_dm_ble_test_end_cback);
-      break;
-    default:
-      BTIF_TRACE_ERROR("%s: Unknown LE Test Mode Command 0x%x", __func__,
-                       opcode);
-      return BT_STATUS_UNSUPPORTED;
-  }
-  return BT_STATUS_SUCCESS;
+
+void btif_ble_transmitter_test(uint8_t tx_freq, uint8_t test_data_len,
+                               uint8_t packet_payload) {
+  BTM_BleTransmitterTest(tx_freq, test_data_len, packet_payload,
+                         btif_dm_ble_tx_test_cback);
+}
+
+void btif_ble_receiver_test(uint8_t rx_freq) {
+  BTM_BleReceiverTest(rx_freq, btif_dm_ble_rx_test_cback);
 }
 
+void btif_ble_test_end() { BTM_BleTestEnd(btif_dm_ble_test_end_cback); }
+
 void btif_dm_on_disable() {
   /* cancel any pending pairing requests */
   if (is_bonding_or_sdp()) {