OSDN Git Service

Enum-ify bta/include/bta_hh_api::tBTA_HH_STATUS
authorChris Manton <cmanton@google.com>
Wed, 10 Feb 2021 21:02:15 +0000 (13:02 -0800)
committerChris Manton <cmanton@google.com>
Tue, 16 Feb 2021 16:27:19 +0000 (08:27 -0800)
Towards loggable code

Bug: 163134718
Tag: #refactor
Test: gd/cert/run

Change-Id: Ifb26c5df247705f6e2661a3c32ded112ded71aab

bta/hh/bta_hh_act.cc
bta/hh/bta_hh_le.cc
bta/include/bta_hh_api.h
btif/src/btif_hh.cc

index 735f152..c5505ed 100644 (file)
@@ -30,6 +30,7 @@
 
 #include <string.h>
 
+#include "bta/include/bta_hh_api.h"
 #include "bta_hh_co.h"
 #include "bta_hh_int.h"
 #include "bta_sys.h"
@@ -826,7 +827,7 @@ void bta_hh_close_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) {
   uint16_t event = p_cb->vp ? BTA_HH_VC_UNPLUG_EVT : BTA_HH_CLOSE_EVT;
 
   disc_dat.handle = p_cb->hid_handle;
-  disc_dat.status = p_data->hid_cback.data;
+  disc_dat.status = to_bta_hh_status(p_data->hid_cback.data);
 
   /* Check reason for closing */
   if ((reason & (HID_L2CAP_CONN_FAIL |
index 29fa489..ca45b6f 100755 (executable)
@@ -2041,7 +2041,8 @@ static void bta_hh_gattc_callback(tBTA_GATTC_EVT event, tBTA_GATTC* p_data) {
 
   switch (event) {
     case BTA_GATTC_DEREG_EVT: /* 1 */
-      bta_hh_cleanup_disable(p_data->reg_oper.status);
+      bta_hh_cleanup_disable(
+          static_cast<tBTA_HH_STATUS>(p_data->reg_oper.status));
       break;
 
     case BTA_GATTC_OPEN_EVT: /* 2 */
index 770bf5c..b2f63cb 100644 (file)
 #define BTA_HH_SSR_MIN_TOUT_DEF 2
 #endif
 
+#ifndef CASE_RETURN_TEXT
+#define CASE_RETURN_TEXT(code) \
+  case code:                   \
+    return #code
+#endif
+
 /* BTA HID Host callback events */
 #define BTA_HH_ENABLE_EVT 0     /* HH enabled */
 #define BTA_HH_DISABLE_EVT 1    /* HH disabled */
@@ -109,8 +115,8 @@ typedef uint8_t tBTA_HH_BOOT_RPT_ID;
 #define BTA_HH_DEVT_OTHER 0x80
 typedef uint8_t tBTA_HH_DEVT;
 
-enum {
-  BTA_HH_OK,
+typedef enum : uint8_t {
+  BTA_HH_OK = 0,
   BTA_HH_HS_HID_NOT_READY,  /* handshake error : device not ready */
   BTA_HH_HS_INVALID_RPT_ID, /* handshake error : invalid report ID */
   BTA_HH_HS_TRANS_NOT_SPT,  /* handshake error : transaction not spt */
@@ -128,8 +134,33 @@ enum {
   BTA_HH_ERR_AUTH_FAILED, /* authentication fail */
   BTA_HH_ERR_HDL,
   BTA_HH_ERR_SEC
-};
-typedef uint8_t tBTA_HH_STATUS;
+} tBTA_HH_STATUS;
+
+inline tBTA_HH_STATUS to_bta_hh_status(uint32_t status) {
+  return static_cast<tBTA_HH_STATUS>(status);
+}
+
+inline std::string bta_hh_status_text(const tBTA_HH_STATUS& status) {
+  switch (status) {
+    CASE_RETURN_TEXT(BTA_HH_OK);
+    CASE_RETURN_TEXT(BTA_HH_HS_HID_NOT_READY);
+    CASE_RETURN_TEXT(BTA_HH_HS_INVALID_RPT_ID);
+    CASE_RETURN_TEXT(BTA_HH_HS_TRANS_NOT_SPT);
+    CASE_RETURN_TEXT(BTA_HH_HS_INVALID_PARAM);
+    CASE_RETURN_TEXT(BTA_HH_HS_ERROR);
+    CASE_RETURN_TEXT(BTA_HH_ERR);
+    CASE_RETURN_TEXT(BTA_HH_ERR_SDP);
+    CASE_RETURN_TEXT(BTA_HH_ERR_PROTO);
+    CASE_RETURN_TEXT(BTA_HH_ERR_DB_FULL);
+    CASE_RETURN_TEXT(BTA_HH_ERR_TOD_UNSPT);
+    CASE_RETURN_TEXT(BTA_HH_ERR_NO_RES);
+    CASE_RETURN_TEXT(BTA_HH_ERR_AUTH_FAILED);
+    CASE_RETURN_TEXT(BTA_HH_ERR_HDL);
+    CASE_RETURN_TEXT(BTA_HH_ERR_SEC);
+    default:
+      return std::string("UNKNOWN[%hhu]", status);
+  }
+}
 
 typedef uint16_t tBTA_HH_ATTR_MASK;
 
index 4c5af6a..206fa75 100644 (file)
@@ -1217,7 +1217,7 @@ void btif_hh_timer_timeout(void* data) {
   if (p_dev->dev_status != BTHH_CONN_STATE_CONNECTED) return;
 
   memset(&p_data, 0, sizeof(tBTA_HH));
-  p_data.dev_status.status = BTHH_ERR;
+  p_data.dev_status.status = BTA_HH_ERR;  // tBTA_HH_STATUS
   p_data.dev_status.handle = p_dev->dev_handle;
 
   /* switch context to btif task context */