From 7ea90aa37831357d24362e84495ed7492ef31a68 Mon Sep 17 00:00:00 2001 From: Marcus Fritzsch Date: Tue, 1 Aug 2017 17:49:04 +0200 Subject: layers: add layer and layer_map to_json() helper Signed-off-by: Marcus Fritzsch --- src/layers.cpp | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) (limited to 'src/layers.cpp') diff --git a/src/layers.cpp b/src/layers.cpp index 1e44a1b..abf8303 100644 --- a/src/layers.cpp +++ b/src/layers.cpp @@ -22,7 +22,7 @@ layer::layer(nlohmann::json const &j) { } this->name = j["name"].get(); this->layer_id = get(j["layer_id"]); - this->rect = genivi::rect{-1, -1, 0, 0}; + this->rect = genivi::full_rect; if (j["area"]["type"] == "rect") { auto jr = j["area"]["rect"]; this->rect = genivi::rect{ @@ -119,4 +119,36 @@ optional layer_map::get_layer_rect(int surface_id) { return e ? optional(e->rect) : nullopt; } +json layer::to_json() const { + auto is_full = this->rect == genivi::full_rect; + + json r{}; + if (is_full) { + r = {{"type", "full"}}; + } else { + r = {{"type", "rect"}, + {"rect", + {{"x", this->rect.x}, + {"y", this->rect.y}, + {"width", this->rect.w}, + {"height", this->rect.h}}}}; + } + + return { + {"id_min", this->id_min}, + {"id_max", this->id_max}, + {"name", this->name}, + {"layer_id", this->layer_id}, + {"area", r}, + }; +} + +json layer_map::to_json() const { + json j{}; + for (auto const &i: this->mapping) { + j.push_back(i.to_json()); + } + return j; +} + } // namespace wm -- cgit 1.2.3-korg