OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_low_energy_win.h" | 5 #include "device/bluetooth/bluetooth_low_energy_win.h" |
6 | 6 |
7 #include "base/files/file.h" | 7 #include "base/files/file.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "base/strings/sys_string_conversions.h" | 10 #include "base/strings/sys_string_conversions.h" |
(...skipping 634 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
645 address.ullLong = BLUETOOTH_NULL_ADDRESS; | 645 address.ullLong = BLUETOOTH_NULL_ADDRESS; |
646 } | 646 } |
647 | 647 |
648 BluetoothLowEnergyDeviceInfo::~BluetoothLowEnergyDeviceInfo() { | 648 BluetoothLowEnergyDeviceInfo::~BluetoothLowEnergyDeviceInfo() { |
649 } | 649 } |
650 | 650 |
651 bool IsBluetoothLowEnergySupported() { | 651 bool IsBluetoothLowEnergySupported() { |
652 return base::win::GetVersion() >= base::win::VERSION_WIN8; | 652 return base::win::GetVersion() >= base::win::VERSION_WIN8; |
653 } | 653 } |
654 | 654 |
655 bool EnumerateKnownBluetoothLowEnergyDevices( | 655 bool ExtractBluetoothAddressFromDeviceInstanceIdForTesting( |
| 656 const std::string& instance_id, |
| 657 BLUETOOTH_ADDRESS* btha, |
| 658 std::string* error) { |
| 659 return ExtractBluetoothAddressFromDeviceInstanceId(instance_id, btha, error); |
| 660 } |
| 661 |
| 662 static BluetoothLowEnergyWrapper* instance_ = nullptr; |
| 663 BluetoothLowEnergyWrapper* BluetoothLowEnergyWrapper::GetInstance() { |
| 664 if (instance_ == nullptr) { |
| 665 instance_ = new BluetoothLowEnergyWrapper(); |
| 666 } |
| 667 return instance_; |
| 668 } |
| 669 |
| 670 void BluetoothLowEnergyWrapper::DeleteInstance() { |
| 671 delete instance_; |
| 672 instance_ = nullptr; |
| 673 } |
| 674 |
| 675 void BluetoothLowEnergyWrapper::SetInstanceForTest( |
| 676 BluetoothLowEnergyWrapper* instance) { |
| 677 delete instance_; |
| 678 instance_ = instance; |
| 679 } |
| 680 |
| 681 BluetoothLowEnergyWrapper::BluetoothLowEnergyWrapper() {} |
| 682 BluetoothLowEnergyWrapper::~BluetoothLowEnergyWrapper() {} |
| 683 |
| 684 bool BluetoothLowEnergyWrapper::EnumerateKnownBluetoothLowEnergyDevices( |
656 ScopedVector<BluetoothLowEnergyDeviceInfo>* devices, | 685 ScopedVector<BluetoothLowEnergyDeviceInfo>* devices, |
657 std::string* error) { | 686 std::string* error) { |
658 if (!IsBluetoothLowEnergySupported()) { | 687 if (!IsBluetoothLowEnergySupported()) { |
659 *error = kPlatformNotSupported; | 688 *error = kPlatformNotSupported; |
660 return false; | 689 return false; |
661 } | 690 } |
662 | 691 |
663 return EnumerateKnownBLEOrBLEGattServiceDevices( | 692 return EnumerateKnownBLEOrBLEGattServiceDevices( |
664 GUID_BLUETOOTHLE_DEVICE_INTERFACE, devices, error); | 693 GUID_BLUETOOTHLE_DEVICE_INTERFACE, devices, error); |
665 } | 694 } |
666 | 695 |
667 bool EnumerateKnownBluetoothLowEnergyGattServiceDevices( | 696 bool BluetoothLowEnergyWrapper:: |
668 ScopedVector<BluetoothLowEnergyDeviceInfo>* devices, | 697 EnumerateKnownBluetoothLowEnergyGattServiceDevices( |
669 std::string* error) { | 698 ScopedVector<BluetoothLowEnergyDeviceInfo>* devices, |
| 699 std::string* error) { |
670 if (!IsBluetoothLowEnergySupported()) { | 700 if (!IsBluetoothLowEnergySupported()) { |
671 *error = kPlatformNotSupported; | 701 *error = kPlatformNotSupported; |
672 return false; | 702 return false; |
673 } | 703 } |
674 | 704 |
675 return EnumerateKnownBLEOrBLEGattServiceDevices( | 705 return EnumerateKnownBLEOrBLEGattServiceDevices( |
676 GUID_BLUETOOTH_GATT_SERVICE_DEVICE_INTERFACE, devices, error); | 706 GUID_BLUETOOTH_GATT_SERVICE_DEVICE_INTERFACE, devices, error); |
677 } | 707 } |
678 | 708 |
679 bool EnumerateKnownBluetoothLowEnergyServices( | 709 bool BluetoothLowEnergyWrapper::EnumerateKnownBluetoothLowEnergyServices( |
680 const base::FilePath& device_path, | 710 const base::FilePath& device_path, |
681 ScopedVector<BluetoothLowEnergyServiceInfo>* services, | 711 ScopedVector<BluetoothLowEnergyServiceInfo>* services, |
682 std::string* error) { | 712 std::string* error) { |
683 if (!IsBluetoothLowEnergySupported()) { | 713 if (!IsBluetoothLowEnergySupported()) { |
684 *error = kPlatformNotSupported; | 714 *error = kPlatformNotSupported; |
685 return false; | 715 return false; |
686 } | 716 } |
687 | 717 |
688 return CollectBluetoothLowEnergyDeviceServices(device_path, services, error); | 718 return CollectBluetoothLowEnergyDeviceServices(device_path, services, error); |
689 } | 719 } |
690 | 720 |
691 bool ExtractBluetoothAddressFromDeviceInstanceIdForTesting( | |
692 const std::string& instance_id, | |
693 BLUETOOTH_ADDRESS* btha, | |
694 std::string* error) { | |
695 return ExtractBluetoothAddressFromDeviceInstanceId(instance_id, btha, error); | |
696 } | |
697 | |
698 } // namespace win | 721 } // namespace win |
699 } // namespace device | 722 } // namespace device |
OLD | NEW |