wayland: add display::add_global_handler which forwards to registry
authorMarcus Fritzsch <marcus_fritzsch@mentor.com>
Mon, 24 Jul 2017 09:42:54 +0000 (11:42 +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/app.cpp
src/wayland.hpp

index 29b28b5..ed17107 100644 (file)
@@ -31,21 +31,21 @@ int App::init() {
       return -1;
    }
 
-   this->display->r.add_global_handler(
-      "wl_output", [](wl_registry *r, uint32_t name, uint32_t v) {
-         g_app->outputs.emplace_back(std::make_unique<wl::output>(r, name, v));
+   this->display->add_global_handler(
+      "wl_output", [this](wl_registry *r, uint32_t name, uint32_t v) {
+         this->outputs.emplace_back(std::make_unique<wl::output>(r, name, v));
       });
 
-   this->display->r.add_global_handler(
-      "ivi_controller", [](wl_registry *r, uint32_t name, uint32_t v) {
-         g_app->controller = std::make_unique<genivi::controller>(r, name, v);
+   this->display->add_global_handler(
+      "ivi_controller", [this](wl_registry *r, uint32_t name, uint32_t v) {
+         this->controller = std::make_unique<genivi::controller>(r, name, v);
 
          // XXX: This protocol needs the output, so lets just add our mapping
          // here...
-         g_app->controller->add_proxy_to_id_mapping(
-            g_app->outputs.back()->proxy.get(),
+         this->controller->add_proxy_to_id_mapping(
+            this->outputs.back()->proxy.get(),
             wl_proxy_get_id(reinterpret_cast<struct wl_proxy *>(
-               g_app->outputs.back()->proxy.get())));
+               this->outputs.back()->proxy.get())));
       });
 
    // First level objects
index 3b81e15..e2a1259 100644 (file)
@@ -76,6 +76,11 @@ struct display {
    void flush();
    int get_fd() const;
    int get_error();
+
+   // Lets just proxy this for the registry
+   inline void add_global_handler(char const *iface, registry::binder bind) {
+      this->r.add_global_handler(iface, bind);
+   }
 };
 
 //              _               _