diff options
author | Alex Blasche <alexander.blasche@qt.io> | 2017-10-27 12:01:53 +0200 |
---|---|---|
committer | Alex Blasche <alexander.blasche@qt.io> | 2017-11-03 13:09:01 +0000 |
commit | 47c861fd35c284d4e857ece6633992777a45da74 (patch) | |
tree | f8b930ffd7f16ea54947b8ee1dd0c4436b4444c3 /src | |
parent | 202ec439d21456a318ed93c4bd1e6ba6f6460d59 (diff) |
Provide UWP specific header for QLEControllerPrivate
Change-Id: Ic2ee2a76e2da4c236415f1eb3b98ab642ee3d1fc
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/bluetooth/bluetooth.pro | 3 | ||||
-rw-r--r-- | src/bluetooth/qlowenergycharacteristic.h | 1 | ||||
-rw-r--r-- | src/bluetooth/qlowenergycontroller.cpp | 10 | ||||
-rw-r--r-- | src/bluetooth/qlowenergycontroller_p.h | 38 | ||||
-rw-r--r-- | src/bluetooth/qlowenergycontroller_winrt.cpp | 44 | ||||
-rw-r--r-- | src/bluetooth/qlowenergycontroller_winrt_p.h | 172 | ||||
-rw-r--r-- | src/bluetooth/qlowenergydescriptor.h | 1 | ||||
-rw-r--r-- | src/bluetooth/qlowenergyservice.h | 1 |
8 files changed, 210 insertions, 60 deletions
diff --git a/src/bluetooth/bluetooth.pro b/src/bluetooth/bluetooth.pro index 378a7d00..33dbfc4d 100644 --- a/src/bluetooth/bluetooth.pro +++ b/src/bluetooth/bluetooth.pro @@ -229,6 +229,9 @@ qtConfig(bluez) { qbluetoothsocket_winrt.cpp \ qlowenergycontroller_winrt.cpp + PRIVATE_HEADERS -= qlowenergycontroller_p.h + PRIVATE_HEADERS += qlowenergycontroller_winrt_p.h + lessThan(WINDOWS_SDK_VERSION, 14393) { DEFINES += QT_WINRT_LIMITED_SERVICEDISCOVERY DEFINES += QT_UCRTVERSION=$$WINDOWS_SDK_VERSION diff --git a/src/bluetooth/qlowenergycharacteristic.h b/src/bluetooth/qlowenergycharacteristic.h index c6d54f8e..f36de9ff 100644 --- a/src/bluetooth/qlowenergycharacteristic.h +++ b/src/bluetooth/qlowenergycharacteristic.h @@ -101,6 +101,7 @@ protected: friend class QLowEnergyControllerPrivateBluez; friend class QLowEnergyControllerPrivateCommon; friend class QLowEnergyControllerPrivateOSX; + friend class QLowEnergyControllerPrivateWinRT; QLowEnergyCharacteristicPrivate *data; QLowEnergyCharacteristic(QSharedPointer<QLowEnergyServicePrivate> p, QLowEnergyHandle handle); diff --git a/src/bluetooth/qlowenergycontroller.cpp b/src/bluetooth/qlowenergycontroller.cpp index b79c22e5..af6a557d 100644 --- a/src/bluetooth/qlowenergycontroller.cpp +++ b/src/bluetooth/qlowenergycontroller.cpp @@ -54,6 +54,8 @@ #include "qlowenergycontroller_bluez_p.h" #elif defined(QT_ANDROID_BLUETOOTH) #include "qlowenergycontroller_android_p.h" +#elif defined(QT_WINRT_BLUETOOTH) +#include "qlowenergycontroller_winrt_p.h" #else #include "qlowenergycontroller_p.h" #endif @@ -312,6 +314,8 @@ QLowEnergyController::QLowEnergyController( d_ptr = new QLowEnergyControllerPrivateBluez(); #elif defined(QT_ANDROID_BLUETOOTH) d_ptr = new QLowEnergyControllerPrivateAndroid(); +#elif defined(QT_WINRT_BLUETOOTH) + d_ptr = new QLowEnergyControllerPrivateWinRT(); #else d_ptr = new QLowEnergyControllerPrivateCommon(); #endif @@ -351,6 +355,8 @@ QLowEnergyController::QLowEnergyController( d_ptr = new QLowEnergyControllerPrivateBluez(); #elif defined(QT_ANDROID_BLUETOOTH) d_ptr = new QLowEnergyControllerPrivateAndroid(); +#elif defined(QT_WINRT_BLUETOOTH) + d_ptr = new QLowEnergyControllerPrivateWinRT(); #else d_ptr = new QLowEnergyControllerPrivateCommon(); #endif @@ -393,6 +399,8 @@ QLowEnergyController::QLowEnergyController( d_ptr = new QLowEnergyControllerPrivateBluez(); #elif defined(QT_ANDROID_BLUETOOTH) d_ptr = new QLowEnergyControllerPrivateAndroid(); +#elif defined(QT_WINRT_BLUETOOTH) + d_ptr = new QLowEnergyControllerPrivateWinRT(); #else d_ptr = new QLowEnergyControllerPrivateCommon(); #endif @@ -447,6 +455,8 @@ QLowEnergyController::QLowEnergyController(QObject *parent) d_ptr = new QLowEnergyControllerPrivateBluez(); #elif defined(QT_ANDROID_BLUETOOTH) d_ptr = new QLowEnergyControllerPrivateAndroid(); +#elif defined(QT_WINRT_BLUETOOTH) + d_ptr = new QLowEnergyControllerPrivateWinRT(); #else d_ptr = new QLowEnergyControllerPrivateCommon(); #endif diff --git a/src/bluetooth/qlowenergycontroller_p.h b/src/bluetooth/qlowenergycontroller_p.h index db34c344..b02baaee 100644 --- a/src/bluetooth/qlowenergycontroller_p.h +++ b/src/bluetooth/qlowenergycontroller_p.h @@ -77,11 +77,6 @@ QT_END_NAMESPACE #include "qlowenergycontroller.h" #include "qlowenergycontrollerbase_p.h" -#if defined(QT_WINRT_BLUETOOTH) -#include <wrl.h> -#include <windows.devices.bluetooth.h> -#endif - #include <functional> QT_BEGIN_NAMESPACE @@ -152,39 +147,6 @@ public: int maxLength; }; QVector<Attribute> localAttributes; - -private: - -#if defined(QT_WINRT_BLUETOOTH) -private slots: - void characteristicChanged(int charHandle, const QByteArray &data); - -private: - Microsoft::WRL::ComPtr<ABI::Windows::Devices::Bluetooth::IBluetoothLEDevice> mDevice; - EventRegistrationToken mStatusChangedToken; - struct ValueChangedEntry { - ValueChangedEntry() {} - ValueChangedEntry(Microsoft::WRL::ComPtr<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristic> c, - EventRegistrationToken t) - : characteristic(c) - , token(t) - { - } - - Microsoft::WRL::ComPtr<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristic> characteristic; - EventRegistrationToken token; - }; - QVector<ValueChangedEntry> mValueChangedTokens; - - Microsoft::WRL::ComPtr<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceService> getNativeService(const QBluetoothUuid &serviceUuid); - Microsoft::WRL::ComPtr<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristic> getNativeCharacteristic(const QBluetoothUuid &serviceUuid, const QBluetoothUuid &charUuid); - - void registerForValueChanges(const QBluetoothUuid &serviceUuid, const QBluetoothUuid &charUuid); - - void obtainIncludedServices(QSharedPointer<QLowEnergyServicePrivate> servicePointer, - Microsoft::WRL::ComPtr<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceService> nativeService); -#endif - }; Q_DECLARE_TYPEINFO(QLowEnergyControllerPrivateCommon::Attribute, Q_MOVABLE_TYPE); diff --git a/src/bluetooth/qlowenergycontroller_winrt.cpp b/src/bluetooth/qlowenergycontroller_winrt.cpp index f9d31eba..d360f13f 100644 --- a/src/bluetooth/qlowenergycontroller_winrt.cpp +++ b/src/bluetooth/qlowenergycontroller_winrt.cpp @@ -37,7 +37,7 @@ ** ****************************************************************************/ -#include "qlowenergycontroller_p.h" +#include "qlowenergycontroller_winrt_p.h" #include <QtBluetooth/QLowEnergyCharacteristicData> #include <QtBluetooth/QLowEnergyDescriptorData> @@ -277,7 +277,7 @@ signals: QLowEnergyHandle startHandle, QLowEnergyHandle endHandle); }; -QLowEnergyControllerPrivateCommon::QLowEnergyControllerPrivateCommon() +QLowEnergyControllerPrivateWinRT::QLowEnergyControllerPrivateWinRT() : QLowEnergyControllerPrivate() { qCDebug(QT_BT_WINRT) << __FUNCTION__; @@ -286,7 +286,7 @@ QLowEnergyControllerPrivateCommon::QLowEnergyControllerPrivateCommon() qRegisterMetaType<QLowEnergyDescriptor>(); } -QLowEnergyControllerPrivateCommon::~QLowEnergyControllerPrivateCommon() +QLowEnergyControllerPrivateWinRT::~QLowEnergyControllerPrivateWinRT() { if (mDevice && mStatusChangedToken.value) mDevice->remove_ConnectionStatusChanged(mStatusChangedToken); @@ -296,11 +296,11 @@ QLowEnergyControllerPrivateCommon::~QLowEnergyControllerPrivateCommon() entry.characteristic->remove_ValueChanged(entry.token); } -void QLowEnergyControllerPrivateCommon::init() +void QLowEnergyControllerPrivateWinRT::init() { } -void QLowEnergyControllerPrivateCommon::connectToDevice() +void QLowEnergyControllerPrivateWinRT::connectToDevice() { qCDebug(QT_BT_WINRT) << __FUNCTION__; Q_Q(QLowEnergyController); @@ -418,7 +418,7 @@ void QLowEnergyControllerPrivateCommon::connectToDevice() } } -void QLowEnergyControllerPrivateCommon::disconnectFromDevice() +void QLowEnergyControllerPrivateWinRT::disconnectFromDevice() { qCDebug(QT_BT_WINRT) << __FUNCTION__; Q_Q(QLowEnergyController); @@ -430,7 +430,7 @@ void QLowEnergyControllerPrivateCommon::disconnectFromDevice() } } -ComPtr<IGattDeviceService> QLowEnergyControllerPrivateCommon::getNativeService(const QBluetoothUuid &serviceUuid) +ComPtr<IGattDeviceService> QLowEnergyControllerPrivateWinRT::getNativeService(const QBluetoothUuid &serviceUuid) { ComPtr<IGattDeviceService> deviceService; HRESULT hr; @@ -440,7 +440,7 @@ ComPtr<IGattDeviceService> QLowEnergyControllerPrivateCommon::getNativeService(c return deviceService; } -ComPtr<IGattCharacteristic> QLowEnergyControllerPrivateCommon::getNativeCharacteristic(const QBluetoothUuid &serviceUuid, const QBluetoothUuid &charUuid) +ComPtr<IGattCharacteristic> QLowEnergyControllerPrivateWinRT::getNativeCharacteristic(const QBluetoothUuid &serviceUuid, const QBluetoothUuid &charUuid) { ComPtr<IGattDeviceService> service = getNativeService(serviceUuid); if (!service) @@ -455,7 +455,7 @@ ComPtr<IGattCharacteristic> QLowEnergyControllerPrivateCommon::getNativeCharacte return characteristic; } -void QLowEnergyControllerPrivateCommon::registerForValueChanges(const QBluetoothUuid &serviceUuid, const QBluetoothUuid &charUuid) +void QLowEnergyControllerPrivateWinRT::registerForValueChanges(const QBluetoothUuid &serviceUuid, const QBluetoothUuid &charUuid) { qCDebug(QT_BT_WINRT) << "Registering characteristic" << charUuid << "in service" << serviceUuid << "for value changes"; @@ -488,7 +488,7 @@ void QLowEnergyControllerPrivateCommon::registerForValueChanges(const QBluetooth << serviceUuid << "registered for value changes"; } -void QLowEnergyControllerPrivateCommon::obtainIncludedServices(QSharedPointer<QLowEnergyServicePrivate> servicePointer, +void QLowEnergyControllerPrivateWinRT::obtainIncludedServices(QSharedPointer<QLowEnergyServicePrivate> servicePointer, ComPtr<IGattDeviceService> service) { Q_Q(QLowEnergyController); @@ -530,7 +530,7 @@ void QLowEnergyControllerPrivateCommon::obtainIncludedServices(QSharedPointer<QL } } -void QLowEnergyControllerPrivateCommon::discoverServices() +void QLowEnergyControllerPrivateWinRT::discoverServices() { Q_Q(QLowEnergyController); @@ -572,7 +572,7 @@ void QLowEnergyControllerPrivateCommon::discoverServices() emit q->discoveryFinished(); } -void QLowEnergyControllerPrivateCommon::discoverServiceDetails(const QBluetoothUuid &service) +void QLowEnergyControllerPrivateWinRT::discoverServiceDetails(const QBluetoothUuid &service) { qCDebug(QT_BT_WINRT) << __FUNCTION__ << service; if (!serviceList.contains(service)) { @@ -657,22 +657,22 @@ void QLowEnergyControllerPrivateCommon::discoverServiceDetails(const QBluetoothU thread->start(); } -void QLowEnergyControllerPrivateCommon::startAdvertising(const QLowEnergyAdvertisingParameters &, const QLowEnergyAdvertisingData &, const QLowEnergyAdvertisingData &) +void QLowEnergyControllerPrivateWinRT::startAdvertising(const QLowEnergyAdvertisingParameters &, const QLowEnergyAdvertisingData &, const QLowEnergyAdvertisingData &) { Q_UNIMPLEMENTED(); } -void QLowEnergyControllerPrivateCommon::stopAdvertising() +void QLowEnergyControllerPrivateWinRT::stopAdvertising() { Q_UNIMPLEMENTED(); } -void QLowEnergyControllerPrivateCommon::requestConnectionUpdate(const QLowEnergyConnectionParameters &) +void QLowEnergyControllerPrivateWinRT::requestConnectionUpdate(const QLowEnergyConnectionParameters &) { Q_UNIMPLEMENTED(); } -void QLowEnergyControllerPrivateCommon::readCharacteristic(const QSharedPointer<QLowEnergyServicePrivate> service, +void QLowEnergyControllerPrivateWinRT::readCharacteristic(const QSharedPointer<QLowEnergyServicePrivate> service, const QLowEnergyHandle charHandle) { qCDebug(QT_BT_WINRT) << __FUNCTION__ << service << charHandle; @@ -730,7 +730,7 @@ void QLowEnergyControllerPrivateCommon::readCharacteristic(const QSharedPointer< Q_ASSERT_SUCCEEDED(hr); } -void QLowEnergyControllerPrivateCommon::readDescriptor(const QSharedPointer<QLowEnergyServicePrivate> service, +void QLowEnergyControllerPrivateWinRT::readDescriptor(const QSharedPointer<QLowEnergyServicePrivate> service, const QLowEnergyHandle charHandle, const QLowEnergyHandle descHandle) { @@ -855,7 +855,7 @@ void QLowEnergyControllerPrivateCommon::readDescriptor(const QSharedPointer<QLow Q_ASSERT_SUCCEEDED(hr); } -void QLowEnergyControllerPrivateCommon::writeCharacteristic(const QSharedPointer<QLowEnergyServicePrivate> service, +void QLowEnergyControllerPrivateWinRT::writeCharacteristic(const QSharedPointer<QLowEnergyServicePrivate> service, const QLowEnergyHandle charHandle, const QByteArray &newValue, QLowEnergyService::WriteMode mode) @@ -938,7 +938,7 @@ void QLowEnergyControllerPrivateCommon::writeCharacteristic(const QSharedPointer Q_ASSERT_SUCCEEDED(hr); } -void QLowEnergyControllerPrivateCommon::writeDescriptor( +void QLowEnergyControllerPrivateWinRT::writeDescriptor( const QSharedPointer<QLowEnergyServicePrivate> service, const QLowEnergyHandle charHandle, const QLowEnergyHandle descHandle, @@ -1077,12 +1077,12 @@ void QLowEnergyControllerPrivateCommon::writeDescriptor( } -void QLowEnergyControllerPrivateCommon::addToGenericAttributeList(const QLowEnergyServiceData &, QLowEnergyHandle) +void QLowEnergyControllerPrivateWinRT::addToGenericAttributeList(const QLowEnergyServiceData &, QLowEnergyHandle) { Q_UNIMPLEMENTED(); } -void QLowEnergyControllerPrivateCommon::characteristicChanged( +void QLowEnergyControllerPrivateWinRT::characteristicChanged( int charHandle, const QByteArray &data) { QSharedPointer<QLowEnergyServicePrivate> service = @@ -1107,7 +1107,7 @@ void QLowEnergyControllerPrivateCommon::characteristicChanged( emit service->characteristicChanged(characteristic, data); } -QLowEnergyService *QLowEnergyControllerPrivateCommon::addServiceHelper( +QLowEnergyService *QLowEnergyControllerPrivateWinRT::addServiceHelper( const QLowEnergyServiceData &service) { // Spec says services "should" be grouped by uuid length (16-bit first, then 128-bit). diff --git a/src/bluetooth/qlowenergycontroller_winrt_p.h b/src/bluetooth/qlowenergycontroller_winrt_p.h new file mode 100644 index 00000000..33e3e3ff --- /dev/null +++ b/src/bluetooth/qlowenergycontroller_winrt_p.h @@ -0,0 +1,172 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtBluetooth module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QLOWENERGYCONTROLLERPRIVATEWINRT_P_H +#define QLOWENERGYCONTROLLERPRIVATEWINRT_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <qglobal.h> +#include <QtCore/QQueue> +#include <QtCore/QVector> +#include <QtBluetooth/qbluetooth.h> +#include <QtBluetooth/qlowenergycharacteristic.h> +#include <QtBluetooth/qlowenergyservicedata.h> +#include "qlowenergycontroller.h" +#include "qlowenergycontrollerbase_p.h" + +#include <wrl.h> +#include <windows.devices.bluetooth.h> + +#include <functional> + +QT_BEGIN_NAMESPACE + +class QLowEnergyServiceData; +class QTimer; +class QWinRTLowEnergyServiceHandler; + +extern void registerQLowEnergyControllerMetaType(); + +class QLowEnergyControllerPrivateWinRT : public QLowEnergyControllerPrivate +{ + Q_OBJECT +public: + QLowEnergyControllerPrivateWinRT(); + ~QLowEnergyControllerPrivateWinRT(); + + void init() override; + + void connectToDevice() override; + void disconnectFromDevice() override; + + void discoverServices() override; + void discoverServiceDetails(const QBluetoothUuid &service) override; + + void startAdvertising(const QLowEnergyAdvertisingParameters ¶ms, + const QLowEnergyAdvertisingData &advertisingData, + const QLowEnergyAdvertisingData &scanResponseData) override; + void stopAdvertising() override; + + void requestConnectionUpdate(const QLowEnergyConnectionParameters ¶ms) override; + + // misc helpers + QLowEnergyService *addServiceHelper(const QLowEnergyServiceData &service) override; + + // read data + void readCharacteristic(const QSharedPointer<QLowEnergyServicePrivate> service, + const QLowEnergyHandle charHandle) override; + void readDescriptor(const QSharedPointer<QLowEnergyServicePrivate> service, + const QLowEnergyHandle charHandle, + const QLowEnergyHandle descriptorHandle) override; + + // write data + void writeCharacteristic(const QSharedPointer<QLowEnergyServicePrivate> service, + const QLowEnergyHandle charHandle, + const QByteArray &newValue, QLowEnergyService::WriteMode mode) override; + void writeDescriptor(const QSharedPointer<QLowEnergyServicePrivate> service, + const QLowEnergyHandle charHandle, + const QLowEnergyHandle descriptorHandle, + const QByteArray &newValue) override; + + void addToGenericAttributeList(const QLowEnergyServiceData &service, + QLowEnergyHandle startHandle) override; + + + QLowEnergyHandle lastLocalHandle; + + struct Attribute { + Attribute() : handle(0) {} + + QLowEnergyHandle handle; + QLowEnergyHandle groupEndHandle; + QLowEnergyCharacteristic::PropertyTypes properties; + QBluetooth::AttAccessConstraints readConstraints; + QBluetooth::AttAccessConstraints writeConstraints; + QBluetoothUuid type; + QByteArray value; + int minLength; + int maxLength; + }; + QVector<Attribute> localAttributes; + +private slots: + void characteristicChanged(int charHandle, const QByteArray &data); + +private: + Microsoft::WRL::ComPtr<ABI::Windows::Devices::Bluetooth::IBluetoothLEDevice> mDevice; + EventRegistrationToken mStatusChangedToken; + struct ValueChangedEntry { + ValueChangedEntry() {} + ValueChangedEntry(Microsoft::WRL::ComPtr<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristic> c, + EventRegistrationToken t) + : characteristic(c) + , token(t) + { + } + + Microsoft::WRL::ComPtr<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristic> characteristic; + EventRegistrationToken token; + }; + QVector<ValueChangedEntry> mValueChangedTokens; + + Microsoft::WRL::ComPtr<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceService> getNativeService(const QBluetoothUuid &serviceUuid); + Microsoft::WRL::ComPtr<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristic> getNativeCharacteristic(const QBluetoothUuid &serviceUuid, const QBluetoothUuid &charUuid); + + void registerForValueChanges(const QBluetoothUuid &serviceUuid, const QBluetoothUuid &charUuid); + + void obtainIncludedServices(QSharedPointer<QLowEnergyServicePrivate> servicePointer, + Microsoft::WRL::ComPtr<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceService> nativeService); + +}; + +Q_DECLARE_TYPEINFO(QLowEnergyControllerPrivateWinRT::Attribute, Q_MOVABLE_TYPE); + +QT_END_NAMESPACE + +#endif // QLOWENERGYCONTROLLERPRIVATEWINRT_P_H diff --git a/src/bluetooth/qlowenergydescriptor.h b/src/bluetooth/qlowenergydescriptor.h index fd37498d..aba2ef61 100644 --- a/src/bluetooth/qlowenergydescriptor.h +++ b/src/bluetooth/qlowenergydescriptor.h @@ -83,6 +83,7 @@ protected: friend class QLowEnergyControllerPrivateBluez; friend class QLowEnergyControllerPrivateCommon; friend class QLowEnergyControllerPrivateOSX; + friend class QLowEnergyControllerPrivateWinRT; QLowEnergyDescriptorPrivate *data; QLowEnergyDescriptor(QSharedPointer<QLowEnergyServicePrivate> p, diff --git a/src/bluetooth/qlowenergyservice.h b/src/bluetooth/qlowenergyservice.h index 233e08b0..23545b11 100644 --- a/src/bluetooth/qlowenergyservice.h +++ b/src/bluetooth/qlowenergyservice.h @@ -137,6 +137,7 @@ private: friend class QLowEnergyControllerPrivateAndroid; friend class QLowEnergyControllerPrivateBluez; friend class QLowEnergyControllerPrivateCommon; + friend class QLowEnergyControllerPrivateWinRT; QLowEnergyService(QSharedPointer<QLowEnergyServicePrivate> p, QObject *parent = nullptr); }; |