From e2a1895b1553c067927a250e83132e836fc1836a Mon Sep 17 00:00:00 2001 From: Kazumasa Mitsunari Date: Wed, 8 Aug 2018 16:15:46 +0900 Subject: Proposal: New layer settings Change-Id: I860f8dea4eee340fd8ab3dba3bbaee1661c584bf Signed-off-by: Kazumasa Mitsunari --- layers_setting.json | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/wm_client.cpp | 15 +++++++++++++ src/wm_client.hpp | 13 ++++++++++-- 3 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 layers_setting.json diff --git a/layers_setting.json b/layers_setting.json new file mode 100644 index 0000000..ed43288 --- /dev/null +++ b/layers_setting.json @@ -0,0 +1,61 @@ +{ + "description": "Layer mapping", + "mappings": [ + { + "name": "EvacuationLayer", + "role" : "", + "type" : "stack", + "id_range_begin": 0, + "id_range_end": 0, + "comment": "Work Around: This is evacuation layer that not stopping event loop" + }, + { + "name": "FarHomeScreen", + "role": "homescreen", + "type": "stack", + "id_range_begin": 100, + "id_range_end": 199, + "comment": "FarHomeScreen is the part of HomeScreen. The z order of this layer is lower than NearHomeScreen" + }, + { + "name": "Apps", + "role": "music|video|browser|radio|phone|map|hvac|settings|dashboard|poi|mixer|sdl|launcher|fallback", + "type": "tile", + "id_range_begin": 1000, + "id_range_end": 2999, + "comment": "Range of IDs that will always be placed on layer 1001" + }, + { + "name": "NearHomeScreen", + "role": "software_keyboard", + "type": "tile", + "id_range_begin": 3000, + "id_range_end": 3000, + "comment": "TOYOTA special software keyboard" + }, + { + "name": "Application Popup Layer", + "role": "popup*", + "type": "stack", + "id_range_begin": 4000, + "id_range_end": 4999, + "comment": "[T.B.D]This layer is for application popup layer" + }, + { + "name": "Restriction", + "role": "restriction", + "type": "stack", + "id_range_begin": 5000, + "id_range_end": 5999, + "comment": "This layer is for restriction notification. This is used by restriction role" + }, + { + "name": "OnScreen", + "role": "^on_screen.*", + "type": "stack", + "id_range_begin": 6000, + "id_range_end": 6999, + "comment": "Range of IDs that will always be placed on the OnScreen layer, that gets a very high 'dummy' id of 9999" + } + ] +} \ No newline at end of file diff --git a/src/wm_client.cpp b/src/wm_client.cpp index 09e2e00..79922fa 100644 --- a/src/wm_client.cpp +++ b/src/wm_client.cpp @@ -106,6 +106,21 @@ unsigned WMClient::layerID() const return this->layer; } +unsigned WMClient::surfaceID() const +{ + return this->surface; +} + +const string& WMClient::getWMLayerName() +{ + return this->wm_layer_name; +} + +void WMClient::setRole(const string& role) +{ + this->role_list.push_back(role); +} + /** * Set layerID the client belongs to * diff --git a/src/wm_client.hpp b/src/wm_client.hpp index 259d504..0268807 100644 --- a/src/wm_client.hpp +++ b/src/wm_client.hpp @@ -47,7 +47,11 @@ class WMClient std::string appID() const; unsigned surfaceID(const std::string &role) const; unsigned layerID() const; - std::string role(unsigned surface) const; + const std::string& getWMLayerName(); + unsigned surfaceID() const; + std::vector renderOrder() const; + const std::vector &roles() const; + void setRole(const std::string& role); void registerLayer(unsigned layer); bool addSurface(const std::string& role, unsigned surface); bool removeSurfaceIfExist(unsigned surface); @@ -63,7 +67,12 @@ class WMClient private: std::string id; unsigned layer; - std::unordered_map role2surface; + std::string wm_layer_name; + std::string area; + unsigned surface; // currently, main application has only one surface. + std::vector role_list; + std::vector surface_render_order; + std::unordered_map service2surfaces; #if GTEST_ENABLED // This is for unit test. afb_make_event occurs sig11 if call not in afb-binding std::unordered_map event2list; -- cgit 1.2.3-korg