summaryrefslogtreecommitdiff
path: root/reduced_system_layer.c
diff options
context:
space:
mode:
Diffstat (limited to 'reduced_system_layer.c')
-rw-r--r--reduced_system_layer.c515
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;