aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcus Fritzsch <marcus_fritzsch@mentor.com>2017-06-23 12:23:36 +0200
committerMarcus Fritzsch <marcus_fritzsch@mentor.com>2017-08-08 17:24:00 +0200
commit342cead0ff9a95479270de381c3cd14ea7a95c0b (patch)
treef2655501c7df7622101047c833cd5865b662b5fd
parente066b091da80364a84905c3d8fc37ebc6d7e849d (diff)
wayland: add missing controller requests
* Added layer_create and surface_create to genivi::controller. Signed-off-by: Marcus Fritzsch <marcus_fritzsch@mentor.com>
-rw-r--r--src/wayland.cpp14
-rw-r--r--src/wayland.hpp6
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);