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_adapter_mac.h" | 5 #include "device/bluetooth/bluetooth_adapter_mac.h" |
6 | 6 |
7 #import <IOBluetooth/objc/IOBluetoothDevice.h> | 7 #import <IOBluetooth/objc/IOBluetoothDevice.h> |
8 #import <IOBluetooth/objc/IOBluetoothHostController.h> | 8 #import <IOBluetooth/objc/IOBluetoothHostController.h> |
9 #include <stddef.h> | 9 #include <stddef.h> |
10 | 10 |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
225 void BluetoothAdapterMac::SetCentralManagerForTesting( | 225 void BluetoothAdapterMac::SetCentralManagerForTesting( |
226 CBCentralManager* central_manager) { | 226 CBCentralManager* central_manager) { |
227 CHECK(BluetoothAdapterMac::IsLowEnergyAvailable()); | 227 CHECK(BluetoothAdapterMac::IsLowEnergyAvailable()); |
228 [central_manager performSelector:@selector(setDelegate:) | 228 [central_manager performSelector:@selector(setDelegate:) |
229 withObject:low_energy_central_manager_delegate_]; | 229 withObject:low_energy_central_manager_delegate_]; |
230 low_energy_central_manager_.reset(central_manager); | 230 low_energy_central_manager_.reset(central_manager); |
231 low_energy_discovery_manager_->SetCentralManager( | 231 low_energy_discovery_manager_->SetCentralManager( |
232 low_energy_central_manager_.get()); | 232 low_energy_central_manager_.get()); |
233 } | 233 } |
234 | 234 |
| 235 CBCentralManager* BluetoothAdapterMac::GetCentralManagerForTesting() { |
| 236 return low_energy_central_manager_; |
| 237 } |
| 238 |
235 void BluetoothAdapterMac::RemovePairingDelegateInternal( | 239 void BluetoothAdapterMac::RemovePairingDelegateInternal( |
236 BluetoothDevice::PairingDelegate* pairing_delegate) { | 240 BluetoothDevice::PairingDelegate* pairing_delegate) { |
237 } | 241 } |
238 | 242 |
239 void BluetoothAdapterMac::AddDiscoverySession( | 243 void BluetoothAdapterMac::AddDiscoverySession( |
240 BluetoothDiscoveryFilter* discovery_filter, | 244 BluetoothDiscoveryFilter* discovery_filter, |
241 const base::Closure& callback, | 245 const base::Closure& callback, |
242 const DiscoverySessionErrorCallback& error_callback) { | 246 const DiscoverySessionErrorCallback& error_callback) { |
243 DVLOG(1) << __func__; | 247 DVLOG(1) << __func__; |
244 if (num_discovery_sessions_ > 0) { | 248 if (num_discovery_sessions_ > 0) { |
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
530 } | 534 } |
531 } | 535 } |
532 | 536 |
533 void BluetoothAdapterMac::AddPairedDevices() { | 537 void BluetoothAdapterMac::AddPairedDevices() { |
534 // Add any new paired devices. | 538 // Add any new paired devices. |
535 for (IOBluetoothDevice* device in [IOBluetoothDevice pairedDevices]) { | 539 for (IOBluetoothDevice* device in [IOBluetoothDevice pairedDevices]) { |
536 ClassicDeviceAdded(device); | 540 ClassicDeviceAdded(device); |
537 } | 541 } |
538 } | 542 } |
539 | 543 |
| 544 void BluetoothAdapterMac::CreateGattConnection( |
| 545 BluetoothLowEnergyDeviceMac* device_mac) { |
| 546 [low_energy_central_manager_ connectPeripheral:device_mac->peripheral_ |
| 547 options:nil]; |
| 548 } |
| 549 |
| 550 void BluetoothAdapterMac::DidConnectPeripheral(CBPeripheral* peripheral) { |
| 551 std::string device_address = |
| 552 BluetoothLowEnergyDeviceMac::GetPeripheralHashAddress(peripheral); |
| 553 // Try to find device from |devices_| with key |device_address|, |
| 554 // if has no entry in the map, disconnect the peripheral. |
| 555 DevicesMap::const_iterator iter = devices_.find(device_address); |
| 556 if (iter == devices_.end()) { |
| 557 [low_energy_central_manager_ cancelPeripheralConnection:peripheral]; |
| 558 return; |
| 559 } |
| 560 BluetoothLowEnergyDeviceMac* device_mac = |
| 561 static_cast<BluetoothLowEnergyDeviceMac*>(iter->second); |
| 562 device_mac->GattConnected(); |
| 563 } |
| 564 |
| 565 void BluetoothAdapterMac::DisconnectGatt( |
| 566 BluetoothLowEnergyDeviceMac* device_mac) { |
| 567 [low_energy_central_manager_ |
| 568 cancelPeripheralConnection:device_mac->peripheral_]; |
| 569 } |
| 570 |
540 } // namespace device | 571 } // namespace device |
OLD | NEW |