Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5aa37124 authored by Chris Manton's avatar Chris Manton
Browse files

Enum-ify stack/include/hiddefs::tHID_STATUS

Also add tHID_STATUS::_text and CASE_RETURN_TEXT cleanup

Bug: 163134718
Test: cert
Tag: #refactor

Change-Id: I3f9189f01907ef9e6e7253a5d1b4a2a55534d05c
parent c68c86c4
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@

#include "bt_target.h"  // Must be first to define build configuration

#include "osi/include/log.h"
#include "stack/include/bt_types.h"
#include "stack/include/btm_api_types.h"
#include "stack/include/btm_ble_api_types.h"
@@ -127,6 +128,29 @@ typedef enum : uint8_t {
  BTA_PERIPHERAL_ROLE_ONLY = 0x03,
} tBTA_PREF_ROLES;

inline tBTA_PREF_ROLES toBTA_PREF_ROLES(uint8_t role) {
  ASSERT_LOG(role <= BTA_PERIPHERAL_ROLE_ONLY,
             "Passing illegal preferred role:0x%02x [0x%02x<=>0x%02x]", role,
             BTA_ANY_ROLE, BTA_PERIPHERAL_ROLE_ONLY);
  return static_cast<tBTA_PREF_ROLES>(role);
}

#define CASE_RETURN_TEXT(code) \
  case code:                   \
    return #code

inline std::string preferred_role_text(const tBTA_PREF_ROLES& role) {
  switch (role) {
    CASE_RETURN_TEXT(BTA_ANY_ROLE);
    CASE_RETURN_TEXT(BTA_CENTRAL_ROLE_PREF);
    CASE_RETURN_TEXT(BTA_CENTRAL_ROLE_ONLY);
    CASE_RETURN_TEXT(BTA_PERIPHERAL_ROLE_ONLY);
    default:
      return std::string("UNKNOWN:%hhu", role);
  }
}
#undef CASE_RETURN_TEXT

enum {

  BTA_DM_NO_SCATTERNET,      /* Device doesn't support scatternet, it might
+9 −9
Original line number Diff line number Diff line
@@ -37,42 +37,42 @@ extern std::map<std::string, int> mock_function_count_map;
tHID_STATUS HID_HostAddDev(const RawAddress& addr, uint16_t attr_mask,
                           uint8_t* handle) {
  mock_function_count_map[__func__]++;
  return 0;
  return HID_SUCCESS;
}
tHID_STATUS HID_HostCloseDev(uint8_t dev_handle) {
  mock_function_count_map[__func__]++;
  return 0;
  return HID_SUCCESS;
}
tHID_STATUS HID_HostDeregister(void) {
  mock_function_count_map[__func__]++;
  return 0;
  return HID_SUCCESS;
}
tHID_STATUS HID_HostGetSDPRecord(const RawAddress& addr,
                                 tSDP_DISCOVERY_DB* p_db, uint32_t db_len,
                                 tHID_HOST_SDP_CALLBACK* sdp_cback) {
  mock_function_count_map[__func__]++;
  return 0;
  return HID_SUCCESS;
}
tHID_STATUS HID_HostOpenDev(uint8_t dev_handle) {
  mock_function_count_map[__func__]++;
  return 0;
  return HID_SUCCESS;
}
tHID_STATUS HID_HostRegister(tHID_HOST_DEV_CALLBACK* dev_cback) {
  mock_function_count_map[__func__]++;
  return 0;
  return HID_SUCCESS;
}
tHID_STATUS HID_HostRemoveDev(uint8_t dev_handle) {
  mock_function_count_map[__func__]++;
  return 0;
  return HID_SUCCESS;
}
tHID_STATUS HID_HostWriteDev(uint8_t dev_handle, uint8_t t_type, uint8_t param,
                             uint16_t data, uint8_t report_id, BT_HDR* pbuf) {
  mock_function_count_map[__func__]++;
  return 0;
  return HID_SUCCESS;
}
uint8_t HID_HostSetTraceLevel(uint8_t new_level) {
  mock_function_count_map[__func__]++;
  return 0;
  return HID_SUCCESS;
}
void HID_HostInit(void) { mock_function_count_map[__func__]++; }
void hidh_get_str_attr(tSDP_DISC_REC* p_rec, uint16_t attr_id, uint16_t max_len,
+25 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@

#include "bt_target.h"
#include "bt_types.h"
#include "osi/include/log.h"

/*****************************************************************************
 *  Constants
@@ -52,6 +53,30 @@ typedef enum : uint16_t {
  AVDT_WRITE_FAIL = 5,   /* Write failed */
} tAVDT_RESULT;

