poi-yelp: add .vimrc to keep source syntax concise
[apps/poi-yelp.git] / main.cpp
1 #include <QApplication>
2 #include <iostream>
3 #include "MainApp.h"
4 #include <getopt.h>
5
6 #include <libhomescreen.hpp>
7 #include <qlibwindowmanager.h>
8
9
10 #define DEFAULT_CREDENTIALS_FILE "/etc/poikey"
11
12 using namespace std;
13
14 QLibWindowmanager* qwm;
15 LibHomeScreen* hs;
16 QString graphic_role;
17 MainApp *mainapp;
18
19 void SyncDrawHandler(json_object *object)
20 {
21         qwm->endDraw(graphic_role);
22 }
23
24 void TapShortcutHandler(json_object *object)
25 {
26     qwm->activateWindow(graphic_role);
27 }
28
29 int main(int argc, char *argv[], char *env[])
30 {
31     int opt;
32     QApplication a(argc, argv);
33     QString credentialsFile(DEFAULT_CREDENTIALS_FILE);
34     qwm = new QLibWindowmanager();
35     hs = new LibHomeScreen();
36         graphic_role = QString("poi");
37
38         QString pt = QString(argv[1]);
39         int port = pt.toInt();
40         QString secret = QString(argv[2]);
41         std::string token = secret.toStdString();
42
43     if (qwm->init(port, secret) != 0) {
44         exit(EXIT_FAILURE);
45     }
46
47     if (qwm->requestSurface(graphic_role) != 0) {
48         cerr << "Error: wm check failed" << endl;
49         exit(EXIT_FAILURE);
50     }
51
52         qwm->set_event_handler(QLibWindowmanager::Event_SyncDraw, SyncDrawHandler);
53
54     mainapp = new MainApp();
55
56         hs->init(port, token.c_str());
57
58         hs->set_event_handler(LibHomeScreen::Event_TapShortcut, TapShortcutHandler);
59
60     //force setting
61     mainapp->setInfoScreen(true);
62     mainapp->setKeyboard(true);
63
64     /* check naviapi */
65     if (mainapp->CheckNaviApi(argc, argv) == false)
66     {
67         cerr << "Error: naviapi check failed" << endl;
68         return -1;
69     }
70
71     /* then, authenticate connexion to POI service: */
72     if (mainapp->AuthenticatePOI(credentialsFile) < 0)
73     {
74         cerr << "Error: POI server authentication failed" << endl;
75         return -1;
76     }
77
78     cerr << "authentication succes !" << endl;
79
80     /* now, let's start monitor user inut (register callbacks): */
81     if (mainapp->StartMonitoringUserInput() < 0)
82         return -1;
83
84         qwm->activateWindow(graphic_role);
85
86     /* main loop: */
87     return a.exec();
88 }