From ffe9825a4f960f2d36bfa42dcfeecba824f73070 Mon Sep 17 00:00:00 2001 From: Kazumasa Mitsunari Date: Mon, 22 Oct 2018 16:32:19 +0900 Subject: Add setRole API Change-Id: I8a2b324c405f16120c2ca5b449ece8fba43f7e2e Signed-off-by: Kazumasa Mitsunari --- src/qlibwindowmanager.cpp | 24 ++++++++++++++++++++++++ src/qlibwindowmanager.h | 1 + 2 files changed, 25 insertions(+) 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); -- cgit 1.2.3-korg