diff options
author | Kazumasa Mitsunari <knimitz@witz-inc.co.jp> | 2018-08-08 16:15:46 +0900 |
---|---|---|
committer | Kazumasa Mitsunari <knimitz@witz-inc.co.jp> | 2018-08-20 13:49:00 +0900 |
commit | e2a1895b1553c067927a250e83132e836fc1836a (patch) | |
tree | 88cb54dec93b463884a63fd5b0a173fd44d074ca | |
parent | 1859dd4135f5d019f16a1333df318ecd1211afb9 (diff) |
Proposal: New layer settings
Change-Id: I860f8dea4eee340fd8ab3dba3bbaee1661c584bf
Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
-rw-r--r-- | layers_setting.json | 61 | ||||
-rw-r--r-- | src/wm_client.cpp | 15 | ||||
-rw-r--r-- | src/wm_client.hpp | 13 |
3 files changed, 87 insertions, 2 deletions
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<unsigned> renderOrder() const; + const std::vector<std::string> &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<std::string, unsigned> role2surface; + std::string wm_layer_name; + std::string area; + unsigned surface; // currently, main application has only one surface. + std::vector<std::string> role_list; + std::vector<unsigned> surface_render_order; + std::unordered_map<std::string, unsigned> service2surfaces; #if GTEST_ENABLED // This is for unit test. afb_make_event occurs sig11 if call not in afb-binding std::unordered_map<std::string, std::string> event2list; |