summaryrefslogtreecommitdiff
path: root/daemon
diff options
context:
space:
mode:
Diffstat (limited to 'daemon')
-rw-r--r--daemon/manager.cpp1
-rw-r--r--daemon/manager.h3
-rw-r--r--daemon/watchconnector.cpp25
-rw-r--r--daemon/watchconnector.h5
4 files changed, 34 insertions, 0 deletions
diff --git a/daemon/manager.cpp b/daemon/manager.cpp
index 9ba90be..ca3830f 100644
--- a/daemon/manager.cpp
+++ b/daemon/manager.cpp
@@ -70,6 +70,7 @@ Manager::Manager(Settings *settings, QObject *parent) :
connect(dbus, &DBusConnector::pebbleChanged, proxy, &PebbledProxy::NameChanged);
connect(dbus, &DBusConnector::pebbleChanged, proxy, &PebbledProxy::AddressChanged);
connect(watch, &WatchConnector::connectedChanged, proxy, &PebbledProxy::ConnectedChanged);
+ connect(watch, &WatchConnector::versionsChanged, proxy, &PebbledProxy::InfoChanged);
connect(bank, &BankManager::slotsChanged, proxy, &PebbledProxy::AppSlotsChanged);
connect(apps, &AppManager::appsChanged, proxy, &PebbledProxy::AllAppsChanged);
diff --git a/daemon/manager.h b/daemon/manager.h
index 9a4ed0f..9825339 100644
--- a/daemon/manager.h
+++ b/daemon/manager.h
@@ -107,6 +107,7 @@ class PebbledProxy : public QObject, protected QDBusContext
Q_PROPERTY(QString Name READ Name NOTIFY NameChanged)
Q_PROPERTY(QString Address READ Address NOTIFY AddressChanged)
+ Q_PROPERTY(QVariantMap Info READ Info NOTIFY InfoChanged)
Q_PROPERTY(bool Connected READ Connected NOTIFY ConnectedChanged)
Q_PROPERTY(QString AppUuid READ AppUuid NOTIFY AppUuidChanged)
Q_PROPERTY(QStringList AppSlots READ AppSlots NOTIFY AppSlotsChanged)
@@ -121,6 +122,7 @@ public:
inline QString Name() const { return pebble()["Name"].toString(); }
inline QString Address() const { return pebble()["Address"].toString(); }
+ inline QVariantMap Info() const { return manager()->watch->versions().toMap(); }
inline bool Connected() const { return manager()->watch->isConnected(); }
inline QString AppUuid() const { return manager()->currentAppUuid.toString(); }
@@ -147,6 +149,7 @@ public slots:
signals:
void NameChanged();
void AddressChanged();
+ void InfoChanged();
void ConnectedChanged();
void AppUuidChanged();
void AppSlotsChanged();
diff --git a/daemon/watchconnector.cpp b/daemon/watchconnector.cpp
index f992847..ec9bc20 100644
--- a/daemon/watchconnector.cpp
+++ b/daemon/watchconnector.cpp
@@ -28,6 +28,29 @@ QDebug operator<< (QDebug d, const WatchConnector::WatchVersions &ver) {
return d;
}
+QVariantMap WatchConnector::SoftwareVersion::toMap()
+{
+ QVariantMap map;
+ map.insert("version", this->version);
+ map.insert("build", this->build.toTime_t());
+ map.insert("commit", this->commit);
+ map.insert("hardware", this->hw_string);
+ map.insert("metadata", this->metadata_version);
+ map.insert("recovery", this->is_recovery);
+ return map;
+}
+
+QVariantMap WatchConnector::WatchVersions::toMap()
+{
+ QVariantMap map;
+ map.insert("bootloader", this->bootLoaderBuild.toTime_t());
+ map.insert("serial", this->serialNumber);
+ map.insert("address", this->address.toHex());
+ map.insertMulti("firmware", this->main.toMap());
+ map.insertMulti("firmware", this->safe.toMap());
+ return map;
+}
+
WatchConnector::WatchConnector(QObject *parent) :
QObject(parent), l(metaObject()->className()), socket(nullptr), is_connected(false)
{
@@ -72,6 +95,8 @@ WatchConnector::WatchConnector(QObject *parent) :
if (u.bad()) {
qCWarning(l) << "short read while reading firmware version";
+ } else {
+ emit versionsChanged();
}
qCDebug(l) << "hardware information:" << _versions;
diff --git a/daemon/watchconnector.h b/daemon/watchconnector.h
index 400908c..7ee9bc8 100644
--- a/daemon/watchconnector.h
+++ b/daemon/watchconnector.h
@@ -197,6 +197,8 @@ public:
HardwareRevision hw_revision;
QString hw_string;
quint8 metadata_version;
+
+ QVariantMap toMap();
};
struct WatchVersions {
@@ -206,6 +208,8 @@ public:
QString hardwareRevision;
QString serialNumber;
QByteArray address;
+
+ QVariantMap toMap();
};
typedef QMap<int, QVariant> Dict;
@@ -233,6 +237,7 @@ public:
signals:
void nameChanged();
+ void versionsChanged();
void connectedChanged();
public slots: