1 #include <QApplication>
6 #include <libhomescreen.hpp>
7 #include <qlibwindowmanager.h>
9 #include <navigation.h>
11 #define DEFAULT_CREDENTIALS_FILE "/etc/poikey"
15 QLibWindowmanager* qwm;
20 void SyncDrawHandler(json_object *object)
22 qwm->endDraw(graphic_role);
25 void TapShortcutHandler(json_object *object)
27 qwm->activateWindow(graphic_role);
30 int main(int argc, char *argv[], char *env[])
33 QApplication a(argc, argv);
34 QString credentialsFile(DEFAULT_CREDENTIALS_FILE);
35 qwm = new QLibWindowmanager();
36 hs = new LibHomeScreen();
37 graphic_role = QString("poi");
39 QString pt = QString(argv[1]);
40 int port = pt.toInt();
41 QString secret = QString(argv[2]);
42 std::string token = secret.toStdString();
45 bindingAddress.setScheme(QStringLiteral("ws"));
46 bindingAddress.setHost(QStringLiteral("localhost"));
47 bindingAddress.setPort(port);
48 bindingAddress.setPath(QStringLiteral("/api"));
50 query.addQueryItem(QStringLiteral("token"), secret);
51 bindingAddress.setQuery(query);
53 if (qwm->init(port, secret) != 0) {
57 if (qwm->requestSurface(graphic_role) != 0) {
58 cerr << "Error: wm check failed" << endl;
62 qwm->set_event_handler(QLibWindowmanager::Event_SyncDraw, SyncDrawHandler);
64 mainapp = new MainApp(new Navigation(bindingAddress));
66 hs->init(port, token.c_str());
68 hs->set_event_handler(LibHomeScreen::Event_TapShortcut, TapShortcutHandler);
71 mainapp->setInfoScreen(true);
72 mainapp->setKeyboard(true);
74 /* then, authenticate connexion to POI service: */
75 if (mainapp->AuthenticatePOI(credentialsFile) < 0)
77 cerr << "Error: POI server authentication failed" << endl;
81 cerr << "authentication succes !" << endl;
83 /* now, let's start monitor user inut (register callbacks): */
84 if (mainapp->StartMonitoringUserInput() < 0)
87 qwm->activateWindow(graphic_role);