display();
bool ok() const;
void roundtrip();
+ int dispatch();
};
// _ _
void add_global_handler(char const *iface, binder bind);
- void event_global(uint32_t name, char const *iface, uint32_t v);
- void event_global_remove(uint32_t name);
-
- static void s_global(void *data, struct wl_registry *r, uint32_t name,
- char const *iface, uint32_t v);
-
- static void s_global_remove(void *data, struct wl_registry *r,
- uint32_t name);
-
- static constexpr wl_registry_listener listener = {s_global, s_global_remove};
+ // Events
+ void global(uint32_t name, char const *iface, uint32_t v);
+ void global_remove(uint32_t name);
};
// _ _
struct output : wayland_proxy<wl_output> {
output(wl_registry *registry, uint32_t name, uint32_t version);
- void event_geometry(int32_t x, int32_t y, int32_t pw, int32_t ph,
- int32_t subpel, char const *make, char const *model,
- int32_t tx);
- void event_mode(uint32_t flags, int32_t w, int32_t h, int32_t r);
- void event_done();
- void event_scale(int32_t factor);
-
- static void s_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 void s_mode(void *data, struct wl_output *wl_output, uint32_t flags,
- int32_t width, int32_t height, int32_t refresh);
-
- static void s_done(void *data, struct wl_output *wl_output);
-
- static void s_scale(void *data, struct wl_output *wl_output, int32_t factor);
-
- static constexpr wl_output_listener listener = {s_geometry, s_mode, s_done,
- s_scale};
+ // Events
+ void geometry(int32_t x, int32_t y, int32_t pw, int32_t ph, int32_t subpel,
+ char const *make, char const *model, int32_t tx);
+ void mode(uint32_t flags, int32_t w, int32_t h, int32_t r);
+ void done();
+ void scale(int32_t factor);
};
}
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,
- };
+ // Events
+ void visibility(int32_t visibility);
+ void opacity(wl_fixed_t opacity);
+ void source_rectangle(int32_t x, int32_t y, int32_t width, int32_t height);
+ void destination_rectangle(int32_t x, int32_t y, int32_t width,
+ int32_t height);
+ void configuration(int32_t width, int32_t height);
+ void orientation(int32_t orientation);
+ void pixelformat(int32_t pixelformat);
+ void layer(struct ivi_controller_layer *layer);
+ void stats(uint32_t redraw_count, uint32_t frame_count,
+ uint32_t update_count, uint32_t pid, const char *process_name);
+ void destroyed();
+ void content(int32_t content_state);
};
// _
layer(uint32_t i, ivi_controller *c);
~layer() 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_screen(struct wl_output *screen);
- void event_destroyed();
-
- static void s_visibility(void *data,
- struct ivi_controller_layer *ivi_controller_layer,
- int32_t visibility);
- static void s_opacity(void *data,
- struct ivi_controller_layer *ivi_controller_layer,
- wl_fixed_t opacity);
- static void s_source_rectangle(
- void *data, struct ivi_controller_layer *ivi_controller_layer, int32_t x,
- int32_t y, int32_t width, int32_t height);
- static void s_destination_rectangle(
- void *data, struct ivi_controller_layer *ivi_controller_layer, int32_t x,
- int32_t y, int32_t width, int32_t height);
- static void s_configuration(
- void *data, struct ivi_controller_layer *ivi_controller_layer,
- int32_t width, int32_t height);
- static void s_orientation(void *data,
- struct ivi_controller_layer *ivi_controller_layer,
- int32_t orientation);
- static void s_screen(void *data,
- struct ivi_controller_layer *ivi_controller_layer,
- struct wl_output *screen);
- static void s_destroyed(void *data,
- struct ivi_controller_layer *ivi_controller_layer);
-
- static constexpr ivi_controller_layer_listener listener = {
- s_visibility, s_opacity,
- s_source_rectangle, s_destination_rectangle,
- s_configuration, s_orientation,
- s_screen, s_destroyed,
- };
+ // Events
+ void visibility(int32_t visibility);
+ void opacity(wl_fixed_t opacity);
+ void source_rectangle(int32_t x, int32_t y, int32_t width, int32_t height);
+ void destination_rectangle(int32_t x, int32_t y, int32_t width,
+ int32_t height);
+ void configuration(int32_t width, int32_t height);
+ void orientation(int32_t orientation);
+ void screen(struct wl_output *screen);
+ void destroyed();
};
//
controller(wl_registry *r, uint32_t name, uint32_t version);
~controller() override;
- void event_screen(uint32_t id, ivi_controller_screen *screen);
- void event_layer(uint32_t id);
- void event_surface(uint32_t id);
- void event_error(int32_t oid, int32_t otype, int32_t code, char const *text);
-
- // thunks...
- static void s_screen(void *data, struct ivi_controller *ivi_controller,
- uint32_t id_screen,
- struct ivi_controller_screen *screen);
-
- static void s_layer(void *data, struct ivi_controller *ivi_controller,
- uint32_t id_layer);
-
- static void s_surface(void *data, struct ivi_controller *ivi_controller,
- uint32_t id_surface);
-
- static void s_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 constexpr ivi_controller_listener listener = {s_screen, s_layer,
- s_surface, s_error};
+ // Events
+ void screen(uint32_t id, ivi_controller_screen *screen);
+ void layer(uint32_t id);
+ void surface(uint32_t id);
+ void error(int32_t oid, int32_t otype, int32_t code, char const *text);
};
}