summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bluetooth/qlowenergycontroller_winrt_new.cpp13
-rw-r--r--src/bluetooth/qlowenergyserviceprivate_p.h1
2 files changed, 14 insertions, 0 deletions
diff --git a/src/bluetooth/qlowenergycontroller_winrt_new.cpp b/src/bluetooth/qlowenergycontroller_winrt_new.cpp
index b2ebab2b..19324300 100644
--- a/src/bluetooth/qlowenergycontroller_winrt_new.cpp
+++ b/src/bluetooth/qlowenergycontroller_winrt_new.cpp
@@ -678,10 +678,23 @@ void QWinRTLowEnergyConnectionHandler::emitConnectedAndQuitThread()
QThread::currentThread()->quit();
}
+static void registerServiceHandlerMetaTypes()
+{
+ static bool registered = false;
+ if (!registered) {
+ qRegisterMetaType<QHash<QLowEnergyHandle, QLowEnergyServicePrivate::CharData>>(
+ "QHash<QLowEnergyHandle, QLowEnergyServicePrivate::CharData>");
+ qRegisterMetaType<QVector<QBluetoothUuid>>("QVector<QBluetoothUuid>");
+ qRegisterMetaType<QLowEnergyHandle>("QLowEnergyHandle");
+ registered = true;
+ }
+}
+
QLowEnergyControllerPrivateWinRTNew::QLowEnergyControllerPrivateWinRTNew()
: QLowEnergyControllerPrivate()
{
registerQLowEnergyControllerMetaType();
+ registerServiceHandlerMetaTypes();
connect(this, &QLowEnergyControllerPrivateWinRTNew::characteristicChanged,
this, &QLowEnergyControllerPrivateWinRTNew::handleCharacteristicChanged,
Qt::QueuedConnection);
diff --git a/src/bluetooth/qlowenergyserviceprivate_p.h b/src/bluetooth/qlowenergyserviceprivate_p.h
index 5727d97c..b1d95597 100644
--- a/src/bluetooth/qlowenergyserviceprivate_p.h
+++ b/src/bluetooth/qlowenergyserviceprivate_p.h
@@ -146,5 +146,6 @@ typedef QHash<QLowEnergyHandle, QLowEnergyServicePrivate::DescData> DescriptorDa
QT_END_NAMESPACE
Q_DECLARE_METATYPE(QSharedPointer<QLowEnergyServicePrivate>)
+Q_DECLARE_METATYPE(QLowEnergyServicePrivate::CharData)
#endif // QLOWENERGYSERVICEPRIVATE_P_H