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

Unified Diff: device/bluetooth/bluetooth_device_mac.mm

Issue 317073011: [Bluetooth] Remove the deprecated BluetoothServiceRecordMac class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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
« no previous file with comments | « device/bluetooth/bluetooth.gyp ('k') | device/bluetooth/bluetooth_service_record_mac.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: device/bluetooth/bluetooth_device_mac.mm
diff --git a/device/bluetooth/bluetooth_device_mac.mm b/device/bluetooth/bluetooth_device_mac.mm
index 25c8134ce01596df8ac2f2f26f9d4de27c05b115..60574b040c30b88738dc67db2c4a853261a0e803 100644
--- a/device/bluetooth/bluetooth_device_mac.mm
+++ b/device/bluetooth/bluetooth_device_mac.mm
@@ -14,7 +14,6 @@
#include "base/strings/stringprintf.h"
#include "base/strings/sys_string_conversions.h"
#include "device/bluetooth/bluetooth_profile_mac.h"
-#include "device/bluetooth/bluetooth_service_record_mac.h"
#include "device/bluetooth/bluetooth_socket_mac.h"
#include "device/bluetooth/bluetooth_uuid.h"
@@ -41,6 +40,31 @@
outTransmitPowerLevel:(BluetoothHCITransmitPowerLevel*)level;
@end
+namespace {
+
+void ExtractUuid(IOBluetoothSDPDataElement* service_class_data,
+ std::string* uuid) {
+ NSArray* inner_elements = [service_class_data getArrayValue];
+ IOBluetoothSDPUUID* sdp_uuid = nil;
+ for (IOBluetoothSDPDataElement* inner_element in inner_elements) {
+ if ([inner_element getTypeDescriptor] == kBluetoothSDPDataElementTypeUUID) {
+ sdp_uuid = [[inner_element getUUIDValue] getUUIDWithLength:16];
+ break;
+ }
+ }
+ if (sdp_uuid != nil) {
+ const uint8* uuid_bytes = reinterpret_cast<const uint8*>([sdp_uuid bytes]);
+ *uuid = base::StringPrintf(
+ "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x",
+ uuid_bytes[0], uuid_bytes[1], uuid_bytes[2], uuid_bytes[3],
+ uuid_bytes[4], uuid_bytes[5], uuid_bytes[6], uuid_bytes[7],
+ uuid_bytes[8], uuid_bytes[9], uuid_bytes[10], uuid_bytes[11],
+ uuid_bytes[12], uuid_bytes[13], uuid_bytes[14], uuid_bytes[15]);
+ }
+}
+
+} // namespace
+
namespace device {
BluetoothDeviceMac::BluetoothDeviceMac(IOBluetoothDevice* device)
@@ -130,13 +154,18 @@ bool BluetoothDeviceMac::IsConnecting() const {
return false;
}
-// TODO(keybuk): BluetoothServiceRecord is deprecated; implement this method
-// without using BluetoothServiceRecord.
BluetoothDevice::UUIDList BluetoothDeviceMac::GetUUIDs() const {
UUIDList uuids;
- for (IOBluetoothSDPServiceRecord* service in [device_ services]) {
- BluetoothServiceRecordMac service_record(service);
- uuids.push_back(service_record.uuid());
+ for (IOBluetoothSDPServiceRecord* service_record in [device_ services]) {
+ const BluetoothSDPServiceAttributeID service_class_id = 1;
+ IOBluetoothSDPDataElement* service_class_data =
+ [service_record getAttributeDataElement:service_class_id];
+ if ([service_class_data getTypeDescriptor] ==
+ kBluetoothSDPDataElementTypeDataElementSequence) {
+ std::string uuid_str;
+ ExtractUuid(service_class_data, &uuid_str);
+ uuids.push_back(BluetoothUUID(uuid_str));
+ }
}
return uuids;
}
« no previous file with comments | « device/bluetooth/bluetooth.gyp ('k') | device/bluetooth/bluetooth_service_record_mac.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698