diff options
Diffstat (limited to 'rockworkd/libpebble/firmwaredownloader.h')
| -rw-r--r-- | rockworkd/libpebble/firmwaredownloader.h | 50 |
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 |
