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" |
11 #include "base/win/scoped_handle.h" | 11 #include "base/win/scoped_handle.h" |
12 #include "base/win/windows_version.h" | 12 #include "base/win/windows_version.h" |
13 | 13 |
14 namespace { | 14 namespace { |
15 | 15 |
| 16 static device::win::BluetoothLowEnergyWrapper* g_instance_ = nullptr; |
| 17 |
16 using device::win::DeviceRegistryPropertyValue; | 18 using device::win::DeviceRegistryPropertyValue; |
17 using device::win::DevicePropertyValue; | 19 using device::win::DevicePropertyValue; |
18 using device::win::BluetoothLowEnergyDeviceInfo; | 20 using device::win::BluetoothLowEnergyDeviceInfo; |
19 using device::win::BluetoothLowEnergyServiceInfo; | 21 using device::win::BluetoothLowEnergyServiceInfo; |
20 | 22 |
21 const char kPlatformNotSupported[] = | 23 const char kPlatformNotSupported[] = |
22 "Bluetooth Low energy is only supported on Windows 8 and later."; | 24 "Bluetooth Low energy is only supported on Windows 8 and later."; |
23 const char kDeviceEnumError[] = "Error enumerating Bluetooth LE devices."; | 25 const char kDeviceEnumError[] = "Error enumerating Bluetooth LE devices."; |
24 const char kDeviceInfoError[] = | 26 const char kDeviceInfoError[] = |
25 "Error retrieving Bluetooth LE device information."; | 27 "Error retrieving Bluetooth LE device information."; |
(...skipping 626 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
652 return base::win::GetVersion() >= base::win::VERSION_WIN8; | 654 return base::win::GetVersion() >= base::win::VERSION_WIN8; |
653 } | 655 } |
654 | 656 |
655 bool ExtractBluetoothAddressFromDeviceInstanceIdForTesting( | 657 bool ExtractBluetoothAddressFromDeviceInstanceIdForTesting( |
656 const std::string& instance_id, | 658 const std::string& instance_id, |
657 BLUETOOTH_ADDRESS* btha, | 659 BLUETOOTH_ADDRESS* btha, |
658 std::string* error) { | 660 std::string* error) { |
659 return ExtractBluetoothAddressFromDeviceInstanceId(instance_id, btha, error); | 661 return ExtractBluetoothAddressFromDeviceInstanceId(instance_id, btha, error); |
660 } | 662 } |
661 | 663 |
662 static BluetoothLowEnergyWrapper* instance_ = nullptr; | |
663 BluetoothLowEnergyWrapper* BluetoothLowEnergyWrapper::GetInstance() { | 664 BluetoothLowEnergyWrapper* BluetoothLowEnergyWrapper::GetInstance() { |
664 if (instance_ == nullptr) { | 665 if (g_instance_ == nullptr) { |
665 instance_ = new BluetoothLowEnergyWrapper(); | 666 g_instance_ = new BluetoothLowEnergyWrapper(); |
666 } | 667 } |
667 return instance_; | 668 return g_instance_; |
668 } | 669 } |
669 | 670 |
670 void BluetoothLowEnergyWrapper::DeleteInstance() { | 671 void BluetoothLowEnergyWrapper::DeleteInstance() { |
671 delete instance_; | 672 delete g_instance_; |
672 instance_ = nullptr; | 673 g_instance_ = nullptr; |
673 } | 674 } |
674 | 675 |
675 void BluetoothLowEnergyWrapper::SetInstanceForTest( | 676 void BluetoothLowEnergyWrapper::SetInstanceForTest( |
676 BluetoothLowEnergyWrapper* instance) { | 677 BluetoothLowEnergyWrapper* instance) { |
677 delete instance_; | 678 delete g_instance_; |
678 instance_ = instance; | 679 g_instance_ = instance; |
679 } | 680 } |
680 | 681 |
681 BluetoothLowEnergyWrapper::BluetoothLowEnergyWrapper() {} | 682 BluetoothLowEnergyWrapper::BluetoothLowEnergyWrapper() {} |
682 BluetoothLowEnergyWrapper::~BluetoothLowEnergyWrapper() {} | 683 BluetoothLowEnergyWrapper::~BluetoothLowEnergyWrapper() {} |
683 | 684 |
684 bool BluetoothLowEnergyWrapper::EnumerateKnownBluetoothLowEnergyDevices( | 685 bool BluetoothLowEnergyWrapper::EnumerateKnownBluetoothLowEnergyDevices( |
685 ScopedVector<BluetoothLowEnergyDeviceInfo>* devices, | 686 ScopedVector<BluetoothLowEnergyDeviceInfo>* devices, |
686 std::string* error) { | 687 std::string* error) { |
687 if (!IsBluetoothLowEnergySupported()) { | 688 if (!IsBluetoothLowEnergySupported()) { |
688 *error = kPlatformNotSupported; | 689 *error = kPlatformNotSupported; |
(...skipping 24 matching lines...) Expand all Loading... |
713 if (!IsBluetoothLowEnergySupported()) { | 714 if (!IsBluetoothLowEnergySupported()) { |
714 *error = kPlatformNotSupported; | 715 *error = kPlatformNotSupported; |
715 return false; | 716 return false; |
716 } | 717 } |
717 | 718 |
718 return CollectBluetoothLowEnergyDeviceServices(device_path, services, error); | 719 return CollectBluetoothLowEnergyDeviceServices(device_path, services, error); |
719 } | 720 } |
720 | 721 |
721 } // namespace win | 722 } // namespace win |
722 } // namespace device | 723 } // namespace device |
OLD | NEW |