diff options
Diffstat (limited to 'src/wayland.cpp')
-rw-r--r-- | src/wayland.cpp | 112 |
1 files changed, 58 insertions, 54 deletions
diff --git a/src/wayland.cpp b/src/wayland.cpp index 4f1dbd1..fef0cc3 100644 --- a/src/wayland.cpp +++ b/src/wayland.cpp @@ -15,18 +15,19 @@ namespace wl { // \__,_|_|___/ .__/|_|\__,_|\__, | // |_| |___/ display::display() - : d(std::unique_ptr<wl_display, void (*)(wl_display *)>( + : d(std::unique_ptr<struct wl_display, + std::function<void(struct wl_display *)>>( wl_display_connect(NULL), - [](wl_display *d) { - logdebug("wl::display %s @ %p", __func__, d); + [](struct wl_display *d) { + logdebug("wl::display ~display @ %p", d); wl_display_disconnect(d); })), - r(std::make_unique<registry>(d.get())) {} + r(std::make_unique<struct registry>(d.get())) {} display::~display() {} bool display::ok() const { - return d.get() != nullptr && wl_display_get_error(d.get()) == 0; + return d && wl_display_get_error(d.get()) == 0; } void display::roundtrip() { wl_display_roundtrip(this->d.get()); } @@ -42,18 +43,19 @@ int display::dispatch() { return wl_display_dispatch(this->d.get()); } namespace { void registry_global(void *data, struct wl_registry *r, uint32_t name, char const *iface, uint32_t v) { - static_cast<registry *>(data)->global(name, iface, v); + static_cast<struct registry *>(data)->global(name, iface, v); } void registry_global_remove(void *data, struct wl_registry *r, uint32_t name) { - static_cast<registry *>(data)->global_remove(name); + static_cast<struct registry *>(data)->global_remove(name); } -constexpr wl_registry_listener registry_listener = {registry_global, - registry_global_remove}; +constexpr struct wl_registry_listener registry_listener = { + registry_global, registry_global_remove}; } -registry::registry(wl_display *d) : wayland_proxy(wl_display_get_registry(d)) { +registry::registry(struct wl_display *d) + : wayland_proxy(wl_display_get_registry(d)) { wl_registry_add_listener(this->proxy, ®istry_listener, this); } @@ -87,28 +89,28 @@ void output_geometry(void *data, struct wl_output *wl_output, int32_t x, int32_t y, int32_t physical_width, int32_t physical_height, int32_t subpixel, const char *make, const char *model, int32_t transform) { - static_cast<output *>(data)->geometry(x, y, physical_width, physical_height, - subpixel, make, model, transform); + static_cast<struct output *>(data)->geometry( + x, y, physical_width, physical_height, subpixel, make, model, transform); } void output_mode(void *data, struct wl_output *wl_output, uint32_t flags, int32_t width, int32_t height, int32_t refresh) { - static_cast<output *>(data)->mode(flags, width, height, refresh); + static_cast<struct output *>(data)->mode(flags, width, height, refresh); } void output_done(void *data, struct wl_output *wl_output) { - static_cast<output *>(data)->done(); + static_cast<struct output *>(data)->done(); } void output_scale(void *data, struct wl_output *wl_output, int32_t factor) { - static_cast<output *>(data)->scale(factor); + static_cast<struct output *>(data)->scale(factor); } -constexpr wl_output_listener output_listener = {output_geometry, output_mode, - output_done, output_scale}; +constexpr struct wl_output_listener output_listener = { + output_geometry, output_mode, output_done, output_scale}; } -output::output(wl_registry *r, uint32_t name, uint32_t v) +output::output(struct wl_registry *r, uint32_t name, uint32_t v) : wayland_proxy(wl_registry_bind(r, name, &wl_output_interface, v)) { wl_output_add_listener(this->proxy, &output_listener, this); } @@ -158,31 +160,31 @@ namespace { void controller_screen(void *data, struct ivi_controller *ivi_controller, uint32_t id_screen, struct ivi_controller_screen *screen) { - static_cast<controller *>(data)->screen(id_screen, screen); + static_cast<struct controller *>(data)->screen(id_screen, screen); } void controller_layer(void *data, struct ivi_controller *ivi_controller, uint32_t id_layer) { - static_cast<controller *>(data)->layer(id_layer); + static_cast<struct controller *>(data)->layer(id_layer); } void controller_surface(void *data, struct ivi_controller *ivi_controller, uint32_t id_surface) { - static_cast<controller *>(data)->surface(id_surface); + static_cast<struct controller *>(data)->surface(id_surface); } void controller_error(void *data, struct ivi_controller *ivi_controller, int32_t object_id, int32_t object_type, int32_t error_code, const char *error_text) { - static_cast<controller *>(data)->error(object_id, object_type, error_code, - error_text); + static_cast<struct controller *>(data)->error(object_id, object_type, + error_code, error_text); } -constexpr ivi_controller_listener listener = { +constexpr struct ivi_controller_listener listener = { controller_screen, controller_layer, controller_surface, controller_error}; } -controller::controller(wl_registry *r, uint32_t name, uint32_t version) +controller::controller(struct wl_registry *r, uint32_t name, uint32_t version) : wayland_proxy( wl_registry_bind(r, name, &ivi_controller_interface, version)) { ivi_controller_add_listener(this->proxy, &listener, this); @@ -222,51 +224,52 @@ namespace { void layer_visibility(void *data, struct ivi_controller_layer *ivi_controller_layer, int32_t visibility) { - static_cast<layer *>(data)->visibility(visibility); + static_cast<struct layer *>(data)->visibility(visibility); } void layer_opacity(void *data, struct ivi_controller_layer *ivi_controller_layer, wl_fixed_t opacity) { - static_cast<layer *>(data)->opacity(wl_fixed_to_double(opacity)); + static_cast<struct layer *>(data)->opacity(wl_fixed_to_double(opacity)); } void layer_source_rectangle(void *data, struct ivi_controller_layer *ivi_controller_layer, int32_t x, int32_t y, int32_t width, int32_t height) { - static_cast<layer *>(data)->source_rectangle(x, y, width, height); + static_cast<struct layer *>(data)->source_rectangle(x, y, width, height); } void layer_destination_rectangle( void *data, struct ivi_controller_layer *ivi_controller_layer, int32_t x, int32_t y, int32_t width, int32_t height) { - static_cast<layer *>(data)->destination_rectangle(x, y, width, height); + static_cast<struct layer *>(data)->destination_rectangle(x, y, width, + height); } void layer_configuration(void *data, struct ivi_controller_layer *ivi_controller_layer, int32_t width, int32_t height) { - static_cast<layer *>(data)->configuration(width, height); + static_cast<struct layer *>(data)->configuration(width, height); } void layer_orientation(void *data, struct ivi_controller_layer *ivi_controller_layer, int32_t orientation) { - static_cast<layer *>(data)->orientation(orientation); + static_cast<struct layer *>(data)->orientation(orientation); } void layer_screen(void *data, struct ivi_controller_layer *ivi_controller_layer, struct wl_output *screen) { - static_cast<layer *>(data)->screen(screen); + static_cast<struct layer *>(data)->screen(screen); } void layer_destroyed(void *data, struct ivi_controller_layer *ivi_controller_layer) { - static_cast<layer *>(data)->destroyed(); + static_cast<struct layer *>(data)->destroyed(); } -constexpr ivi_controller_layer_listener layer_listener = { +constexpr struct ivi_controller_layer_listener layer_listener = { layer_visibility, layer_opacity, layer_source_rectangle, layer_destination_rectangle, layer_configuration, layer_orientation, @@ -274,7 +277,7 @@ constexpr ivi_controller_layer_listener layer_listener = { }; } -layer::layer(uint32_t i, ivi_controller *c) +layer::layer(uint32_t i, struct ivi_controller *c) : wayland_proxy(ivi_controller_layer_create(c, i, 0, 0)), id(i) { ivi_controller_layer_add_listener(this->proxy, &layer_listener, this); } @@ -333,49 +336,50 @@ namespace { void surface_visibility(void *data, struct ivi_controller_surface *ivi_controller_surface, int32_t visibility) { - static_cast<surface *>(data)->visibility(visibility); + static_cast<struct surface *>(data)->visibility(visibility); } void surface_opacity(void *data, struct ivi_controller_surface *ivi_controller_surface, wl_fixed_t opacity) { - static_cast<surface *>(data)->opacity(wl_fixed_to_double(opacity)); + static_cast<struct surface *>(data)->opacity(wl_fixed_to_double(opacity)); } void surface_source_rectangle( void *data, struct ivi_controller_surface *ivi_controller_surface, int32_t x, int32_t y, int32_t width, int32_t height) { - static_cast<surface *>(data)->source_rectangle(x, y, width, height); + static_cast<struct surface *>(data)->source_rectangle(x, y, width, height); } void surface_destination_rectangle( void *data, struct ivi_controller_surface *ivi_controller_surface, int32_t x, int32_t y, int32_t width, int32_t height) { - static_cast<surface *>(data)->destination_rectangle(x, y, width, height); + static_cast<struct surface *>(data)->destination_rectangle(x, y, width, + height); } void surface_configuration( void *data, struct ivi_controller_surface *ivi_controller_surface, int32_t width, int32_t height) { - static_cast<surface *>(data)->configuration(width, height); + static_cast<struct surface *>(data)->configuration(width, height); } void surface_orientation(void *data, struct ivi_controller_surface *ivi_controller_surface, int32_t orientation) { - static_cast<surface *>(data)->orientation(orientation); + static_cast<struct surface *>(data)->orientation(orientation); } void surface_pixelformat(void *data, struct ivi_controller_surface *ivi_controller_surface, int32_t pixelformat) { - static_cast<surface *>(data)->pixelformat(pixelformat); + static_cast<struct surface *>(data)->pixelformat(pixelformat); } void surface_layer(void *data, struct ivi_controller_surface *ivi_controller_surface, struct ivi_controller_layer *layer) { - static_cast<surface *>(data)->layer(layer); + static_cast<struct surface *>(data)->layer(layer); } void surface_stats(void *data, @@ -383,22 +387,22 @@ void surface_stats(void *data, uint32_t redraw_count, uint32_t frame_count, uint32_t update_count, uint32_t pid, const char *process_name) { - static_cast<surface *>(data)->stats(redraw_count, frame_count, update_count, - pid, process_name); + static_cast<struct surface *>(data)->stats(redraw_count, frame_count, + update_count, pid, process_name); } void surface_destroyed(void *data, struct ivi_controller_surface *ivi_controller_surface) { - static_cast<surface *>(data)->destroyed(); + static_cast<struct surface *>(data)->destroyed(); } void surface_content(void *data, struct ivi_controller_surface *ivi_controller_surface, int32_t content_state) { - static_cast<surface *>(data)->content(content_state); + static_cast<struct surface *>(data)->content(content_state); } -static constexpr ivi_controller_surface_listener surface_listener = { +constexpr struct ivi_controller_surface_listener surface_listener = { surface_visibility, surface_opacity, surface_source_rectangle, @@ -413,7 +417,7 @@ static constexpr ivi_controller_surface_listener surface_listener = { }; } -surface::surface(uint32_t i, ivi_controller *c) +surface::surface(uint32_t i, struct ivi_controller *c) : wayland_proxy(ivi_controller_surface_create(c, i)), id(i) { ivi_controller_surface_add_listener(this->proxy, &surface_listener, this); } @@ -479,11 +483,11 @@ void surface::content(int32_t content_state) { } // -// ___ ___ _ __ ___ ___ _ __ -/// __|/ __| '__/ _ \/ _ \ '_ \ -//\__ \ (__| | | __/ __/ | | | -//|___/\___|_| \___|\___|_| |_| +// ___ ___ _ __ ___ ___ _ __ +// / __|/ __| '__/ _ \/ _ \ '_ \ +// \__ \ (__| | | __/ __/ | | | +// |___/\___|_| \___|\___|_| |_| // -screen::screen(uint32_t i, ivi_controller_screen *p) +screen::screen(uint32_t i, struct ivi_controller_screen *p) : wayland_proxy(p), id(i) {} } |