summaryrefslogtreecommitdiff
path: root/daemon/bankmanager.h
diff options
context:
space:
mode:
authorTomasz Sterna <tomek@xiaoka.com>2015-01-03 16:38:02 +0100
committerTomasz Sterna <tomek@xiaoka.com>2015-01-03 19:07:48 +0100
commit4e7da1944f5fa75a0739c0757d40a8102f045365 (patch)
tree5f3fe179256536e4135eb4d5031a1d754af5e26c /daemon/bankmanager.h
parent4150005566bec7827ce1cdd759a2397d47eba583 (diff)
parente6ec758b364fcaf9fda35e56740c3fcd7e8fe25e (diff)
Merge remote-tracking branch 'javispedro/js-testing'
Conflicts: daemon/daemon.pro daemon/dbusconnector.cpp daemon/manager.cpp daemon/watchcommands.cpp daemon/watchcommands.h daemon/watchconnector.cpp daemon/watchconnector.h log4qt-debug.conf log4qt-release.conf rpm/pebble.spec rpm/pebble.yaml
Diffstat (limited to 'daemon/bankmanager.h')
-rw-r--r--daemon/bankmanager.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/daemon/bankmanager.h b/daemon/bankmanager.h
new file mode 100644
index 0000000..7532812
--- /dev/null
+++ b/daemon/bankmanager.h
@@ -0,0 +1,63 @@
+#ifndef BANKMANAGER_H
+#define BANKMANAGER_H
+
+#include "watchconnector.h"
+#include "uploadmanager.h"
+#include "appmanager.h"
+
+class BankManager : public QObject
+{
+ Q_OBJECT
+ QLoggingCategory l;
+
+public:
+ explicit BankManager(WatchConnector *watch, UploadManager *upload, AppManager *apps, QObject *parent = 0);
+
+ int numSlots() const;
+
+ bool isUsed(int slot) const;
+ QUuid appAt(int slot) const;
+
+signals:
+ void slotsChanged();
+
+public slots:
+ bool uploadApp(const QUuid &uuid, int slot = -1);
+ bool unloadApp(int slot);
+
+ void refresh();
+
+private:
+ int findUnusedSlot() const;
+ void refreshWatchApp(int slot, std::function<void()> successCallback, std::function<void(int)> errorCallback);
+
+private slots:
+ void handleWatchConnected();
+
+private:
+ WatchConnector *watch;
+ UploadManager *upload;
+ AppManager *apps;
+
+ enum ResultCodes {
+ Success = 1,
+ BankInUse = 2,
+ InvalidCommand = 3,
+ GeneralFailure = 4
+ };
+
+ struct SlotInfo {
+ bool used;
+ quint32 id;
+ QString name;
+ QString company;
+ quint32 flags;
+ quint16 version;
+ QUuid uuid;
+ };
+
+ QVector<SlotInfo> _slots;
+ QTimer *_refresh;
+};
+
+#endif // BANKMANAGER_H