summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazumasa Mitsunari <knimitz@witz-inc.co.jp>2017-10-23 21:42:47 +0900
committerKazumasa Mitsunari <knimitz@witz-inc.co.jp>2017-10-23 21:55:02 +0900
commit015e0b8da0e4d1cace622da74b00b6febf41713d (patch)
treeccca96182ef0af4c1ca4f0171027e2cbdb7b9657
parent25009f24b154f38628928a363d0b52b2d664c9c5 (diff)
Add homescreen feature to get shortcut pushed event
HomeScreen pushes shortcut pushed event to the application, then, application activate surface Change-Id: Ic1437a721e41948662251e724aa6d5707ecb1b9d Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
-rw-r--r--app/app.pro2
-rw-r--r--app/main.cpp17
-rw-r--r--package/config.xml1
3 files changed, 19 insertions, 1 deletions
diff --git a/app/app.pro b/app/app.pro
index bbc92a0..0c05150 100644
--- a/app/app.pro
+++ b/app/app.pro
@@ -5,7 +5,7 @@ HEADERS = PresetDataObject.h qlibwindowmanager.h qlibsoundmanager.h
SOURCES = main.cpp PresetDataObject.cpp qlibwindowmanager.cpp qlibsoundmanager.cpp
CONFIG += link_pkgconfig
-PKGCONFIG += soundmanager windowmanager
+PKGCONFIG += soundmanager windowmanager homescreen
RESOURCES += \
radio.qrc \
diff --git a/app/main.cpp b/app/main.cpp
index 7c967c2..ef0204a 100644
--- a/app/main.cpp
+++ b/app/main.cpp
@@ -26,9 +26,11 @@
#include <QtQuickControls2/QQuickStyle>
#include <QQuickWindow>
#include "PresetDataObject.h"
+#include <libhomescreen.hpp>
#include "qlibwindowmanager.h"
#include "qlibsoundmanager.h"
+static LibHomeScreen* hs;
static QLibWindowmanager* qwm;
static QLibSoundmanager* smw;
static std::string myname = std::string("Radio");
@@ -92,6 +94,9 @@ int main(int argc, char *argv[])
bindingAddress.setQuery(query);
context->setContextProperty(QStringLiteral("bindingAddress"), bindingAddress);
+ std::string token = secret.toStdString();
+
+ hs = new LibHomeScreen();
qwm = new QLibWindowmanager();
smw = new QLibSoundmanager();
@@ -112,6 +117,18 @@ int main(int argc, char *argv[])
int sourceID = root->property("sourceID").toInt();
smw->connect(sourceID, "default");
});
+
+ // HomeScreen
+ hs->init(port, token.c_str());
+ hs->set_event_handler(LibHomeScreen::Event_TapShortcut, [qwm](json_object *object){
+ const char *appname = json_object_get_string(
+ json_object_object_get(object, "application_name"));
+ if(myname == appname)
+ {
+ qDebug("Surface %s got tapShortcut\n", appname);
+ qwm->activateSurface(myname.c_str());
+ }
+ });
// SoundManager, event handler is set inside smw
smw->init(port, secret);
diff --git a/package/config.xml b/package/config.xml
index bdfe8b6..5ffcc6c 100644
--- a/package/config.xml
+++ b/package/config.xml
@@ -9,6 +9,7 @@
<feature name="urn:AGL:widget:required-api">
<param name="windowmanager" value="ws" />
<param name="soundmanager" value="ws" />
+ <param name="homescreen" value="ws" />
<param name="radio" value="ws" />
</feature>
<feature name="urn:AGL:widget:required-permission">