aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-08-08 16:15:46 +0900
committerKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-08-20 13:49:00 +0900
commite2a1895b1553c067927a250e83132e836fc1836a (patch)
tree88cb54dec93b463884a63fd5b0a173fd44d074ca
parent1859dd4135f5d019f16a1333df318ecd1211afb9 (diff)
Proposal: New layer settings
Change-Id: I860f8dea4eee340fd8ab3dba3bbaee1661c584bf Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
-rw-r--r--layers_setting.json61
-rw-r--r--src/wm_client.cpp15
-rw-r--r--src/wm_client.hpp13
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;