scanner: more convenient callbacks
I'm not sure this is worth fixing, just opening an issue in the spirit of #247.
Right now the generated callback function signatures aren't very convenient to use. Some parameters aren't really necessary, and including them makes it so the argument lists are longer, easy to get wrong and less readable.
Server-side
struct wl_display_interface {
void (*sync)(struct wl_client *client,
struct wl_resource *resource,
uint32_t callback);
};
// could be
struct wl_display_interface {
void (*sync)(struct wl_resource *resource,
uint32_t callback);
};
Because client = wl_resource_get_client(resource)
.
Client-side
struct wl_display_listener {
void (*error)(void *data,
struct wl_display *wl_display,
void *object_id,
uint32_t code,
const char *message);
};
// could be
struct wl_display_listener {
void (*error)(struct wl_display *wl_display,
void *object_id,
uint32_t code,
const char *message);
};
Because void *data = wl_proxy_get_user_data(wl_display)
.