summaryrefslogtreecommitdiff
path: root/rockworkd/libpebble/firmwaredownloader.h
diff options
context:
space:
mode:
Diffstat (limited to 'rockworkd/libpebble/firmwaredownloader.h')
-rw-r--r--rockworkd/libpebble/firmwaredownloader.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/rockworkd/libpebble/firmwaredownloader.h b/rockworkd/libpebble/firmwaredownloader.h
new file mode 100644
index 0000000..d7bd5b8
--- /dev/null
+++ b/rockworkd/libpebble/firmwaredownloader.h
@@ -0,0 +1,50 @@
+#ifndef FIRWAREDOWNLOADER_H
+#define FIRWAREDOWNLOADER_H
+
+#include <QObject>
+
+#include "watchconnection.h"
+
+class Pebble;
+class QNetworkAccessManager;
+
+class FirmwareDownloader : public QObject
+{
+ Q_OBJECT
+public:
+ explicit FirmwareDownloader(Pebble *pebble, WatchConnection *connection);
+
+ bool updateAvailable() const;
+ QString candidateVersion() const;
+ QString releaseNotes() const;
+ QString url() const;
+
+ bool upgrading() const;
+
+public slots:
+ void checkForNewFirmware();
+ void performUpgrade();
+
+signals:
+ void updateAvailableChanged();
+ void upgradingChanged();
+
+private slots:
+ void systemMessageReceived(const QByteArray &data);
+
+private:
+ QNetworkAccessManager *m_nam;
+ Pebble *m_pebble;
+ WatchConnection *m_connection;
+
+ bool m_updateAvailable = false;
+ QString m_candidateVersion;
+ QString m_releaseNotes;
+ QString m_url;
+ QByteArray m_hash;
+
+ bool m_upgradeInProgress = false;
+ QString m_bundlePath;
+};
+
+#endif // FIRWAREDOWNLOADER_H