main: check that outputs are available before running main loop
[staging/windowmanager.git] / src / wayland.cpp
index b63d961..52b2371 100644 (file)
@@ -200,6 +200,14 @@ controller::controller(struct wl_registry *r, uint32_t name, uint32_t version)
 
 controller::~controller() {}
 
+void controller::layer_create(uint32_t id, int32_t w, int32_t h) {
+   this->layers[id] = std::make_unique<layer>(id, w, h, this);
+}
+
+void controller::surface_create(uint32_t id) {
+   this->surfaces[id] = std::make_unique<surface>(id, this);
+}
+
 void controller::controller_screen(uint32_t id,
                                    struct ivi_controller_screen *screen) {
    logdebug("genivi::controller @ %p screen %u (%x) @ %p", this->proxy, id, id,
@@ -294,7 +302,11 @@ constexpr struct ivi_controller_layer_listener layer_listener = {
 }
 
 layer::layer(uint32_t i, struct controller *c)
-   : wayland_proxy(ivi_controller_layer_create(c->proxy, i, 0, 0)),
+   : layer(i, 0, 0, c) {
+}
+
+layer::layer(uint32_t i, int32_t w, int32_t h, struct controller *c)
+   : wayland_proxy(ivi_controller_layer_create(c->proxy, i, w, h)),
      controlled_entity(c, i) {
    ivi_controller_layer_add_listener(this->proxy, &layer_listener, this);
 }