diff options
Diffstat (limited to 'app/main.cpp')
-rw-r--r-- | app/main.cpp | 41 |
1 files changed, 7 insertions, 34 deletions
diff --git a/app/main.cpp b/app/main.cpp index 6423844..a12b8ae 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -24,7 +24,6 @@ #include <QtQuickControls2/QQuickStyle> #include <QQuickWindow> #include <libhomescreen.hpp> -#include <qlibwindowmanager.h> #include <pbap.h> #include <telephony.h> @@ -37,6 +36,7 @@ int main(int argc, char *argv[]) QString graphic_role = QString("phone"); QGuiApplication app(argc, argv); + app.setDesktopFileName(graphic_role); QQuickStyle::setStyle("AGL"); @@ -49,64 +49,37 @@ int main(int argc, char *argv[]) parser.addVersionOption(); parser.process(app); QStringList positionalArguments = parser.positionalArguments(); + if (positionalArguments.length() == 2) { int port = positionalArguments.takeFirst().toInt(); QString secret = positionalArguments.takeFirst(); QUrl bindingAddress; + bindingAddress.setScheme(QStringLiteral("ws")); bindingAddress.setHost(QStringLiteral("localhost")); bindingAddress.setPort(port); bindingAddress.setPath(QStringLiteral("/api")); QUrlQuery query; + query.addQueryItem(QStringLiteral("token"), secret); bindingAddress.setQuery(query); QQmlContext *context = engine.rootContext(); context->setContextProperty(QStringLiteral("bindingAddress"), bindingAddress); Telephony *telephony = new Telephony(bindingAddress); context->setContextProperty("telephony", telephony); + std::string token = secret.toStdString(); std::string install_dir = getenv("AFM_APP_INSTALL_DIR"); + FilePlayer *player = new FilePlayer(install_dir + "/bin/Phone.wav", std::string("phone")); Phone *phone = new Phone(telephony, player); context->setContextProperty("phone", phone); + QObject::connect(telephony, &Telephony::callStateChanged, phone, &Phone::onCallStateChanged); context->setContextProperty("pbap", new Pbap(bindingAddress, context)); - LibHomeScreen* hs = new LibHomeScreen(); - QLibWindowmanager* qwm = new QLibWindowmanager(); - - // WindowManager - if(qwm->init(port,secret) != 0){ - exit(EXIT_FAILURE); - } - - AGLScreenInfo screenInfo(qwm->get_scale_factor()); - - // Request a surface as described in layers.json windowmanager’s file - if (qwm->requestSurface(graphic_role) != 0) { - exit(EXIT_FAILURE); - } - // Create an event callback against an event type. Here a lambda is called when SyncDraw event occurs - qwm->set_event_handler(QLibWindowmanager::Event_SyncDraw, [qwm, graphic_role](json_object *object) { - Q_UNUSED(object); - qwm->endDraw(graphic_role); - }); - - // HomeScreen - hs->init(port, token.c_str()); - // Set the event handler for Event_ShowWindow which will activate the surface for windowmanager - hs->set_event_handler(LibHomeScreen::Event_ShowWindow, [qwm, &graphic_role](json_object *object){ - qDebug("Surface %s got showWindow\n", graphic_role.toStdString().c_str()); - qwm->activateWindow(graphic_role); - }); qmlRegisterUncreatableType<NumberType>("NumberType", 1, 0, "NumberType", "Not creatable as it is an enum type"); - - engine.rootContext()->setContextProperty("screenInfo", &screenInfo); engine.load(QUrl(QStringLiteral("qrc:/Phone.qml"))); - QObject *root = engine.rootObjects().first(); - QQuickWindow *window = qobject_cast<QQuickWindow *>(root); - QObject::connect(window, SIGNAL(frameSwapped()), qwm, SLOT(slotActivateWindow() - )); } return app.exec(); } |