aboutsummaryrefslogtreecommitdiff
path: root/registry.c
diff options
context:
space:
mode:
Diffstat (limited to 'registry.c')
-rw-r--r--registry.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/registry.c b/registry.c
new file mode 100644
index 0000000..2f98d12
--- /dev/null
+++ b/registry.c
@@ -0,0 +1,39 @@
+#include <stdio.h>
+#include <string.h>
+
+#include "./state.h"
+
+extern struct wl_seat_listener seat_listener;
+
+void global(void *data, struct wl_registry *wl_registry, uint32_t name, const char *interface, uint32_t version) {
+ client_state* state = data;
+
+ printf("iface: %s v%d\n", interface, version);
+
+ if (!strcmp(interface, wl_compositor_interface.name)) {
+ state->compositor = wl_registry_bind(wl_registry, name, &wl_compositor_interface, 1);
+ }
+ else if (!strcmp(interface, wl_seat_interface.name)) {
+ state->seat = wl_registry_bind(wl_registry, name, &wl_seat_interface, 1);
+ wl_seat_add_listener(state->seat, &seat_listener, state);
+ }
+ else if (!strcmp(interface, zwlr_layer_shell_v1_interface.name)) {
+ state->layer_shell = wl_registry_bind(wl_registry, name, &zwlr_layer_shell_v1_interface, version);
+ }
+ else if (!strcmp(interface, wp_cursor_shape_manager_v1_interface.name)) {
+ state->cursor_shape_manager = wl_registry_bind(
+ wl_registry, name, &wp_cursor_shape_manager_v1_interface, version);
+ }
+ else {
+ }
+
+}
+
+void global_remove(void *data, struct wl_registry *wl_registry, uint32_t name) {
+
+}
+
+struct wl_registry_listener registry_listener = {
+ .global = global,
+ .global_remove = global_remove,
+};