#include #include #include "./state.h" #include "wayland.h" struct wl_registry_listener registry_listener; void setup_registry_and_globals(client_state* state) { state->registry = wl_display_get_registry(state->display); wl_registry_add_listener(state->registry, ®istry_listener, state); } // listeners void global(void *data, struct wl_registry *wl_registry, uint32_t name, const char *interface, uint32_t version) { client_state* state = data; if (state->verbose) { fprintf(stderr, "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(state->registry, name, &wl_seat_interface, 4); } else if (!strcmp(interface, zwlr_layer_shell_v1_interface.name)) { state->layer_shell = wl_registry_bind(wl_registry, name, &zwlr_layer_shell_v1_interface, 5); } 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, 1); } 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, };