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

Side by Side Diff: device/bluetooth/bluetooth_adapter_mac.mm

Issue 2854733002: bluetooth: macOS: BluetoothLowEnergyDeviceMac::IsConnectable() not implemented (Closed)
Patch Set: Adding unittests and implementation Created 3 years, 7 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 unified diff | Download patch
OLDNEW
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 512 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 CBPeripheral* peripheral, 523 CBPeripheral* peripheral,
524 NSDictionary* advertisement_data, 524 NSDictionary* advertisement_data,
525 int rssi) { 525 int rssi) {
526 BluetoothLowEnergyDeviceMac* device_mac = 526 BluetoothLowEnergyDeviceMac* device_mac =
527 GetBluetoothLowEnergyDeviceMac(peripheral); 527 GetBluetoothLowEnergyDeviceMac(peripheral);
528 // If has no entry in the map, create new device and insert into |devices_|, 528 // If has no entry in the map, create new device and insert into |devices_|,
529 // otherwise update the existing device. 529 // otherwise update the existing device.
530 const bool is_new_device = device_mac == nullptr; 530 const bool is_new_device = device_mac == nullptr;
531 if (is_new_device) { 531 if (is_new_device) {
532 // A new device has been found. 532 // A new device has been found.
533 device_mac = new BluetoothLowEnergyDeviceMac(this, peripheral); 533 bool connectable =
534 [advertisement_data[CBAdvertisementDataIsConnectable] boolValue];
535 device_mac = new BluetoothLowEnergyDeviceMac(this, peripheral, connectable);
534 VLOG(1) << *device_mac << ": New Device."; 536 VLOG(1) << *device_mac << ": New Device.";
535 } else if (DoesCollideWithKnownDevice(peripheral, device_mac)) { 537 } else if (DoesCollideWithKnownDevice(peripheral, device_mac)) {
536 return; 538 return;
537 } 539 }
538 540
539 DCHECK(device_mac); 541 DCHECK(device_mac);
540 VLOG(3) << *device_mac << ": Device updated with " 542 VLOG(3) << *device_mac << ": Device updated with "
541 << base::SysNSStringToUTF8([advertisement_data description]); 543 << base::SysNSStringToUTF8([advertisement_data description]);
542 544
543 // Get Advertised UUIDs 545 // Get Advertised UUIDs
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
628 std::vector<BluetoothDevice*> connected_devices; 630 std::vector<BluetoothDevice*> connected_devices;
629 for (CBPeripheral* peripheral in peripherals) { 631 for (CBPeripheral* peripheral in peripherals) {
630 BluetoothLowEnergyDeviceMac* device_mac = 632 BluetoothLowEnergyDeviceMac* device_mac =
631 GetBluetoothLowEnergyDeviceMac(peripheral); 633 GetBluetoothLowEnergyDeviceMac(peripheral);
632 const bool is_new_device = device_mac == nullptr; 634 const bool is_new_device = device_mac == nullptr;
633 635
634 if (!is_new_device && DoesCollideWithKnownDevice(peripheral, device_mac)) { 636 if (!is_new_device && DoesCollideWithKnownDevice(peripheral, device_mac)) {
635 continue; 637 continue;
636 } 638 }
637 if (is_new_device) { 639 if (is_new_device) {
638 device_mac = new BluetoothLowEnergyDeviceMac(this, peripheral); 640 device_mac = new BluetoothLowEnergyDeviceMac(this, peripheral, true);
639 std::string device_address = 641 std::string device_address =
640 BluetoothLowEnergyDeviceMac::GetPeripheralHashAddress(peripheral); 642 BluetoothLowEnergyDeviceMac::GetPeripheralHashAddress(peripheral);
641 devices_[device_address] = base::WrapUnique(device_mac); 643 devices_[device_address] = base::WrapUnique(device_mac);
642 for (auto& observer : observers_) { 644 for (auto& observer : observers_) {
643 observer.DeviceAdded(this, device_mac); 645 observer.DeviceAdded(this, device_mac);
644 } 646 }
645 } 647 }
646 connected_devices.push_back(device_mac); 648 connected_devices.push_back(device_mac);
647 VLOG(1) << *device_mac << ": New connected device."; 649 VLOG(1) << *device_mac << ": New connected device.";
648 } 650 }
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
731 // hash the probability of this occuring with 10,000 devices 733 // hash the probability of this occuring with 10,000 devices
732 // simultaneously present is 1e-6 (see 734 // simultaneously present is 1e-6 (see
733 // https://en.wikipedia.org/wiki/Birthday_problem#Probability_table). We 735 // https://en.wikipedia.org/wiki/Birthday_problem#Probability_table). We
734 // ignore the second device by returning. 736 // ignore the second device by returning.
735 return true; 737 return true;
736 } 738 }
737 return false; 739 return false;
738 } 740 }
739 741
740 } // namespace device 742 } // namespace device
OLDNEW
« no previous file with comments | « no previous file | device/bluetooth/bluetooth_adapter_unittest.cc » ('j') | device/bluetooth/bluetooth_low_energy_device_mac.mm » ('J')

Powered by Google App Engine
This is Rietveld 408576698