summaryrefslogtreecommitdiffstats
path: root/homescreen/src/main.cpp
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2021-11-04 14:35:55 -0400
committerScott Murray <scott.murray@konsulko.com>2021-11-04 14:44:37 -0400
commit2b7ca7a6eeb79e03507abb7a16b0503591d2b064 (patch)
treed372e518e3eae711d9c867de1c1731154d069400 /homescreen/src/main.cpp
parent187fffa9f0a05359678887f30b58091cf7c5fc47 (diff)
Initial rework to run without the app framework
Changes: - Remove application framework build scripts, and update the application qmake file to just build a "homescreen" binary and support installing it to /usr/bin. - Remove voice API related code. Some of the associated QML and images for the UI have been retained in case equivalent functionality is re-added in the future. - Remove or stub out various app framework API access for the homescreen and launcher bindings, and comment out usage of the Qt wrappers from libqtappfw (e.g. Bluetooth). The aim is to provide a replacement library or libraries for the latter that provide the same functionality. - Remove the old homescreen API documentation and do an initial update of the build instructions in README.md. Bug-AGL: SPEC-4121 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Iab979c8e1341f2da0384f88f163a977b03664600
Diffstat (limited to 'homescreen/src/main.cpp')
-rw-r--r--homescreen/src/main.cpp50
1 files changed, 10 insertions, 40 deletions
diff --git a/homescreen/src/main.cpp b/homescreen/src/main.cpp
index 376644f..75ed97c 100644
--- a/homescreen/src/main.cpp
+++ b/homescreen/src/main.cpp
@@ -26,14 +26,15 @@
#include <QQuickWindow>
#include <QTimer>
+#if 0
#include <weather.h>
#include <bluetooth.h>
+#endif
#include "applicationlauncher.h"
#include "statusbarmodel.h"
#include "mastervolume.h"
#include "homescreenhandler.h"
#include "hmi-debug.h"
-#include "chromecontroller.h"
#include <qpa/qplatformnativeinterface.h>
#include <wayland-client.h>
@@ -137,8 +138,9 @@ find_screen(const char *screen_name)
static void
load_agl_shell_app(QPlatformNativeInterface *native,
QQmlApplicationEngine *engine,
- struct agl_shell *agl_shell, QUrl &bindingAddress,
- const char *screen_name, bool is_demo)
+ struct agl_shell *agl_shell,
+ const char *screen_name,
+ bool is_demo)
{
struct wl_surface *bg, *top, *bottom;
struct wl_output *output;
@@ -182,12 +184,11 @@ load_agl_shell_app(QPlatformNativeInterface *native,
"first screen " << qApp->screens().first()->name();
output = getWlOutput(native, screen);
-
/* engine.rootObjects() works only if we had a load() */
StatusBarModel *statusBar = qobj_top->findChild<StatusBarModel *>("statusBar");
if (statusBar) {
qDebug() << "got statusBar objectname, doing init()";
- statusBar->init(bindingAddress, engine->rootContext());
+ statusBar->init(engine->rootContext());
}
agl_shell_set_panel(agl_shell, top, output, AGL_SHELL_EDGE_TOP);
@@ -225,25 +226,6 @@ int main(int argc, char *argv[])
/* we need to have an app_id */
a.setDesktopFileName("homescreen");
- QCommandLineParser parser;
- parser.addPositionalArgument("port", a.translate("main", "port for binding"));
- parser.addPositionalArgument("secret", a.translate("main", "secret for binding"));
- parser.addHelpOption();
- parser.addVersionOption();
- parser.process(a);
- QStringList positionalArguments = parser.positionalArguments();
-
- int port = 1700;
- QString token = "wm";
- QString graphic_role = "homescreen"; // defined in layers.json in Window Manager
-
- if (positionalArguments.length() == 2) {
- port = positionalArguments.takeFirst().toInt();
- token = positionalArguments.takeFirst();
- }
-
- HMI_DEBUG("HomeScreen","port = %d, token = %s", port, token.toStdString().c_str());
-
agl_shell = register_agl_shell(native);
if (!agl_shell) {
fprintf(stderr, "agl_shell extension is not advertised. "
@@ -257,40 +239,28 @@ int main(int argc, char *argv[])
// import C++ class to QML
qmlRegisterType<StatusBarModel>("HomeScreen", 1, 0, "StatusBarModel");
qmlRegisterType<MasterVolume>("MasterVolume", 1, 0, "MasterVolume");
- qmlRegisterUncreatableType<ChromeController>("SpeechChrome", 1, 0, "SpeechChromeController",
- QLatin1String("SpeechChromeController is uncreatable."));
ApplicationLauncher *launcher = new ApplicationLauncher();
launcher->setCurrent(QStringLiteral("launcher"));
HomescreenHandler* homescreenHandler = new HomescreenHandler(aglShell, launcher);
- homescreenHandler->init(port, token.toStdString().c_str());
-
- QUrl bindingAddress;
- bindingAddress.setScheme(QStringLiteral("ws"));
- bindingAddress.setHost(QStringLiteral("localhost"));
- bindingAddress.setPort(port);
- bindingAddress.setPath(QStringLiteral("/api"));
-
- QUrlQuery query;
- query.addQueryItem(QStringLiteral("token"), token);
- bindingAddress.setQuery(query);
+ homescreenHandler->init();
QQmlApplicationEngine engine;
QQmlContext *context = engine.rootContext();
- context->setContextProperty("bindingAddress", bindingAddress);
context->setContextProperty("homescreenHandler", homescreenHandler);
context->setContextProperty("launcher", launcher);
+#if 0
context->setContextProperty("weather", new Weather(bindingAddress));
context->setContextProperty("bluetooth", new Bluetooth(bindingAddress, context));
- context->setContextProperty("speechChromeController", new ChromeController(bindingAddress, &engine));
+#endif
// we add it here even if we don't use it
context->setContextProperty("shell", aglShell);
/* instead of loading main.qml we load one-by-one each of the QMLs,
* divided now between several surfaces: panels, background.
*/
- load_agl_shell_app(native, &engine, agl_shell, bindingAddress, screen_name, is_demo_val);
+ load_agl_shell_app(native, &engine, agl_shell, screen_name, is_demo_val);
return a.exec();
}