Loading TEST_MAPPING +4 −0 Original line number Diff line number Diff line Loading @@ -98,6 +98,10 @@ }, { "name" : "net_test_btif_hf_client_service" }, { "name" : "net_test_bta", "host" : true } ] } system/bta/Android.bp 100755 → 100644 +2 −0 Original line number Diff line number Diff line Loading @@ -117,8 +117,10 @@ cc_library_static { cc_test { name: "net_test_bta", defaults: ["fluoride_bta_defaults"], test_suites: ["device-tests"], srcs: [ "test/bta_hf_client_test.cc", "test/bta_dm_cust_uuid_test.cc", "test/gatt/database_builder_test.cc", "test/gatt/database_builder_sample_device_test.cc", "test/gatt/database_test.cc", Loading system/bta/dm/bta_dm_act.cc +79 −3 Original line number Diff line number Diff line Loading @@ -2806,7 +2806,7 @@ static void bta_dm_set_eir(char* local_name) { for (custom_uuid_idx = 0; custom_uuid_idx < BTA_EIR_SERVER_NUM_CUSTOM_UUID; custom_uuid_idx++) { const Uuid& curr = bta_dm_cb.custom_uuid[custom_uuid_idx]; const Uuid& curr = bta_dm_cb.bta_custom_uuid[custom_uuid_idx].custom_uuid; if (curr.GetShortestRepresentationSize() == Uuid::kNumBytes16) { if (num_uuid < max_num_uuid) { UINT16_TO_STREAM(p, curr.As16Bit()); Loading Loading @@ -2839,7 +2839,7 @@ static void bta_dm_set_eir(char* local_name) { for (custom_uuid_idx = 0; custom_uuid_idx < BTA_EIR_SERVER_NUM_CUSTOM_UUID; custom_uuid_idx++) { const Uuid& curr = bta_dm_cb.custom_uuid[custom_uuid_idx]; const Uuid& curr = bta_dm_cb.bta_custom_uuid[custom_uuid_idx].custom_uuid; if (curr.GetShortestRepresentationSize() == Uuid::kNumBytes32) { if (num_uuid < max_num_uuid) { UINT32_TO_STREAM(p, curr.As32Bit()); Loading Loading @@ -2868,7 +2868,7 @@ static void bta_dm_set_eir(char* local_name) { for (custom_uuid_idx = 0; custom_uuid_idx < BTA_EIR_SERVER_NUM_CUSTOM_UUID; custom_uuid_idx++) { const Uuid& curr = bta_dm_cb.custom_uuid[custom_uuid_idx]; const Uuid& curr = bta_dm_cb.bta_custom_uuid[custom_uuid_idx].custom_uuid; if (curr.GetShortestRepresentationSize() == Uuid::kNumBytes128) { if (num_uuid < max_num_uuid) { ARRAY16_TO_STREAM(p, curr.To128BitBE().data()); Loading Loading @@ -2932,6 +2932,82 @@ static void bta_dm_set_eir(char* local_name) { } #if (BTA_EIR_CANNED_UUID_LIST != TRUE) /******************************************************************************* * * Function bta_dm_get_cust_uuid_index * * Description Get index of custom uuid from list * Note, handle equals to 0 means to find a vacant * from list. * * Returns Index of array * bta_dm_cb.bta_custom_uuid[BTA_EIR_SERVER_NUM_CUSTOM_UUID] * ******************************************************************************/ static uint8_t bta_dm_get_cust_uuid_index(uint32_t handle) { #if (BTA_EIR_SERVER_NUM_CUSTOM_UUID > 0) uint8_t c_uu_idx = 0; while(c_uu_idx < BTA_EIR_SERVER_NUM_CUSTOM_UUID && bta_dm_cb.bta_custom_uuid[c_uu_idx].handle != handle) { c_uu_idx++; } return c_uu_idx; #else return 0; #endif } /******************************************************************************* * * Function bta_dm_update_cust_uuid * * Description Update custom uuid with given value * * Returns None * ******************************************************************************/ static void bta_dm_update_cust_uuid(uint8_t c_uu_idx, const Uuid& uuid, uint32_t handle) { #if (BTA_EIR_SERVER_NUM_CUSTOM_UUID > 0) if (c_uu_idx < BTA_EIR_SERVER_NUM_CUSTOM_UUID) { tBTA_CUSTOM_UUID& curr = bta_dm_cb.bta_custom_uuid[c_uu_idx]; curr.custom_uuid.UpdateUuid(uuid); curr.handle = handle; } else { APPL_TRACE_ERROR("%s invalid uuid index %d", __func__, c_uu_idx); } #endif } /******************************************************************************* * * Function bta_dm_eir_update_cust_uuid * * Description This function adds or removes custom service UUID in EIR database. * * Returns None * ******************************************************************************/ void bta_dm_eir_update_cust_uuid(const tBTA_CUSTOM_UUID& curr, bool adding) { APPL_TRACE_DEBUG("%s", __func__); #if (BTA_EIR_SERVER_NUM_CUSTOM_UUID > 0) uint8_t c_uu_idx = 0; if (adding) { c_uu_idx = bta_dm_get_cust_uuid_index(0); /* find a vacant from uuid list */ bta_dm_update_cust_uuid(c_uu_idx, curr.custom_uuid, curr.handle); } else { c_uu_idx = bta_dm_get_cust_uuid_index(curr.handle); /* find the uuid from uuid list */ bta_dm_update_cust_uuid(c_uu_idx, curr.custom_uuid, 0); } /* Update EIR when UUIDs are changed */ if (c_uu_idx <= BTA_EIR_SERVER_NUM_CUSTOM_UUID) { bta_dm_set_eir(NULL); } #endif } /******************************************************************************* * * Function bta_dm_eir_update_uuid Loading system/bta/dm/bta_dm_api.cc +1 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ void BTA_dm_init() { bta_sys_register(BTA_ID_DM_SEARCH, &bta_dm_search_reg); /* if UUID list is not provided as static data */ bta_sys_eir_register(bta_dm_eir_update_uuid); bta_sys_cust_eir_register(bta_dm_eir_update_cust_uuid); } /** Enables bluetooth device under test mode */ Loading system/bta/dm/bta_dm_int.h +2 −1 Original line number Diff line number Diff line Loading @@ -279,7 +279,7 @@ typedef struct { /* store UUID list for EIR */ uint32_t eir_uuid[BTM_EIR_SERVICE_ARRAY_SIZE]; #if (BTA_EIR_SERVER_NUM_CUSTOM_UUID > 0) bluetooth::Uuid custom_uuid[BTA_EIR_SERVER_NUM_CUSTOM_UUID]; tBTA_CUSTOM_UUID bta_custom_uuid[BTA_EIR_SERVER_NUM_CUSTOM_UUID]; #endif #endif Loading Loading @@ -488,4 +488,5 @@ uint8_t bta_dm_search_get_state(); void bta_dm_search_set_state(uint8_t state); void bta_dm_eir_update_uuid(uint16_t uuid16, bool adding); void bta_dm_eir_update_cust_uuid(const tBTA_CUSTOM_UUID &curr, bool adding); #endif /* BTA_DM_INT_H */ Loading
TEST_MAPPING +4 −0 Original line number Diff line number Diff line Loading @@ -98,6 +98,10 @@ }, { "name" : "net_test_btif_hf_client_service" }, { "name" : "net_test_bta", "host" : true } ] }
system/bta/Android.bp 100755 → 100644 +2 −0 Original line number Diff line number Diff line Loading @@ -117,8 +117,10 @@ cc_library_static { cc_test { name: "net_test_bta", defaults: ["fluoride_bta_defaults"], test_suites: ["device-tests"], srcs: [ "test/bta_hf_client_test.cc", "test/bta_dm_cust_uuid_test.cc", "test/gatt/database_builder_test.cc", "test/gatt/database_builder_sample_device_test.cc", "test/gatt/database_test.cc", Loading
system/bta/dm/bta_dm_act.cc +79 −3 Original line number Diff line number Diff line Loading @@ -2806,7 +2806,7 @@ static void bta_dm_set_eir(char* local_name) { for (custom_uuid_idx = 0; custom_uuid_idx < BTA_EIR_SERVER_NUM_CUSTOM_UUID; custom_uuid_idx++) { const Uuid& curr = bta_dm_cb.custom_uuid[custom_uuid_idx]; const Uuid& curr = bta_dm_cb.bta_custom_uuid[custom_uuid_idx].custom_uuid; if (curr.GetShortestRepresentationSize() == Uuid::kNumBytes16) { if (num_uuid < max_num_uuid) { UINT16_TO_STREAM(p, curr.As16Bit()); Loading Loading @@ -2839,7 +2839,7 @@ static void bta_dm_set_eir(char* local_name) { for (custom_uuid_idx = 0; custom_uuid_idx < BTA_EIR_SERVER_NUM_CUSTOM_UUID; custom_uuid_idx++) { const Uuid& curr = bta_dm_cb.custom_uuid[custom_uuid_idx]; const Uuid& curr = bta_dm_cb.bta_custom_uuid[custom_uuid_idx].custom_uuid; if (curr.GetShortestRepresentationSize() == Uuid::kNumBytes32) { if (num_uuid < max_num_uuid) { UINT32_TO_STREAM(p, curr.As32Bit()); Loading Loading @@ -2868,7 +2868,7 @@ static void bta_dm_set_eir(char* local_name) { for (custom_uuid_idx = 0; custom_uuid_idx < BTA_EIR_SERVER_NUM_CUSTOM_UUID; custom_uuid_idx++) { const Uuid& curr = bta_dm_cb.custom_uuid[custom_uuid_idx]; const Uuid& curr = bta_dm_cb.bta_custom_uuid[custom_uuid_idx].custom_uuid; if (curr.GetShortestRepresentationSize() == Uuid::kNumBytes128) { if (num_uuid < max_num_uuid) { ARRAY16_TO_STREAM(p, curr.To128BitBE().data()); Loading Loading @@ -2932,6 +2932,82 @@ static void bta_dm_set_eir(char* local_name) { } #if (BTA_EIR_CANNED_UUID_LIST != TRUE) /******************************************************************************* * * Function bta_dm_get_cust_uuid_index * * Description Get index of custom uuid from list * Note, handle equals to 0 means to find a vacant * from list. * * Returns Index of array * bta_dm_cb.bta_custom_uuid[BTA_EIR_SERVER_NUM_CUSTOM_UUID] * ******************************************************************************/ static uint8_t bta_dm_get_cust_uuid_index(uint32_t handle) { #if (BTA_EIR_SERVER_NUM_CUSTOM_UUID > 0) uint8_t c_uu_idx = 0; while(c_uu_idx < BTA_EIR_SERVER_NUM_CUSTOM_UUID && bta_dm_cb.bta_custom_uuid[c_uu_idx].handle != handle) { c_uu_idx++; } return c_uu_idx; #else return 0; #endif } /******************************************************************************* * * Function bta_dm_update_cust_uuid * * Description Update custom uuid with given value * * Returns None * ******************************************************************************/ static void bta_dm_update_cust_uuid(uint8_t c_uu_idx, const Uuid& uuid, uint32_t handle) { #if (BTA_EIR_SERVER_NUM_CUSTOM_UUID > 0) if (c_uu_idx < BTA_EIR_SERVER_NUM_CUSTOM_UUID) { tBTA_CUSTOM_UUID& curr = bta_dm_cb.bta_custom_uuid[c_uu_idx]; curr.custom_uuid.UpdateUuid(uuid); curr.handle = handle; } else { APPL_TRACE_ERROR("%s invalid uuid index %d", __func__, c_uu_idx); } #endif } /******************************************************************************* * * Function bta_dm_eir_update_cust_uuid * * Description This function adds or removes custom service UUID in EIR database. * * Returns None * ******************************************************************************/ void bta_dm_eir_update_cust_uuid(const tBTA_CUSTOM_UUID& curr, bool adding) { APPL_TRACE_DEBUG("%s", __func__); #if (BTA_EIR_SERVER_NUM_CUSTOM_UUID > 0) uint8_t c_uu_idx = 0; if (adding) { c_uu_idx = bta_dm_get_cust_uuid_index(0); /* find a vacant from uuid list */ bta_dm_update_cust_uuid(c_uu_idx, curr.custom_uuid, curr.handle); } else { c_uu_idx = bta_dm_get_cust_uuid_index(curr.handle); /* find the uuid from uuid list */ bta_dm_update_cust_uuid(c_uu_idx, curr.custom_uuid, 0); } /* Update EIR when UUIDs are changed */ if (c_uu_idx <= BTA_EIR_SERVER_NUM_CUSTOM_UUID) { bta_dm_set_eir(NULL); } #endif } /******************************************************************************* * * Function bta_dm_eir_update_uuid Loading
system/bta/dm/bta_dm_api.cc +1 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ void BTA_dm_init() { bta_sys_register(BTA_ID_DM_SEARCH, &bta_dm_search_reg); /* if UUID list is not provided as static data */ bta_sys_eir_register(bta_dm_eir_update_uuid); bta_sys_cust_eir_register(bta_dm_eir_update_cust_uuid); } /** Enables bluetooth device under test mode */ Loading
system/bta/dm/bta_dm_int.h +2 −1 Original line number Diff line number Diff line Loading @@ -279,7 +279,7 @@ typedef struct { /* store UUID list for EIR */ uint32_t eir_uuid[BTM_EIR_SERVICE_ARRAY_SIZE]; #if (BTA_EIR_SERVER_NUM_CUSTOM_UUID > 0) bluetooth::Uuid custom_uuid[BTA_EIR_SERVER_NUM_CUSTOM_UUID]; tBTA_CUSTOM_UUID bta_custom_uuid[BTA_EIR_SERVER_NUM_CUSTOM_UUID]; #endif #endif Loading Loading @@ -488,4 +488,5 @@ uint8_t bta_dm_search_get_state(); void bta_dm_search_set_state(uint8_t state); void bta_dm_eir_update_uuid(uint16_t uuid16, bool adding); void bta_dm_eir_update_cust_uuid(const tBTA_CUSTOM_UUID &curr, bool adding); #endif /* BTA_DM_INT_H */