aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui/btdeviceselectiondialog.h
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui/btdeviceselectiondialog.h')
-rw-r--r--qt-ui/btdeviceselectiondialog.h46
1 files changed, 45 insertions, 1 deletions
diff --git a/qt-ui/btdeviceselectiondialog.h b/qt-ui/btdeviceselectiondialog.h
index b6c34e8b8..3d72db418 100644
--- a/qt-ui/btdeviceselectiondialog.h
+++ b/qt-ui/btdeviceselectiondialog.h
@@ -8,7 +8,23 @@
#include <QtBluetooth/qbluetoothglobal.h>
#include <QtBluetooth/QBluetoothDeviceDiscoveryAgent>
-#if QT_VERSION < 0x050500
+#if defined(Q_OS_WIN)
+ #include <QThread>
+ #include <winsock2.h>
+ #include <ws2bth.h>
+
+ #define SUCCESS 0
+ #define BTH_ADDR_STR_LEN 40
+
+ #undef ERROR // this is already declared in our headers
+ #undef IGNORE // this is already declared in our headers
+ #undef DC_VERSION // this is already declared in libdivecomputer header
+#endif
+
+#if defined(Q_OS_WIN)
+Q_DECLARE_METATYPE(QBluetoothDeviceInfo)
+Q_DECLARE_METATYPE(QBluetoothDeviceDiscoveryAgent::Error)
+#elif QT_VERSION < 0x050500
Q_DECLARE_METATYPE(QBluetoothDeviceInfo)
#endif
@@ -16,6 +32,30 @@ namespace Ui {
class BtDeviceSelectionDialog;
}
+#if defined(Q_OS_WIN)
+class WinBluetoothDeviceDiscoveryAgent : public QThread {
+ Q_OBJECT
+signals:
+ void deviceDiscovered(const QBluetoothDeviceInfo &info);
+ void error(QBluetoothDeviceDiscoveryAgent::Error error);
+
+public:
+ WinBluetoothDeviceDiscoveryAgent(QObject *parent);
+ ~WinBluetoothDeviceDiscoveryAgent();
+ bool isActive() const;
+ QString errorToString() const;
+ QBluetoothDeviceDiscoveryAgent::Error error() const;
+ virtual void run();
+ virtual void stop();
+
+private:
+ bool running;
+ bool stopped;
+ QString lastErrorToString;
+ QBluetoothDeviceDiscoveryAgent::Error lastError;
+};
+#endif
+
class BtDeviceSelectionDialog : public QDialog {
Q_OBJECT
@@ -42,8 +82,12 @@ private slots:
private:
Ui::BtDeviceSelectionDialog *ui;
+#if defined(Q_OS_WIN)
+ WinBluetoothDeviceDiscoveryAgent *remoteDeviceDiscoveryAgent;
+#else
QBluetoothLocalDevice *localDevice;
QBluetoothDeviceDiscoveryAgent *remoteDeviceDiscoveryAgent;
+#endif
QSharedPointer<QBluetoothDeviceInfo> selectedRemoteDeviceInfo;
void updateLocalDeviceInformation();