Index: device/bluetooth/adapter.cc |
diff --git a/device/bluetooth/adapter.cc b/device/bluetooth/adapter.cc |
index 1d0a25aaa3e9c025fbe734d88e760ba4c073152e..8737115803cd97bb68d8e80a79c8bb896ca7bd21 100644 |
--- a/device/bluetooth/adapter.cc |
+++ b/device/bluetooth/adapter.cc |
@@ -6,16 +6,15 @@ |
#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/le_device.h" |
#include "mojo/public/cpp/bindings/strong_binding.h" |
namespace bluetooth { |
Adapter::Adapter(scoped_refptr<device::BluetoothAdapter> adapter) |
- : adapter_(adapter), client_(nullptr), weak_ptr_factory_(this) { |
+ : adapter_(std::move(adapter)), client_(nullptr), weak_ptr_factory_(this) { |
adapter_->AddObserver(this); |
} |
@@ -36,11 +35,21 @@ void Adapter::GetInfo(const GetInfoCallback& callback) { |
callback.Run(std::move(adapter_info)); |
} |
+void Adapter::GetDeviceService(const std::string& address, |
+ const GetDeviceServiceCallback& callback) { |
+ mojom::LEDevicePtr device_ptr; |
+ mojo::MakeStrongBinding( |
+ base::MakeUnique<LEDevice>(address, std::move(adapter_)), |
ortuno
2016/10/10 00:11:20
Any reason why you are using std::move here? std::
mbrunson
2016/10/10 19:21:28
You are right. This shouldn't be here.
|
+ mojo::GetProxy(&device_ptr)); |
+ callback.Run(std::move(device_ptr)); |
+} |
+ |
void Adapter::GetDevices(const GetDevicesCallback& callback) { |
- std::vector<mojom::DeviceInfoPtr> devices; |
+ std::vector<mojom::LEDeviceInfoPtr> devices; |
for (const device::BluetoothDevice* device : adapter_->GetDevices()) { |
- mojom::DeviceInfoPtr device_info = ConstructDeviceInfoStruct(device); |
+ mojom::LEDeviceInfoPtr device_info = |
+ LEDevice::ConstructLEDeviceInfoStruct(device); |
devices.push_back(std::move(device_info)); |
} |
@@ -54,7 +63,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 = LEDevice::ConstructLEDeviceInfoStruct(device); |
client_->DeviceAdded(std::move(device_info)); |
} |
} |
@@ -62,23 +71,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 = LEDevice::ConstructLEDeviceInfoStruct(device); |
client_->DeviceRemoved(std::move(device_info)); |
} |
} |
-// static |
-mojom::DeviceInfoPtr Adapter::ConstructDeviceInfoStruct( |
- const device::BluetoothDevice* const 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 |