diff --git a/src/wayland-server-core.h b/src/wayland-server-core.h index 43e76fb1..c0d25e9e 100644 --- a/src/wayland-server-core.h +++ b/src/wayland-server-core.h @@ -427,6 +427,8 @@ int wl_resource_instance_of(struct wl_resource *resource, const struct wl_interface *interface, const void *implementation); +const char * +wl_resource_get_class(struct wl_resource *resource); void wl_resource_add_destroy_listener(struct wl_resource *resource, diff --git a/src/wayland-server.c b/src/wayland-server.c index b44ec9c1..e2212e2e 100644 --- a/src/wayland-server.c +++ b/src/wayland-server.c @@ -690,6 +690,18 @@ wl_resource_get_destroy_listener(struct wl_resource *resource, return wl_signal_get(&resource->destroy_signal, notify); } +/** Retrieve the interface name (class) of a resource object. + * + * \param resource The resource object + * + * \memberof wl_resource + */ +WL_EXPORT const char * +wl_resource_get_class(struct wl_resource *resource) +{ + return resource->object.interface->name; +} + WL_EXPORT void wl_client_add_destroy_listener(struct wl_client *client, struct wl_listener *listener)