summaryrefslogtreecommitdiffstats
path: root/interfaces
diff options
context:
space:
mode:
authorBocklage, Jens <Jens_Bocklage@mentor.com>2016-09-30 14:31:09 +0200
committerBocklage, Jens <Jens_Bocklage@mentor.com>2016-09-30 14:59:21 +0200
commitcf8cd699e91df40c3f9070019f7c561432b4b4dd (patch)
treef1801eb22d1b51c80401f56eede6f79fb985333a /interfaces
parent0a468d9b5ae7b3e5ba106facf17698d89b1ce200 (diff)
Implementing app launch and app surface control workflow. Using WindowManager to control layer and surfaces (ongoing).
Defining three layouts. Adding combobox selection feature to popup widget. Known issue: IVI-shell is currently disabled in AGL due to issues (porting to Yocto 2.1.1). Signed-off-by: Bocklage, Jens <Jens_Bocklage@mentor.com>
Diffstat (limited to 'interfaces')
-rw-r--r--interfaces/README.md6
-rw-r--r--interfaces/homescreen.xml3
-rw-r--r--interfaces/include/windowmanager.hpp59
-rw-r--r--interfaces/interfaces.pro11
-rw-r--r--interfaces/popup.xml4
-rw-r--r--interfaces/src/appframework.cpp16
-rw-r--r--interfaces/src/windowmanager.cpp77
-rw-r--r--interfaces/windowmanager.xml52
8 files changed, 225 insertions, 3 deletions
diff --git a/interfaces/README.md b/interfaces/README.md
index 0d11315..c669548 100644
--- a/interfaces/README.md
+++ b/interfaces/README.md
@@ -9,6 +9,12 @@ https://gerrit.automotivelinux.org/gerrit/#/admin/projects/staging/HomeScreen
AGL repo for bitbake recipe:
https://gerrit.automotivelinux.org/gerrit/#/admin/projects/AGL/meta-agl-demo/recipes-demo-hmi/HomeScreen/HomeScreen_?.bb
+v0.3.0
+09/30/2016
+
+#changes
+- interface definition ongoing
+
v0.1.1
07/06/2016
diff --git a/interfaces/homescreen.xml b/interfaces/homescreen.xml
index 55f4305..3eb66d0 100644
--- a/interfaces/homescreen.xml
+++ b/interfaces/homescreen.xml
@@ -17,6 +17,9 @@
<method name="hardKeyPressed">
<arg name="key" type="i" direction="in"/> <!-- using the inputevent.hpp InputEvent::HardKey type -->
</method>
+ <method name="setToFullscreen">
+ <arg name="pid" type="i" direction="in"/>
+ </method>
</interface>
</node>
diff --git a/interfaces/include/windowmanager.hpp b/interfaces/include/windowmanager.hpp
new file mode 100644
index 0000000..b587b70
--- /dev/null
+++ b/interfaces/include/windowmanager.hpp
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH
+ *
+ * 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 WINDOWMANAGER_H
+#define WINDOWMANAGER_H
+
+#include <QtDBus>
+
+class SimplePoint
+{
+public:
+ SimplePoint();
+ virtual ~SimplePoint();
+
+ int x;
+ int y;
+
+ friend QDBusArgument &operator <<(QDBusArgument &argument, const SimplePoint &mSimplePoint);
+ friend const QDBusArgument &operator >>(const QDBusArgument &argument, SimplePoint &mSimplePoint);
+};
+
+
+class SimpleRect
+{
+public:
+ SimpleRect();
+ virtual ~SimpleRect();
+
+ int x;
+ int y;
+ int width;
+ int height;
+
+ friend QDBusArgument &operator <<(QDBusArgument &argument, const SimpleRect &mSimpleRect);
+ friend const QDBusArgument &operator >>(const QDBusArgument &argument, SimpleRect &mSimpleRect);
+};
+
+
+Q_DECLARE_METATYPE(SimplePoint)
+Q_DECLARE_METATYPE(QList<SimplePoint>)
+
+Q_DECLARE_METATYPE(SimpleRect)
+Q_DECLARE_METATYPE(QList<SimpleRect>)
+
+
+#endif // WINDOWMANAGER_H
diff --git a/interfaces/interfaces.pro b/interfaces/interfaces.pro
index 75b4412..d776564 100644
--- a/interfaces/interfaces.pro
+++ b/interfaces/interfaces.pro
@@ -21,8 +21,12 @@ TEMPLATE = lib
CONFIG += staticlib
TARGET = interfaces
-HEADERS += include/appframework.hpp
-SOURCES += src/appframework.cpp
+HEADERS += \
+ include/appframework.hpp \
+ include/windowmanager.hpp
+
+SOURCES += src/appframework.cpp \
+ src/windowmanager.cpp
XMLSOURCES = \
appframework.xml \
@@ -30,7 +34,8 @@ XMLSOURCES = \
homescreen.xml \
inputevent.xml \
popup.xml \
- statusbar.xml
+ statusbar.xml \
+ windowmanager.xml
gen_adapter_cpp.input = XMLSOURCES
gen_adapter_cpp.commands = \
diff --git a/interfaces/popup.xml b/interfaces/popup.xml
index 0ec8db3..c144f84 100644
--- a/interfaces/popup.xml
+++ b/interfaces/popup.xml
@@ -18,5 +18,9 @@
<arg name="type" type="i" direction="in"/>
<arg name="text" type="s" direction="in"/>
</method>
+ <method name="showPopupComboBox">
+ <arg name="text" type="s" direction="in"/>
+ <arg name="choices" type="as" direction="in"/>
+ </method>
</interface>
</node>
diff --git a/interfaces/src/appframework.cpp b/interfaces/src/appframework.cpp
index 3a5ebda..afd6114 100644
--- a/interfaces/src/appframework.cpp
+++ b/interfaces/src/appframework.cpp
@@ -1,3 +1,19 @@
+/*
+ * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH
+ *
+ * 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 "include/appframework.hpp"
AppInfo::AppInfo(QObject *parent) :
diff --git a/interfaces/src/windowmanager.cpp b/interfaces/src/windowmanager.cpp
new file mode 100644
index 0000000..12f425e
--- /dev/null
+++ b/interfaces/src/windowmanager.cpp
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH
+ *
+ * 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 "include/windowmanager.hpp"
+
+SimplePoint::SimplePoint()
+{
+}
+
+SimplePoint::~SimplePoint()
+{
+}
+
+
+SimpleRect::SimpleRect()
+{
+}
+
+SimpleRect::~SimpleRect()
+{
+}
+
+QDBusArgument &operator <<(QDBusArgument &argument, const SimplePoint &mSimplePoint)
+{
+ argument.beginStructure();
+ argument << mSimplePoint.x;
+ argument << mSimplePoint.y;
+ argument.endStructure();
+
+ return argument;
+}
+
+const QDBusArgument &operator >>(const QDBusArgument &argument, SimplePoint &mSimplePoint)
+{
+ argument.beginStructure();
+ argument >> mSimplePoint.x;
+ argument >> mSimplePoint.y;
+ argument.endStructure();
+ return argument;
+}
+
+QDBusArgument &operator <<(QDBusArgument &argument, const SimpleRect &mSimpleRect)
+{
+ argument.beginStructure();
+ argument << mSimpleRect.x;
+ argument << mSimpleRect.y;
+ argument << mSimpleRect.width;
+ argument << mSimpleRect.height;
+ argument.endStructure();
+
+ return argument;
+}
+
+const QDBusArgument &operator >>(const QDBusArgument &argument, SimpleRect &mSimpleRect)
+{
+ argument.beginStructure();
+ argument >> mSimpleRect.x;
+ argument >> mSimpleRect.y;
+ argument >> mSimpleRect.width;
+ argument >> mSimpleRect.height;
+ argument.endStructure();
+ return argument;
+}
+
diff --git a/interfaces/windowmanager.xml b/interfaces/windowmanager.xml
new file mode 100644
index 0000000..9c1e7fe
--- /dev/null
+++ b/interfaces/windowmanager.xml
@@ -0,0 +1,52 @@
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+<!-- Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH
+
+ 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. -->
+<node>
+ <interface name="org.agl.windowmanager">
+ <method name="addLayout">
+ <arg name="layoutId" type="i" direction="in"/>
+ <arg name="layoutName" type="s" direction="in"/>
+ <arg name="surfaceAreas" type="a(iiii)" direction="in"/>
+ <annotation name="org.qtproject.QtDBus.QtTypeName.In2" value="QList&lt;SimpleRect&gt;"/>
+ <arg name="error" type="i" direction="out"/>
+ </method>
+ <method name="getAvailableLayouts">
+ <arg name="numberOfAppSurfaces" type="i" direction="in"/>
+ <arg name="layoutIds" type="ai" direction="out"/>
+ <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QList&lt;int&gt;"/>
+ </method>
+ <method name="setLayoutById">
+ <arg name="layoutId" type="i" direction="in"/>
+ </method>
+ <method name="setLayoutByName">
+ <arg name="layoutName" type="s" direction="in"/>
+ </method>
+ <method name="getLayout">
+ <arg name="layoutId" type="i" direction="out"/>
+ </method>
+ <method name="setSurfaceToLayoutArea">
+ <arg name="surfaceId" type="i" direction="in"/>
+ <arg name="layoutAreaId" type="i" direction="in"/>
+ </method>
+ <method name="getAvailableSurfaces">
+ <arg name="surfacesAndPids" type="a(ii)" direction="out"/>
+ <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QList&lt;SimplePoint&gt;"/>
+ </method>
+ <method name="getLayoutName">
+ <arg name="layoutId" type="i" direction="in"/>
+ <arg name="layoutName" type="s" direction="out"/>
+ </method>
+ </interface>
+</node>
+