Enum-ify bta/include/bta_api::tBTA_PREF_ROLES
Towards loggable code
Bug: 163134718
Tag: #refactor
Test: gd/cert/run
Change-Id: I56d20d42bd08485c2e682ae7be8fa640a9880e5f
diff --git a/system/bta/dm/bta_dm_act.cc b/system/bta/dm/bta_dm_act.cc
index 0282bc7..6c665ab 100644
--- a/system/bta/dm/bta_dm_act.cc
+++ b/system/bta/dm/bta_dm_act.cc
@@ -2487,8 +2487,7 @@
if (((p_bta_dm_rm_cfg[j].app_id == app_id) ||
(p_bta_dm_rm_cfg[j].app_id == BTA_ALL_APP_ID)) &&
(p_bta_dm_rm_cfg[j].id == id)) {
- role = p_bta_dm_rm_cfg[j].cfg;
-
+ role = toBTA_PREF_ROLES(p_bta_dm_rm_cfg[j].cfg);
if (role > p_dev->pref_role) p_dev->pref_role = role;
break;
}
diff --git a/system/bta/include/bta_api.h b/system/bta/include/bta_api.h
index 5b97357..24ecd67 100644
--- a/system/bta/include/bta_api.h
+++ b/system/bta/include/bta_api.h
@@ -119,14 +119,21 @@
typedef uint16_t tBTA_DM_CONN;
-/* M/S preferred roles */
-#define BTA_ANY_ROLE 0x00
-#define BTA_CENTRAL_ROLE_PREF 0x01
-#define BTA_CENTRAL_ROLE_ONLY 0x02
-#define BTA_PERIPHERAL_ROLE_ONLY \
- 0x03 /* Used for PANU only, skip role switch to central */
+/* Central/peripheral preferred roles */
+typedef enum : uint8_t {
+ BTA_ANY_ROLE = 0x00,
+ BTA_CENTRAL_ROLE_PREF = 0x01,
+ BTA_CENTRAL_ROLE_ONLY = 0x02,
+ /* Used for PANU only, skip role switch to central */
+ BTA_PERIPHERAL_ROLE_ONLY = 0x03,
+} tBTA_PREF_ROLES;
-typedef uint8_t 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);
+}
inline std::string preferred_role_text(const tBTA_PREF_ROLES& role) {
switch (role) {