diff options
-rw-r--r-- | reduced_system_layer.c | 515 |
1 files changed, 137 insertions, 378 deletions
diff --git a/reduced_system_layer.c b/reduced_system_layer.c index 99c3e72..b1fb813 100644 --- a/reduced_system_layer.c +++ b/reduced_system_layer.c @@ -1457,293 +1457,25 @@ void p_queue_sound(i64 delay_in_samples, i64 num_samples, f32 *frames) { #include <wayland-client.h> #include <wayland-util.h> -struct wl_buffer; -struct wl_output; -struct zwlr_screencopy_frame_v1; -struct zwlr_screencopy_manager_v1; - -#ifndef ZWLR_SCREENCOPY_MANAGER_V1_INTERFACE -#define ZWLR_SCREENCOPY_MANAGER_V1_INTERFACE -extern const struct wl_interface zwlr_screencopy_manager_v1_interface; -#endif -#ifndef ZWLR_SCREENCOPY_FRAME_V1_INTERFACE -#define ZWLR_SCREENCOPY_FRAME_V1_INTERFACE -extern const struct wl_interface zwlr_screencopy_frame_v1_interface; -#endif - -#define ZWLR_SCREENCOPY_MANAGER_V1_CAPTURE_OUTPUT 0 -#define ZWLR_SCREENCOPY_MANAGER_V1_CAPTURE_OUTPUT_REGION 1 -#define ZWLR_SCREENCOPY_MANAGER_V1_DESTROY 2 - - -#define ZWLR_SCREENCOPY_MANAGER_V1_CAPTURE_OUTPUT_SINCE_VERSION 1 -#define ZWLR_SCREENCOPY_MANAGER_V1_CAPTURE_OUTPUT_REGION_SINCE_VERSION 1 -#define ZWLR_SCREENCOPY_MANAGER_V1_DESTROY_SINCE_VERSION 1 - -static void -zwlr_screencopy_manager_v1_set_user_data(struct zwlr_screencopy_manager_v1 *zwlr_screencopy_manager_v1, void *user_data) -{ - wl_proxy_set_user_data((struct wl_proxy *) zwlr_screencopy_manager_v1, user_data); -} - -static void * -zwlr_screencopy_manager_v1_get_user_data(struct zwlr_screencopy_manager_v1 *zwlr_screencopy_manager_v1) -{ - return wl_proxy_get_user_data((struct wl_proxy *) zwlr_screencopy_manager_v1); -} - -static u32 -zwlr_screencopy_manager_v1_get_version(struct zwlr_screencopy_manager_v1 *zwlr_screencopy_manager_v1) -{ - return wl_proxy_get_version((struct wl_proxy *) zwlr_screencopy_manager_v1); -} - -static struct zwlr_screencopy_frame_v1 * -zwlr_screencopy_manager_v1_capture_output(struct zwlr_screencopy_manager_v1 *zwlr_screencopy_manager_v1, i32 overlay_cursor, struct wl_output *output) -{ - struct wl_proxy *frame; - - frame = wl_proxy_marshal_flags((struct wl_proxy *) zwlr_screencopy_manager_v1, - ZWLR_SCREENCOPY_MANAGER_V1_CAPTURE_OUTPUT, &zwlr_screencopy_frame_v1_interface, wl_proxy_get_version((struct wl_proxy *) zwlr_screencopy_manager_v1), 0, NULL, overlay_cursor, output); - - return (struct zwlr_screencopy_frame_v1 *) frame; -} - -static struct zwlr_screencopy_frame_v1 * -zwlr_screencopy_manager_v1_capture_output_region(struct zwlr_screencopy_manager_v1 *zwlr_screencopy_manager_v1, i32 overlay_cursor, struct wl_output *output, i32 x, i32 y, i32 width, i32 height) -{ - struct wl_proxy *frame; - - frame = wl_proxy_marshal_flags((struct wl_proxy *) zwlr_screencopy_manager_v1, - ZWLR_SCREENCOPY_MANAGER_V1_CAPTURE_OUTPUT_REGION, &zwlr_screencopy_frame_v1_interface, wl_proxy_get_version((struct wl_proxy *) zwlr_screencopy_manager_v1), 0, NULL, overlay_cursor, output, x, y, width, height); - - return (struct zwlr_screencopy_frame_v1 *) frame; -} - -static void -zwlr_screencopy_manager_v1_destroy(struct zwlr_screencopy_manager_v1 *zwlr_screencopy_manager_v1) -{ - wl_proxy_marshal_flags((struct wl_proxy *) zwlr_screencopy_manager_v1, - ZWLR_SCREENCOPY_MANAGER_V1_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) zwlr_screencopy_manager_v1), WL_MARSHAL_FLAG_DESTROY); -} - -#ifndef ZWLR_SCREENCOPY_FRAME_V1_ERROR_ENUM -#define ZWLR_SCREENCOPY_FRAME_V1_ERROR_ENUM -enum zwlr_screencopy_frame_v1_error { - ZWLR_SCREENCOPY_FRAME_V1_ERROR_ALREADY_USED = 0, - ZWLR_SCREENCOPY_FRAME_V1_ERROR_INVALID_BUFFER = 1, -}; -#endif - -#ifndef ZWLR_SCREENCOPY_FRAME_V1_FLAGS_ENUM -#define ZWLR_SCREENCOPY_FRAME_V1_FLAGS_ENUM -enum zwlr_screencopy_frame_v1_flags { - ZWLR_SCREENCOPY_FRAME_V1_FLAGS_Y_INVERT = 1, +struct zxdg_output_v1_listener { + void (*logical_position) (void *data, void *zxdg_output_v1, i32 x, i32 y); + void (*logical_size) (void *data, void *zxdg_output_v1, i32 width, i32 height); + void (*done) (void *data, void *zxdg_output_v1); + void (*name) (void *data, void *zxdg_output_v1, c8 *name); + void (*description) (void *data, void *zxdg_output_v1, c8 *description); }; -#endif struct zwlr_screencopy_frame_v1_listener { - void (*buffer)(void *data, - struct zwlr_screencopy_frame_v1 *zwlr_screencopy_frame_v1, - u32 format, - u32 width, - u32 height, - u32 stride); - void (*flags)(void *data, - struct zwlr_screencopy_frame_v1 *zwlr_screencopy_frame_v1, - u32 flags); - void (*ready)(void *data, - struct zwlr_screencopy_frame_v1 *zwlr_screencopy_frame_v1, - u32 tv_sec_hi, - u32 tv_sec_lo, - u32 tv_nsec); - void (*failed)(void *data, - struct zwlr_screencopy_frame_v1 *zwlr_screencopy_frame_v1); + void (*buffer) (void *data, void *zwlr_screencopy_frame_v1, u32 format, u32 width, u32 height, u32 stride); + void (*flags) (void *data, void *zwlr_screencopy_frame_v1, u32 flags); + void (*ready) (void *data, void *zwlr_screencopy_frame_v1, u32 tv_sec_hi, u32 tv_sec_lo, u32 tv_nsec); + void (*failed) (void *data, void *zwlr_screencopy_frame_v1); }; -static int -zwlr_screencopy_frame_v1_add_listener(struct zwlr_screencopy_frame_v1 *zwlr_screencopy_frame_v1, - const struct zwlr_screencopy_frame_v1_listener *listener, void *data) -{ - return wl_proxy_add_listener((struct wl_proxy *) zwlr_screencopy_frame_v1, - (void (**)(void)) listener, data); -} - -#define ZWLR_SCREENCOPY_FRAME_V1_COPY 0 -#define ZWLR_SCREENCOPY_FRAME_V1_DESTROY 1 - -#define ZWLR_SCREENCOPY_FRAME_V1_BUFFER_SINCE_VERSION 1 -#define ZWLR_SCREENCOPY_FRAME_V1_FLAGS_SINCE_VERSION 1 -#define ZWLR_SCREENCOPY_FRAME_V1_READY_SINCE_VERSION 1 -#define ZWLR_SCREENCOPY_FRAME_V1_FAILED_SINCE_VERSION 1 - -#define ZWLR_SCREENCOPY_FRAME_V1_COPY_SINCE_VERSION 1 -#define ZWLR_SCREENCOPY_FRAME_V1_DESTROY_SINCE_VERSION 1 - -static void -zwlr_screencopy_frame_v1_set_user_data(struct zwlr_screencopy_frame_v1 *zwlr_screencopy_frame_v1, void *user_data) -{ - wl_proxy_set_user_data((struct wl_proxy *) zwlr_screencopy_frame_v1, user_data); -} - -static void * -zwlr_screencopy_frame_v1_get_user_data(struct zwlr_screencopy_frame_v1 *zwlr_screencopy_frame_v1) -{ - return wl_proxy_get_user_data((struct wl_proxy *) zwlr_screencopy_frame_v1); -} - -static u32 -zwlr_screencopy_frame_v1_get_version(struct zwlr_screencopy_frame_v1 *zwlr_screencopy_frame_v1) -{ - return wl_proxy_get_version((struct wl_proxy *) zwlr_screencopy_frame_v1); -} - -static void -zwlr_screencopy_frame_v1_copy(struct zwlr_screencopy_frame_v1 *zwlr_screencopy_frame_v1, struct wl_buffer *buffer) -{ - wl_proxy_marshal_flags((struct wl_proxy *) zwlr_screencopy_frame_v1, - ZWLR_SCREENCOPY_FRAME_V1_COPY, NULL, wl_proxy_get_version((struct wl_proxy *) zwlr_screencopy_frame_v1), 0, buffer); -} - -static void -zwlr_screencopy_frame_v1_destroy(struct zwlr_screencopy_frame_v1 *zwlr_screencopy_frame_v1) -{ - wl_proxy_marshal_flags((struct wl_proxy *) zwlr_screencopy_frame_v1, - ZWLR_SCREENCOPY_FRAME_V1_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) zwlr_screencopy_frame_v1), WL_MARSHAL_FLAG_DESTROY); -} - -struct wl_output; -struct zxdg_output_manager_v1; -struct zxdg_output_v1; - -#ifndef ZXDG_OUTPUT_MANAGER_V1_INTERFACE -#define ZXDG_OUTPUT_MANAGER_V1_INTERFACE -extern const struct wl_interface zxdg_output_manager_v1_interface; -#endif -#ifndef ZXDG_OUTPUT_V1_INTERFACE -#define ZXDG_OUTPUT_V1_INTERFACE -extern const struct wl_interface zxdg_output_v1_interface; -#endif - -#define ZXDG_OUTPUT_MANAGER_V1_DESTROY 0 -#define ZXDG_OUTPUT_MANAGER_V1_GET_XDG_OUTPUT 1 - -#define ZXDG_OUTPUT_MANAGER_V1_DESTROY_SINCE_VERSION 1 -#define ZXDG_OUTPUT_MANAGER_V1_GET_XDG_OUTPUT_SINCE_VERSION 1 - -static void -zxdg_output_manager_v1_set_user_data(struct zxdg_output_manager_v1 *zxdg_output_manager_v1, void *user_data) -{ - wl_proxy_set_user_data((struct wl_proxy *) zxdg_output_manager_v1, user_data); -} - -static void * -zxdg_output_manager_v1_get_user_data(struct zxdg_output_manager_v1 *zxdg_output_manager_v1) -{ - return wl_proxy_get_user_data((struct wl_proxy *) zxdg_output_manager_v1); -} - -static u32 -zxdg_output_manager_v1_get_version(struct zxdg_output_manager_v1 *zxdg_output_manager_v1) -{ - return wl_proxy_get_version((struct wl_proxy *) zxdg_output_manager_v1); -} - -static void -zxdg_output_manager_v1_destroy(struct zxdg_output_manager_v1 *zxdg_output_manager_v1) -{ - wl_proxy_marshal_flags((struct wl_proxy *) zxdg_output_manager_v1, - ZXDG_OUTPUT_MANAGER_V1_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) zxdg_output_manager_v1), WL_MARSHAL_FLAG_DESTROY); -} - -static struct zxdg_output_v1 * -zxdg_output_manager_v1_get_xdg_output(struct zxdg_output_manager_v1 *zxdg_output_manager_v1, struct wl_output *output) -{ - struct wl_proxy *id; - - id = wl_proxy_marshal_flags((struct wl_proxy *) zxdg_output_manager_v1, - ZXDG_OUTPUT_MANAGER_V1_GET_XDG_OUTPUT, &zxdg_output_v1_interface, wl_proxy_get_version((struct wl_proxy *) zxdg_output_manager_v1), 0, NULL, output); - - return (struct zxdg_output_v1 *) id; -} +extern struct wl_interface zwlr_screencopy_frame_v1_interface; +extern struct wl_interface zxdg_output_v1_interface; -struct zxdg_output_v1_listener { - void (*logical_position)(void *data, - struct zxdg_output_v1 *zxdg_output_v1, - i32 x, - i32 y); - void (*logical_size)(void *data, - struct zxdg_output_v1 *zxdg_output_v1, - i32 width, - i32 height); - void (*done)(void *data, - struct zxdg_output_v1 *zxdg_output_v1); - void (*name)(void *data, - struct zxdg_output_v1 *zxdg_output_v1, - c8 const *name); - void (*description)(void *data, - struct zxdg_output_v1 *zxdg_output_v1, - c8 const *description); -}; - -static int -zxdg_output_v1_add_listener(struct zxdg_output_v1 *zxdg_output_v1, - const struct zxdg_output_v1_listener *listener, void *data) -{ - return wl_proxy_add_listener((struct wl_proxy *) zxdg_output_v1, - (void (**)(void)) listener, data); -} - -#define ZXDG_OUTPUT_V1_DESTROY 0 - -#define ZXDG_OUTPUT_V1_LOGICAL_POSITION_SINCE_VERSION 1 -#define ZXDG_OUTPUT_V1_LOGICAL_SIZE_SINCE_VERSION 1 -#define ZXDG_OUTPUT_V1_DONE_SINCE_VERSION 1 -#define ZXDG_OUTPUT_V1_NAME_SINCE_VERSION 2 -#define ZXDG_OUTPUT_V1_DESCRIPTION_SINCE_VERSION 2 - -#define ZXDG_OUTPUT_V1_DESTROY_SINCE_VERSION 1 - -static void -zxdg_output_v1_set_user_data(struct zxdg_output_v1 *zxdg_output_v1, void *user_data) -{ - wl_proxy_set_user_data((struct wl_proxy *) zxdg_output_v1, user_data); -} - -static void * -zxdg_output_v1_get_user_data(struct zxdg_output_v1 *zxdg_output_v1) -{ - return wl_proxy_get_user_data((struct wl_proxy *) zxdg_output_v1); -} - -static u32 -zxdg_output_v1_get_version(struct zxdg_output_v1 *zxdg_output_v1) -{ - return wl_proxy_get_version((struct wl_proxy *) zxdg_output_v1); -} - -static void -zxdg_output_v1_destroy(struct zxdg_output_v1 *zxdg_output_v1) -{ - wl_proxy_marshal_flags((struct wl_proxy *) zxdg_output_v1, - ZXDG_OUTPUT_V1_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) zxdg_output_v1), WL_MARSHAL_FLAG_DESTROY); -} - -#ifndef __has_attribute -# define __has_attribute(x) 0 /* Compatibility with non-clang compilers. */ -#endif - -#if (__has_attribute(visibility) || defined(__GNUC__) && __GNUC__ >= 4) -#define WL_PRIVATE __attribute__ ((visibility("hidden"))) -#else -#define WL_PRIVATE -#endif - -extern const struct wl_interface wl_buffer_interface; -extern const struct wl_interface wl_output_interface; -extern const struct wl_interface zwlr_screencopy_frame_v1_interface; - -static const struct wl_interface *wlr_screencopy_unstable_v1_types[] = { +static struct wl_interface const *wlr_screencopy_unstable_v1_types[] = { NULL, NULL, NULL, @@ -1761,105 +1493,136 @@ static const struct wl_interface *wlr_screencopy_unstable_v1_types[] = { &wl_buffer_interface, }; -static const struct wl_message zwlr_screencopy_manager_v1_requests[] = { - { "capture_output", "nio", wlr_screencopy_unstable_v1_types + 4 }, - { "capture_output_region", "nioiiii", wlr_screencopy_unstable_v1_types + 7 }, - { "destroy", "", wlr_screencopy_unstable_v1_types + 0 }, -}; - -WL_PRIVATE const struct wl_interface zwlr_screencopy_manager_v1_interface = { - "zwlr_screencopy_manager_v1", 1, - 3, zwlr_screencopy_manager_v1_requests, - 0, NULL, -}; - -static const struct wl_message zwlr_screencopy_frame_v1_requests[] = { - { "copy", "o", wlr_screencopy_unstable_v1_types + 14 }, - { "destroy", "", wlr_screencopy_unstable_v1_types + 0 }, +static struct wl_message zwlr_screencopy_frame_v1_requests[] = { + { "copy", "o", wlr_screencopy_unstable_v1_types + 14 }, + { "destroy", "", wlr_screencopy_unstable_v1_types }, }; -static const struct wl_message zwlr_screencopy_frame_v1_events[] = { - { "buffer", "uuuu", wlr_screencopy_unstable_v1_types + 0 }, - { "flags", "u", wlr_screencopy_unstable_v1_types + 0 }, - { "ready", "uuu", wlr_screencopy_unstable_v1_types + 0 }, - { "failed", "", wlr_screencopy_unstable_v1_types + 0 }, +static struct wl_message zwlr_screencopy_frame_v1_events[] = { + { "buffer", "uuuu", wlr_screencopy_unstable_v1_types }, + { "flags", "u", wlr_screencopy_unstable_v1_types }, + { "ready", "uuu", wlr_screencopy_unstable_v1_types }, + { "failed", "", wlr_screencopy_unstable_v1_types }, }; -WL_PRIVATE const struct wl_interface zwlr_screencopy_frame_v1_interface = { +struct wl_interface zwlr_screencopy_frame_v1_interface = { "zwlr_screencopy_frame_v1", 1, - 2, zwlr_screencopy_frame_v1_requests, - 4, zwlr_screencopy_frame_v1_events, + 2, zwlr_screencopy_frame_v1_requests, + 4, zwlr_screencopy_frame_v1_events, }; -#ifndef __has_attribute -# define __has_attribute(x) 0 /* Compatibility with non-clang compilers. */ -#endif - -#if (__has_attribute(visibility) || defined(__GNUC__) && __GNUC__ >= 4) -#define WL_PRIVATE __attribute__ ((visibility("hidden"))) -#else -#define WL_PRIVATE -#endif - -extern const struct wl_interface wl_output_interface; -extern const struct wl_interface zxdg_output_v1_interface; +static struct wl_message zwlr_screencopy_manager_v1_requests[] = { + { "capture_output", "nio", wlr_screencopy_unstable_v1_types + 4 }, + { "capture_output_region", "nioiiii", wlr_screencopy_unstable_v1_types + 7 }, + { "destroy", "", wlr_screencopy_unstable_v1_types }, +}; -static const struct wl_interface *xdg_output_unstable_v1_types[] = { +static struct wl_interface const *xdg_output_unstable_v1_types[] = { NULL, NULL, &zxdg_output_v1_interface, &wl_output_interface, }; -static const struct wl_message zxdg_output_manager_v1_requests[] = { - { "destroy", "", xdg_output_unstable_v1_types + 0 }, +static struct wl_message zxdg_output_manager_v1_requests[] = { + { "destroy", "", xdg_output_unstable_v1_types }, { "get_xdg_output", "no", xdg_output_unstable_v1_types + 2 }, }; -WL_PRIVATE const struct wl_interface zxdg_output_manager_v1_interface = { +static struct wl_interface zxdg_output_manager_v1_interface = { "zxdg_output_manager_v1", 3, - 2, zxdg_output_manager_v1_requests, - 0, NULL, + 2, zxdg_output_manager_v1_requests, + 0, NULL, +}; + +static struct wl_message zxdg_output_v1_requests[] = { + { "destroy", "", xdg_output_unstable_v1_types }, }; -static const struct wl_message zxdg_output_v1_requests[] = { - { "destroy", "", xdg_output_unstable_v1_types + 0 }, +static struct wl_message zxdg_output_v1_events[] = { + { "logical_position", "ii", xdg_output_unstable_v1_types }, + { "logical_size", "ii", xdg_output_unstable_v1_types }, + { "done", "", xdg_output_unstable_v1_types }, + { "name", "2s", xdg_output_unstable_v1_types }, + { "description", "2s", xdg_output_unstable_v1_types }, }; -static const struct wl_message zxdg_output_v1_events[] = { - { "logical_position", "ii", xdg_output_unstable_v1_types + 0 }, - { "logical_size", "ii", xdg_output_unstable_v1_types + 0 }, - { "done", "", xdg_output_unstable_v1_types + 0 }, - { "name", "2s", xdg_output_unstable_v1_types + 0 }, - { "description", "2s", xdg_output_unstable_v1_types + 0 }, +struct wl_interface zwlr_screencopy_manager_v1_interface = { + "zwlr_screencopy_manager_v1", 1, + 3, zwlr_screencopy_manager_v1_requests, + 0, NULL, }; -WL_PRIVATE const struct wl_interface zxdg_output_v1_interface = { +struct wl_interface zxdg_output_v1_interface = { "zxdg_output_v1", 3, - 1, zxdg_output_v1_requests, - 5, zxdg_output_v1_events, + 1, zxdg_output_v1_requests, + 5, zxdg_output_v1_events, }; +static void *zwlr_screencopy_manager_v1_capture_output(void *zwlr_screencopy_manager_v1, i32 overlay_cursor, struct wl_output *output) { + struct wl_proxy *frame; + frame = wl_proxy_marshal_flags((struct wl_proxy *) zwlr_screencopy_manager_v1, 0, &zwlr_screencopy_frame_v1_interface, wl_proxy_get_version((struct wl_proxy *) zwlr_screencopy_manager_v1), 0, NULL, overlay_cursor, output); + return (void *) frame; +} + +static void zxdg_output_v1_destroy(void *zxdg_output_v1) { + wl_proxy_marshal_flags((struct wl_proxy *) zxdg_output_v1, 0, NULL, wl_proxy_get_version((struct wl_proxy *) zxdg_output_v1), WL_MARSHAL_FLAG_DESTROY); +} + +static i32 zxdg_output_v1_add_listener(void *zxdg_output_v1, struct zxdg_output_v1_listener *listener, void *data) { + return wl_proxy_add_listener((struct wl_proxy *) zxdg_output_v1, (void (**)(void)) listener, data); +} + +static void *zxdg_output_manager_v1_get_xdg_output(void *zxdg_output_manager_v1, struct wl_output *output) { + struct wl_proxy *id; + id = wl_proxy_marshal_flags((struct wl_proxy *) zxdg_output_manager_v1, + 1, &zxdg_output_v1_interface, wl_proxy_get_version((struct wl_proxy *) zxdg_output_manager_v1), 0, NULL, output); + return (void *) id; +} + +static void zxdg_output_manager_v1_destroy(void *zxdg_output_manager_v1) { + wl_proxy_marshal_flags((struct wl_proxy *) zxdg_output_manager_v1, + 0, NULL, wl_proxy_get_version((struct wl_proxy *) zxdg_output_manager_v1), WL_MARSHAL_FLAG_DESTROY); +} + +static void zwlr_screencopy_frame_v1_destroy(void *zwlr_screencopy_frame_v1) { + wl_proxy_marshal_flags((struct wl_proxy *) zwlr_screencopy_frame_v1, + 1, NULL, wl_proxy_get_version((struct wl_proxy *) zwlr_screencopy_frame_v1), WL_MARSHAL_FLAG_DESTROY); +} + +static void zwlr_screencopy_frame_v1_copy(void *zwlr_screencopy_frame_v1, struct wl_buffer *buffer) { + wl_proxy_marshal_flags((struct wl_proxy *) zwlr_screencopy_frame_v1, + 0, NULL, wl_proxy_get_version((struct wl_proxy *) zwlr_screencopy_frame_v1), 0, buffer); +} + +static i32 zwlr_screencopy_frame_v1_add_listener(void *zwlr_screencopy_frame_v1, struct zwlr_screencopy_frame_v1_listener *listener, void *data) { + return wl_proxy_add_listener((struct wl_proxy *) zwlr_screencopy_frame_v1, (void (**)(void)) listener, data); +} + +static void zwlr_screencopy_manager_v1_destroy(void *zwlr_screencopy_manager_v1) { + wl_proxy_marshal_flags((struct wl_proxy *) zwlr_screencopy_manager_v1, 2, NULL, wl_proxy_get_version((struct wl_proxy *) zwlr_screencopy_manager_v1), WL_MARSHAL_FLAG_DESTROY); +} + // ================================================================ typedef struct { - struct wl_display * display; - struct wl_registry * registry; - struct wl_shm * shm; - struct zxdg_output_manager_v1 * xdg_output_manager; - struct zwlr_screencopy_manager_v1 *screencopy_manager; - struct wl_list outputs; - u64 n_done; + struct wl_display * display; + struct wl_registry *registry; + struct wl_shm * shm; + void * xdg_output_manager; + void * screencopy_manager; + struct wl_list outputs; + u64 n_done; } WL_State_; typedef struct { - struct wl_buffer * buffer; - void * data; - i32 width; - i32 height; - i32 stride; - u64 size; - enum wl_shm_format format; + struct wl_buffer *buffer; + void * data; + i32 width; + i32 height; + i32 stride; + u64 size; + i32 format; } WL_Buffer_; typedef struct { @@ -1868,28 +1631,24 @@ typedef struct { } WL_Box_; typedef struct { - WL_State_ * state; - struct wl_output * output; - struct zxdg_output_v1 * xdg_output; - struct wl_list link; - WL_Box_ geometry; - enum wl_output_transform transform; - i32 scale; - WL_Box_ local_geometry; - WL_Box_ logical_geometry; - f64 logical_scale; - c8 * name; - WL_Buffer_ * buffer; - struct zwlr_screencopy_frame_v1 *screencopy_frame; - u32 screencopy_frame_flags; + WL_State_ * state; + struct wl_output * output; + void *xdg_output; + struct wl_list link; + WL_Box_ geometry; + i32 transform; + i32 scale; + WL_Box_ local_geometry; + WL_Box_ logical_geometry; + f64 logical_scale; + c8 * name; + WL_Buffer_ * buffer; + void * screencopy_frame; + u32 screencopy_frame_flags; } WL_Output_; // ================================================================ -b8 _Wayland_screenshot_status = 0; - -// ================================================================ - static void get_output_layout_extents(WL_State_ *state, WL_Box_ *box) { i32 x1 = 0x10000000, y1 = 0x10000000; i32 x2 = -0x10000000, y2 = -0x10000000; @@ -1958,7 +1717,7 @@ static void randname(c8 *buf) { } static i32 anonymous_shm_open(void) { - c8 name[] = "/SCR_XXXXXX"; + c8 name[] = "/tmp/scr_XXXXXX"; i32 retries = 100; do { @@ -2043,7 +1802,7 @@ static void destroy_buffer(WL_Buffer_ *buffer) { static void screencopy_frame_handle_buffer( void * data, - struct zwlr_screencopy_frame_v1 *frame, + void *frame, u32 format, u32 width, u32 height, @@ -2062,7 +1821,7 @@ static void screencopy_frame_handle_buffer( static void screencopy_frame_handle_flags( void * data, - struct zwlr_screencopy_frame_v1 *frame, + void *frame, u32 flags ) { WL_Output_ *output = data; @@ -2071,7 +1830,7 @@ static void screencopy_frame_handle_flags( static void screencopy_frame_handle_ready( void * data, - struct zwlr_screencopy_frame_v1 *frame, + void *frame, u32 tv_sec_hi, u32 tv_sec_lo, u32 tv_nsec @@ -2082,7 +1841,7 @@ static void screencopy_frame_handle_ready( static void screencopy_frame_handle_failed( void * data, - struct zwlr_screencopy_frame_v1 *frame + void *frame ) { WL_Output_ *output = data; // FAIL @@ -2098,7 +1857,7 @@ static struct zwlr_screencopy_frame_v1_listener screencopy_frame_listener = { static void xdg_output_handle_logical_position( void * data, - struct zxdg_output_v1 *xdg_output, + void *xdg_output, i32 x, i32 y ) { @@ -2110,7 +1869,7 @@ static void xdg_output_handle_logical_position( static void xdg_output_handle_logical_size( void * data, - struct zxdg_output_v1 *xdg_output, + void *xdg_output, i32 width, i32 height ) { @@ -2122,7 +1881,7 @@ static void xdg_output_handle_logical_size( static void xdg_output_handle_done( void * data, - struct zxdg_output_v1 *xdg_output + void *xdg_output ) { WL_Output_ *output = data; @@ -2134,14 +1893,14 @@ static void xdg_output_handle_done( static void xdg_output_handle_name( void * data, - struct zxdg_output_v1 *xdg_output, - c8 const * name + void *xdg_output, + c8 * name ) { WL_Output_ *output = data; output->name = strdup(name); } -static void xdg_output_handle_description(void *data, struct zxdg_output_v1 *xdg_output, c8 const *name) { } +static void xdg_output_handle_description(void *data, void *xdg_output, c8 *name) { } static void output_handle_geometry( void * data, @@ -2151,8 +1910,8 @@ static void output_handle_geometry( i32 physical_width, i32 physical_height, i32 subpixel, - c8 const * make, - c8 const * model, + c8 const * make, + c8 const * model, i32 transform ) { WL_Output_ *output = data; |