• Home
  • Raw
  • Download

Lines Matching refs:device

198     auto device = FindDeviceByAddress(address);  in AssignCsisGroup()  local
199 if (device == nullptr) { in AssignCsisGroup()
202 device = FindDeviceByAddress(address); in AssignCsisGroup()
205 if (!csis_group->IsDeviceInTheGroup(device)) { in AssignCsisGroup()
206 csis_group->AddDevice(device); in AssignCsisGroup()
231 auto device = FindDeviceByAddress(address); in OnGroupMemberRemovedCb() local
232 if (device) { in OnGroupMemberRemovedCb()
233 RemoveCsisDevice(device, group_id); in OnGroupMemberRemovedCb()
239 auto device = FindDeviceByAddress(address); in OnGroupAddFromStorageCb() local
240 if (device == nullptr) { in OnGroupAddFromStorageCb()
250 if (!csis_group->IsDeviceInTheGroup(device)) { in OnGroupAddFromStorageCb()
260 auto csis_instance = device->GetCsisInstanceByGroupId(group_id); in OnGroupAddFromStorageCb()
265 callbacks_->OnDeviceAvailable(device->addr, csis_group->GetGroupId(), in OnGroupAddFromStorageCb()
272 auto device = FindDeviceByAddress(address); in Connect() local
273 if (device == nullptr) { in Connect()
281 device->connecting_actively = true; in Connect()
290 auto device = FindDeviceByAddress(addr); in Disconnect() local
291 if (device == nullptr) { in Disconnect()
298 if (device->IsConnected()) { in Disconnect()
299 BTA_GATTC_Close(device->conn_id); in Disconnect()
302 DoDisconnectCleanUp(device); in Disconnect()
310 auto device = FindDeviceByAddress(addr); in RemoveDevice() local
311 if (device == nullptr) { in RemoveDevice()
318 if (device->GetNumberOfCsisInstances() == 0) { in RemoveDevice()
319 RemoveCsisDevice(device); in RemoveDevice()
325 auto device = FindDeviceByAddress(addr); in GetGroupId() local
326 if (device == nullptr) { in GetGroupId()
363 auto device = FindDeviceByConnId(conn_id); in OnGattCsisWriteLockRsp() local
364 if (device == nullptr) { in OnGattCsisWriteLockRsp()
378 log::debug("Device {}, target lock: {}, status: 0x{:02x}", device->addr, (int)target_lock_state, in OnGattCsisWriteLockRsp()
395 HandleCsisLockProcedureError(csis_group, device); in OnGattCsisWriteLockRsp()
398 log::info("Database out of sync for {}", device->addr); in OnGattCsisWriteLockRsp()
399 ClearDeviceInformationAndStartSearch(device); in OnGattCsisWriteLockRsp()
405 auto csis_instance = device->GetCsisInstanceByGroupId(group_id); in OnGattCsisWriteLockRsp()
426 next_dev = csis_group->GetNextDevice(device); in OnGattCsisWriteLockRsp()
449 void SetLock(std::shared_ptr<CsisDevice>& device, std::shared_ptr<CsisInstance>& csis_instance, in SetLock() argument
453 log::info("{}, rank: {}, conn_id: 0x{:04x}, handle: 0x{:04x}", device->addr, in SetLock()
454 csis_instance->GetRank(), device->conn_id, in SetLock()
458 device->conn_id, csis_instance->svc_data.lock_handle.val_hdl, value, GATT_WRITE, in SetLock()
586 auto device = FindDeviceByAddress(addr); in SerializeSets() local
587 if (device == nullptr) { in SerializeSets()
592 if (device->GetNumberOfCsisInstances() == 0) { in SerializeSets()
597 log::debug(": device= {}", device->addr); in SerializeSets()
599 auto num_sets = device->GetNumberOfCsisInstances(); in SerializeSets()
612 device->ForEachCsisInstance([&](const std::shared_ptr<CsisInstance>& csis_inst) { in SerializeSets()
694 auto device = FindDeviceByAddress(addr); in AddFromStorage() local
695 if (device == nullptr) { in AddFromStorage()
696 device = std::make_shared<CsisDevice>(addr, false); in AddFromStorage()
697 devices_.push_back(device); in AddFromStorage()
701 if (!csis_group->IsDeviceInTheGroup(device)) { in AddFromStorage()
712 callbacks_->OnDeviceAvailable(device->addr, group_id, csis_group->GetDesiredSize(), rank, in AddFromStorage()
725 for (auto& device : devices_) { in CleanUp() local
726 if (device->IsConnected()) { in CleanUp()
727 BTA_GATTC_Close(device->conn_id); in CleanUp()
729 DoDisconnectCleanUp(device); in CleanUp()
752 for (auto& device : devices_) { in Dump() local
753 if (!g->IsDeviceInTheGroup(device)) { in Dump()
754 if (device->GetExpectedGroupIdMember() == g->GetGroupId()) { in Dump()
755 stream << " == candidate addr: " << device->addr.ToRedactedStringForLogging() in Dump()
761 stream << " == addr: " << device->addr.ToRedactedStringForLogging() << " ==\n" in Dump()
765 auto instance = device->GetCsisInstanceByGroupId(g->GetGroupId()); in Dump()
773 if (!device->IsConnected()) { in Dump()
776 stream << " Connected conn_id = " << std::to_string(device->conn_id) << "\n"; in Dump()
794 void RemoveCsisDevice(std::shared_ptr<CsisDevice>& device) { in RemoveCsisDevice() argument
795 auto it = find_if(devices_.begin(), devices_.end(), CsisDevice::MatchAddress(device->addr)); in RemoveCsisDevice()
799 void RemoveCsisDevice(std::shared_ptr<CsisDevice>& device, int group_id) { in RemoveCsisDevice() argument
801 auto it = find_if(devices_.begin(), devices_.end(), CsisDevice::MatchAddress(device->addr)); in RemoveCsisDevice()
815 csis_group->RemoveDevice(device->addr); in RemoveCsisDevice()
834 device->RemoveCsisInstance(group_id); in RemoveCsisDevice()
837 if (device->GetNumberOfCsisInstances() == 0) { in RemoveCsisDevice()
871 void OnEncrypted(std::shared_ptr<CsisDevice>& device) { in OnEncrypted() argument
872 log::debug("{}", device->addr); in OnEncrypted()
874 if (device->is_gatt_service_valid) { in OnEncrypted()
875 NotifyCsisDeviceValidAndStoreIfNeeded(device); in OnEncrypted()
877 BTA_GATTC_ServiceSearchRequest(device->conn_id, kCsisServiceUuid); in OnEncrypted()
881 void NotifyCsisDeviceValidAndStoreIfNeeded(std::shared_ptr<CsisDevice>& device) { in NotifyCsisDeviceValidAndStoreIfNeeded() argument
889 if (!csis_group->IsDeviceInTheGroup(device)) { in NotifyCsisDeviceValidAndStoreIfNeeded()
894 auto csis_instance = device->GetCsisInstanceByGroupId(group_id); in NotifyCsisDeviceValidAndStoreIfNeeded()
908 callbacks_->OnDeviceAvailable(device->addr, group_id, csis_group->GetDesiredSize(), in NotifyCsisDeviceValidAndStoreIfNeeded()
918 callbacks_->OnConnectionState(device->addr, ConnectionState::CONNECTED); in NotifyCsisDeviceValidAndStoreIfNeeded()
941 auto device = FindDeviceByConnId(conn_id); in OnGattWriteCcc() local
942 if (device == nullptr) { in OnGattWriteCcc()
949 log::info("Database out of sync for {}", device->addr); in OnGattWriteCcc()
950 ClearDeviceInformationAndStartSearch(device); in OnGattWriteCcc()
955 log::info("Successfully registered on ccc: 0x{:04x}, device: {}", handle, device->addr); in OnGattWriteCcc()
960 device->addr, status); in OnGattWriteCcc()
962 auto val_handle = device->FindValueHandleByCccHandle(handle); in OnGattWriteCcc()
964 log::error("Unknown ccc handle: 0x{:04x}, device: {}", handle, device->addr); in OnGattWriteCcc()
969 BTA_GATTC_DeregisterForNotifications(gatt_if_, device->addr, val_handle); in OnGattWriteCcc()
974 auto device = FindDeviceByConnId(conn_id); in OnCsisNotification() local
975 if (device == nullptr) { in OnCsisNotification()
980 auto csis_instance = device->GetCsisInstanceByOwningHandle(handle); in OnCsisNotification()
989 OnCsisLockNotifications(device, csis_instance, len, value); in OnCsisNotification()
1073 auto device = FindDeviceByConnId(conn_id); in OnCsisSizeValueUpdate() local
1075 if (device == nullptr) { in OnCsisSizeValueUpdate()
1080 log::debug("{}, status: 0x{:02x}", device->addr, status); in OnCsisSizeValueUpdate()
1084 log::info("Database out of sync for {}", device->addr); in OnCsisSizeValueUpdate()
1085 ClearDeviceInformationAndStartSearch(device); in OnCsisSizeValueUpdate()
1088 BTA_GATTC_Close(device->conn_id); in OnCsisSizeValueUpdate()
1095 BTA_GATTC_Close(device->conn_id); in OnCsisSizeValueUpdate()
1099 auto csis_instance = device->GetCsisInstanceByOwningHandle(handle); in OnCsisSizeValueUpdate()
1102 BTA_GATTC_Close(device->conn_id); in OnCsisSizeValueUpdate()
1115 NotifyCsisDeviceValidAndStoreIfNeeded(device); in OnCsisSizeValueUpdate()
1121 auto device = FindDeviceByConnId(conn_id); in OnCsisLockReadRsp() local
1122 if (device == nullptr) { in OnCsisLockReadRsp()
1127 log::info("{}, status 0x{:02x}", device->addr, status); in OnCsisLockReadRsp()
1131 log::info("Database out of sync for {}", device->addr); in OnCsisLockReadRsp()
1132 ClearDeviceInformationAndStartSearch(device); in OnCsisLockReadRsp()
1135 BTA_GATTC_Close(device->conn_id); in OnCsisLockReadRsp()
1142 BTA_GATTC_Close(device->conn_id); in OnCsisLockReadRsp()
1146 auto csis_instance = device->GetCsisInstanceByOwningHandle(handle); in OnCsisLockReadRsp()
1149 BTA_GATTC_Close(device->conn_id); in OnCsisLockReadRsp()
1155 NotifyCsisDeviceValidAndStoreIfNeeded(device); in OnCsisLockReadRsp()
1161 auto device = FindDeviceByConnId(conn_id); in OnCsisRankReadRsp() local
1162 if (device == nullptr) { in OnCsisRankReadRsp()
1167 log::debug("{}, status: 0x{:02x}, rank: {}", device->addr, status, value[0]); in OnCsisRankReadRsp()
1170 log::info("Database out of sync for {}", device->addr); in OnCsisRankReadRsp()
1171 ClearDeviceInformationAndStartSearch(device); in OnCsisRankReadRsp()
1174 BTA_GATTC_Close(device->conn_id); in OnCsisRankReadRsp()
1181 BTA_GATTC_Close(device->conn_id); in OnCsisRankReadRsp()
1185 auto csis_instance = device->GetCsisInstanceByOwningHandle(handle); in OnCsisRankReadRsp()
1188 BTA_GATTC_Close(device->conn_id); in OnCsisRankReadRsp()
1202 NotifyCsisDeviceValidAndStoreIfNeeded(device); in OnCsisRankReadRsp()
1311 return std::count_if(devices_.begin(), devices_.end(), [group_id](const auto& device) { in GetNumOfKnownExpectedDevicesWaitingForBonding() argument
1312 return device->GetExpectedGroupIdMember() == group_id && in GetNumOfKnownExpectedDevicesWaitingForBonding()
1313 !device->GetCsisInstanceByGroupId(group_id); in GetNumOfKnownExpectedDevicesWaitingForBonding()
1318 auto device = FindDeviceByAddress(address); in CacheAndAdvertiseExpectedMember() local
1319 if (device == nullptr) { in CacheAndAdvertiseExpectedMember()
1320 device = std::make_shared<CsisDevice>(address, false); in CacheAndAdvertiseExpectedMember()
1321 devices_.push_back(device); in CacheAndAdvertiseExpectedMember()
1328 device.get()->SetExpectedGroupIdMember(group_id); in CacheAndAdvertiseExpectedMember()
1329 callbacks_->OnSetMemberAvailable(address, device.get()->GetExpectedGroupIdMember()); in CacheAndAdvertiseExpectedMember()
1442 auto device = FindDeviceByAddress(address); in CheckForGroupInInqDb() local
1443 if (device && csis_group->IsDeviceInTheGroup(device)) { in CheckForGroupInInqDb()
1540 auto device = FindDeviceByConnId(conn_id); in OnCsisSirkValueUpdate() local
1541 if (device == nullptr) { in OnCsisSirkValueUpdate()
1546 log::debug("{}, status: 0x{:02x}", device->addr, status); in OnCsisSirkValueUpdate()
1554 log::info("Database out of sync for {}", device->addr); in OnCsisSirkValueUpdate()
1555 ClearDeviceInformationAndStartSearch(device); in OnCsisSirkValueUpdate()
1558 BTA_GATTC_Close(device->conn_id); in OnCsisSirkValueUpdate()
1565 BTA_GATTC_Close(device->conn_id); in OnCsisSirkValueUpdate()
1569 auto csis_instance = device->GetCsisInstanceByOwningHandle(handle); in OnCsisSirkValueUpdate()
1572 BTA_GATTC_Close(device->conn_id); in OnCsisSirkValueUpdate()
1582 log::error("Received invalid zero SIRK conn_id: 0x{:02x}. Disconnecting", device->conn_id); in OnCsisSirkValueUpdate()
1583 BTA_GATTC_Close(device->conn_id); in OnCsisSirkValueUpdate()
1593 sdf(device->addr, received_sirk, sirk); in OnCsisSirkValueUpdate()
1618 group_id = dev_groups_->AddDevice(device->addr, csis_instance->GetUuid()); in OnCsisSirkValueUpdate()
1622 dev_groups_->AddDevice(device->addr, csis_instance->GetUuid(), group_id); in OnCsisSirkValueUpdate()
1626 csis_group->AddDevice(device); in OnCsisSirkValueUpdate()
1632 device->is_gatt_service_valid = true; in OnCsisSirkValueUpdate()
1633 btif_storage_update_csis_info(device->addr); in OnCsisSirkValueUpdate()
1636 NotifyCsisDeviceValidAndStoreIfNeeded(device); in OnCsisSirkValueUpdate()
1640 log::info("SIRK {}, address: {}", base::HexEncode(received_sirk.data(), 16), device->addr); in OnCsisSirkValueUpdate()
1666 void DeregisterNotifications(std::shared_ptr<CsisDevice> device) { in DeregisterNotifications() argument
1667 device->ForEachCsisInstance([&](const std::shared_ptr<CsisInstance>& csis_inst) { in DeregisterNotifications()
1668 DisableGattNotification(device->conn_id, device->addr, in DeregisterNotifications()
1670 DisableGattNotification(device->conn_id, device->addr, in DeregisterNotifications()
1672 DisableGattNotification(device->conn_id, device->addr, in DeregisterNotifications()
1677 void DoDisconnectCleanUp(std::shared_ptr<CsisDevice> device) { in DoDisconnectCleanUp() argument
1678 log::info("{}", device->addr); in DoDisconnectCleanUp()
1680 DeregisterNotifications(device); in DoDisconnectCleanUp()
1682 if (device->IsConnected()) { in DoDisconnectCleanUp()
1683 BtaGattQueue::Clean(device->conn_id); in DoDisconnectCleanUp()
1684 device->conn_id = GATT_INVALID_CONN_ID; in DoDisconnectCleanUp()
1688 bool OnCsisServiceFound(std::shared_ptr<CsisDevice> device, const gatt::Service* service, in OnCsisServiceFound() argument
1697 int group_id = dev_groups_->GetGroupId(device->addr, context_uuid); in OnCsisServiceFound()
1702 device->SetCsisInstance(csis_inst->svc_data.start_handle, csis_inst); in OnCsisServiceFound()
1708 uint16_t ccc_handle = FindCccHandle(device->conn_id, charac.value_handle); in OnCsisServiceFound()
1711 device->RemoveCsisInstance(group_id); in OnCsisServiceFound()
1717 SubscribeForNotifications(device->conn_id, device->addr, charac.value_handle, ccc_handle); in OnCsisServiceFound()
1721 device->addr); in OnCsisServiceFound()
1726 device->addr); in OnCsisServiceFound()
1729 uint16_t ccc_handle = FindCccHandle(device->conn_id, charac.value_handle); in OnCsisServiceFound()
1734 SubscribeForNotifications(device->conn_id, device->addr, charac.value_handle, ccc_handle); in OnCsisServiceFound()
1739 device->addr); in OnCsisServiceFound()
1742 uint16_t ccc_handle = FindCccHandle(device->conn_id, charac.value_handle); in OnCsisServiceFound()
1747 SubscribeForNotifications(device->conn_id, device->addr, charac.value_handle, ccc_handle); in OnCsisServiceFound()
1752 device->addr); in OnCsisServiceFound()
1762 device->RemoveCsisInstance(group_id); in OnCsisServiceFound()
1786 device->conn_id, csis_inst->svc_data.sirk_handle.val_hdl, in OnCsisServiceFound()
1799 device->conn_id, csis_inst->svc_data.lock_handle.val_hdl, in OnCsisServiceFound()
1812 device->conn_id, csis_inst->svc_data.size_handle.val_hdl, in OnCsisServiceFound()
1826 device->conn_id, csis_inst->svc_data.rank_handle, in OnCsisServiceFound()
1904 auto device = FindDeviceByAddress(evt.remote_bda); in OnGattConnected() local
1905 if (device == nullptr) { in OnGattConnected()
1913 if (device->connecting_actively) { in OnGattConnected()
1916 DoDisconnectCleanUp(device); in OnGattConnected()
1921 device->connecting_actively = false; in OnGattConnected()
1922 device->conn_id = evt.conn_id; in OnGattConnected()
1927 if (BTM_SecIsLeSecurityPending(device->addr)) { in OnGattConnected()
1934 if (BTM_IsEncrypted(device->addr, BT_TRANSPORT_LE)) { in OnGattConnected()
1936 OnEncrypted(device); in OnGattConnected()
1941 BTM_SetEncryption(device->addr, BT_TRANSPORT_LE, nullptr, nullptr, BTM_BLE_SEC_ENCRYPT); in OnGattConnected()
1943 log::info("Encryption required for {}. Request result: 0x{:02x}", device->addr, result); in OnGattConnected()
1946 log::error("Link key unknown for {}, disconnect profile", device->addr); in OnGattConnected()
1947 BTA_GATTC_Close(device->conn_id); in OnGattConnected()
1952 auto device = FindDeviceByAddress(evt.remote_bda); in OnGattDisconnected() local
1953 if (device == nullptr) { in OnGattDisconnected()
1958 log::debug("device={}", device->addr); in OnGattDisconnected()
1965 device->ForEachCsisInstance([&](const std::shared_ptr<CsisInstance>& csis_inst) { in OnGattDisconnected()
1971 HandleCsisLockProcedureError(csis_group, device, in OnGattDisconnected()
1977 DoDisconnectCleanUp(device); in OnGattDisconnected()
1981 auto device = FindDeviceByConnId(evt.conn_id); in OnGattServiceSearchComplete() local
1983 if (device == nullptr) { in OnGattServiceSearchComplete()
1989 if (!BTM_IsEncrypted(device->addr, BT_TRANSPORT_LE)) { in OnGattServiceSearchComplete()
1996 if (!device->is_gatt_service_valid) { in OnGattServiceSearchComplete()
1999 BTA_GATTC_Close(device->conn_id); in OnGattServiceSearchComplete()
2000 DoDisconnectCleanUp(device); in OnGattServiceSearchComplete()
2006 const std::list<gatt::Service>* all_services = BTA_GATTC_GetServices(device->conn_id); in OnGattServiceSearchComplete()
2020 BTA_GATTC_Close(device->conn_id); in OnGattServiceSearchComplete()
2021 RemoveCsisDevice(device, bluetooth::groups::kGroupUnknown); in OnGattServiceSearchComplete()
2034 BTA_GATTC_GetOwningService(device->conn_id, included_srvc.start_handle); in OnGattServiceSearchComplete()
2040 instance->OnCsisServiceFound(device, csis_svrc, svrc.uuid, in OnGattServiceSearchComplete()
2054 auto csis_svrc = BTA_GATTC_GetOwningService(device->conn_id, all_csis_start_handles[0]); in OnGattServiceSearchComplete()
2055 instance->OnCsisServiceFound(device, csis_svrc, bluetooth::groups::kGenericContextUuid, in OnGattServiceSearchComplete()
2064 NotifyCsisDeviceValidAndStoreIfNeeded(device); in OnGattServiceSearchComplete()
2080 auto device = FindDeviceByAddress(address); in OnLeEncryptionComplete() local
2081 if (device == nullptr) { in OnLeEncryptionComplete()
2089 BTA_GATTC_Close(device->conn_id); in OnLeEncryptionComplete()
2093 if (device->is_gatt_service_valid) { in OnLeEncryptionComplete()
2094 instance->OnEncrypted(device); in OnLeEncryptionComplete()
2096 BTA_GATTC_ServiceSearchRequest(device->conn_id, kCsisServiceUuid); in OnLeEncryptionComplete()
2100 void ClearDeviceInformationAndStartSearch(std::shared_ptr<CsisDevice> device) { in ClearDeviceInformationAndStartSearch() argument
2101 log::info("{}", device->addr); in ClearDeviceInformationAndStartSearch()
2102 if (device->is_gatt_service_valid == false) { in ClearDeviceInformationAndStartSearch()
2108 BtaGattQueue::Clean(device->conn_id); in ClearDeviceInformationAndStartSearch()
2109 DeregisterNotifications(device); in ClearDeviceInformationAndStartSearch()
2110 device->ClearSvcData(); in ClearDeviceInformationAndStartSearch()
2111 BTA_GATTC_ServiceSearchRequest(device->conn_id, kCsisServiceUuid); in ClearDeviceInformationAndStartSearch()
2115 auto device = FindDeviceByAddress(address); in OnGattServiceChangeEvent() local
2116 if (!device) { in OnGattServiceChangeEvent()
2122 ClearDeviceInformationAndStartSearch(device); in OnGattServiceChangeEvent()
2126 auto device = FindDeviceByAddress(address); in OnGattServiceDiscoveryDoneEvent() local
2127 if (!device) { in OnGattServiceDiscoveryDoneEvent()
2134 if (!device->is_gatt_service_valid) { in OnGattServiceDiscoveryDoneEvent()
2135 BTA_GATTC_ServiceSearchRequest(device->conn_id, kCsisServiceUuid); in OnGattServiceDiscoveryDoneEvent()
2200 auto device = FindDeviceByAddress(address); in SirkValueReadCompleteDuringPairing() local
2201 if (device == nullptr) { in SirkValueReadCompleteDuringPairing()
2207 auto group_id_to_join = device->GetExpectedGroupIdMember(); in SirkValueReadCompleteDuringPairing()
2208 device->SetPairingSirkReadFlag(false); in SirkValueReadCompleteDuringPairing()
2263 auto device = FindDeviceByAddress(address); in VerifySetMember() local
2268 if (!device) { in VerifySetMember()
2274 auto group_id_to_join = device->GetExpectedGroupIdMember(); in VerifySetMember()
2279 address, device->conn_id, device->GetNumberOfCsisInstances()); in VerifySetMember()
2291 device->SetPairingSirkReadFlag(true); in VerifySetMember()