summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomasz Sterna <tomek@xiaoka.com>2014-07-10 11:56:26 +0200
committerTomasz Sterna <tomek@xiaoka.com>2014-07-10 11:56:26 +0200
commit072da88eee57e5d16f0b75c7b90c8a0bc6a60cb3 (patch)
tree48ad2f71d598a5b44d4522a37cf1a1e681bbfe79
parentc5132f1434eb6e14abfe2d2761d9f3abdcc3ad0e (diff)
Implemented ping, disconnect, reconnect in daemon
-rw-r--r--app/pebbledinterface.cpp15
-rw-r--r--app/pebbledinterface.h3
-rw-r--r--app/qml/cover/CoverPage.qml2
-rw-r--r--app/qml/pages/ManagerPage.qml6
-rw-r--r--daemon/dbusadaptor.cpp20
-rw-r--r--daemon/dbusadaptor.h14
-rw-r--r--daemon/manager.h5
-rw-r--r--daemon/org.pebbled.xml5
8 files changed, 64 insertions, 6 deletions
diff --git a/app/pebbledinterface.cpp b/app/pebbledinterface.cpp
index 9710d78..390964a 100644
--- a/app/pebbledinterface.cpp
+++ b/app/pebbledinterface.cpp
@@ -142,3 +142,18 @@ QString PebbledInterface::address() const
qDebug() << __FUNCTION__;
return pebbled->property(__FUNCTION__).toString();
}
+
+void PebbledInterface::ping()
+{
+ pebbled->call("ping", 66);
+}
+
+void PebbledInterface::disconnect()
+{
+ pebbled->call("disconnect");
+}
+
+void PebbledInterface::reconnect()
+{
+ pebbled->call("reconnect");
+}
diff --git a/app/pebbledinterface.h b/app/pebbledinterface.h
index 2afc6c0..eccc766 100644
--- a/app/pebbledinterface.h
+++ b/app/pebbledinterface.h
@@ -46,6 +46,9 @@ signals:
public slots:
void setEnabled(bool);
void setActive(bool);
+ void ping();
+ void disconnect();
+ void reconnect();
private slots:
void getUnitProperties();
diff --git a/app/qml/cover/CoverPage.qml b/app/qml/cover/CoverPage.qml
index 1fea52c..767799e 100644
--- a/app/qml/cover/CoverPage.qml
+++ b/app/qml/cover/CoverPage.qml
@@ -65,7 +65,7 @@ CoverBackground {
if (pebbled.connected) {
pebbled.ping();
} else {
- pebbled.connect();
+ pebbled.reconnect();
}
}
}
diff --git a/app/qml/pages/ManagerPage.qml b/app/qml/pages/ManagerPage.qml
index f24fae7..adb1cf4 100644
--- a/app/qml/pages/ManagerPage.qml
+++ b/app/qml/pages/ManagerPage.qml
@@ -104,7 +104,11 @@ Page {
checked: pebbled.connected
automaticCheck: false
onClicked: {
- console.log('pebbled.(dis)connect()');
+ if (pebbled.connected) {
+ pebbled.disconnect();
+ } else {
+ pebbled.connect();
+ }
}
}
diff --git a/daemon/dbusadaptor.cpp b/daemon/dbusadaptor.cpp
index 6460dca..6125ee7 100644
--- a/daemon/dbusadaptor.cpp
+++ b/daemon/dbusadaptor.cpp
@@ -1,6 +1,6 @@
/*
* This file was generated by qdbusxml2cpp version 0.8
- * Command line was: qdbusxml2cpp -a daemon/dbusadaptor -p app/daemonproxy daemon/org.pebbled.xml
+ * Command line was: qdbusxml2cpp -a dbusadaptor org.pebbled.xml
*
* qdbusxml2cpp is Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
*
@@ -57,3 +57,21 @@ QVariantMap PebbledAdaptor::pebble() const
return qvariant_cast< QVariantMap >(parent()->property("pebble"));
}
+void PebbledAdaptor::disconnect()
+{
+ // handle method call org.pebbled.disconnect
+ QMetaObject::invokeMethod(parent(), "disconnect");
+}
+
+void PebbledAdaptor::ping(int val)
+{
+ // handle method call org.pebbled.ping
+ QMetaObject::invokeMethod(parent(), "ping", Q_ARG(int, val));
+}
+
+void PebbledAdaptor::reconnect()
+{
+ // handle method call org.pebbled.reconnect
+ QMetaObject::invokeMethod(parent(), "reconnect");
+}
+
diff --git a/daemon/dbusadaptor.h b/daemon/dbusadaptor.h
index d1662c6..7613fba 100644
--- a/daemon/dbusadaptor.h
+++ b/daemon/dbusadaptor.h
@@ -1,6 +1,6 @@
/*
* This file was generated by qdbusxml2cpp version 0.8
- * Command line was: qdbusxml2cpp -a daemon/dbusadaptor -p app/daemonproxy daemon/org.pebbled.xml
+ * Command line was: qdbusxml2cpp -a dbusadaptor org.pebbled.xml
*
* qdbusxml2cpp is Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
*
@@ -9,8 +9,8 @@
* before re-generating it.
*/
-#ifndef DBUSADAPTOR_H_1404660047
-#define DBUSADAPTOR_H_1404660047
+#ifndef DBUSADAPTOR_H_1404986135
+#define DBUSADAPTOR_H_1404986135
#include <QtCore/QObject>
#include <QtDBus/QtDBus>
@@ -40,6 +40,11 @@ class PebbledAdaptor: public QDBusAbstractAdaptor
" <property access=\"read\" type=\"b\" name=\"connected\"/>\n"
" <signal name=\"pebbleChanged\"/>\n"
" <signal name=\"connectedChanged\"/>\n"
+" <method name=\"ping\">\n"
+" <arg direction=\"in\" type=\"i\" name=\"val\"/>\n"
+" </method>\n"
+" <method name=\"disconnect\"/>\n"
+" <method name=\"reconnect\"/>\n"
" </interface>\n"
"")
public:
@@ -60,6 +65,9 @@ public: // PROPERTIES
QVariantMap pebble() const;
public Q_SLOTS: // METHODS
+ void disconnect();
+ void ping(int val);
+ void reconnect();
Q_SIGNALS: // SIGNALS
void connectedChanged();
void pebbleChanged();
diff --git a/daemon/manager.h b/daemon/manager.h
index b9aa01b..8d3c8de 100644
--- a/daemon/manager.h
+++ b/daemon/manager.h
@@ -71,6 +71,11 @@ class PebbledProxy : public QObject
public:
explicit PebbledProxy(QObject *parent) : QObject(parent) {}
+public slots:
+ void ping(int val) { static_cast<Manager*>(parent())->watch->ping((unsigned int)val); }
+ void disconnect() { static_cast<Manager*>(parent())->watch->disconnect(); }
+ void reconnect() { static_cast<Manager*>(parent())->watch->reconnect(); }
+
};
#endif // MANAGER_H
diff --git a/daemon/org.pebbled.xml b/daemon/org.pebbled.xml
index a282815..0a958c8 100644
--- a/daemon/org.pebbled.xml
+++ b/daemon/org.pebbled.xml
@@ -10,5 +10,10 @@
<property name="connected" type="b" access="read"/>
<signal name="pebbleChanged"/>
<signal name="connectedChanged"/>
+ <method name="ping">
+ <arg name="val" type="i" direction="in"/>
+ </method>
+ <method name="disconnect"/>
+ <method name="reconnect"/>
</interface>
</node>