diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/wayland.cpp | 14 | ||||
-rw-r--r-- | src/wayland.hpp | 6 |
2 files changed, 19 insertions, 1 deletions
diff --git a/src/wayland.cpp b/src/wayland.cpp index b63d961..52b2371 100644 --- a/src/wayland.cpp +++ b/src/wayland.cpp @@ -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); } diff --git a/src/wayland.hpp b/src/wayland.hpp index 20e88c5..58c63b1 100644 --- a/src/wayland.hpp +++ b/src/wayland.hpp @@ -202,6 +202,7 @@ struct surface : public wayland_proxy<struct ivi_controller_surface>, struct layer : public wayland_proxy<struct ivi_controller_layer>, controlled_entity { layer(uint32_t i, struct controller *c); + layer(uint32_t i, int32_t w, int32_t h, struct controller *c); ~layer() override; // Requests @@ -299,6 +300,11 @@ struct controller : public wayland_proxy<struct ivi_controller> { controller(struct wl_registry *r, uint32_t name, uint32_t version); ~controller() override; + // Requests + void commit_changes() const { ivi_controller_commit_changes(this->proxy); } + void layer_create(uint32_t id, int32_t w, int32_t h); + void surface_create(uint32_t id); + // Events // controller void controller_screen(uint32_t id, struct ivi_controller_screen *screen); |