summaryrefslogtreecommitdiffstats
path: root/app/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'app/main.cpp')
-rw-r--r--app/main.cpp41
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();
}