diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/app.cpp | 10 | ||||
-rw-r--r-- | src/layers.hpp | 43 |
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 |