aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-08-22 21:13:48 +0900
committerKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-08-22 21:13:48 +0900
commit726a95bc8c63ddd1c968028b61068ba2c33b994e (patch)
tree343b7bf28622eee91881135933f4b216da4679e0
parentca66798559857e0884872f2dbb32a2a445afda3e (diff)
Add loadLayerSetting
Change-Id: I08be64a3b0194175db4b3b7ef259254c10ad038b Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
-rw-r--r--src/wm_layer.cpp23
-rw-r--r--src/wm_layer.hpp3
-rw-r--r--src/wm_layer_control.cpp31
3 files changed, 55 insertions, 2 deletions
diff --git a/src/wm_layer.cpp b/src/wm_layer.cpp
index 813684a..365e37d 100644
--- a/src/wm_layer.cpp
+++ b/src/wm_layer.cpp
@@ -104,6 +104,29 @@ WMLayer::WMLayer()
// this->setting = std::make_unique<LayerSetting>(name, type, begin, end);
}
+WMLayer::WMLayer(json_object* j) : before_state(), state()
+{
+ LayerSetting::MANAGEMENT_TYPE t;
+ const char* layer_name = jh::getStringFromJson(j, "name");
+ const char* role = jh::getStringFromJson(j, "role");
+ const char* type = jh::getStringFromJson(j, "type");
+ int begin = jh::getIntFromJson(j, "id_range_begin");
+ int end = jh::getIntFromJson(j, "id_range_end");
+ string name = layer_name;
+
+ if (layer_name || type || begin >=0 || end >=0)
+ {
+ HMI_ERROR("Parse Error!!");
+ }
+ if(begin > end)
+ {
+ HMI_ERROR("INVALID.");
+ }
+ string str_type = type;
+ t = (type == "tile") ? LayerSetting::TILE : LayerSetting::STACK;
+ this->setting = std::make_unique<LayerSetting>(name, t, begin, end);
+}
+
unsigned WMLayer::getNewLayerID(const std::string& role)
{
return this->setting->getNewLayerID(role);
diff --git a/src/wm_layer.hpp b/src/wm_layer.hpp
index ac74530..6cfd9c2 100644
--- a/src/wm_layer.hpp
+++ b/src/wm_layer.hpp
@@ -23,6 +23,8 @@
#include <memory>
#include "wm_error.hpp"
+struct json_object;
+
namespace wm
{
@@ -79,6 +81,7 @@ class WMLayer
{
public:
WMLayer();
+ WMLayer(json_object* j);
~WMLayer() = default;
unsigned getNewLayerID(const std::string& role);
LayerState getLayerState() const { return before_state; }
diff --git a/src/wm_layer_control.cpp b/src/wm_layer_control.cpp
index a14c334..b15ebbb 100644
--- a/src/wm_layer_control.cpp
+++ b/src/wm_layer_control.cpp
@@ -118,6 +118,34 @@ void LayerControl::undoUpdate() {}
WMError LayerControl::loadLayerSetting(const string &path)
{
+ HMI_DEBUG("loading WMLayer(Application Containers) Setting from %s", path);
+
+ json_object *json_obj, *json_cfg;
+ int ret = jh::inputJsonFilie(path.c_str(), &json_obj);
+ if (0 > ret)
+ {
+ HMI_DEBUG("Could not open %s, so use default area information", path.c_str());
+ return WMError::FAIL;
+ }
+ HMI_INFO("json_obj dump:%s", json_object_get_string(json_obj));
+
+ if (!json_object_object_get_ex(json_obj, "mappings", &json_cfg))
+ {
+ HMI_ERROR("Parse Error!!");
+ return WMError::FAIL;
+ }
+
+ int len = json_object_array_length(json_cfg);
+ HMI_DEBUG("json_cfg len:%d", len);
+
+ for (int i = 0; i < len; i++)
+ {
+ json_object *json_tmp = json_object_array_get_idx(json_cfg, i);
+ HMI_DEBUG("> json_tmp dump:%s", json_object_get_string(json_tmp));
+
+ this->wm_layers.emplace_back(std::make_shared<WMLayer>(json_tmp));
+ }
+
return WMError::SUCCESS;
}
@@ -128,7 +156,7 @@ WMError LayerControl::loadAreaDb(const std::string& path)
int ret = jh::inputJsonFilie(path.c_str(), &json_obj);
if (0 > ret)
{
- HMI_DEBUG("Could not open area.db, so use default area information");
+ HMI_DEBUG("Could not open %s, so use default area information", path.c_str());
return WMError::FAIL;
}
HMI_INFO("json_obj dump:%s", json_object_get_string(json_obj));
@@ -143,7 +171,6 @@ WMError LayerControl::loadAreaDb(const std::string& path)
int len = json_object_array_length(json_cfg);
HMI_DEBUG("json_cfg len:%d", len);
- HMI_DEBUG("json_cfg dump:%s", json_object_get_string(json_cfg));
const char *area;
for (int i = 0; i < len; i++)