summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/HVAC.qml33
-rw-r--r--app/app.pro8
-rw-r--r--app/homescreenhandler.cpp46
-rw-r--r--app/homescreenhandler.h44
-rw-r--r--app/main.cpp13
5 files changed, 142 insertions, 2 deletions
diff --git a/app/HVAC.qml b/app/HVAC.qml
index 4e27e2d..c8dc7bb 100644
--- a/app/HVAC.qml
+++ b/app/HVAC.qml
@@ -148,6 +148,39 @@ ApplicationWindow {
}
}
}
+
+ ColumnLayout {
+ Layout.fillWidth: true
+ spacing: 20
+ ToggleButton {
+ onImage: './images/HMI_HVAC_Active.svg'
+ offImage: './images/HMI_HVAC_Inactive.svg'
+ Label {
+ anchors.centerIn: parent
+ color: parent.checked ? '#00ADDC' : '#848286'
+ text: translator.translate(qsTr('Split Right'), translator.language)
+ font.pixelSize: parent.height / 4
+ }
+ onCheckedChanged: {
+ console.debug('Split on the right', checked)
+ homescreenHandler.setOrientation("hvac", 2)
+ }
+ }
+ ToggleButton {
+ onImage: './images/HMI_HVAC_Active.svg'
+ offImage: './images/HMI_HVAC_Inactive.svg'
+ Label {
+ anchors.centerIn: parent
+ color: parent.checked ? '#00ADDC' : '#848286'
+ text: translator.translate(qsTr('Split Top'), translator.language)
+ font.pixelSize: parent.height / 4
+ }
+ onCheckedChanged: {
+ console.debug('Split on top', checked)
+ homescreenHandler.setOrientation("hvac", 3)
+ }
+ }
+ }
}
RowLayout {
diff --git a/app/app.pro b/app/app.pro
index 14e7c44..6a1340d 100644
--- a/app/app.pro
+++ b/app/app.pro
@@ -1,16 +1,20 @@
TEMPLATE = app
TARGET = hvac
-QT = qml quick
+QT = qml quick dbus
CONFIG += c++11 link_pkgconfig
+DBUS_INTERFACES = $$[QT_SYSROOT]/usr/share/dbus-1/interfaces/org.automotivelinux.AppLaunch.xml
+
PKGCONFIG += qtappfw-hvac qtappfw-vehicle-signals
HEADERS += \
+ homescreenhandler.h \
translator.h
SOURCES = \
main.cpp \
- translator.cpp
+ homescreenhandler.cpp \
+ translator.cpp \
RESOURCES += \
hvac.qrc \
diff --git a/app/homescreenhandler.cpp b/app/homescreenhandler.cpp
new file mode 100644
index 0000000..53129fa
--- /dev/null
+++ b/app/homescreenhandler.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2017 TOYOTA MOTOR CORPORATION
+ * Copyright (c) 2018,2019 TOYOTA MOTOR CORPORATION
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <QDBusMessage>
+#include <QDBusConnection>
+#include "homescreenhandler.h"
+
+#define APPLAUNCH_DBUS_IFACE "org.automotivelinux.AppLaunch"
+#define APPLAUNCH_DBUS_OBJECT "/org/automotivelinux/AppLaunch"
+
+HomescreenHandler::HomescreenHandler(QObject *parent) : QObject(parent)
+{
+ applaunch_iface = new org::automotivelinux::AppLaunch(APPLAUNCH_DBUS_IFACE, APPLAUNCH_DBUS_OBJECT, QDBusConnection::sessionBus(), this);
+}
+
+HomescreenHandler::~HomescreenHandler()
+{
+}
+
+void HomescreenHandler::setOrientation(QString application_id, uint32_t orientation)
+{
+ QDBusPendingReply<> reply = applaunch_iface->split(application_id, orientation);
+ reply.waitForFinished();
+ if (reply.isError()) {
+ fprintf(stderr, "HVAC: Unable to split application '%s': %s",
+ application_id.toStdString().c_str(),
+ reply.error().message().toStdString().c_str());
+ }
+
+ fprintf(stderr, "hvac done calling set split for appid %s, orientation %d\n",
+ application_id.toStdString().c_str(), orientation);
+}
diff --git a/app/homescreenhandler.h b/app/homescreenhandler.h
new file mode 100644
index 0000000..7ca9cd0
--- /dev/null
+++ b/app/homescreenhandler.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2017 TOYOTA MOTOR CORPORATION
+ * Copyright (c) 2018,2019 TOYOTA MOTOR CORPORATION
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef HOMESCREENHANDLER_H
+#define HOMESCREENHANDLER_H
+
+#include <QObject>
+#include <QString>
+#include <QStringList>
+#include <string>
+
+#include "applaunch_interface.h"
+
+using namespace std;
+
+class HomescreenHandler : public QObject
+{
+ Q_OBJECT
+public:
+ explicit HomescreenHandler(QObject *parent = 0);
+ ~HomescreenHandler();
+
+ Q_INVOKABLE void setOrientation(QString application_id, uint32_t orientation);
+ void onRep(struct json_object* reply_contents);
+
+private:
+ org::automotivelinux::AppLaunch *applaunch_iface;
+};
+
+#endif // HOMESCREENHANDLER_H
diff --git a/app/main.cpp b/app/main.cpp
index e4f87bf..e506dc1 100644
--- a/app/main.cpp
+++ b/app/main.cpp
@@ -20,6 +20,8 @@
#include <QDebug>
#include <hvac.h>
#include <vehiclesignals.h>
+#include "homescreenhandler.h"
+
#include "translator.h"
@@ -27,11 +29,22 @@ int main(int argc, char *argv[])
{
setenv("QT_QUICK_CONTROLS_STYLE", "AGL", 1);
+ HomescreenHandler* homescreenHandler = new HomescreenHandler();
+ if (argc > 1) {
+ int orientation = strtoul(argv[1], NULL, 10);
+
+ fprintf(stderr, "Starting HVAC in tiled orientation %d\n",
+ orientation);
+ homescreenHandler->setOrientation("hvac", orientation);
+ }
+
QGuiApplication app(argc, argv);
+
QQmlApplicationEngine engine;
VehicleSignalsConfig vsConfig("hvac");
engine.rootContext()->setContextProperty("hvac", new HVAC(new VehicleSignals(vsConfig)));
+ engine.rootContext()->setContextProperty("homescreenHandler", homescreenHandler);
qmlRegisterType<Translator>("Translator", 1, 0, "Translator");
engine.load(QUrl(QStringLiteral("qrc:/HVAC.qml")));