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