| Index: device/bluetooth/bluetooth_task_manager_win.cc
|
| diff --git a/device/bluetooth/bluetooth_task_manager_win.cc b/device/bluetooth/bluetooth_task_manager_win.cc
|
| index fc803d52f8aae3c67ff474c7406c8c637afd32e0..7bfc32b658eda1c961ce5e37e9f423031f114565 100644
|
| --- a/device/bluetooth/bluetooth_task_manager_win.cc
|
| +++ b/device/bluetooth/bluetooth_task_manager_win.cc
|
| @@ -42,6 +42,29 @@ std::string BluetoothAddressToString(const BLUETOOTH_ADDRESS& btha) {
|
| btha.rgBytes[0]);
|
| }
|
|
|
| +device::BluetoothUUID BluetoothLowEnergyUuidToUBluetoothUuid(
|
| + const BTH_LE_UUID& bth_le_uuid) {
|
| + if (bth_le_uuid.IsShortUuid) {
|
| + std::string uuid_hex =
|
| + base::StringPrintf("%04x", bth_le_uuid.Value.ShortUuid);
|
| + return device::BluetoothUUID(uuid_hex);
|
| + } else {
|
| + return device::BluetoothUUID(
|
| + base::StringPrintf("%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
|
| + bth_le_uuid.Value.LongUuid.Data1,
|
| + bth_le_uuid.Value.LongUuid.Data2,
|
| + bth_le_uuid.Value.LongUuid.Data3,
|
| + bth_le_uuid.Value.LongUuid.Data4[0],
|
| + bth_le_uuid.Value.LongUuid.Data4[1],
|
| + bth_le_uuid.Value.LongUuid.Data4[2],
|
| + bth_le_uuid.Value.LongUuid.Data4[3],
|
| + bth_le_uuid.Value.LongUuid.Data4[4],
|
| + bth_le_uuid.Value.LongUuid.Data4[5],
|
| + bth_le_uuid.Value.LongUuid.Data4[6],
|
| + bth_le_uuid.Value.LongUuid.Data4[7]));
|
| + }
|
| +}
|
| +
|
| // Populates bluetooth adapter state using adapter_handle.
|
| void GetAdapterState(HANDLE adapter_handle,
|
| device::BluetoothTaskManagerWin::AdapterState* state) {
|
| @@ -104,7 +127,6 @@ void DiscoverDeviceServices(
|
| ServiceRecordState* service_record_state = new ServiceRecordState();
|
| service_record_state->name =
|
| base::SysWideToUTF8(sdp_result_data->lpszServiceInstanceName);
|
| - service_record_state->address = device_address;
|
| for (uint64 i = 0; i < sdp_result_data->lpBlob->cbSize; i++) {
|
| service_record_state->sdp_bytes.push_back(
|
| sdp_result_data->lpBlob->pBlobData[i]);
|
| @@ -410,6 +432,21 @@ void BluetoothTaskManagerWin::GetKnownDevices() {
|
| device_state->authenticated = device_info->authenticated;
|
| device_state->connected = device_info->connected;
|
| device_state->path = device_info->path;
|
| +
|
| + ScopedVector<win::BluetoothLowEnergyServiceInfo> services;
|
| + success = win::EnumerateKnownBluetoothLowEnergyServices(
|
| + device_info, &services, &error);
|
| + if (success) {
|
| + for (ScopedVector<win::BluetoothLowEnergyServiceInfo>::iterator
|
| + iter2 = services.begin();
|
| + iter2 != services.end();
|
| + ++iter2) {
|
| + ServiceRecordState* service_state = new ServiceRecordState();
|
| + service_state->gatt_uuid =
|
| + BluetoothLowEnergyUuidToUBluetoothUuid((*iter2)->uuid);
|
| + device_state->service_record_states.push_back(service_state);
|
| + }
|
| + }
|
| device_list->push_back(device_state);
|
| }
|
| }
|
|
|