layers: introduce layers.hpp and .cpp for layer related code
authorMarcus Fritzsch <m@fritschy.de>
Thu, 27 Jul 2017 21:12:17 +0000 (23:12 +0200)
committerMarcus Fritzsch <marcus_fritzsch@mentor.com>
Tue, 8 Aug 2017 15:24:00 +0000 (17:24 +0200)
Signed-off-by: Marcus Fritzsch <marcus_fritzsch@mentor.com>
src/CMakeLists.txt
src/app.cpp
src/layers.cpp [new file with mode: 0644]
src/layers.hpp [new file with mode: 0644]
src/layout.cpp
src/layout.hpp

index a04173e..1a1066e 100644 (file)
@@ -26,7 +26,7 @@ add_library(winman MODULE
    app.hpp app.cpp
    result.hpp
    afb_binding_api.hpp
-   afb_binding_glue.inl)
+   afb_binding_glue.inl layers.cpp layers.hpp)
 
 target_include_directories(winman
     PRIVATE
index ebbed02..482aff1 100644 (file)
@@ -7,6 +7,7 @@
 #include "layout.hpp"
 #include "util.hpp"
 #include "wayland.hpp"
+#include "layers.hpp"
 
 #include <cstdio>
 #include <memory>
diff --git a/src/layers.cpp b/src/layers.cpp
new file mode 100644 (file)
index 0000000..8bd9b8f
--- /dev/null
@@ -0,0 +1,48 @@
+//
+// Created by m on 7/27/17.
+//
+
+#include "layers.hpp"
+#include "json_helper.hpp"
+#include "util.hpp"
+
+namespace wm {
+
+surface_id_to_layer::surface_id_to_layer(nlohmann::json const &j) {
+   DB(j);
+   if (j["type"] == "range") {
+      this->id_min = get<int>(j["first_surface_id"]);
+      this->id_max = get<int>(j["last_surface_id"]);
+   } else {
+      this->id_min = this->id_max = get<int>(j["surface_id"]);
+   }
+   this->name = j["name"].get<std::string>();
+   this->layer_id = get<int>(j["layer_id"]);
+}
+
+struct result<struct surface_id_to_layer_map> to_surface_id_to_layer_map(
+   nlohmann::json const &j) {
+   DB(j);
+   try {
+      surface_id_to_layer_map stl{};
+      std::transform(
+         std::cbegin(j), std::cend(j),
+         std::inserter(stl.mapping, stl.mapping.end()),
+         [](nlohmann::json const &j) { return surface_id_to_layer(j); });
+      for (auto i : stl.mapping) {
+         if (i.name.empty()) {
+            return Err<struct surface_id_to_layer_map>(
+               "Found mapping w/o name");
+         }
+         if (i.layer_id == -1 || i.id_min == -1 || i.id_max == -1) {
+            return Err<struct surface_id_to_layer_map>(
+               "Found invalid/unset IDs in mapping");
+         }
+      }
+      return Ok(stl);
+   } catch (std::exception &e) {
+      return Err<struct surface_id_to_layer_map>(e.what());
+   }
+}
+
+}  // namespace wm
diff --git a/src/layers.hpp b/src/layers.hpp
new file mode 100644 (file)
index 0000000..7b35c63
--- /dev/null
@@ -0,0 +1,59 @@
+//
+// Created by m on 7/27/17.
+//
+
+#ifndef TMCAGLWM_LAYERS_H
+#define TMCAGLWM_LAYERS_H
+
+#include <algorithm>
+#include <experimental/optional>
+#include <json.hpp>
+#include <set>
+#include <string>
+
+#include "result.hpp"
+
+namespace wm {
+
+struct surface_id_to_layer {
+   int id_min = -1;
+   int id_max = -1;
+   std::string name = "";
+   int layer_id = -1;
+
+   explicit surface_id_to_layer(nlohmann::json const &j);
+
+   bool operator<(struct surface_id_to_layer const &rhs) const {
+      return this->id_max < rhs.id_max;
+   }
+};
+
+inline bool operator<(struct surface_id_to_layer const &a, int b) {
+   return a.id_max < b;
+}
+
+struct surface_id_to_layer_map {
+   typedef std::set<struct surface_id_to_layer> map_type;
+
+   map_type mapping;
+
+   std::experimental::optional<int> get_layer_for_surface(int surface_id) {
+      auto i = std::lower_bound(std::cbegin(this->mapping),
+                                std::cend(this->mapping), surface_id);
+
+      if (i != this->mapping.end()) {
+         if (i->id_min <= surface_id) {
+            return std::experimental::optional<int>(i->layer_id);
+         }
+      }
+
+      return std::experimental::nullopt;
+   }
+};
+
+struct result<struct surface_id_to_layer_map> to_surface_id_to_layer_map(
+   nlohmann::json const &j);
+
+}  // namespace wm
+
+#endif  // TMCAGLWM_LAYERS_H
index 6a77cda..a78a525 100644 (file)
@@ -2,46 +2,4 @@
 // Created by mfritzsc on 6/27/17.
 //
 
-#include "json_helper.hpp"
 #include "layout.hpp"
-
-namespace wm {
-
-surface_id_to_layer::surface_id_to_layer(nlohmann::json const &j) {
-   DB(j);
-   if (j["type"] == "range") {
-      this->id_min = get<int>(j["first_surface_id"]);
-      this->id_max = get<int>(j["last_surface_id"]);
-   } else {
-      this->id_min = this->id_max = get<int>(j["surface_id"]);
-   }
-   this->name = j["name"].get<std::string>();
-   this->layer_id = get<int>(j["layer_id"]);
-}
-
-struct result<struct surface_id_to_layer_map> to_surface_id_to_layer_map(
-   nlohmann::json const &j) {
-   DB(j);
-   try {
-      surface_id_to_layer_map stl{};
-      std::transform(
-         std::cbegin(j), std::cend(j),
-         std::inserter(stl.mapping, stl.mapping.end()),
-         [](nlohmann::json const &j) { return surface_id_to_layer(j); });
-      for (auto i : stl.mapping) {
-         if (i.name.empty()) {
-            return Err<struct surface_id_to_layer_map>(
-               "Found mapping w/o name");
-         }
-         if (i.layer_id == -1 || i.id_min == -1 || i.id_max == -1) {
-            return Err<struct surface_id_to_layer_map>(
-               "Found invalid/unset IDs in mapping");
-         }
-      }
-      return Ok(stl);
-   } catch (std::exception &e) {
-      return Err<struct surface_id_to_layer_map>(e.what());
-   }
-}
-
-}  // namespace wm
\ No newline at end of file
index 3308cf6..109b9d2 100644 (file)
@@ -6,12 +6,8 @@
 #define TMCAGLWM_LAYOUT_HPP
 
 #include <cstdint>
-#include <experimental/optional>
-#include <set>
 #include <string>
 
-#include <json.hpp>
-
 #include "result.hpp"
 #include "wayland.hpp"
 
@@ -35,45 +31,6 @@ struct layout {
 
 typedef std::vector<struct layout> layouts_type;
 
-struct surface_id_to_layer {
-   int id_min = -1;
-   int id_max = -1;
-   std::string name = "";
-   int layer_id = -1;
-
-   explicit surface_id_to_layer(nlohmann::json const &j);
-
-   bool operator<(struct surface_id_to_layer const &rhs) const {
-      return this->id_max < rhs.id_max;
-   }
-};
-
-inline bool operator<(struct surface_id_to_layer const &a, int b) {
-   return a.id_max < b;
-}
-
-struct surface_id_to_layer_map {
-   typedef std::set<struct surface_id_to_layer> map_type;
-
-   map_type mapping;
-
-   std::experimental::optional<int> get_layer_for_surface(int surface_id) {
-      auto i = std::lower_bound(std::cbegin(this->mapping),
-                                std::cend(this->mapping), surface_id);
-
-      if (i != this->mapping.end()) {
-         if (i->id_min <= surface_id) {
-            return std::experimental::optional<int>(i->layer_id);
-         }
-      }
-
-      return std::experimental::nullopt;
-   }
-};
-
-struct result<struct surface_id_to_layer_map> to_surface_id_to_layer_map(
-   nlohmann::json const &j);
-
 }  // namespace wm
 
 #endif  // TMCAGLWM_LAYOUT_HPP