aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYuta Doi <yuta-d@witz-inc.co.jp>2017-11-10 11:42:36 +0900
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2017-11-10 11:57:08 +0000
commit0b1d9ca2550bdb877d065a74e4debcc95c4e7b98 (patch)
tree5aafb6e7fa8c6cfac071038fd21088e895c1e34b
parent2b97202f86c492be91de83a93b513384871f321d (diff)
Add the fail-safe process for the configuration file
If the configuration file "layers.json" can not be opened, windowmanager uses a default layer configuration. Change-Id: I1b20f385c5e748a90be5e930a1775a6b3a4f39a5 Signed-off-by: Yuta Doi <yuta-d@witz-inc.co.jp>
-rw-r--r--src/app.cpp10
-rw-r--r--src/layers.hpp43
2 files changed, 50 insertions, 3 deletions
diff --git a/src/app.cpp b/src/app.cpp
index ba258b5..af552b5 100644
--- a/src/app.cpp
+++ b/src/app.cpp
@@ -44,12 +44,16 @@ namespace {
using nlohmann::json;
result<json> file_to_json(char const *filename) {
+ json j;
std::ifstream i(filename);
if (i.fail()) {
- return Err<json>("Could not open config file");
+ HMI_DEBUG("wm", "Could not open config file, so use default layer information");
+ j = default_layers_json;
}
- json j;
- i >> j;
+ else {
+ i >> j;
+ }
+
return Ok(j);
}
diff --git a/src/layers.hpp b/src/layers.hpp
index 5fee28a..268936b 100644
--- a/src/layers.hpp
+++ b/src/layers.hpp
@@ -116,6 +116,49 @@ struct layer_map {
struct result<struct layer_map> to_layer_map(nlohmann::json const &j);
+static const nlohmann::json default_layers_json = {
+ {"main_surface", {
+ {"surface_role", "HomeScreen"}
+ }},
+ {"mappings", {
+ {
+ {"role", "^HomeScreen$"},
+ {"name", "HomeScreen"},
+ {"layer_id", 1000},
+ {"area", {
+ {"type", "full"}
+ }}
+ },
+ {
+ {"role", "MediaPlayer|Radio|Phone|Navigation|HVAC|Settings|Dashboard|POI|Mixer"},
+ {"name", "apps"},
+ {"layer_id", 1001},
+ {"area", {
+ {"type", "rect"},
+ {"rect", {
+ {"x", 0},
+ {"y", 218},
+ {"width", -1},
+ {"height", -433}
+ }}
+ }}
+ },
+ {
+ {"role", "^OnScreen.*"},
+ {"name", "popups"},
+ {"layer_id", 9999},
+ {"area", {
+ {"type", "rect"},
+ {"rect", {
+ {"x", 0},
+ {"y", 760},
+ {"width", -1},
+ {"height", 400}
+ }}
+ }}
+ }
+ }}
+};
} // namespace wm
#endif // TMCAGLWM_LAYERS_H