Loading system/gd/hal/hci_hal_android_hidl.cc +25 −8 Original line number Diff line number Diff line Loading @@ -73,11 +73,13 @@ class InternalHciCallbacks : public IBluetoothHciCallbacks { } void SetCallback(HciHalCallbacks* callback) { std::lock_guard<std::mutex> incoming_packet_callback_lock(incoming_packet_callback_mutex_); ASSERT(callback_ == nullptr && callback != nullptr); callback_ = callback; } void ResetCallback() { std::lock_guard<std::mutex> incoming_packet_callback_lock(incoming_packet_callback_mutex_); LOG_INFO("callbacks have been reset!"); callback_ = nullptr; } Loading @@ -101,9 +103,12 @@ class InternalHciCallbacks : public IBluetoothHciCallbacks { if (common::init_flags::btaa_hci_is_enabled()) { btaa_logger_->Capture(received_hci_packet, SnoopLogger::PacketType::EVT); } { std::lock_guard<std::mutex> incoming_packet_callback_lock(incoming_packet_callback_mutex_); if (callback_ != nullptr) { callback_->hciEventReceived(std::move(received_hci_packet)); } } return Void(); } Loading @@ -114,9 +119,12 @@ class InternalHciCallbacks : public IBluetoothHciCallbacks { if (common::init_flags::btaa_hci_is_enabled()) { btaa_logger_->Capture(received_hci_packet, SnoopLogger::PacketType::ACL); } { std::lock_guard<std::mutex> incoming_packet_callback_lock(incoming_packet_callback_mutex_); if (callback_ != nullptr) { callback_->aclDataReceived(std::move(received_hci_packet)); } } return Void(); } Loading @@ -127,9 +135,13 @@ class InternalHciCallbacks : public IBluetoothHciCallbacks { if (common::init_flags::btaa_hci_is_enabled()) { btaa_logger_->Capture(received_hci_packet, SnoopLogger::PacketType::SCO); } { std::lock_guard<std::mutex> incoming_packet_callback_lock(incoming_packet_callback_mutex_); if (callback_ != nullptr) { callback_->scoDataReceived(std::move(received_hci_packet)); } } return Void(); } Loading @@ -137,13 +149,18 @@ class InternalHciCallbacks : public IBluetoothHciCallbacks { common::StopWatch stop_watch(GetTimerText(__func__, data)); std::vector<uint8_t> received_hci_packet(data.begin(), data.end()); btsnoop_logger_->Capture(received_hci_packet, SnoopLogger::Direction::INCOMING, SnoopLogger::PacketType::ISO); { std::lock_guard<std::mutex> incoming_packet_callback_lock(incoming_packet_callback_mutex_); if (callback_ != nullptr) { callback_->isoDataReceived(std::move(received_hci_packet)); } } return Void(); } private: std::mutex incoming_packet_callback_mutex_; std::promise<void>* init_promise_ = nullptr; HciHalCallbacks* callback_ = nullptr; activity_attribution::ActivityAttribution* btaa_logger_ = nullptr; Loading Loading
system/gd/hal/hci_hal_android_hidl.cc +25 −8 Original line number Diff line number Diff line Loading @@ -73,11 +73,13 @@ class InternalHciCallbacks : public IBluetoothHciCallbacks { } void SetCallback(HciHalCallbacks* callback) { std::lock_guard<std::mutex> incoming_packet_callback_lock(incoming_packet_callback_mutex_); ASSERT(callback_ == nullptr && callback != nullptr); callback_ = callback; } void ResetCallback() { std::lock_guard<std::mutex> incoming_packet_callback_lock(incoming_packet_callback_mutex_); LOG_INFO("callbacks have been reset!"); callback_ = nullptr; } Loading @@ -101,9 +103,12 @@ class InternalHciCallbacks : public IBluetoothHciCallbacks { if (common::init_flags::btaa_hci_is_enabled()) { btaa_logger_->Capture(received_hci_packet, SnoopLogger::PacketType::EVT); } { std::lock_guard<std::mutex> incoming_packet_callback_lock(incoming_packet_callback_mutex_); if (callback_ != nullptr) { callback_->hciEventReceived(std::move(received_hci_packet)); } } return Void(); } Loading @@ -114,9 +119,12 @@ class InternalHciCallbacks : public IBluetoothHciCallbacks { if (common::init_flags::btaa_hci_is_enabled()) { btaa_logger_->Capture(received_hci_packet, SnoopLogger::PacketType::ACL); } { std::lock_guard<std::mutex> incoming_packet_callback_lock(incoming_packet_callback_mutex_); if (callback_ != nullptr) { callback_->aclDataReceived(std::move(received_hci_packet)); } } return Void(); } Loading @@ -127,9 +135,13 @@ class InternalHciCallbacks : public IBluetoothHciCallbacks { if (common::init_flags::btaa_hci_is_enabled()) { btaa_logger_->Capture(received_hci_packet, SnoopLogger::PacketType::SCO); } { std::lock_guard<std::mutex> incoming_packet_callback_lock(incoming_packet_callback_mutex_); if (callback_ != nullptr) { callback_->scoDataReceived(std::move(received_hci_packet)); } } return Void(); } Loading @@ -137,13 +149,18 @@ class InternalHciCallbacks : public IBluetoothHciCallbacks { common::StopWatch stop_watch(GetTimerText(__func__, data)); std::vector<uint8_t> received_hci_packet(data.begin(), data.end()); btsnoop_logger_->Capture(received_hci_packet, SnoopLogger::Direction::INCOMING, SnoopLogger::PacketType::ISO); { std::lock_guard<std::mutex> incoming_packet_callback_lock(incoming_packet_callback_mutex_); if (callback_ != nullptr) { callback_->isoDataReceived(std::move(received_hci_packet)); } } return Void(); } private: std::mutex incoming_packet_callback_mutex_; std::promise<void>* init_promise_ = nullptr; HciHalCallbacks* callback_ = nullptr; activity_attribution::ActivityAttribution* btaa_logger_ = nullptr; Loading