diff options
Diffstat (limited to 'qt-ui/btdeviceselectiondialog.h')
-rw-r--r-- | qt-ui/btdeviceselectiondialog.h | 46 |
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(); |