Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1334)

Unified Diff: device/bluetooth/adapter.cc

Issue 2564113003: bluetooth: Add basic scanning to chrome://bluetooth-internals. (Closed)
Patch Set: Change jsDoc for discoverySession variable Created 3 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: device/bluetooth/adapter.cc
diff --git a/device/bluetooth/adapter.cc b/device/bluetooth/adapter.cc
index 8462fc8e0f4abe8a9700d361d20f60825ee3cc05..3f1d32274a92a64adcbec1948f79f444f84ab314 100644
--- a/device/bluetooth/adapter.cc
+++ b/device/bluetooth/adapter.cc
@@ -9,7 +9,9 @@
#include "base/memory/ptr_util.h"
#include "device/bluetooth/adapter.h"
#include "device/bluetooth/device.h"
+#include "device/bluetooth/discovery_session.h"
#include "device/bluetooth/public/interfaces/connect_result_type_converter.h"
+#include "mojo/public/cpp/bindings/strong_binding.h"
namespace bluetooth {
@@ -23,18 +25,6 @@ Adapter::~Adapter() {
adapter_ = nullptr;
}
-void Adapter::GetInfo(const GetInfoCallback& callback) {
- mojom::AdapterInfoPtr adapter_info = mojom::AdapterInfo::New();
- adapter_info->address = adapter_->GetAddress();
- adapter_info->name = adapter_->GetName();
- adapter_info->initialized = adapter_->IsInitialized();
- adapter_info->present = adapter_->IsPresent();
- adapter_info->powered = adapter_->IsPowered();
- adapter_info->discoverable = adapter_->IsDiscoverable();
- adapter_info->discovering = adapter_->IsDiscovering();
- callback.Run(std::move(adapter_info));
-}
-
void Adapter::ConnectToDevice(const std::string& address,
const ConnectToDeviceCallback& callback) {
device::BluetoothDevice* device = adapter_->GetDevice(address);
@@ -64,10 +54,37 @@ void Adapter::GetDevices(const GetDevicesCallback& callback) {
callback.Run(std::move(devices));
}
+void Adapter::GetInfo(const GetInfoCallback& callback) {
+ mojom::AdapterInfoPtr adapter_info = mojom::AdapterInfo::New();
+ adapter_info->address = adapter_->GetAddress();
+ adapter_info->name = adapter_->GetName();
+ adapter_info->initialized = adapter_->IsInitialized();
+ adapter_info->present = adapter_->IsPresent();
+ adapter_info->powered = adapter_->IsPowered();
+ adapter_info->discoverable = adapter_->IsDiscoverable();
+ adapter_info->discovering = adapter_->IsDiscovering();
+ callback.Run(std::move(adapter_info));
+}
+
void Adapter::SetClient(mojom::AdapterClientPtr client) {
client_ = std::move(client);
}
+void Adapter::StartDiscoverySession(
+ const StartDiscoverySessionCallback& callback) {
+ adapter_->StartDiscoverySession(
+ base::Bind(&Adapter::OnStartDiscoverySession,
+ weak_ptr_factory_.GetWeakPtr(), callback),
+ base::Bind(&Adapter::OnDiscoverySessionError,
+ weak_ptr_factory_.GetWeakPtr(), callback));
+}
+
+void Adapter::AdapterDiscoveringChanged(device::BluetoothAdapter* adapter,
+ bool discovering) {
+ if (client_)
+ client_->DiscoveringChanged(discovering);
+}
+
void Adapter::DeviceAdded(device::BluetoothAdapter* adapter,
device::BluetoothDevice* device) {
if (client_) {
@@ -76,19 +93,19 @@ void Adapter::DeviceAdded(device::BluetoothAdapter* adapter,
}
}
-void Adapter::DeviceRemoved(device::BluetoothAdapter* adapter,
+void Adapter::DeviceChanged(device::BluetoothAdapter* adapter,
device::BluetoothDevice* device) {
if (client_) {
auto device_info = Device::ConstructDeviceInfoStruct(device);
- client_->DeviceRemoved(std::move(device_info));
+ client_->DeviceChanged(std::move(device_info));
}
}
-void Adapter::DeviceChanged(device::BluetoothAdapter* adapter,
+void Adapter::DeviceRemoved(device::BluetoothAdapter* adapter,
device::BluetoothDevice* device) {
if (client_) {
auto device_info = Device::ConstructDeviceInfoStruct(device);
- client_->DeviceChanged(std::move(device_info));
+ client_->DeviceRemoved(std::move(device_info));
}
}
@@ -107,4 +124,20 @@ void Adapter::OnConnectError(
callback.Run(mojo::ConvertTo<mojom::ConnectResult>(error_code),
nullptr /* Device */);
}
+
+void Adapter::OnStartDiscoverySession(
+ const StartDiscoverySessionCallback& callback,
+ std::unique_ptr<device::BluetoothDiscoverySession> session) {
+ mojom::DiscoverySessionPtr session_ptr;
+ mojo::MakeStrongBinding(
+ base::MakeUnique<DiscoverySession>(std::move(session)),
+ mojo::MakeRequest(&session_ptr));
+ callback.Run(std::move(session_ptr));
+}
+
+void Adapter::OnDiscoverySessionError(
+ const StartDiscoverySessionCallback& callback) {
+ callback.Run(nullptr /* session */);
+}
+
} // namespace bluetooth

Powered by Google App Engine
This is Rietveld 408576698