summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-10-22 16:32:19 +0900
committerKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-10-22 17:21:25 +0900
commitffe9825a4f960f2d36bfa42dcfeecba824f73070 (patch)
tree08f755e1d496786d3daf54a30ebe3b23ceac10a4
parentd186c2c096756469d7a917e67b49dc9eef68a625 (diff)
Add setRole API
Change-Id: I8a2b324c405f16120c2ca5b449ece8fba43f7e2e Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
-rw-r--r--src/qlibwindowmanager.cpp24
-rw-r--r--src/qlibwindowmanager.h1
2 files changed, 25 insertions, 0 deletions
diff --git a/src/qlibwindowmanager.cpp b/src/qlibwindowmanager.cpp
index fff99c4..0d0f8a6 100644
--- a/src/qlibwindowmanager.cpp
+++ b/src/qlibwindowmanager.cpp
@@ -40,6 +40,30 @@ int QLibWindowmanager::init(int port, const QString &token) {
return ret_init;
}
+int QLibWindowmanager::setRole(const QString &role, bool request) {
+ this->graphic_role = role.toStdString();
+ int ret = -1;
+ int surface_id = this->wm->setRole(this->graphic_role.c_str(), request);
+ if(request)
+ {
+ if(surface_id < 0){
+ qDebug("failed to get surfaceID");
+ ret = -1;
+ }
+ else {
+ qDebug("surfaceID is set to %d", surface_id);
+ char buf[65]; // surface id is under 64bit(1.84E19,) so 65 is sufficient for buffer
+ snprintf(buf, 65, "%d", surface_id);
+ setenv("QT_IVI_SURFACE_ID", buf, 1);
+ ret = surface_id;
+ }
+ }
+ else {
+ ret = surface_id;
+ }
+ return ret;
+}
+
int QLibWindowmanager::requestSurface(const QString &role) {
this->graphic_role = role.toStdString();
int surface_id = this->wm->requestSurface(this->graphic_role.c_str());
diff --git a/src/qlibwindowmanager.h b/src/qlibwindowmanager.h
index e60f04f..68d7ed4 100644
--- a/src/qlibwindowmanager.h
+++ b/src/qlibwindowmanager.h
@@ -89,6 +89,7 @@ public:
int init(int port, const QString &token);
// WM API
+ Q_INVOKABLE int setRole(const QString& role, bool request_surface_id = false);
Q_INVOKABLE int requestSurface(const QString &role);
Q_INVOKABLE int activateWindow(const QString &role);
Q_INVOKABLE int activateWindow(const QString &role, const QString &drawing_area);