/* Generated by wayland-scanner 1.26.0 */

/*
 * SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd.
 * SPDX-License-Identifier: MIT
 */

#include <stdbool.h>
#include <stdlib.h>
#include <stdint.h>
#include "wayland-util.h"

extern const struct wl_interface treeland_capture_context_v1_interface;
extern const struct wl_interface treeland_capture_frame_v1_interface;
extern const struct wl_interface treeland_capture_session_v1_interface;
extern const struct wl_interface wl_buffer_interface;
extern const struct wl_interface wl_surface_interface;

static const struct wl_interface *treeland_capture_unstable_v1_types[] = {
	NULL,
	NULL,
	NULL,
	NULL,
	NULL,
	NULL,
	NULL,
	NULL,
	NULL,
	NULL,
	&wl_buffer_interface,
	NULL,
	NULL,
	NULL,
	&wl_surface_interface,
	&treeland_capture_frame_v1_interface,
	&treeland_capture_session_v1_interface,
	&treeland_capture_context_v1_interface,
};

static const struct wl_message treeland_capture_session_v1_requests[] = {
	{ "destroy", "", treeland_capture_unstable_v1_types + 0 },
	{ "start", "", treeland_capture_unstable_v1_types + 0 },
	{ "frame_done", "uuu", treeland_capture_unstable_v1_types + 0 },
};

static const struct wl_message treeland_capture_session_v1_events[] = {
	{ "frame", "iiuuuuuuuu", treeland_capture_unstable_v1_types + 0 },
	{ "object", "uhuuuu", treeland_capture_unstable_v1_types + 0 },
	{ "ready", "uuu", treeland_capture_unstable_v1_types + 0 },
	{ "cancel", "u", treeland_capture_unstable_v1_types + 0 },
};

WL_EXPORT const struct wl_interface treeland_capture_session_v1_interface = {
	"treeland_capture_session_v1", 1,
	3, treeland_capture_session_v1_requests,
	4, treeland_capture_session_v1_events,
};

static const struct wl_message treeland_capture_frame_v1_requests[] = {
	{ "destroy", "", treeland_capture_unstable_v1_types + 0 },
	{ "copy", "o", treeland_capture_unstable_v1_types + 10 },
};

static const struct wl_message treeland_capture_frame_v1_events[] = {
	{ "buffer", "uuuu", treeland_capture_unstable_v1_types + 0 },
	{ "buffer_done", "", treeland_capture_unstable_v1_types + 0 },
	{ "flags", "u", treeland_capture_unstable_v1_types + 0 },
	{ "ready", "", treeland_capture_unstable_v1_types + 0 },
	{ "failed", "", treeland_capture_unstable_v1_types + 0 },
};

WL_EXPORT const struct wl_interface treeland_capture_frame_v1_interface = {
	"treeland_capture_frame_v1", 1,
	2, treeland_capture_frame_v1_requests,
	5, treeland_capture_frame_v1_events,
};

static const struct wl_message treeland_capture_context_v1_requests[] = {
	{ "destroy", "", treeland_capture_unstable_v1_types + 0 },
	{ "select_source", "uuu?o", treeland_capture_unstable_v1_types + 11 },
	{ "capture", "n", treeland_capture_unstable_v1_types + 15 },
	{ "create_session", "n", treeland_capture_unstable_v1_types + 16 },
};

static const struct wl_message treeland_capture_context_v1_events[] = {
	{ "source_ready", "iiuuu", treeland_capture_unstable_v1_types + 0 },
	{ "source_failed", "u", treeland_capture_unstable_v1_types + 0 },
};

WL_EXPORT const struct wl_interface treeland_capture_context_v1_interface = {
	"treeland_capture_context_v1", 1,
	4, treeland_capture_context_v1_requests,
	2, treeland_capture_context_v1_events,
};

static const struct wl_message treeland_capture_manager_v1_requests[] = {
	{ "destroy", "", treeland_capture_unstable_v1_types + 0 },
	{ "get_context", "n", treeland_capture_unstable_v1_types + 17 },
};

WL_EXPORT const struct wl_interface treeland_capture_manager_v1_interface = {
	"treeland_capture_manager_v1", 1,
	2, treeland_capture_manager_v1_requests,
	0, NULL,
};

