Index: device/bluetooth/adapter.cc |
diff --git a/device/bluetooth/adapter.cc b/device/bluetooth/adapter.cc |
index 2352f23b38c9e38db2b432cbd680c092263804fd..c7b98d93551a55b3a203a88d807154d158d400ea 100644 |
--- a/device/bluetooth/adapter.cc |
+++ b/device/bluetooth/adapter.cc |
@@ -6,10 +6,9 @@ |
#include <utility> |
#include <vector> |
-#include "base/memory/ptr_util.h" |
-#include "base/strings/utf_string_conversions.h" |
#include "device/bluetooth/adapter.h" |
-#include "mojo/public/cpp/bindings/string.h" |
+#include "device/bluetooth/bluetooth_adapter_factory.h" |
+#include "device/bluetooth/device.h" |
#include "mojo/public/cpp/bindings/strong_binding.h" |
namespace bluetooth { |
@@ -36,11 +35,20 @@ void Adapter::GetInfo(const GetInfoCallback& callback) { |
callback.Run(std::move(adapter_info)); |
} |
+void Adapter::GetDevice(const std::string& address, |
+ const GetDeviceCallback& callback) { |
+ mojom::DevicePtr device_ptr; |
+ mojo::MakeStrongBinding(base::MakeUnique<Device>(address, adapter_), |
+ mojo::GetProxy(&device_ptr)); |
+ callback.Run(std::move(device_ptr)); |
+} |
+ |
void Adapter::GetDevices(const GetDevicesCallback& callback) { |
std::vector<mojom::DeviceInfoPtr> devices; |
for (const device::BluetoothDevice* device : adapter_->GetDevices()) { |
- mojom::DeviceInfoPtr device_info = ConstructDeviceInfoStruct(device); |
+ mojom::DeviceInfoPtr device_info = |
+ Device::ConstructDeviceInfoStruct(device); |
devices.push_back(std::move(device_info)); |
} |
@@ -54,7 +62,7 @@ void Adapter::SetClient(mojom::AdapterClientPtr client) { |
void Adapter::DeviceAdded(device::BluetoothAdapter* adapter, |
device::BluetoothDevice* device) { |
if (client_) { |
- auto device_info = ConstructDeviceInfoStruct(device); |
+ auto device_info = Device::ConstructDeviceInfoStruct(device); |
client_->DeviceAdded(std::move(device_info)); |
} |
} |
@@ -62,23 +70,9 @@ void Adapter::DeviceAdded(device::BluetoothAdapter* adapter, |
void Adapter::DeviceRemoved(device::BluetoothAdapter* adapter, |
device::BluetoothDevice* device) { |
if (client_) { |
- auto device_info = ConstructDeviceInfoStruct(device); |
+ auto device_info = Device::ConstructDeviceInfoStruct(device); |
client_->DeviceRemoved(std::move(device_info)); |
} |
} |
-// static |
-mojom::DeviceInfoPtr Adapter::ConstructDeviceInfoStruct( |
- const device::BluetoothDevice* device) { |
- mojom::DeviceInfoPtr device_info = mojom::DeviceInfo::New(); |
- |
- device_info->name = device->GetName(); |
- device_info->name_for_display = |
- base::UTF16ToUTF8(device->GetNameForDisplay()); |
- device_info->id = device->GetIdentifier(); |
- device_info->address = device->GetAddress(); |
- |
- return device_info; |
-} |
- |
} // namespace bluetooth |