From ef35ccbf522a2aaaece7625e9886bd910e3bd8b8 Mon Sep 17 00:00:00 2001 From: "Bocklage, Jens" Date: Mon, 7 Nov 2016 13:40:36 +0100 Subject: [PATCH] New HomeScreen API calls getSurfaceStatus and getAllSurfacesOfProcess. Signed-off-by: Bocklage, Jens --- HomeScreen/src/homescreencontrolinterface.cpp | 12 +++ HomeScreen/src/homescreencontrolinterface.h | 4 + HomeScreen/src/layouthandler.cpp | 27 ++++++ HomeScreen/src/layouthandler.h | 2 + HomeScreen/src/mainwindow.cpp | 2 + interfaces/homescreen.xml | 124 +++++++++++++++----------- 6 files changed, 121 insertions(+), 50 deletions(-) diff --git a/HomeScreen/src/homescreencontrolinterface.cpp b/HomeScreen/src/homescreencontrolinterface.cpp index bc66e53..fae19a2 100644 --- a/HomeScreen/src/homescreencontrolinterface.cpp +++ b/HomeScreen/src/homescreencontrolinterface.cpp @@ -24,12 +24,24 @@ HomeScreenControlInterface::~HomeScreenControlInterface() delete mp_homeScreenAdaptor; } +QList HomeScreenControlInterface::getAllSurfacesOfProcess(int pid) +{ + qDebug("getAllSurfacesOfProcess %d", pid); + return newRequestGetAllSurfacesOfProcess(pid); +} + QRect HomeScreenControlInterface::getLayoutRenderAreaForSurfaceId(int surfaceId) { qDebug("getLayoutRenderAreaForSurfaceId %d", surfaceId); return newRequestGetLayoutRenderAreaForSurfaceId(surfaceId); } +int HomeScreenControlInterface::getSurfaceStatus(int surfaceId) +{ + qDebug("getSurfaceStatus %d", surfaceId); + return newRequestGetSurfaceStatus(surfaceId); +} + void HomeScreenControlInterface::hardKeyPressed(int key) { int pid = -1; diff --git a/HomeScreen/src/homescreencontrolinterface.h b/HomeScreen/src/homescreencontrolinterface.h index 3203088..fb772db 100644 --- a/HomeScreen/src/homescreencontrolinterface.h +++ b/HomeScreen/src/homescreencontrolinterface.h @@ -17,13 +17,17 @@ public: signals: void newRequestsToBeVisibleApp(int pid); + QList newRequestGetAllSurfacesOfProcess(int pid); QRect newRequestGetLayoutRenderAreaForSurfaceId(int surfaceId); + int newRequestGetSurfaceStatus(int surfaceId); void newRequestRenderSurfaceToArea(int surfaceId, const QRect &renderArea); void newRequestSurfaceIdToFullScreen(int surfaceId); //from homescreen_adapter.h public Q_SLOTS: // METHODS + QList getAllSurfacesOfProcess(int pid); QRect getLayoutRenderAreaForSurfaceId(int surfaceId); + int getSurfaceStatus(int surfaceId); void hardKeyPressed(int key); void renderSurfaceToArea(int surfaceId, const QRect &renderArea); void requestSurfaceIdToFullScreen(int surfaceId); diff --git a/HomeScreen/src/layouthandler.cpp b/HomeScreen/src/layouthandler.cpp index 5f52cd5..35304e6 100644 --- a/HomeScreen/src/layouthandler.cpp +++ b/HomeScreen/src/layouthandler.cpp @@ -175,6 +175,33 @@ void LayoutHandler::makeMeVisible(int pid) } } +QList LayoutHandler::requestGetAllSurfacesOfProcess(int pid) +{ + qDebug("requestGetAllSurfacesOfProcess %d", pid); + + return mp_dBusWindowManagerProxy->getAllSurfacesOfProcess(pid); +} + +int LayoutHandler::requestGetSurfaceStatus(int surfaceId) +{ + int result = -1; + + if (-1 != m_visibleSurfaces.indexOf(surfaceId)) + { + result = 0; + } + if (-1 != m_invisibleSurfaces.indexOf(surfaceId)) + { + result = 1; + } + if (-1 != m_requestsToBeVisibleSurfaces.indexOf(surfaceId)) + { + result = 1; + } + + return result; +} + void LayoutHandler::requestRenderSurfaceToArea(int surfaceId, const QRect &renderArea) { qDebug("requestRenderSurfaceToArea %d %d,%d,%d,%d", surfaceId, renderArea.x(), renderArea.y(), renderArea.width(), renderArea.height()); diff --git a/HomeScreen/src/layouthandler.h b/HomeScreen/src/layouthandler.h index cc4b7ab..1ba270b 100644 --- a/HomeScreen/src/layouthandler.h +++ b/HomeScreen/src/layouthandler.h @@ -19,6 +19,8 @@ signals: public slots: void makeMeVisible(int pid); + QList requestGetAllSurfacesOfProcess(int pid); + int requestGetSurfaceStatus(int surfaceId); void requestRenderSurfaceToArea(int surfaceId, const QRect &renderArea); void requestSurfaceIdToFullScreen(int surfaceId); void setLayoutByName(QString layoutName); diff --git a/HomeScreen/src/mainwindow.cpp b/HomeScreen/src/mainwindow.cpp index f8dfe89..f4891b3 100644 --- a/HomeScreen/src/mainwindow.cpp +++ b/HomeScreen/src/mainwindow.cpp @@ -100,6 +100,8 @@ MainWindow::MainWindow(QWidget *parent) : mp_layoutHandler->setUpLayouts(); mp_homeScreenControlInterface = new HomeScreenControlInterface(this); + QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestGetAllSurfacesOfProcess(int)), mp_layoutHandler, SLOT(requestGetAllSurfacesOfProcess(int))); + QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestGetSurfaceStatus(int)), mp_layoutHandler, SLOT(requestGetSurfaceStatus(int))); QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestsToBeVisibleApp(int)), mp_layoutHandler, SLOT(makeMeVisible(int))); QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestSurfaceIdToFullScreen(int)), mp_layoutHandler, SLOT(requestSurfaceIdToFullScreen(int))); QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestRenderSurfaceToArea(int, QRect)), mp_layoutHandler, SLOT(requestRenderSurfaceToArea(int,QRect))); diff --git a/interfaces/homescreen.xml b/interfaces/homescreen.xml index b317306..1cd390a 100644 --- a/interfaces/homescreen.xml +++ b/interfaces/homescreen.xml @@ -19,59 +19,83 @@ This interface is a collection of methods from different functional areas to control the HomeScreen app. --> - - - - - - + + + + - - - - + + + + + - - - - - - + + + + - - - - - - + The surface IDs can for example be used to assign them to a layout render area. + --> + + + + + + + + + + + + + + + + + + -- 2.16.6