-struct surface : public wayland_proxy<ivi_controller_surface> {
- uint32_t id;
-
- surface(uint32_t i, ivi_controller *c);
- ~surface() override;
-
- void event_visibility(int32_t visibility);
- void event_opacity(wl_fixed_t opacity);
- void event_source_rectangle(int32_t x, int32_t y, int32_t width,
- int32_t height);
- void event_destination_rectangle(int32_t x, int32_t y, int32_t width,
- int32_t height);
- void event_configuration(int32_t width, int32_t height);
- void event_orientation(int32_t orientation);
- void event_pixelformat(int32_t pixelformat);
- void event_layer(struct ivi_controller_layer *layer);
- void event_stats(uint32_t redraw_count, uint32_t frame_count,
- uint32_t update_count, uint32_t pid,
- const char *process_name);
- void event_destroyed();
- void event_content(int32_t content_state);
-
- static void s_visibility(
- void *data, struct ivi_controller_surface *ivi_controller_surface,
- int32_t visibility);
- static void s_opacity(void *data,
- struct ivi_controller_surface *ivi_controller_surface,
- wl_fixed_t opacity);
- static void s_source_rectangle(
- void *data, struct ivi_controller_surface *ivi_controller_surface,
- int32_t x, int32_t y, int32_t width, int32_t height);
- static void s_destination_rectangle(
- void *data, struct ivi_controller_surface *ivi_controller_surface,
- int32_t x, int32_t y, int32_t width, int32_t height);
- static void s_configuration(
- void *data, struct ivi_controller_surface *ivi_controller_surface,
- int32_t width, int32_t height);
- static void s_orientation(
- void *data, struct ivi_controller_surface *ivi_controller_surface,
- int32_t orientation);
- static void s_pixelformat(
- void *data, struct ivi_controller_surface *ivi_controller_surface,
- int32_t pixelformat);
- static void s_layer(void *data,
- struct ivi_controller_surface *ivi_controller_surface,
- struct ivi_controller_layer *layer);
- static void s_stats(void *data,
- struct ivi_controller_surface *ivi_controller_surface,
- uint32_t redraw_count, uint32_t frame_count,
- uint32_t update_count, uint32_t pid,
- const char *process_name);
- static void s_destroyed(
- void *data, struct ivi_controller_surface *ivi_controller_surface);
- static void s_content(void *data,
- struct ivi_controller_surface *ivi_controller_surface,
- int32_t content_state);
-
- static constexpr ivi_controller_surface_listener listener = {
- s_visibility,
- s_opacity,
- s_source_rectangle,
- s_destination_rectangle,
- s_configuration,
- s_orientation,
- s_pixelformat,
- s_layer,
- s_stats,
- s_destroyed,
- s_content,
- };
+struct surface : public wayland_proxy<struct ivi_controller_surface>,
+ controller_child {
+ surface(surface const &) = delete;
+ surface &operator=(surface const &) = delete;
+ surface(uint32_t i, struct controller *c);
+
+ // Requests
+ void set_visibility(uint32_t visibility);
+ void set_opacity(wl_fixed_t opacity);
+ void set_source_rectangle(int32_t x, int32_t y, int32_t width,
+ int32_t height);
+ void set_destination_rectangle(int32_t x, int32_t y, int32_t width,
+ int32_t height);
+ void set_configuration(int32_t width, int32_t height);
+ void set_orientation(int32_t orientation);
+ void screenshot(const char *filename);
+ void send_stats();
+ void destroy(int32_t destroy_scene_object);