diff options
author | Javier <dev.git@javispedro.com> | 2020-04-12 00:45:32 +0200 |
---|---|---|
committer | Javier <dev.git@javispedro.com> | 2020-04-12 01:24:39 +0200 |
commit | 5cb277888995edecfafd83fed4cf2bd510052a4b (patch) | |
tree | 9c94054e59035eece0e34e8be10ee77769b1d9e4 /smartpenmanager.h | |
parent | 7f3d796c50b1855e690f74b35fd35798142ceb35 (diff) | |
download | scribiu-5cb277888995edecfafd83fed4cf2bd510052a4b.tar.gz scribiu-5cb277888995edecfafd83fed4cf2bd510052a4b.zip |
port to qt5, libusb 1.0, and openobex 1.7
Diffstat (limited to 'smartpenmanager.h')
-rw-r--r-- | smartpenmanager.h | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/smartpenmanager.h b/smartpenmanager.h index 42bdc06..a823709 100644 --- a/smartpenmanager.h +++ b/smartpenmanager.h @@ -19,10 +19,11 @@ #ifndef SMARTPENMANAGER_H #define SMARTPENMANAGER_H -#include <QtCore/QObject> -#include <QtCore/QSocketNotifier> #include <QtCore/QMap> +#include <QtCore/QObject> #include <QtCore/QPair> +#include <QtCore/QSocketNotifier> +#include <QtCore/QTimer> #include "smartpensyncer.h" struct udev; @@ -37,28 +38,46 @@ public: explicit SmartpenManager(QObject *parent = 0); ~SmartpenManager(); + QStringList pensConnected() const; QStringList pensBeingSynchronized() const; signals: void syncComplete(const QString &penName); void syncFailed(const QString &penName); + void pensConnectedChanged(); void pensBeingSynchronizedChanged(); -public slots: - private slots: void handleMonitorActivity(); void handleSyncerFinished(); + void handleGotPenName(const QString &name); + void handleTimerNextTry(); private: - void processDevice(udev_device *dev); + void processDeviceAdded(udev_device *dev); + void processDeviceRemoved(udev_device *dev); + + void trySync(const Smartpen::Address &addr); + void scheduleNextTry(); + + static QString parseUdevEscapedString(const char *s); private: udev *_udev; udev_monitor *_monitor; QSocketNotifier *_notifier; - QMap<Smartpen::Address, SmartpenSyncer*> _syncers; + struct PenInfo { + Smartpen::Address addr; + bool connected = false; + QString name; + SmartpenSyncer *syncer = 0; + QDateTime nextTry; + uint numRetries = 0; + }; + + QMap<Smartpen::Address, PenInfo> _pens; + QTimer *_nextTry; }; #endif // SMARTPENMANAGER_H |