| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "device/bluetooth/bluetooth_classic_device_mac.h" | 5 #include "device/bluetooth/bluetooth_classic_device_mac.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/hash.h" | 10 #include "base/hash.h" |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 55 uuid_str.insert(18, "-"); | 55 uuid_str.insert(18, "-"); |
| 56 uuid_str.insert(23, "-"); | 56 uuid_str.insert(23, "-"); |
| 57 return BluetoothUUID(uuid_str); | 57 return BluetoothUUID(uuid_str); |
| 58 } | 58 } |
| 59 | 59 |
| 60 } // namespace | 60 } // namespace |
| 61 | 61 |
| 62 BluetoothClassicDeviceMac::BluetoothClassicDeviceMac( | 62 BluetoothClassicDeviceMac::BluetoothClassicDeviceMac( |
| 63 BluetoothAdapterMac* adapter, | 63 BluetoothAdapterMac* adapter, |
| 64 IOBluetoothDevice* device) | 64 IOBluetoothDevice* device) |
| 65 : BluetoothDeviceMac(adapter), device_([device retain]) {} | 65 : BluetoothDeviceMac(adapter), device_([device retain]) { |
| 66 UpdateTimestamp(); |
| 67 } |
| 66 | 68 |
| 67 BluetoothClassicDeviceMac::~BluetoothClassicDeviceMac() { | 69 BluetoothClassicDeviceMac::~BluetoothClassicDeviceMac() { |
| 68 } | 70 } |
| 69 | 71 |
| 70 uint32_t BluetoothClassicDeviceMac::GetBluetoothClass() const { | 72 uint32_t BluetoothClassicDeviceMac::GetBluetoothClass() const { |
| 71 return [device_ classOfDevice]; | 73 return [device_ classOfDevice]; |
| 72 } | 74 } |
| 73 | 75 |
| 74 void BluetoothClassicDeviceMac::CreateGattConnectionImpl() { | 76 void BluetoothClassicDeviceMac::CreateGattConnectionImpl() { |
| 75 // Classic devices do not support GATT connection. | 77 // Classic devices do not support GATT connection. |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 248 } | 250 } |
| 249 | 251 |
| 250 void BluetoothClassicDeviceMac::CreateGattConnection( | 252 void BluetoothClassicDeviceMac::CreateGattConnection( |
| 251 const GattConnectionCallback& callback, | 253 const GattConnectionCallback& callback, |
| 252 const ConnectErrorCallback& error_callback) { | 254 const ConnectErrorCallback& error_callback) { |
| 253 // TODO(armansito): Implement. | 255 // TODO(armansito): Implement. |
| 254 error_callback.Run(ERROR_UNSUPPORTED_DEVICE); | 256 error_callback.Run(ERROR_UNSUPPORTED_DEVICE); |
| 255 } | 257 } |
| 256 | 258 |
| 257 base::Time BluetoothClassicDeviceMac::GetLastUpdateTime() const { | 259 base::Time BluetoothClassicDeviceMac::GetLastUpdateTime() const { |
| 258 return base::Time::FromDoubleT( | 260 // Even when a device is discovered during an inquiry procedure this returns |
| 259 [[device_ getLastInquiryUpdate] timeIntervalSince1970]); | 261 // nil so we implement out own last_update_time_ which gets updated whenever |
| 262 // the device is found. |
| 263 NSDate* inquiry_update = [device_ getLastInquiryUpdate]; |
| 264 if (inquiry_update != nil) { |
| 265 return base::Time::FromDoubleT([inquiry_update timeIntervalSince1970]); |
| 266 } |
| 267 return last_update_time_; |
| 260 } | 268 } |
| 261 | 269 |
| 262 int BluetoothClassicDeviceMac::GetHostTransmitPower( | 270 int BluetoothClassicDeviceMac::GetHostTransmitPower( |
| 263 BluetoothHCITransmitPowerLevelType power_level_type) const { | 271 BluetoothHCITransmitPowerLevelType power_level_type) const { |
| 264 IOBluetoothHostController* controller = | 272 IOBluetoothHostController* controller = |
| 265 [IOBluetoothHostController defaultController]; | 273 [IOBluetoothHostController defaultController]; |
| 266 | 274 |
| 267 // Bail if the undocumented API is unavailable on this machine. | 275 // Bail if the undocumented API is unavailable on this machine. |
| 268 SEL selector = @selector(BluetoothHCIReadTransmitPowerLevel: | 276 SEL selector = @selector(BluetoothHCIReadTransmitPowerLevel: |
| 269 inType: | 277 inType: |
| (...skipping 12 matching lines...) Expand all Loading... |
| 282 return power_level; | 290 return power_level; |
| 283 } | 291 } |
| 284 | 292 |
| 285 // static | 293 // static |
| 286 std::string BluetoothClassicDeviceMac::GetDeviceAddress( | 294 std::string BluetoothClassicDeviceMac::GetDeviceAddress( |
| 287 IOBluetoothDevice* device) { | 295 IOBluetoothDevice* device) { |
| 288 return CanonicalizeAddress(base::SysNSStringToUTF8([device addressString])); | 296 return CanonicalizeAddress(base::SysNSStringToUTF8([device addressString])); |
| 289 } | 297 } |
| 290 | 298 |
| 291 } // namespace device | 299 } // namespace device |
| OLD | NEW |