wayland.hpp
util.cpp
util.hpp
- ${IVI_CON_PROTO} json_helper.cpp json_helper.hpp)
+ ${IVI_CON_PROTO} json_helper.cpp json_helper.hpp app.hpp app.cpp)
target_include_directories(winman
PRIVATE
--- /dev/null
+//
+// Created by mfritzsc on 7/11/17.
+//
+
+#include "app.hpp"
+
+namespace wm {
+
+ App::App()
+ : api{this}
+ {}
+
+ result<char const *, json> App::API::register_surface(uint32_t appid,
+ uint32_t surfid) {
+ return Err<char const *, json>("not implemented");
+ }
+
+ result<char const *, json> App::API::debug_layers() const {
+ return Err<char const *, json>("not implemented");
+ }
+
+ result<char const *, json> App::API::debug_surfaces() const {
+ return Err<char const *, json>("not implemented");
+ }
+
+ result<char const *, json> App::API::debug_status() const {
+ return Err<char const *, json>("not implemented");
+ }
+
+} // namespace wm
\ No newline at end of file
--- /dev/null
+//
+// Created by mfritzsc on 7/11/17.
+//
+
+#ifndef TMCAGLWM_APP_HPP
+#define TMCAGLWM_APP_HPP
+
+#include <json.hpp>
+#include <experimental/optional>
+
+namespace wm {
+
+ using std::experimental::optional;
+ using std::experimental::nullopt;
+
+ template <typename E, typename T>
+ struct result {
+ optional<E> e;
+ optional<T> t;
+
+ bool is_ok() const { return this->t != nullopt; }
+ bool is_err() const { return this->e != nullopt; }
+ T unwrap() { return this->t.value(); }
+ };
+
+ template <typename E, typename T>
+ struct result<E, T> Err(E e) { return result<E, T>{e, nullopt}; }
+
+ template <typename E, typename T>
+ struct result<E, T> Ok(T t) { return result<E, T>{nullopt, t}; }
+
+ using json = nlohmann::json;
+
+ struct App {
+ struct API {
+ struct App *app;
+
+ result<char const *, json> debug_status() const;
+ result<char const *, json> debug_layers() const;
+ result<char const *, json> debug_surfaces() const;
+
+ result<char const *, json> register_surface(uint32_t appid, uint32_t surfid);
+ };
+
+ struct API api;
+
+ App();
+ };
+
+} // namespace wm
+
+#endif //TMCAGLWM_APP_HPP
#include "json_helper.hpp"
#include "util.hpp"
#include "wayland.hpp"
+#include "app.hpp"
#include <algorithm>
#include <json.h>
// Quick and dirty, dump current surfaces and layers
AFB_REQ_DEBUG(req, "status");
+ // auto r = g_afb_instance->app.api.debug_status();
+ // if (r.is_err()) {
+ // afb_req_fail(req, "failed", r.e.value());
+ // return;
+ // }
+
auto o = json_object_new_object();
json_object_object_add(o, "surfaces",
to_json(g_afb_instance->controller->sprops));