inline tAVDT_RESULT ToAvdtResult(uint16_t result) {
  ASSERT_LOG(result <= AVDT_WRITE_FAIL, "Unable to convert illegal result:%hu",
             result);
  return static_cast<tAVDT_RESULT>(result);
}

#define CASE_RETURN_TEXT(code) \
  case code:                   \
    return #code

inline std::string avdt_result_text(const tAVDT_RESULT& result) {
  switch (result) {
    CASE_RETURN_TEXT(AVDT_SUCCESS);
    CASE_RETURN_TEXT(AVDT_BAD_PARAMS);
    CASE_RETURN_TEXT(AVDT_NO_RESOURCES);
    CASE_RETURN_TEXT(AVDT_BAD_HANDLE);
    CASE_RETURN_TEXT(AVDT_BUSY);
    CASE_RETURN_TEXT(AVDT_WRITE_FAIL);
    default:
      return base::StringPrintf("UNKNOWN[%hu]", result);
  }
}
#undef CASE_RETURN_TEXT

/* The index to access the codec type in codec_info[]. */
#define AVDT_CODEC_TYPE_INDEX 2

+36 −5
Original line number Diff line number Diff line
@@ -25,12 +25,14 @@
#ifndef HIDDEFS_H
#define HIDDEFS_H

#include <string>

#include "sdp_api.h"
/*
 * tHID_STATUS: HID result codes, returned by HID and device and host functions.
*/
enum {
  HID_SUCCESS,
typedef enum : uint8_t {
  HID_SUCCESS = 0,
  HID_ERR_NOT_REGISTERED,
  HID_ERR_ALREADY_REGISTERED,
  HID_ERR_NO_RESOURCES,
@@ -51,9 +53,38 @@ enum {
  HID_ERR_GATT,

  HID_ERR_INVALID = 0xFF
};

typedef uint8_t tHID_STATUS;
} tHID_STATUS;

#define CASE_RETURN_TEXT(code) \
  case code:                   \
    return #code

inline std::string hid_status_text(const tHID_STATUS& status) {
  switch (status) {
    CASE_RETURN_TEXT(HID_SUCCESS);
    CASE_RETURN_TEXT(HID_ERR_NOT_REGISTERED);
    CASE_RETURN_TEXT(HID_ERR_ALREADY_REGISTERED);
    CASE_RETURN_TEXT(HID_ERR_NO_RESOURCES);
    CASE_RETURN_TEXT(HID_ERR_NO_CONNECTION);
    CASE_RETURN_TEXT(HID_ERR_INVALID_PARAM);
    CASE_RETURN_TEXT(HID_ERR_UNSUPPORTED);
    CASE_RETURN_TEXT(HID_ERR_UNKNOWN_COMMAND);
    CASE_RETURN_TEXT(HID_ERR_CONGESTED);
    CASE_RETURN_TEXT(HID_ERR_CONN_IN_PROCESS);
    CASE_RETURN_TEXT(HID_ERR_ALREADY_CONN);
    CASE_RETURN_TEXT(HID_ERR_DISCONNECTING);
    CASE_RETURN_TEXT(HID_ERR_SET_CONNABLE_FAIL);
    CASE_RETURN_TEXT(HID_ERR_HOST_UNKNOWN);
    CASE_RETURN_TEXT(HID_ERR_L2CAP_FAILED);
    CASE_RETURN_TEXT(HID_ERR_AUTH_FAILED);
    CASE_RETURN_TEXT(HID_ERR_SDP_BUSY);
    CASE_RETURN_TEXT(HID_ERR_GATT);
    CASE_RETURN_TEXT(HID_ERR_INVALID);
    default:
      return std::string("UNKNOWN[%hhu]", status);
  }
}
#undef CASE_RETURN_TEXT

#define HID_L2CAP_CONN_FAIL \
  (0x0100)                          /* Connection Attempt was made but failed */