/* Generated by wayland-scanner 1.25.0 */

#ifndef SCREENSHOOTER_CLIENT_PROTOCOL_H
#define SCREENSHOOTER_CLIENT_PROTOCOL_H

#include <stdint.h>
#include <stddef.h>
#include "wayland-client.h"

#ifdef  __cplusplus
extern "C" {
#endif

/**
 * @page page_screenshooter The screenshooter protocol
 * @section page_ifaces_screenshooter Interfaces
 * - @subpage page_iface_screenshooter - 
 */
struct screenshooter;
struct wl_buffer;
struct wl_output;

#ifndef SCREENSHOOTER_INTERFACE
#define SCREENSHOOTER_INTERFACE
/**
 * @page page_iface_screenshooter screenshooter
 * @section page_iface_screenshooter_api API
 * See @ref iface_screenshooter.
 */
/**
 * @defgroup iface_screenshooter The screenshooter interface
 */
extern const struct wl_interface screenshooter_interface;
#endif

/**
 * @ingroup iface_screenshooter
 * @struct screenshooter_listener
 */
struct screenshooter_listener {
	/**
	 */
	void (*done)(void *data,
		     struct screenshooter *screenshooter);
};

/**
 * @ingroup iface_screenshooter
 */
static inline int
screenshooter_add_listener(struct screenshooter *screenshooter,
			   const struct screenshooter_listener *listener, void *data)
{
	return wl_proxy_add_listener((struct wl_proxy *) screenshooter,
				     (void (**)(void)) listener, data);
}

#define SCREENSHOOTER_SHOOT 0

/**
 * @ingroup iface_screenshooter
 */
#define SCREENSHOOTER_DONE_SINCE_VERSION 1

/**
 * @ingroup iface_screenshooter
 */
#define SCREENSHOOTER_SHOOT_SINCE_VERSION 1

/** @ingroup iface_screenshooter */
static inline void
screenshooter_set_user_data(struct screenshooter *screenshooter, void *user_data)
{
	wl_proxy_set_user_data((struct wl_proxy *) screenshooter, user_data);
}

/** @ingroup iface_screenshooter */
static inline void *
screenshooter_get_user_data(struct screenshooter *screenshooter)
{
	return wl_proxy_get_user_data((struct wl_proxy *) screenshooter);
}

static inline uint32_t
screenshooter_get_version(struct screenshooter *screenshooter)
{
	return wl_proxy_get_version((struct wl_proxy *) screenshooter);
}

/** @ingroup iface_screenshooter */
static inline void
screenshooter_destroy(struct screenshooter *screenshooter)
{
	wl_proxy_destroy((struct wl_proxy *) screenshooter);
}

/**
 * @ingroup iface_screenshooter
 */
static inline void
screenshooter_shoot(struct screenshooter *screenshooter, struct wl_output *output, struct wl_buffer *buffer)
{
	wl_proxy_marshal_flags((struct wl_proxy *) screenshooter,
			 SCREENSHOOTER_SHOOT, NULL, wl_proxy_get_version((struct wl_proxy *) screenshooter), 0, output, buffer);
}

#ifdef  __cplusplus
}
#endif

#endif
