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) {