From ec688535558c31989e7da221b858328b2e0766c8 Mon Sep 17 00:00:00 2001 From: "Bocklage, Jens" Date: Thu, 3 Nov 2016 20:23:10 +0100 Subject: New concept of dynamically placing surfaces in static defined layout areas. This is useful if an application wants to render more than one surface. By default, one surface is placed in one layout render area. With the new homescreen.xml introspection, apps can place their surfaces as they wish (limited to the boundries of the assigned layou render area!). The functionality is not fully implemented, but the shared lib already provides the interface. Signed-off-by: Bocklage, Jens --- SampleHomeScreenInterfaceApp/src/main.cpp | 12 ++++++++++++ SampleHomeScreenInterfaceApp/src/sampleclass.cpp | 15 +++++++++++++-- SampleHomeScreenInterfaceApp/src/sampleclass.hpp | 4 +++- 3 files changed, 28 insertions(+), 3 deletions(-) (limited to 'SampleHomeScreenInterfaceApp/src') diff --git a/SampleHomeScreenInterfaceApp/src/main.cpp b/SampleHomeScreenInterfaceApp/src/main.cpp index 1e83d80..b9b3efa 100644 --- a/SampleHomeScreenInterfaceApp/src/main.cpp +++ b/SampleHomeScreenInterfaceApp/src/main.cpp @@ -6,13 +6,25 @@ using namespace std; int main() { cout << "SampleHomeScreenInterfaceApp" << endl; + cout << "v0.4.0" << endl; SampleClass *sampleClass = new SampleClass(); + //sRectangle test = sampleClass->getLayoutRenderAreaForSurfaceId(1); + sampleClass->hardKeyPressed(100); sampleClass->hardKeyPressed(101); sampleClass->hardKeyPressed(102); + /*sRectangle renderArea; + renderArea.x = 0; + renderArea.y = 1; + renderArea.width = 12; + renderArea.height = 13; + sampleClass->renderSurfaceToArea(1, renderArea);*/ + + //sampleClass->requestSurfaceIdToFullScreen(1); + delete sampleClass; return 0; diff --git a/SampleHomeScreenInterfaceApp/src/sampleclass.cpp b/SampleHomeScreenInterfaceApp/src/sampleclass.cpp index 0d373d1..6a46f2b 100644 --- a/SampleHomeScreenInterfaceApp/src/sampleclass.cpp +++ b/SampleHomeScreenInterfaceApp/src/sampleclass.cpp @@ -11,12 +11,23 @@ SampleClass::~SampleClass() delete mp_libHomeScreen; } + +sRectangle SampleClass::getLayoutRenderAreaForSurfaceId(int surfaceId) +{ + mp_libHomeScreen->getLayoutRenderAreaForSurfaceId(surfaceId); +} + void SampleClass::hardKeyPressed(int key) { mp_libHomeScreen->hardKeyPressed(key); } -void SampleClass::toggleFullScreen() +void SampleClass::renderSurfaceToArea(int surfaceId, const sRectangle &renderArea) +{ + mp_libHomeScreen->renderSurfaceToArea(surfaceId, renderArea); +} + +void SampleClass::requestSurfaceIdToFullScreen(int surfaceId) { - mp_libHomeScreen->toggleFullScreen(); + mp_libHomeScreen->requestSurfaceIdToFullScreen(surfaceId); } diff --git a/SampleHomeScreenInterfaceApp/src/sampleclass.hpp b/SampleHomeScreenInterfaceApp/src/sampleclass.hpp index aa5f376..acffcf6 100644 --- a/SampleHomeScreenInterfaceApp/src/sampleclass.hpp +++ b/SampleHomeScreenInterfaceApp/src/sampleclass.hpp @@ -9,8 +9,10 @@ public: SampleClass(); ~SampleClass(); + sRectangle getLayoutRenderAreaForSurfaceId(int surfaceId); void hardKeyPressed(int key); - void toggleFullScreen(); + void renderSurfaceToArea(int surfaceId, const sRectangle &renderArea); + void requestSurfaceIdToFullScreen(int surfaceId); private: LibHomeScreen *mp_libHomeScreen; -- cgit 1.2.3-korg