#include <QtQml/qqml.h>
#include <QQuickWindow>
#include <QtQuickControls2/QQuickStyle>
+#include <QVariant>
+#include <QTimer>
+
+#include <json-c/json.h>
#include "eventhandler.h"
#include "onscreenmodel.h"
+/*
+{
+ "application_id": "onscreenapp",
+ "title": "onscreen title",
+ "type": "information",
+ "contents": "message contents",
+ "buttons": ["button_name1"],
+ "replyto":"onstestapp"
+}
+*/
+static struct json_object *
+build_fake_json(void)
+{
+ struct json_object *tmp;
+ struct json_object *obj = json_object_new_object();
+ struct json_object *array = json_object_new_array();
+
+ tmp = json_object_new_string("Big Title");
+ json_object_object_add(obj, "title", tmp);
+
+ tmp = json_object_new_string("Informatin");
+ json_object_object_add(obj, "type", tmp);
+
+ tmp = json_object_new_string("Our message contents");
+ json_object_object_add(obj, "contents", tmp);
+
+ tmp = json_object_new_string("onstestapp");
+ json_object_object_add(obj, "replyto", tmp);
+
+ /* array */
+ tmp = json_object_new_string("Button");
+ json_object_array_add(array, tmp);
+ json_object_object_add(obj, "buttons", array);
+
+ tmp = json_object_new_string(APP_ID);
+ json_object_object_add(obj, "application_id", tmp);
+
+ /* adds the entire object */
+ return obj;
+}
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
+#if 0
QCoreApplication::setOrganizationDomain("LinuxFoundation");
QCoreApplication::setOrganizationName("AutomotiveGradeLinux");
QCoreApplication::setApplicationName("Onscreenapp");
QCoreApplication::setApplicationVersion("0.1.0");
+#endif
+
+ // this is necessary to identify app, setApplicationName is only for the
+ // title
+ app.setDesktopFileName(APP_ID);
- QQuickStyle::setStyle("AGL");
+ //QQuickStyle::setStyle("AGL");
QCommandLineParser parser;
parser.addPositionalArgument("port", app.translate("main", "port for binding"));
QObject *root = engine.rootObjects().first();
QQuickWindow *window = qobject_cast<QQuickWindow *>(root);
+
QObject::connect(eventHandler, SIGNAL(updateModel(QVariant)), window, SLOT(setOnScreenModel(QVariant)));
QObject::connect(eventHandler, SIGNAL(showOnScreen()), window, SLOT(showOnScreen()));
QObject::connect(eventHandler, SIGNAL(hideOnScreen()), window, SLOT(hideOnScreen()));
+
HMI_DEBUG(APP_ID, "onscreenapp started!");
+
+ /* fake(s) an event */
+#if 0
+ QTimer::singleShot(1000, [eventHandler](){
+ struct json_object *json = build_fake_json();
+ const char *json_str = json_object_to_json_string_ext(json,
+ JSON_C_TO_STRING_SPACED | JSON_C_TO_STRING_PRETTY);
+ emit eventHandler->updateModel(QVariant(json_str));
+ emit eventHandler->showOnScreen();
+ });
+#endif
+
return app.exec();
}