summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIsaac Freund <mail@isaacfreund.com>2025-05-06 23:48:57 +0200
committerSimon Ser <contact@emersion.fr>2025-05-20 20:31:16 +0000
commit8cad6f7b826546e4faa2d366aed898b5651f73b4 (patch)
tree16c477d6517201693d26c2ff2573d815d165997b
parentclient: add wl_proxy_get_interface() (diff)
downloadwayland-8cad6f7b826546e4faa2d366aed898b5651f73b4.tar
wayland-8cad6f7b826546e4faa2d366aed898b5651f73b4.tar.gz
wayland-8cad6f7b826546e4faa2d366aed898b5651f73b4.tar.bz2
wayland-8cad6f7b826546e4faa2d366aed898b5651f73b4.tar.lz
wayland-8cad6f7b826546e4faa2d366aed898b5651f73b4.tar.xz
wayland-8cad6f7b826546e4faa2d366aed898b5651f73b4.tar.zst
wayland-8cad6f7b826546e4faa2d366aed898b5651f73b4.zip
server: add wl_resource_get_interface()
This is useful for the wayland bindings/scanner I'm working on for a dynamically typed language. Signed-off-by: Isaac Freund <mail@isaacfreund.com>
-rw-r--r--src/wayland-server-core.h3
-rw-r--r--src/wayland-server.c14
2 files changed, 17 insertions, 0 deletions
diff --git a/src/wayland-server-core.h b/src/wayland-server-core.h
index 005a324..c2dcc21 100644
--- a/src/wayland-server-core.h
+++ b/src/wayland-server-core.h
@@ -621,6 +621,9 @@ wl_resource_instance_of(struct wl_resource *resource,
const char *
wl_resource_get_class(const struct wl_resource *resource);
+const struct wl_interface *
+wl_resource_get_interface(struct wl_resource *resource);
+
void
wl_resource_add_destroy_listener(struct wl_resource *resource,
struct wl_listener *listener);
diff --git a/src/wayland-server.c b/src/wayland-server.c
index e580566..fb99eb2 100644
--- a/src/wayland-server.c
+++ b/src/wayland-server.c
@@ -905,6 +905,20 @@ wl_resource_get_class(const struct wl_resource *resource)
return resource->object.interface->name;
}
+/** Get the interface of a resource object
+ *
+ * \param resource The resource object
+ * \return The interface of the object associated with the resource
+ *
+ * \memberof wl_resource
+ * \since 1.24
+ */
+WL_EXPORT const struct wl_interface *
+wl_resource_get_interface(struct wl_resource *resource)
+{
+ return resource->object.interface;
+}
+
/**
* Add a listener to be called at the beginning of wl_client destruction
*