| 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 #ifndef DEVICE_BLUETOOTH_BLUETOOTH_LOW_ENERGY_WIN_H_ | 5 #ifndef DEVICE_BLUETOOTH_BLUETOOTH_LOW_ENERGY_WIN_H_ |
| 6 #define DEVICE_BLUETOOTH_BLUETOOTH_LOW_ENERGY_WIN_H_ | 6 #define DEVICE_BLUETOOTH_BLUETOOTH_LOW_ENERGY_WIN_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 uint32_t AsUint32() const; | 67 uint32_t AsUint32() const; |
| 68 | 68 |
| 69 private: | 69 private: |
| 70 DEVPROPTYPE property_type_; | 70 DEVPROPTYPE property_type_; |
| 71 scoped_ptr<uint8_t[]> value_; | 71 scoped_ptr<uint8_t[]> value_; |
| 72 size_t value_size_; | 72 size_t value_size_; |
| 73 | 73 |
| 74 DISALLOW_COPY_AND_ASSIGN(DevicePropertyValue); | 74 DISALLOW_COPY_AND_ASSIGN(DevicePropertyValue); |
| 75 }; | 75 }; |
| 76 | 76 |
| 77 // Returns true only on Windows platforms supporting Bluetooth Low Energy. | |
| 78 bool DEVICE_BLUETOOTH_EXPORT IsBluetoothLowEnergySupported(); | |
| 79 | |
| 80 struct DEVICE_BLUETOOTH_EXPORT BluetoothLowEnergyServiceInfo { | 77 struct DEVICE_BLUETOOTH_EXPORT BluetoothLowEnergyServiceInfo { |
| 81 BluetoothLowEnergyServiceInfo(); | 78 BluetoothLowEnergyServiceInfo(); |
| 82 ~BluetoothLowEnergyServiceInfo(); | 79 ~BluetoothLowEnergyServiceInfo(); |
| 83 | 80 |
| 84 BTH_LE_UUID uuid; | 81 BTH_LE_UUID uuid; |
| 85 // Attribute handle uniquely identifies this service on the device. | 82 // Attribute handle uniquely identifies this service on the device. |
| 86 USHORT attribute_handle = 0; | 83 USHORT attribute_handle = 0; |
| 87 }; | 84 }; |
| 88 | 85 |
| 89 struct DEVICE_BLUETOOTH_EXPORT BluetoothLowEnergyDeviceInfo { | 86 struct DEVICE_BLUETOOTH_EXPORT BluetoothLowEnergyDeviceInfo { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 106 std::string* error); | 103 std::string* error); |
| 107 | 104 |
| 108 // Wraps Windows APIs used to access Bluetooth Low Energy devices, providing an | 105 // Wraps Windows APIs used to access Bluetooth Low Energy devices, providing an |
| 109 // interface that can be replaced with fakes in tests. | 106 // interface that can be replaced with fakes in tests. |
| 110 class DEVICE_BLUETOOTH_EXPORT BluetoothLowEnergyWrapper { | 107 class DEVICE_BLUETOOTH_EXPORT BluetoothLowEnergyWrapper { |
| 111 public: | 108 public: |
| 112 static BluetoothLowEnergyWrapper* GetInstance(); | 109 static BluetoothLowEnergyWrapper* GetInstance(); |
| 113 static void DeleteInstance(); | 110 static void DeleteInstance(); |
| 114 static void SetInstanceForTest(BluetoothLowEnergyWrapper* instance); | 111 static void SetInstanceForTest(BluetoothLowEnergyWrapper* instance); |
| 115 | 112 |
| 113 // Returns true only on Windows platforms supporting Bluetooth Low Energy. |
| 114 virtual bool IsBluetoothLowEnergySupported(); |
| 115 |
| 116 // Enumerates the list of known (i.e. already paired) Bluetooth LE devices on | 116 // Enumerates the list of known (i.e. already paired) Bluetooth LE devices on |
| 117 // this machine. In case of error, returns false and sets |error| with an | 117 // this machine. In case of error, returns false and sets |error| with an |
| 118 // error message describing the problem. | 118 // error message describing the problem. |
| 119 // Note: This function returns an error if Bluetooth Low Energy is not | 119 // Note: This function returns an error if Bluetooth Low Energy is not |
| 120 // supported on this Windows platform. | 120 // supported on this Windows platform. |
| 121 virtual bool EnumerateKnownBluetoothLowEnergyDevices( | 121 virtual bool EnumerateKnownBluetoothLowEnergyDevices( |
| 122 ScopedVector<BluetoothLowEnergyDeviceInfo>* devices, | 122 ScopedVector<BluetoothLowEnergyDeviceInfo>* devices, |
| 123 std::string* error); | 123 std::string* error); |
| 124 | 124 |
| 125 // Enumerates the list of known Bluetooth LE GATT service devices on this | 125 // Enumerates the list of known Bluetooth LE GATT service devices on this |
| (...skipping 11 matching lines...) Expand all Loading... |
| 137 // Bluetooth LE device |device_path| into |services|. In case of error, | 137 // Bluetooth LE device |device_path| into |services|. In case of error, |
| 138 // returns false and sets |error| with an error message describing the | 138 // returns false and sets |error| with an error message describing the |
| 139 // problem. | 139 // problem. |
| 140 // Note: This function returns an error if Bluetooth Low Energy is not | 140 // Note: This function returns an error if Bluetooth Low Energy is not |
| 141 // supported on this Windows platform. | 141 // supported on this Windows platform. |
| 142 virtual bool EnumerateKnownBluetoothLowEnergyServices( | 142 virtual bool EnumerateKnownBluetoothLowEnergyServices( |
| 143 const base::FilePath& device_path, | 143 const base::FilePath& device_path, |
| 144 ScopedVector<BluetoothLowEnergyServiceInfo>* services, | 144 ScopedVector<BluetoothLowEnergyServiceInfo>* services, |
| 145 std::string* error); | 145 std::string* error); |
| 146 | 146 |
| 147 // Reads included GATT services of |service| with service device path |
| 148 // |service_path|. The result will be stored in |*out_included_services| and |
| 149 // |*out_counts|. |
| 150 virtual HRESULT ReadIncludedServicesOfAService( |
| 151 base::FilePath& service_path, |
| 152 const PBTH_LE_GATT_SERVICE service, |
| 153 scoped_ptr<BTH_LE_GATT_SERVICE>* out_included_services, |
| 154 USHORT* out_counts); |
| 155 |
| 156 // Reads characteristics of |service| with service device path |service_path|. |
| 157 // The result will be stored in |*out_included_characteristics| and |
| 158 // |*out_counts|. |
| 159 virtual HRESULT ReadCharacteristicsOfAService( |
| 160 base::FilePath& service_path, |
| 161 const PBTH_LE_GATT_SERVICE service, |
| 162 scoped_ptr<BTH_LE_GATT_CHARACTERISTIC>* out_included_characteristics, |
| 163 USHORT* out_counts); |
| 164 |
| 147 protected: | 165 protected: |
| 148 BluetoothLowEnergyWrapper(); | 166 BluetoothLowEnergyWrapper(); |
| 149 virtual ~BluetoothLowEnergyWrapper(); | 167 virtual ~BluetoothLowEnergyWrapper(); |
| 150 }; | 168 }; |
| 151 | 169 |
| 152 } // namespace win | 170 } // namespace win |
| 153 } // namespace device | 171 } // namespace device |
| 154 | 172 |
| 155 #endif // DEVICE_BLUETOOTH_BLUETOOTH_LOW_ENERGY_WIN_H_ | 173 #endif // DEVICE_BLUETOOTH_BLUETOOTH_LOW_ENERGY_WIN_H_ |
| OLD | NEW |