summaryrefslogtreecommitdiffstats
path: root/interfaces
diff options
context:
space:
mode:
authorBocklage, Jens <Jens_Bocklage@mentor.com>2016-11-08 19:46:21 +0100
committerBocklage, Jens <Jens_Bocklage@mentor.com>2016-11-08 19:46:21 +0100
commitdd8c90f87463d370c3076e13b7c6cc0e27c0d2f5 (patch)
treef5ec587cfda6ea802ebf0a87ad0fca5712968d3d /interfaces
parentd364a5eea428db2eadbb77f3e5da7b74dc36127f (diff)
-Make the SampleNav app yellow.
-Preparation for the new ApplicationFramework binding. The App Framework provides more information. --Adding afm D-Bus-interface introspection --Updating the AppInfo datatype to hold the new data: The application info consists of: string id; string version; int width; int height; string name; string description; string shortname; string author; string iconPath; -When pressing the AppLauncher Button or the Settings Button, the app layer is hidden. --Therefore, shideLayer and showLayer is introduced in the WindowManager API -If an application does not create its surface instantly, the HomeScreen retries to show the surface related to the pid. -New WindowManager function deleteLayoutById -Implement the complete HomeScreen API in the libhomescreen Signed-off-by: Bocklage, Jens <Jens_Bocklage@mentor.com>
Diffstat (limited to 'interfaces')
-rw-r--r--interfaces/appframework.xml49
-rw-r--r--interfaces/include/afm_user_daemon.hpp21
-rw-r--r--interfaces/include/appframework.hpp40
-rw-r--r--interfaces/include/windowmanager.hpp1
-rw-r--r--interfaces/interfaces.pro1
-rw-r--r--interfaces/src/appframework.cpp63
-rw-r--r--interfaces/windowmanager.xml33
7 files changed, 145 insertions, 63 deletions
diff --git a/interfaces/appframework.xml b/interfaces/appframework.xml
index 1324386..e2c088e 100644
--- a/interfaces/appframework.xml
+++ b/interfaces/appframework.xml
@@ -13,14 +13,45 @@
See the License for the specific language governing permissions and
limitations under the License. -->
<node>
- <interface name="org.agl.appframework">
- <method name="getAvailableAppNames">
- <arg name="names" type="as" direction="out"/>
- </method>
- <method name="launchApp">
- <arg name="name" type="s" direction="in"/>
- <arg name="pid" type="i" direction="out"/>
- </method>
- </interface>
+ <!--
+ org.agl.appframework:
+ @short_description: The interface of the app framework binder.
+
+ The app framework has to provide some basic functionality like
+ getting a list of applications and start them. In further versions,
+ also pausing or stopping, .
+ -->
+ <interface name="org.agl.appframework">
+ <!--
+ getAvailableApps:
+ @apps: A list of applications that can be launched.
+
+ The application info consists of:
+ string id;
+ string version;
+ int width;
+ int height;
+ string name;
+ string description;
+ string shortname;
+ string author;
+ string iconPath;
+ -->
+ <method name="getAvailableApps">
+ <arg name="apps" type="{ssiisssss}" direction="out"/>
+ <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QList&lt;AppInfo&gt;"/>
+ </method>
+ <!--
+ launchApp:
+ @name: The name of the application that shall be launched.
+ @pid: Returns the pid of the process.
+
+ Use the id of the application info to launch the app.
+ -->
+ <method name="launchApp">
+ <arg name="name" type="s" direction="in"/>
+ <arg name="pid" type="i" direction="out"/>
+ </method>
+ </interface>
</node>
diff --git a/interfaces/include/afm_user_daemon.hpp b/interfaces/include/afm_user_daemon.hpp
new file mode 100644
index 0000000..256292b
--- /dev/null
+++ b/interfaces/include/afm_user_daemon.hpp
@@ -0,0 +1,21 @@
+/*
+ * 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 AFM_USER_DAEMON_HPP
+#define AFM_USER_DAEMON_HPP
+
+
+#endif // AFM_USER_DAEMON_HPP
diff --git a/interfaces/include/appframework.hpp b/interfaces/include/appframework.hpp
index d95cd9d..d4abefb 100644
--- a/interfaces/include/appframework.hpp
+++ b/interfaces/include/appframework.hpp
@@ -17,38 +17,32 @@
#ifndef APPFRAMEWORK_HPP
#define APPFRAMEWORK_HPP
-#include <QObject>
#include <QtDBus>
-#include <QString>
-class AppInfo : public QObject
+class AppInfo
{
- Q_OBJECT
public:
- explicit AppInfo(QObject *parent = 0);
- AppInfo(const AppInfo &other);
- AppInfo& operator=(const AppInfo &other);
- ~AppInfo();
+ AppInfo();
+ virtual ~AppInfo();
- //register Message with the Qt type system
- static void registerMetaType();
-
- friend QDBusArgument &operator<<(QDBusArgument &argument, const AppInfo &appInfo);
- friend const QDBusArgument &operator>>(const QDBusArgument &argument, AppInfo &appInfo);
-
- void setName(const QString name) {this->name = name;}
- QString getName() const {return name;}
- void setIconPath(const QString iconPath) {this->iconPath = iconPath;}
- QString getIconPath() const {return iconPath;}
- void setDescription(const QString description) {this->description = description;}
- QString getDescription() const {return description;}
-
-private:
+ QString id;
+ QString version;
+ int width;
+ int height;
QString name;
- QString iconPath;
QString description;
+ QString shortname;
+ QString author;
+ QString iconPath;
+
+ void read(const QJsonObject &json);
+
+ friend QDBusArgument &operator <<(QDBusArgument &argument, const AppInfo &mAppInfo);
+ friend const QDBusArgument &operator >>(const QDBusArgument &argument, AppInfo &mAppInfo);
};
+
Q_DECLARE_METATYPE(AppInfo)
+Q_DECLARE_METATYPE(QList<AppInfo>)
#endif // APPFRAMEWORK_HPP
diff --git a/interfaces/include/windowmanager.hpp b/interfaces/include/windowmanager.hpp
index 45c7c6e..ebab2d7 100644
--- a/interfaces/include/windowmanager.hpp
+++ b/interfaces/include/windowmanager.hpp
@@ -24,6 +24,7 @@
#define WINDOWMANAGER_ERROR_NAME_ALREADY_DEFINED 2
#define WINDOWMANAGER_ERROR_ID_NOT_FOUND 3
#define WINDOWMANAGER_ERROR_NAME_NOT_FOUND 4
+#define WINDOWMANAGER_ERROR_ID_IN_USE 5
class SimplePoint
{
diff --git a/interfaces/interfaces.pro b/interfaces/interfaces.pro
index bd3fa39..1dad460 100644
--- a/interfaces/interfaces.pro
+++ b/interfaces/interfaces.pro
@@ -28,6 +28,7 @@ SOURCES += src/appframework.cpp \
XMLSOURCES = \
appframework.xml \
+ afm_user_daemon.xml \
daynightmode.xml \
homescreen.xml \
inputevent.xml \
diff --git a/interfaces/src/appframework.cpp b/interfaces/src/appframework.cpp
index afd6114..40515d5 100644
--- a/interfaces/src/appframework.cpp
+++ b/interfaces/src/appframework.cpp
@@ -16,56 +16,57 @@
#include "include/appframework.hpp"
-AppInfo::AppInfo(QObject *parent) :
- QObject(parent)
-{
-}
-
-AppInfo::AppInfo(const AppInfo &other) :
- QObject(other.parent()),
- name(other.getName()),
- iconPath(other.getIconPath()),
- description(other.getDescription())
-{
-}
-AppInfo& AppInfo::operator=(const AppInfo &other)
+AppInfo::AppInfo()
{
- setParent(other.parent());
- name = other.getName();
- iconPath = other.getIconPath();
- description = other.getDescription();
-
- return *this;
}
AppInfo::~AppInfo()
{
}
-void AppInfo::registerMetaType()
+void AppInfo::read(const QJsonObject &json)
{
- qRegisterMetaType<AppInfo>("AppInfo");
- qDBusRegisterMetaType<AppInfo>();
+ id = json["id"].toString();
+ version = json["id"].toString();
+ width = json["id"].toInt();
+ height = json["id"].toInt();
+ name = json["id"].toString();
+ description = json["id"].toString();
+ shortname = json["id"].toString();
+ author = json["id"].toString();
+ iconPath = json["id"].toString();
}
-
-// Marshall the MyStructure data into a D-Bus argument
-QDBusArgument &operator<<(QDBusArgument &argument, const AppInfo &appInfo)
+QDBusArgument &operator <<(QDBusArgument &argument, const AppInfo &mAppInfo)
{
argument.beginStructure();
- argument << appInfo.name << appInfo.iconPath << appInfo.description;
+ argument << mAppInfo.id;
+ argument << mAppInfo.version;
+ argument << mAppInfo.width;
+ argument << mAppInfo.height;
+ argument << mAppInfo.name;
+ argument << mAppInfo.description;
+ argument << mAppInfo.shortname;
+ argument << mAppInfo.author;
+ argument << mAppInfo.iconPath;
argument.endStructure();
- qDebug("appInfo.name:<< %s", appInfo.name.toStdString().c_str());
+
return argument;
}
-// Retrieve the MyStructure data from the D-Bus argument
-const QDBusArgument &operator>>(const QDBusArgument &argument, AppInfo &appInfo)
+const QDBusArgument &operator >>(const QDBusArgument &argument, AppInfo &mAppInfo)
{
argument.beginStructure();
- argument >> appInfo.name >> appInfo.iconPath >> appInfo.description;
+ argument >> mAppInfo.id;
+ argument >> mAppInfo.version;
+ argument >> mAppInfo.width;
+ argument >> mAppInfo.height;
+ argument >> mAppInfo.name;
+ argument >> mAppInfo.description;
+ argument >> mAppInfo.shortname;
+ argument >> mAppInfo.author;
+ argument >> mAppInfo.iconPath;
argument.endStructure();
- qDebug("appInfo.name:>> %s", appInfo.name.toStdString().c_str());
return argument;
}
diff --git a/interfaces/windowmanager.xml b/interfaces/windowmanager.xml
index c15ca2c..a4be58f 100644
--- a/interfaces/windowmanager.xml
+++ b/interfaces/windowmanager.xml
@@ -40,6 +40,18 @@
</method>
<!--
+ deleteLayoutById:
+ @layoutId: The ID of the layout to delete.
+ @error: WINDOWMANAGER_NO_ERROR or the first error that occurred.
+
+ Deletes the layout with the given ID. This cannot be the current active layout!
+ -->
+ <method name="deleteLayoutById">
+ <arg name="layoutId" type="i" direction="in"/>
+ <arg name="error" type="i" direction="out"/>
+ </method>
+
+ <!--
setLayoutById:
@layoutId: The ID of the layout to activate.
@error: WINDOWMANAGER_NO_ERROR or the first error that occurred.
@@ -159,6 +171,27 @@
<arg name="surfaceIds" type="a(i)" direction="out"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QList&lt;int&gt;"/>
</method>
+
+ <!--
+ showLayer:
+ @layer: The ID of the layer to show. POPUP=0, APPS=1, HOMESCREEN=2
+
+ Show complete layers.
+ By default, all layers are shown.
+ -->
+ <method name="showLayer">
+ <arg name="layer" type="i" direction="in"/>
+ </method>
+ <!--
+ hideLayer:
+ @layer: The ID of the layer to hide. POPUP=0, APPS=1, HOMESCREEN=2
+
+ Hide complete layers.
+ By default, all layers are shown.
+ -->
+ <method name="hideLayer">
+ <arg name="layer" type="i" direction="in"/>
+ </method>
</interface>
</node>