piece of shit

This commit is contained in:
vaxerski 2023-08-26 23:51:30 +02:00
parent b50663fcfa
commit 8720298b57
8 changed files with 0 additions and 2241 deletions

View File

@ -1,85 +0,0 @@
/* Generated by wayland-scanner 1.22.90 */
/*
* Copyright © 2022 Vaxry
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <stdlib.h>
#include <stdint.h>
#include "wayland-util.h"
#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 hyprland_global_shortcut_v1_interface;
static const struct wl_interface *hyprland_global_shortcuts_v1_types[] = {
NULL,
NULL,
NULL,
&hyprland_global_shortcut_v1_interface,
NULL,
NULL,
NULL,
NULL,
};
static const struct wl_message hyprland_global_shortcuts_manager_v1_requests[] = {
{ "register_shortcut", "nssss", hyprland_global_shortcuts_v1_types + 3 },
{ "destroy", "", hyprland_global_shortcuts_v1_types + 0 },
};
WL_PRIVATE const struct wl_interface hyprland_global_shortcuts_manager_v1_interface = {
"hyprland_global_shortcuts_manager_v1", 1,
2, hyprland_global_shortcuts_manager_v1_requests,
0, NULL,
};
static const struct wl_message hyprland_global_shortcut_v1_requests[] = {
{ "destroy", "", hyprland_global_shortcuts_v1_types + 0 },
};
static const struct wl_message hyprland_global_shortcut_v1_events[] = {
{ "pressed", "uuu", hyprland_global_shortcuts_v1_types + 0 },
{ "released", "uuu", hyprland_global_shortcuts_v1_types + 0 },
};
WL_PRIVATE const struct wl_interface hyprland_global_shortcut_v1_interface = {
"hyprland_global_shortcut_v1", 1,
1, hyprland_global_shortcut_v1_requests,
2, hyprland_global_shortcut_v1_events,
};

View File

@ -1,274 +0,0 @@
/* Generated by wayland-scanner 1.22.90 */
#ifndef HYPRLAND_GLOBAL_SHORTCUTS_V1_CLIENT_PROTOCOL_H
#define HYPRLAND_GLOBAL_SHORTCUTS_V1_CLIENT_PROTOCOL_H
#include <stdint.h>
#include <stddef.h>
#include "wayland-client.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @page page_hyprland_global_shortcuts_v1 The hyprland_global_shortcuts_v1 protocol
* registering global shortcuts
*
* @section page_desc_hyprland_global_shortcuts_v1 Description
*
* This protocol allows a client to register triggerable actions,
* meant to be global shortcuts.
*
* @section page_ifaces_hyprland_global_shortcuts_v1 Interfaces
* - @subpage page_iface_hyprland_global_shortcuts_manager_v1 - manager to register global shortcuts
* - @subpage page_iface_hyprland_global_shortcut_v1 - a shortcut
* @section page_copyright_hyprland_global_shortcuts_v1 Copyright
* <pre>
*
* Copyright © 2022 Vaxry
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* </pre>
*/
struct hyprland_global_shortcut_v1;
struct hyprland_global_shortcuts_manager_v1;
#ifndef HYPRLAND_GLOBAL_SHORTCUTS_MANAGER_V1_INTERFACE
#define HYPRLAND_GLOBAL_SHORTCUTS_MANAGER_V1_INTERFACE
/**
* @page page_iface_hyprland_global_shortcuts_manager_v1 hyprland_global_shortcuts_manager_v1
* @section page_iface_hyprland_global_shortcuts_manager_v1_desc Description
*
* This object is a manager which offers requests to create global shortcuts.
* @section page_iface_hyprland_global_shortcuts_manager_v1_api API
* See @ref iface_hyprland_global_shortcuts_manager_v1.
*/
/**
* @defgroup iface_hyprland_global_shortcuts_manager_v1 The hyprland_global_shortcuts_manager_v1 interface
*
* This object is a manager which offers requests to create global shortcuts.
*/
extern const struct wl_interface hyprland_global_shortcuts_manager_v1_interface;
#endif
#ifndef HYPRLAND_GLOBAL_SHORTCUT_V1_INTERFACE
#define HYPRLAND_GLOBAL_SHORTCUT_V1_INTERFACE
/**
* @page page_iface_hyprland_global_shortcut_v1 hyprland_global_shortcut_v1
* @section page_iface_hyprland_global_shortcut_v1_desc Description
*
* This object represents a single shortcut.
* @section page_iface_hyprland_global_shortcut_v1_api API
* See @ref iface_hyprland_global_shortcut_v1.
*/
/**
* @defgroup iface_hyprland_global_shortcut_v1 The hyprland_global_shortcut_v1 interface
*
* This object represents a single shortcut.
*/
extern const struct wl_interface hyprland_global_shortcut_v1_interface;
#endif
#ifndef HYPRLAND_GLOBAL_SHORTCUTS_MANAGER_V1_ERROR_ENUM
#define HYPRLAND_GLOBAL_SHORTCUTS_MANAGER_V1_ERROR_ENUM
enum hyprland_global_shortcuts_manager_v1_error {
/**
* the app_id + id combination has already been registered.
*/
HYPRLAND_GLOBAL_SHORTCUTS_MANAGER_V1_ERROR_ALREADY_TAKEN = 0,
};
#endif /* HYPRLAND_GLOBAL_SHORTCUTS_MANAGER_V1_ERROR_ENUM */
#define HYPRLAND_GLOBAL_SHORTCUTS_MANAGER_V1_REGISTER_SHORTCUT 0
#define HYPRLAND_GLOBAL_SHORTCUTS_MANAGER_V1_DESTROY 1
/**
* @ingroup iface_hyprland_global_shortcuts_manager_v1
*/
#define HYPRLAND_GLOBAL_SHORTCUTS_MANAGER_V1_REGISTER_SHORTCUT_SINCE_VERSION 1
/**
* @ingroup iface_hyprland_global_shortcuts_manager_v1
*/
#define HYPRLAND_GLOBAL_SHORTCUTS_MANAGER_V1_DESTROY_SINCE_VERSION 1
/** @ingroup iface_hyprland_global_shortcuts_manager_v1 */
static inline void
hyprland_global_shortcuts_manager_v1_set_user_data(struct hyprland_global_shortcuts_manager_v1 *hyprland_global_shortcuts_manager_v1, void *user_data)
{
wl_proxy_set_user_data((struct wl_proxy *) hyprland_global_shortcuts_manager_v1, user_data);
}
/** @ingroup iface_hyprland_global_shortcuts_manager_v1 */
static inline void *
hyprland_global_shortcuts_manager_v1_get_user_data(struct hyprland_global_shortcuts_manager_v1 *hyprland_global_shortcuts_manager_v1)
{
return wl_proxy_get_user_data((struct wl_proxy *) hyprland_global_shortcuts_manager_v1);
}
static inline uint32_t
hyprland_global_shortcuts_manager_v1_get_version(struct hyprland_global_shortcuts_manager_v1 *hyprland_global_shortcuts_manager_v1)
{
return wl_proxy_get_version((struct wl_proxy *) hyprland_global_shortcuts_manager_v1);
}
/**
* @ingroup iface_hyprland_global_shortcuts_manager_v1
*
* Register a new global shortcut.
*
* A global shortcut is anonymous, meaning the app does not know what key(s) trigger it.
*
* The shortcut's keybinding shall be dealt with by the compositor.
*
* In the case of a duplicate app_id + id combination, the already_taken protocol error is raised.
*/
static inline struct hyprland_global_shortcut_v1 *
hyprland_global_shortcuts_manager_v1_register_shortcut(struct hyprland_global_shortcuts_manager_v1 *hyprland_global_shortcuts_manager_v1, const char *id, const char *app_id, const char *description, const char *trigger_description)
{
struct wl_proxy *shortcut;
shortcut = wl_proxy_marshal_flags((struct wl_proxy *) hyprland_global_shortcuts_manager_v1,
HYPRLAND_GLOBAL_SHORTCUTS_MANAGER_V1_REGISTER_SHORTCUT, &hyprland_global_shortcut_v1_interface, wl_proxy_get_version((struct wl_proxy *) hyprland_global_shortcuts_manager_v1), 0, NULL, id, app_id, description, trigger_description);
return (struct hyprland_global_shortcut_v1 *) shortcut;
}
/**
* @ingroup iface_hyprland_global_shortcuts_manager_v1
*
* All objects created by the manager will still remain valid, until their
* appropriate destroy request has been called.
*/
static inline void
hyprland_global_shortcuts_manager_v1_destroy(struct hyprland_global_shortcuts_manager_v1 *hyprland_global_shortcuts_manager_v1)
{
wl_proxy_marshal_flags((struct wl_proxy *) hyprland_global_shortcuts_manager_v1,
HYPRLAND_GLOBAL_SHORTCUTS_MANAGER_V1_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) hyprland_global_shortcuts_manager_v1), WL_MARSHAL_FLAG_DESTROY);
}
/**
* @ingroup iface_hyprland_global_shortcut_v1
* @struct hyprland_global_shortcut_v1_listener
*/
struct hyprland_global_shortcut_v1_listener {
/**
* keystroke pressed
*
* The keystroke was pressed.
*
* tv_ values hold the timestamp of the occurrence.
* @param tv_sec_hi high 32 bits of the seconds part of the timestamp
* @param tv_sec_lo low 32 bits of the seconds part of the timestamp
* @param tv_nsec nanoseconds part of the timestamp
*/
void (*pressed)(void *data,
struct hyprland_global_shortcut_v1 *hyprland_global_shortcut_v1,
uint32_t tv_sec_hi,
uint32_t tv_sec_lo,
uint32_t tv_nsec);
/**
* keystroke released
*
* The keystroke was released.
*
* tv_ values hold the timestamp of the occurrence.
* @param tv_sec_hi high 32 bits of the seconds part of the timestamp
* @param tv_sec_lo low 32 bits of the seconds part of the timestamp
* @param tv_nsec nanoseconds part of the timestamp
*/
void (*released)(void *data,
struct hyprland_global_shortcut_v1 *hyprland_global_shortcut_v1,
uint32_t tv_sec_hi,
uint32_t tv_sec_lo,
uint32_t tv_nsec);
};
/**
* @ingroup iface_hyprland_global_shortcut_v1
*/
static inline int
hyprland_global_shortcut_v1_add_listener(struct hyprland_global_shortcut_v1 *hyprland_global_shortcut_v1,
const struct hyprland_global_shortcut_v1_listener *listener, void *data)
{
return wl_proxy_add_listener((struct wl_proxy *) hyprland_global_shortcut_v1,
(void (**)(void)) listener, data);
}
#define HYPRLAND_GLOBAL_SHORTCUT_V1_DESTROY 0
/**
* @ingroup iface_hyprland_global_shortcut_v1
*/
#define HYPRLAND_GLOBAL_SHORTCUT_V1_PRESSED_SINCE_VERSION 1
/**
* @ingroup iface_hyprland_global_shortcut_v1
*/
#define HYPRLAND_GLOBAL_SHORTCUT_V1_RELEASED_SINCE_VERSION 1
/**
* @ingroup iface_hyprland_global_shortcut_v1
*/
#define HYPRLAND_GLOBAL_SHORTCUT_V1_DESTROY_SINCE_VERSION 1
/** @ingroup iface_hyprland_global_shortcut_v1 */
static inline void
hyprland_global_shortcut_v1_set_user_data(struct hyprland_global_shortcut_v1 *hyprland_global_shortcut_v1, void *user_data)
{
wl_proxy_set_user_data((struct wl_proxy *) hyprland_global_shortcut_v1, user_data);
}
/** @ingroup iface_hyprland_global_shortcut_v1 */
static inline void *
hyprland_global_shortcut_v1_get_user_data(struct hyprland_global_shortcut_v1 *hyprland_global_shortcut_v1)
{
return wl_proxy_get_user_data((struct wl_proxy *) hyprland_global_shortcut_v1);
}
static inline uint32_t
hyprland_global_shortcut_v1_get_version(struct hyprland_global_shortcut_v1 *hyprland_global_shortcut_v1)
{
return wl_proxy_get_version((struct wl_proxy *) hyprland_global_shortcut_v1);
}
/**
* @ingroup iface_hyprland_global_shortcut_v1
*
* Destroys the shortcut. Can be sent at any time by the client.
*/
static inline void
hyprland_global_shortcut_v1_destroy(struct hyprland_global_shortcut_v1 *hyprland_global_shortcut_v1)
{
wl_proxy_marshal_flags((struct wl_proxy *) hyprland_global_shortcut_v1,
HYPRLAND_GLOBAL_SHORTCUT_V1_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) hyprland_global_shortcut_v1), WL_MARSHAL_FLAG_DESTROY);
}
#ifdef __cplusplus
}
#endif
#endif

View File

@ -1,98 +0,0 @@
/* Generated by wayland-scanner 1.22.90 */
/*
* Copyright © 2022 Vaxry
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <stdlib.h>
#include <stdint.h>
#include "wayland-util.h"
#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 hyprland_toplevel_export_frame_v1_interface;
extern const struct wl_interface wl_buffer_interface;
extern const struct wl_interface zwlr_foreign_toplevel_handle_v1_interface;
static const struct wl_interface *hyprland_toplevel_export_v1_types[] = {
NULL,
NULL,
NULL,
NULL,
&hyprland_toplevel_export_frame_v1_interface,
NULL,
NULL,
&hyprland_toplevel_export_frame_v1_interface,
NULL,
&zwlr_foreign_toplevel_handle_v1_interface,
&wl_buffer_interface,
NULL,
};
static const struct wl_message hyprland_toplevel_export_manager_v1_requests[] = {
{ "capture_toplevel", "niu", hyprland_toplevel_export_v1_types + 4 },
{ "destroy", "", hyprland_toplevel_export_v1_types + 0 },
{ "capture_toplevel_with_wlr_toplevel_handle", "2nio", hyprland_toplevel_export_v1_types + 7 },
};
WL_PRIVATE const struct wl_interface hyprland_toplevel_export_manager_v1_interface = {
"hyprland_toplevel_export_manager_v1", 2,
3, hyprland_toplevel_export_manager_v1_requests,
0, NULL,
};
static const struct wl_message hyprland_toplevel_export_frame_v1_requests[] = {
{ "copy", "oi", hyprland_toplevel_export_v1_types + 10 },
{ "destroy", "", hyprland_toplevel_export_v1_types + 0 },
};
static const struct wl_message hyprland_toplevel_export_frame_v1_events[] = {
{ "buffer", "uuuu", hyprland_toplevel_export_v1_types + 0 },
{ "damage", "uuuu", hyprland_toplevel_export_v1_types + 0 },
{ "flags", "u", hyprland_toplevel_export_v1_types + 0 },
{ "ready", "uuu", hyprland_toplevel_export_v1_types + 0 },
{ "failed", "", hyprland_toplevel_export_v1_types + 0 },
{ "linux_dmabuf", "uuu", hyprland_toplevel_export_v1_types + 0 },
{ "buffer_done", "", hyprland_toplevel_export_v1_types + 0 },
};
WL_PRIVATE const struct wl_interface hyprland_toplevel_export_frame_v1_interface = {
"hyprland_toplevel_export_frame_v1", 2,
2, hyprland_toplevel_export_frame_v1_requests,
7, hyprland_toplevel_export_frame_v1_events,
};

View File

@ -1,475 +0,0 @@
/* Generated by wayland-scanner 1.22.90 */
#ifndef HYPRLAND_TOPLEVEL_EXPORT_V1_CLIENT_PROTOCOL_H
#define HYPRLAND_TOPLEVEL_EXPORT_V1_CLIENT_PROTOCOL_H
#include <stdint.h>
#include <stddef.h>
#include "wayland-client.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @page page_hyprland_toplevel_export_v1 The hyprland_toplevel_export_v1 protocol
* capturing the contents of toplevel windows
*
* @section page_desc_hyprland_toplevel_export_v1 Description
*
* This protocol allows clients to ask for exporting another toplevel's
* surface(s) to a buffer.
*
* Particularly useful for sharing a single window.
*
* @section page_ifaces_hyprland_toplevel_export_v1 Interfaces
* - @subpage page_iface_hyprland_toplevel_export_manager_v1 - manager to inform clients and begin capturing
* - @subpage page_iface_hyprland_toplevel_export_frame_v1 - a frame ready for copy
* @section page_copyright_hyprland_toplevel_export_v1 Copyright
* <pre>
*
* Copyright © 2022 Vaxry
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* </pre>
*/
struct hyprland_toplevel_export_frame_v1;
struct hyprland_toplevel_export_manager_v1;
struct wl_buffer;
struct zwlr_foreign_toplevel_handle_v1;
#ifndef HYPRLAND_TOPLEVEL_EXPORT_MANAGER_V1_INTERFACE
#define HYPRLAND_TOPLEVEL_EXPORT_MANAGER_V1_INTERFACE
/**
* @page page_iface_hyprland_toplevel_export_manager_v1 hyprland_toplevel_export_manager_v1
* @section page_iface_hyprland_toplevel_export_manager_v1_desc Description
*
* This object is a manager which offers requests to start capturing from a
* source.
* @section page_iface_hyprland_toplevel_export_manager_v1_api API
* See @ref iface_hyprland_toplevel_export_manager_v1.
*/
/**
* @defgroup iface_hyprland_toplevel_export_manager_v1 The hyprland_toplevel_export_manager_v1 interface
*
* This object is a manager which offers requests to start capturing from a
* source.
*/
extern const struct wl_interface hyprland_toplevel_export_manager_v1_interface;
#endif
#ifndef HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_INTERFACE
#define HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_INTERFACE
/**
* @page page_iface_hyprland_toplevel_export_frame_v1 hyprland_toplevel_export_frame_v1
* @section page_iface_hyprland_toplevel_export_frame_v1_desc Description
*
* This object represents a single frame.
*
* When created, a series of buffer events will be sent, each representing a
* supported buffer type. The "buffer_done" event is sent afterwards to
* indicate that all supported buffer types have been enumerated. The client
* will then be able to send a "copy" request. If the capture is successful,
* the compositor will send a "flags" followed by a "ready" event.
*
* wl_shm buffers are always supported, ie. the "buffer" event is guaranteed to be sent.
*
* If the capture failed, the "failed" event is sent. This can happen anytime
* before the "ready" event.
*
* Once either a "ready" or a "failed" event is received, the client should
* destroy the frame.
* @section page_iface_hyprland_toplevel_export_frame_v1_api API
* See @ref iface_hyprland_toplevel_export_frame_v1.
*/
/**
* @defgroup iface_hyprland_toplevel_export_frame_v1 The hyprland_toplevel_export_frame_v1 interface
*
* This object represents a single frame.
*
* When created, a series of buffer events will be sent, each representing a
* supported buffer type. The "buffer_done" event is sent afterwards to
* indicate that all supported buffer types have been enumerated. The client
* will then be able to send a "copy" request. If the capture is successful,
* the compositor will send a "flags" followed by a "ready" event.
*
* wl_shm buffers are always supported, ie. the "buffer" event is guaranteed to be sent.
*
* If the capture failed, the "failed" event is sent. This can happen anytime
* before the "ready" event.
*
* Once either a "ready" or a "failed" event is received, the client should
* destroy the frame.
*/
extern const struct wl_interface hyprland_toplevel_export_frame_v1_interface;
#endif
#define HYPRLAND_TOPLEVEL_EXPORT_MANAGER_V1_CAPTURE_TOPLEVEL 0
#define HYPRLAND_TOPLEVEL_EXPORT_MANAGER_V1_DESTROY 1
#define HYPRLAND_TOPLEVEL_EXPORT_MANAGER_V1_CAPTURE_TOPLEVEL_WITH_WLR_TOPLEVEL_HANDLE 2
/**
* @ingroup iface_hyprland_toplevel_export_manager_v1
*/
#define HYPRLAND_TOPLEVEL_EXPORT_MANAGER_V1_CAPTURE_TOPLEVEL_SINCE_VERSION 1
/**
* @ingroup iface_hyprland_toplevel_export_manager_v1
*/
#define HYPRLAND_TOPLEVEL_EXPORT_MANAGER_V1_DESTROY_SINCE_VERSION 1
/**
* @ingroup iface_hyprland_toplevel_export_manager_v1
*/
#define HYPRLAND_TOPLEVEL_EXPORT_MANAGER_V1_CAPTURE_TOPLEVEL_WITH_WLR_TOPLEVEL_HANDLE_SINCE_VERSION 2
/** @ingroup iface_hyprland_toplevel_export_manager_v1 */
static inline void
hyprland_toplevel_export_manager_v1_set_user_data(struct hyprland_toplevel_export_manager_v1 *hyprland_toplevel_export_manager_v1, void *user_data)
{
wl_proxy_set_user_data((struct wl_proxy *) hyprland_toplevel_export_manager_v1, user_data);
}
/** @ingroup iface_hyprland_toplevel_export_manager_v1 */
static inline void *
hyprland_toplevel_export_manager_v1_get_user_data(struct hyprland_toplevel_export_manager_v1 *hyprland_toplevel_export_manager_v1)
{
return wl_proxy_get_user_data((struct wl_proxy *) hyprland_toplevel_export_manager_v1);
}
static inline uint32_t
hyprland_toplevel_export_manager_v1_get_version(struct hyprland_toplevel_export_manager_v1 *hyprland_toplevel_export_manager_v1)
{
return wl_proxy_get_version((struct wl_proxy *) hyprland_toplevel_export_manager_v1);
}
/**
* @ingroup iface_hyprland_toplevel_export_manager_v1
*
* Capture the next frame of a toplevel. (window)
*
* The captured frame will not contain any server-side decorations and will
* ignore the compositor-set geometry, like e.g. rounded corners.
*
* It will contain all the subsurfaces and popups, however the latter will be clipped
* to the geometry of the base surface.
*
* The handle parameter refers to the address of the window as seen in `hyprctl clients`.
* For example, for d161e7b0 it would be 3512854448.
*/
static inline struct hyprland_toplevel_export_frame_v1 *
hyprland_toplevel_export_manager_v1_capture_toplevel(struct hyprland_toplevel_export_manager_v1 *hyprland_toplevel_export_manager_v1, int32_t overlay_cursor, uint32_t handle)
{
struct wl_proxy *frame;
frame = wl_proxy_marshal_flags((struct wl_proxy *) hyprland_toplevel_export_manager_v1,
HYPRLAND_TOPLEVEL_EXPORT_MANAGER_V1_CAPTURE_TOPLEVEL, &hyprland_toplevel_export_frame_v1_interface, wl_proxy_get_version((struct wl_proxy *) hyprland_toplevel_export_manager_v1), 0, NULL, overlay_cursor, handle);
return (struct hyprland_toplevel_export_frame_v1 *) frame;
}
/**
* @ingroup iface_hyprland_toplevel_export_manager_v1
*
* All objects created by the manager will still remain valid, until their
* appropriate destroy request has been called.
*/
static inline void
hyprland_toplevel_export_manager_v1_destroy(struct hyprland_toplevel_export_manager_v1 *hyprland_toplevel_export_manager_v1)
{
wl_proxy_marshal_flags((struct wl_proxy *) hyprland_toplevel_export_manager_v1,
HYPRLAND_TOPLEVEL_EXPORT_MANAGER_V1_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) hyprland_toplevel_export_manager_v1), WL_MARSHAL_FLAG_DESTROY);
}
/**
* @ingroup iface_hyprland_toplevel_export_manager_v1
*
* Same as capture_toplevel, but with a zwlr_foreign_toplevel_handle_v1 handle.
*/
static inline struct hyprland_toplevel_export_frame_v1 *
hyprland_toplevel_export_manager_v1_capture_toplevel_with_wlr_toplevel_handle(struct hyprland_toplevel_export_manager_v1 *hyprland_toplevel_export_manager_v1, int32_t overlay_cursor, struct zwlr_foreign_toplevel_handle_v1 *handle)
{
struct wl_proxy *frame;
frame = wl_proxy_marshal_flags((struct wl_proxy *) hyprland_toplevel_export_manager_v1,
HYPRLAND_TOPLEVEL_EXPORT_MANAGER_V1_CAPTURE_TOPLEVEL_WITH_WLR_TOPLEVEL_HANDLE, &hyprland_toplevel_export_frame_v1_interface, wl_proxy_get_version((struct wl_proxy *) hyprland_toplevel_export_manager_v1), 0, NULL, overlay_cursor, handle);
return (struct hyprland_toplevel_export_frame_v1 *) frame;
}
#ifndef HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_ERROR_ENUM
#define HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_ERROR_ENUM
enum hyprland_toplevel_export_frame_v1_error {
/**
* the object has already been used to copy a wl_buffer
*/
HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_ERROR_ALREADY_USED = 0,
/**
* buffer attributes are invalid
*/
HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_ERROR_INVALID_BUFFER = 1,
};
#endif /* HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_ERROR_ENUM */
#ifndef HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_FLAGS_ENUM
#define HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_FLAGS_ENUM
enum hyprland_toplevel_export_frame_v1_flags {
/**
* contents are y-inverted
*/
HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_FLAGS_Y_INVERT = 1,
};
#endif /* HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_FLAGS_ENUM */
/**
* @ingroup iface_hyprland_toplevel_export_frame_v1
* @struct hyprland_toplevel_export_frame_v1_listener
*/
struct hyprland_toplevel_export_frame_v1_listener {
/**
* wl_shm buffer information
*
* Provides information about wl_shm buffer parameters that need
* to be used for this frame. This event is sent once after the
* frame is created if wl_shm buffers are supported.
* @param format buffer format
* @param width buffer width
* @param height buffer height
* @param stride buffer stride
*/
void (*buffer)(void *data,
struct hyprland_toplevel_export_frame_v1 *hyprland_toplevel_export_frame_v1,
uint32_t format,
uint32_t width,
uint32_t height,
uint32_t stride);
/**
* carries the coordinates of the damaged region
*
* This event is sent right before the ready event when
* ignore_damage was not set. It may be generated multiple times
* for each copy request.
*
* The arguments describe a box around an area that has changed
* since the last copy request that was derived from the current
* screencopy manager instance.
*
* The union of all regions received between the call to copy and a
* ready event is the total damage since the prior ready event.
* @param x damaged x coordinates
* @param y damaged y coordinates
* @param width current width
* @param height current height
*/
void (*damage)(void *data,
struct hyprland_toplevel_export_frame_v1 *hyprland_toplevel_export_frame_v1,
uint32_t x,
uint32_t y,
uint32_t width,
uint32_t height);
/**
* frame flags
*
* Provides flags about the frame. This event is sent once before
* the "ready" event.
* @param flags frame flags
*/
void (*flags)(void *data,
struct hyprland_toplevel_export_frame_v1 *hyprland_toplevel_export_frame_v1,
uint32_t flags);
/**
* indicates frame is available for reading
*
* Called as soon as the frame is copied, indicating it is
* available for reading. This event includes the time at which
* presentation happened at.
*
* The timestamp is expressed as tv_sec_hi, tv_sec_lo, tv_nsec
* triples, each component being an unsigned 32-bit value. Whole
* seconds are in tv_sec which is a 64-bit value combined from
* tv_sec_hi and tv_sec_lo, and the additional fractional part in
* tv_nsec as nanoseconds. Hence, for valid timestamps tv_nsec must
* be in [0, 999999999]. The seconds part may have an arbitrary
* offset at start.
*
* After receiving this event, the client should destroy the
* object.
* @param tv_sec_hi high 32 bits of the seconds part of the timestamp
* @param tv_sec_lo low 32 bits of the seconds part of the timestamp
* @param tv_nsec nanoseconds part of the timestamp
*/
void (*ready)(void *data,
struct hyprland_toplevel_export_frame_v1 *hyprland_toplevel_export_frame_v1,
uint32_t tv_sec_hi,
uint32_t tv_sec_lo,
uint32_t tv_nsec);
/**
* frame copy failed
*
* This event indicates that the attempted frame copy has failed.
*
* After receiving this event, the client should destroy the
* object.
*/
void (*failed)(void *data,
struct hyprland_toplevel_export_frame_v1 *hyprland_toplevel_export_frame_v1);
/**
* linux-dmabuf buffer information
*
* Provides information about linux-dmabuf buffer parameters that
* need to be used for this frame. This event is sent once after
* the frame is created if linux-dmabuf buffers are supported.
* @param format fourcc pixel format
* @param width buffer width
* @param height buffer height
*/
void (*linux_dmabuf)(void *data,
struct hyprland_toplevel_export_frame_v1 *hyprland_toplevel_export_frame_v1,
uint32_t format,
uint32_t width,
uint32_t height);
/**
* all buffer types reported
*
* This event is sent once after all buffer events have been
* sent.
*
* The client should proceed to create a buffer of one of the
* supported types, and send a "copy" request.
*/
void (*buffer_done)(void *data,
struct hyprland_toplevel_export_frame_v1 *hyprland_toplevel_export_frame_v1);
};
/**
* @ingroup iface_hyprland_toplevel_export_frame_v1
*/
static inline int
hyprland_toplevel_export_frame_v1_add_listener(struct hyprland_toplevel_export_frame_v1 *hyprland_toplevel_export_frame_v1,
const struct hyprland_toplevel_export_frame_v1_listener *listener, void *data)
{
return wl_proxy_add_listener((struct wl_proxy *) hyprland_toplevel_export_frame_v1,
(void (**)(void)) listener, data);
}
#define HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_COPY 0
#define HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_DESTROY 1
/**
* @ingroup iface_hyprland_toplevel_export_frame_v1
*/
#define HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_BUFFER_SINCE_VERSION 1
/**
* @ingroup iface_hyprland_toplevel_export_frame_v1
*/
#define HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_DAMAGE_SINCE_VERSION 1
/**
* @ingroup iface_hyprland_toplevel_export_frame_v1
*/
#define HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_FLAGS_SINCE_VERSION 1
/**
* @ingroup iface_hyprland_toplevel_export_frame_v1
*/
#define HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_READY_SINCE_VERSION 1
/**
* @ingroup iface_hyprland_toplevel_export_frame_v1
*/
#define HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_FAILED_SINCE_VERSION 1
/**
* @ingroup iface_hyprland_toplevel_export_frame_v1
*/
#define HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_LINUX_DMABUF_SINCE_VERSION 1
/**
* @ingroup iface_hyprland_toplevel_export_frame_v1
*/
#define HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_BUFFER_DONE_SINCE_VERSION 1
/**
* @ingroup iface_hyprland_toplevel_export_frame_v1
*/
#define HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_COPY_SINCE_VERSION 1
/**
* @ingroup iface_hyprland_toplevel_export_frame_v1
*/
#define HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_DESTROY_SINCE_VERSION 1
/** @ingroup iface_hyprland_toplevel_export_frame_v1 */
static inline void
hyprland_toplevel_export_frame_v1_set_user_data(struct hyprland_toplevel_export_frame_v1 *hyprland_toplevel_export_frame_v1, void *user_data)
{
wl_proxy_set_user_data((struct wl_proxy *) hyprland_toplevel_export_frame_v1, user_data);
}
/** @ingroup iface_hyprland_toplevel_export_frame_v1 */
static inline void *
hyprland_toplevel_export_frame_v1_get_user_data(struct hyprland_toplevel_export_frame_v1 *hyprland_toplevel_export_frame_v1)
{
return wl_proxy_get_user_data((struct wl_proxy *) hyprland_toplevel_export_frame_v1);
}
static inline uint32_t
hyprland_toplevel_export_frame_v1_get_version(struct hyprland_toplevel_export_frame_v1 *hyprland_toplevel_export_frame_v1)
{
return wl_proxy_get_version((struct wl_proxy *) hyprland_toplevel_export_frame_v1);
}
/**
* @ingroup iface_hyprland_toplevel_export_frame_v1
*
* Copy the frame to the supplied buffer. The buffer must have the
* correct size, see hyprland_toplevel_export_frame_v1.buffer and
* hyprland_toplevel_export_frame_v1.linux_dmabuf. The buffer needs to have a
* supported format.
*
* If the frame is successfully copied, a "flags" and a "ready" event is
* sent. Otherwise, a "failed" event is sent.
*
* This event will wait for appropriate damage to be copied, unless the ignore_damage
* arg is set to a non-zero value.
*/
static inline void
hyprland_toplevel_export_frame_v1_copy(struct hyprland_toplevel_export_frame_v1 *hyprland_toplevel_export_frame_v1, struct wl_buffer *buffer, int32_t ignore_damage)
{
wl_proxy_marshal_flags((struct wl_proxy *) hyprland_toplevel_export_frame_v1,
HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_COPY, NULL, wl_proxy_get_version((struct wl_proxy *) hyprland_toplevel_export_frame_v1), 0, buffer, ignore_damage);
}
/**
* @ingroup iface_hyprland_toplevel_export_frame_v1
*
* Destroys the frame. This request can be sent at any time by the client.
*/
static inline void
hyprland_toplevel_export_frame_v1_destroy(struct hyprland_toplevel_export_frame_v1 *hyprland_toplevel_export_frame_v1)
{
wl_proxy_marshal_flags((struct wl_proxy *) hyprland_toplevel_export_frame_v1,
HYPRLAND_TOPLEVEL_EXPORT_FRAME_V1_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) hyprland_toplevel_export_frame_v1), WL_MARSHAL_FLAG_DESTROY);
}
#ifdef __cplusplus
}
#endif
#endif

View File

@ -1,106 +0,0 @@
/* Generated by wayland-scanner 1.22.90 */
/*
* Copyright © 2018 Ilia Bozhinov
*
* Permission to use, copy, modify, distribute, and sell this
* software and its documentation for any purpose is hereby granted
* without fee, provided that the above copyright notice appear in
* all copies and that both that copyright notice and this permission
* notice appear in supporting documentation, and that the name of
* the copyright holders not be used in advertising or publicity
* pertaining to distribution of the software without specific,
* written prior permission. The copyright holders make no
* representations about the suitability of this software for any
* purpose. It is provided "as is" without express or implied
* warranty.
*
* THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
* SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
* AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
* THIS SOFTWARE.
*/
#include <stdlib.h>
#include <stdint.h>
#include "wayland-util.h"
#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 wl_seat_interface;
extern const struct wl_interface wl_surface_interface;
extern const struct wl_interface zwlr_foreign_toplevel_handle_v1_interface;
static const struct wl_interface *wlr_foreign_toplevel_management_unstable_v1_types[] = {
NULL,
&zwlr_foreign_toplevel_handle_v1_interface,
&wl_seat_interface,
&wl_surface_interface,
NULL,
NULL,
NULL,
NULL,
&wl_output_interface,
&wl_output_interface,
&wl_output_interface,
&zwlr_foreign_toplevel_handle_v1_interface,
};
static const struct wl_message zwlr_foreign_toplevel_manager_v1_requests[] = {
{ "stop", "", wlr_foreign_toplevel_management_unstable_v1_types + 0 },
};
static const struct wl_message zwlr_foreign_toplevel_manager_v1_events[] = {
{ "toplevel", "n", wlr_foreign_toplevel_management_unstable_v1_types + 1 },
{ "finished", "", wlr_foreign_toplevel_management_unstable_v1_types + 0 },
};
WL_PRIVATE const struct wl_interface zwlr_foreign_toplevel_manager_v1_interface = {
"zwlr_foreign_toplevel_manager_v1", 3,
1, zwlr_foreign_toplevel_manager_v1_requests,
2, zwlr_foreign_toplevel_manager_v1_events,
};
static const struct wl_message zwlr_foreign_toplevel_handle_v1_requests[] = {
{ "set_maximized", "", wlr_foreign_toplevel_management_unstable_v1_types + 0 },
{ "unset_maximized", "", wlr_foreign_toplevel_management_unstable_v1_types + 0 },
{ "set_minimized", "", wlr_foreign_toplevel_management_unstable_v1_types + 0 },
{ "unset_minimized", "", wlr_foreign_toplevel_management_unstable_v1_types + 0 },
{ "activate", "o", wlr_foreign_toplevel_management_unstable_v1_types + 2 },
{ "close", "", wlr_foreign_toplevel_management_unstable_v1_types + 0 },
{ "set_rectangle", "oiiii", wlr_foreign_toplevel_management_unstable_v1_types + 3 },
{ "destroy", "", wlr_foreign_toplevel_management_unstable_v1_types + 0 },
{ "set_fullscreen", "2?o", wlr_foreign_toplevel_management_unstable_v1_types + 8 },
{ "unset_fullscreen", "2", wlr_foreign_toplevel_management_unstable_v1_types + 0 },
};
static const struct wl_message zwlr_foreign_toplevel_handle_v1_events[] = {
{ "title", "s", wlr_foreign_toplevel_management_unstable_v1_types + 0 },
{ "app_id", "s", wlr_foreign_toplevel_management_unstable_v1_types + 0 },
{ "output_enter", "o", wlr_foreign_toplevel_management_unstable_v1_types + 9 },
{ "output_leave", "o", wlr_foreign_toplevel_management_unstable_v1_types + 10 },
{ "state", "a", wlr_foreign_toplevel_management_unstable_v1_types + 0 },
{ "done", "", wlr_foreign_toplevel_management_unstable_v1_types + 0 },
{ "closed", "", wlr_foreign_toplevel_management_unstable_v1_types + 0 },
{ "parent", "3?o", wlr_foreign_toplevel_management_unstable_v1_types + 11 },
};
WL_PRIVATE const struct wl_interface zwlr_foreign_toplevel_handle_v1_interface = {
"zwlr_foreign_toplevel_handle_v1", 3,
10, zwlr_foreign_toplevel_handle_v1_requests,
8, zwlr_foreign_toplevel_handle_v1_events,
};

View File

@ -1,615 +0,0 @@
/* Generated by wayland-scanner 1.22.90 */
#ifndef WLR_FOREIGN_TOPLEVEL_MANAGEMENT_UNSTABLE_V1_CLIENT_PROTOCOL_H
#define WLR_FOREIGN_TOPLEVEL_MANAGEMENT_UNSTABLE_V1_CLIENT_PROTOCOL_H
#include <stdint.h>
#include <stddef.h>
#include "wayland-client.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @page page_wlr_foreign_toplevel_management_unstable_v1 The wlr_foreign_toplevel_management_unstable_v1 protocol
* @section page_ifaces_wlr_foreign_toplevel_management_unstable_v1 Interfaces
* - @subpage page_iface_zwlr_foreign_toplevel_manager_v1 - list and control opened apps
* - @subpage page_iface_zwlr_foreign_toplevel_handle_v1 - an opened toplevel
* @section page_copyright_wlr_foreign_toplevel_management_unstable_v1 Copyright
* <pre>
*
* Copyright © 2018 Ilia Bozhinov
*
* Permission to use, copy, modify, distribute, and sell this
* software and its documentation for any purpose is hereby granted
* without fee, provided that the above copyright notice appear in
* all copies and that both that copyright notice and this permission
* notice appear in supporting documentation, and that the name of
* the copyright holders not be used in advertising or publicity
* pertaining to distribution of the software without specific,
* written prior permission. The copyright holders make no
* representations about the suitability of this software for any
* purpose. It is provided "as is" without express or implied
* warranty.
*
* THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
* SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
* AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
* THIS SOFTWARE.
* </pre>
*/
struct wl_output;
struct wl_seat;
struct wl_surface;
struct zwlr_foreign_toplevel_handle_v1;
struct zwlr_foreign_toplevel_manager_v1;
#ifndef ZWLR_FOREIGN_TOPLEVEL_MANAGER_V1_INTERFACE
#define ZWLR_FOREIGN_TOPLEVEL_MANAGER_V1_INTERFACE
/**
* @page page_iface_zwlr_foreign_toplevel_manager_v1 zwlr_foreign_toplevel_manager_v1
* @section page_iface_zwlr_foreign_toplevel_manager_v1_desc Description
*
* The purpose of this protocol is to enable the creation of taskbars
* and docks by providing them with a list of opened applications and
* letting them request certain actions on them, like maximizing, etc.
*
* After a client binds the zwlr_foreign_toplevel_manager_v1, each opened
* toplevel window will be sent via the toplevel event
* @section page_iface_zwlr_foreign_toplevel_manager_v1_api API
* See @ref iface_zwlr_foreign_toplevel_manager_v1.
*/
/**
* @defgroup iface_zwlr_foreign_toplevel_manager_v1 The zwlr_foreign_toplevel_manager_v1 interface
*
* The purpose of this protocol is to enable the creation of taskbars
* and docks by providing them with a list of opened applications and
* letting them request certain actions on them, like maximizing, etc.
*
* After a client binds the zwlr_foreign_toplevel_manager_v1, each opened
* toplevel window will be sent via the toplevel event
*/
extern const struct wl_interface zwlr_foreign_toplevel_manager_v1_interface;
#endif
#ifndef ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_INTERFACE
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_INTERFACE
/**
* @page page_iface_zwlr_foreign_toplevel_handle_v1 zwlr_foreign_toplevel_handle_v1
* @section page_iface_zwlr_foreign_toplevel_handle_v1_desc Description
*
* A zwlr_foreign_toplevel_handle_v1 object represents an opened toplevel
* window. Each app may have multiple opened toplevels.
*
* Each toplevel has a list of outputs it is visible on, conveyed to the
* client with the output_enter and output_leave events.
* @section page_iface_zwlr_foreign_toplevel_handle_v1_api API
* See @ref iface_zwlr_foreign_toplevel_handle_v1.
*/
/**
* @defgroup iface_zwlr_foreign_toplevel_handle_v1 The zwlr_foreign_toplevel_handle_v1 interface
*
* A zwlr_foreign_toplevel_handle_v1 object represents an opened toplevel
* window. Each app may have multiple opened toplevels.
*
* Each toplevel has a list of outputs it is visible on, conveyed to the
* client with the output_enter and output_leave events.
*/
extern const struct wl_interface zwlr_foreign_toplevel_handle_v1_interface;
#endif
/**
* @ingroup iface_zwlr_foreign_toplevel_manager_v1
* @struct zwlr_foreign_toplevel_manager_v1_listener
*/
struct zwlr_foreign_toplevel_manager_v1_listener {
/**
* a toplevel has been created
*
* This event is emitted whenever a new toplevel window is
* created. It is emitted for all toplevels, regardless of the app
* that has created them.
*
* All initial details of the toplevel(title, app_id, states, etc.)
* will be sent immediately after this event via the corresponding
* events in zwlr_foreign_toplevel_handle_v1.
*/
void (*toplevel)(void *data,
struct zwlr_foreign_toplevel_manager_v1 *zwlr_foreign_toplevel_manager_v1,
struct zwlr_foreign_toplevel_handle_v1 *toplevel);
/**
* the compositor has finished with the toplevel manager
*
* This event indicates that the compositor is done sending
* events to the zwlr_foreign_toplevel_manager_v1. The server will
* destroy the object immediately after sending this request, so it
* will become invalid and the client should free any resources
* associated with it.
*/
void (*finished)(void *data,
struct zwlr_foreign_toplevel_manager_v1 *zwlr_foreign_toplevel_manager_v1);
};
/**
* @ingroup iface_zwlr_foreign_toplevel_manager_v1
*/
static inline int
zwlr_foreign_toplevel_manager_v1_add_listener(struct zwlr_foreign_toplevel_manager_v1 *zwlr_foreign_toplevel_manager_v1,
const struct zwlr_foreign_toplevel_manager_v1_listener *listener, void *data)
{
return wl_proxy_add_listener((struct wl_proxy *) zwlr_foreign_toplevel_manager_v1,
(void (**)(void)) listener, data);
}
#define ZWLR_FOREIGN_TOPLEVEL_MANAGER_V1_STOP 0
/**
* @ingroup iface_zwlr_foreign_toplevel_manager_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_MANAGER_V1_TOPLEVEL_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_foreign_toplevel_manager_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_MANAGER_V1_FINISHED_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_foreign_toplevel_manager_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_MANAGER_V1_STOP_SINCE_VERSION 1
/** @ingroup iface_zwlr_foreign_toplevel_manager_v1 */
static inline void
zwlr_foreign_toplevel_manager_v1_set_user_data(struct zwlr_foreign_toplevel_manager_v1 *zwlr_foreign_toplevel_manager_v1, void *user_data)
{
wl_proxy_set_user_data((struct wl_proxy *) zwlr_foreign_toplevel_manager_v1, user_data);
}
/** @ingroup iface_zwlr_foreign_toplevel_manager_v1 */
static inline void *
zwlr_foreign_toplevel_manager_v1_get_user_data(struct zwlr_foreign_toplevel_manager_v1 *zwlr_foreign_toplevel_manager_v1)
{
return wl_proxy_get_user_data((struct wl_proxy *) zwlr_foreign_toplevel_manager_v1);
}
static inline uint32_t
zwlr_foreign_toplevel_manager_v1_get_version(struct zwlr_foreign_toplevel_manager_v1 *zwlr_foreign_toplevel_manager_v1)
{
return wl_proxy_get_version((struct wl_proxy *) zwlr_foreign_toplevel_manager_v1);
}
/** @ingroup iface_zwlr_foreign_toplevel_manager_v1 */
static inline void
zwlr_foreign_toplevel_manager_v1_destroy(struct zwlr_foreign_toplevel_manager_v1 *zwlr_foreign_toplevel_manager_v1)
{
wl_proxy_destroy((struct wl_proxy *) zwlr_foreign_toplevel_manager_v1);
}
/**
* @ingroup iface_zwlr_foreign_toplevel_manager_v1
*
* Indicates the client no longer wishes to receive events for new toplevels.
* However the compositor may emit further toplevel_created events, until
* the finished event is emitted.
*
* The client must not send any more requests after this one.
*/
static inline void
zwlr_foreign_toplevel_manager_v1_stop(struct zwlr_foreign_toplevel_manager_v1 *zwlr_foreign_toplevel_manager_v1)
{
wl_proxy_marshal_flags((struct wl_proxy *) zwlr_foreign_toplevel_manager_v1,
ZWLR_FOREIGN_TOPLEVEL_MANAGER_V1_STOP, NULL, wl_proxy_get_version((struct wl_proxy *) zwlr_foreign_toplevel_manager_v1), 0);
}
#ifndef ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_STATE_ENUM
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_STATE_ENUM
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
* types of states on the toplevel
*
* The different states that a toplevel can have. These have the same meaning
* as the states with the same names defined in xdg-toplevel
*/
enum zwlr_foreign_toplevel_handle_v1_state {
/**
* the toplevel is maximized
*/
ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_STATE_MAXIMIZED = 0,
/**
* the toplevel is minimized
*/
ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_STATE_MINIMIZED = 1,
/**
* the toplevel is active
*/
ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_STATE_ACTIVATED = 2,
/**
* the toplevel is fullscreen
* @since 2
*/
ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_STATE_FULLSCREEN = 3,
};
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_STATE_FULLSCREEN_SINCE_VERSION 2
#endif /* ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_STATE_ENUM */
#ifndef ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_ERROR_ENUM
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_ERROR_ENUM
enum zwlr_foreign_toplevel_handle_v1_error {
/**
* the provided rectangle is invalid
*/
ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_ERROR_INVALID_RECTANGLE = 0,
};
#endif /* ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_ERROR_ENUM */
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
* @struct zwlr_foreign_toplevel_handle_v1_listener
*/
struct zwlr_foreign_toplevel_handle_v1_listener {
/**
* title change
*
* This event is emitted whenever the title of the toplevel
* changes.
*/
void (*title)(void *data,
struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1,
const char *title);
/**
* app-id change
*
* This event is emitted whenever the app-id of the toplevel
* changes.
*/
void (*app_id)(void *data,
struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1,
const char *app_id);
/**
* toplevel entered an output
*
* This event is emitted whenever the toplevel becomes visible on
* the given output. A toplevel may be visible on multiple outputs.
*/
void (*output_enter)(void *data,
struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1,
struct wl_output *output);
/**
* toplevel left an output
*
* This event is emitted whenever the toplevel stops being
* visible on the given output. It is guaranteed that an
* entered-output event with the same output has been emitted
* before this event.
*/
void (*output_leave)(void *data,
struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1,
struct wl_output *output);
/**
* the toplevel state changed
*
* This event is emitted immediately after the
* zlw_foreign_toplevel_handle_v1 is created and each time the
* toplevel state changes, either because of a compositor action or
* because of a request in this protocol.
*/
void (*state)(void *data,
struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1,
struct wl_array *state);
/**
* all information about the toplevel has been sent
*
* This event is sent after all changes in the toplevel state
* have been sent.
*
* This allows changes to the zwlr_foreign_toplevel_handle_v1
* properties to be seen as atomic, even if they happen via
* multiple events.
*/
void (*done)(void *data,
struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1);
/**
* this toplevel has been destroyed
*
* This event means the toplevel has been destroyed. It is
* guaranteed there won't be any more events for this
* zwlr_foreign_toplevel_handle_v1. The toplevel itself becomes
* inert so any requests will be ignored except the destroy
* request.
*/
void (*closed)(void *data,
struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1);
/**
* parent change
*
* This event is emitted whenever the parent of the toplevel
* changes.
*
* No event is emitted when the parent handle is destroyed by the
* client.
* @since 3
*/
void (*parent)(void *data,
struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1,
struct zwlr_foreign_toplevel_handle_v1 *parent);
};
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*/
static inline int
zwlr_foreign_toplevel_handle_v1_add_listener(struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1,
const struct zwlr_foreign_toplevel_handle_v1_listener *listener, void *data)
{
return wl_proxy_add_listener((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1,
(void (**)(void)) listener, data);
}
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_SET_MAXIMIZED 0
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_UNSET_MAXIMIZED 1
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_SET_MINIMIZED 2
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_UNSET_MINIMIZED 3
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_ACTIVATE 4
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_CLOSE 5
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_SET_RECTANGLE 6
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_DESTROY 7
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_SET_FULLSCREEN 8
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_UNSET_FULLSCREEN 9
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_TITLE_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_APP_ID_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_OUTPUT_ENTER_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_OUTPUT_LEAVE_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_STATE_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_DONE_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_CLOSED_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_PARENT_SINCE_VERSION 3
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_SET_MAXIMIZED_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_UNSET_MAXIMIZED_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_SET_MINIMIZED_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_UNSET_MINIMIZED_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_ACTIVATE_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_CLOSE_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_SET_RECTANGLE_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_DESTROY_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_SET_FULLSCREEN_SINCE_VERSION 2
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*/
#define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_UNSET_FULLSCREEN_SINCE_VERSION 2
/** @ingroup iface_zwlr_foreign_toplevel_handle_v1 */
static inline void
zwlr_foreign_toplevel_handle_v1_set_user_data(struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1, void *user_data)
{
wl_proxy_set_user_data((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1, user_data);
}
/** @ingroup iface_zwlr_foreign_toplevel_handle_v1 */
static inline void *
zwlr_foreign_toplevel_handle_v1_get_user_data(struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1)
{
return wl_proxy_get_user_data((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1);
}
static inline uint32_t
zwlr_foreign_toplevel_handle_v1_get_version(struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1)
{
return wl_proxy_get_version((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1);
}
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*
* Requests that the toplevel be maximized. If the maximized state actually
* changes, this will be indicated by the state event.
*/
static inline void
zwlr_foreign_toplevel_handle_v1_set_maximized(struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1)
{
wl_proxy_marshal_flags((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1,
ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_SET_MAXIMIZED, NULL, wl_proxy_get_version((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1), 0);
}
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*
* Requests that the toplevel be unmaximized. If the maximized state actually
* changes, this will be indicated by the state event.
*/
static inline void
zwlr_foreign_toplevel_handle_v1_unset_maximized(struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1)
{
wl_proxy_marshal_flags((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1,
ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_UNSET_MAXIMIZED, NULL, wl_proxy_get_version((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1), 0);
}
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*
* Requests that the toplevel be minimized. If the minimized state actually
* changes, this will be indicated by the state event.
*/
static inline void
zwlr_foreign_toplevel_handle_v1_set_minimized(struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1)
{
wl_proxy_marshal_flags((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1,
ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_SET_MINIMIZED, NULL, wl_proxy_get_version((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1), 0);
}
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*
* Requests that the toplevel be unminimized. If the minimized state actually
* changes, this will be indicated by the state event.
*/
static inline void
zwlr_foreign_toplevel_handle_v1_unset_minimized(struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1)
{
wl_proxy_marshal_flags((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1,
ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_UNSET_MINIMIZED, NULL, wl_proxy_get_version((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1), 0);
}
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*
* Request that this toplevel be activated on the given seat.
* There is no guarantee the toplevel will be actually activated.
*/
static inline void
zwlr_foreign_toplevel_handle_v1_activate(struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1, struct wl_seat *seat)
{
wl_proxy_marshal_flags((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1,
ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_ACTIVATE, NULL, wl_proxy_get_version((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1), 0, seat);
}
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*
* Send a request to the toplevel to close itself. The compositor would
* typically use a shell-specific method to carry out this request, for
* example by sending the xdg_toplevel.close event. However, this gives
* no guarantees the toplevel will actually be destroyed. If and when
* this happens, the zwlr_foreign_toplevel_handle_v1.closed event will
* be emitted.
*/
static inline void
zwlr_foreign_toplevel_handle_v1_close(struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1)
{
wl_proxy_marshal_flags((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1,
ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_CLOSE, NULL, wl_proxy_get_version((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1), 0);
}
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*
* The rectangle of the surface specified in this request corresponds to
* the place where the app using this protocol represents the given toplevel.
* It can be used by the compositor as a hint for some operations, e.g
* minimizing. The client is however not required to set this, in which
* case the compositor is free to decide some default value.
*
* If the client specifies more than one rectangle, only the last one is
* considered.
*
* The dimensions are given in surface-local coordinates.
* Setting width=height=0 removes the already-set rectangle.
*/
static inline void
zwlr_foreign_toplevel_handle_v1_set_rectangle(struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1, struct wl_surface *surface, int32_t x, int32_t y, int32_t width, int32_t height)
{
wl_proxy_marshal_flags((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1,
ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_SET_RECTANGLE, NULL, wl_proxy_get_version((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1), 0, surface, x, y, width, height);
}
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*
* Destroys the zwlr_foreign_toplevel_handle_v1 object.
*
* This request should be called either when the client does not want to
* use the toplevel anymore or after the closed event to finalize the
* destruction of the object.
*/
static inline void
zwlr_foreign_toplevel_handle_v1_destroy(struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1)
{
wl_proxy_marshal_flags((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1,
ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1), WL_MARSHAL_FLAG_DESTROY);
}
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*
* Requests that the toplevel be fullscreened on the given output. If the
* fullscreen state and/or the outputs the toplevel is visible on actually
* change, this will be indicated by the state and output_enter/leave
* events.
*
* The output parameter is only a hint to the compositor. Also, if output
* is NULL, the compositor should decide which output the toplevel will be
* fullscreened on, if at all.
*/
static inline void
zwlr_foreign_toplevel_handle_v1_set_fullscreen(struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1, struct wl_output *output)
{
wl_proxy_marshal_flags((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1,
ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_SET_FULLSCREEN, NULL, wl_proxy_get_version((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1), 0, output);
}
/**
* @ingroup iface_zwlr_foreign_toplevel_handle_v1
*
* Requests that the toplevel be unfullscreened. If the fullscreen state
* actually changes, this will be indicated by the state event.
*/
static inline void
zwlr_foreign_toplevel_handle_v1_unset_fullscreen(struct zwlr_foreign_toplevel_handle_v1 *zwlr_foreign_toplevel_handle_v1)
{
wl_proxy_marshal_flags((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1,
ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_UNSET_FULLSCREEN, NULL, wl_proxy_get_version((struct wl_proxy *) zwlr_foreign_toplevel_handle_v1), 0);
}
#ifdef __cplusplus
}
#endif
#endif

View File

@ -1,97 +0,0 @@
/* Generated by wayland-scanner 1.22.90 */
/*
* Copyright © 2018 Simon Ser
* Copyright © 2019 Andri Yngvason
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
#include <stdlib.h>
#include <stdint.h>
#include "wayland-util.h"
#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[] = {
NULL,
NULL,
NULL,
NULL,
&zwlr_screencopy_frame_v1_interface,
NULL,
&wl_output_interface,
&zwlr_screencopy_frame_v1_interface,
NULL,
&wl_output_interface,
NULL,
NULL,
NULL,
NULL,
&wl_buffer_interface,
&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", 3,
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 },
{ "copy_with_damage", "2o", wlr_screencopy_unstable_v1_types + 15 },
};
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 },
{ "damage", "2uuuu", wlr_screencopy_unstable_v1_types + 0 },
{ "linux_dmabuf", "3uuu", wlr_screencopy_unstable_v1_types + 0 },
{ "buffer_done", "3", wlr_screencopy_unstable_v1_types + 0 },
};
WL_PRIVATE const struct wl_interface zwlr_screencopy_frame_v1_interface = {
"zwlr_screencopy_frame_v1", 3,
3, zwlr_screencopy_frame_v1_requests,
7, zwlr_screencopy_frame_v1_events,
};

View File

@ -1,491 +0,0 @@
/* Generated by wayland-scanner 1.22.90 */
#ifndef WLR_SCREENCOPY_UNSTABLE_V1_CLIENT_PROTOCOL_H
#define WLR_SCREENCOPY_UNSTABLE_V1_CLIENT_PROTOCOL_H
#include <stdint.h>
#include <stddef.h>
#include "wayland-client.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @page page_wlr_screencopy_unstable_v1 The wlr_screencopy_unstable_v1 protocol
* screen content capturing on client buffers
*
* @section page_desc_wlr_screencopy_unstable_v1 Description
*
* This protocol allows clients to ask the compositor to copy part of the
* screen content to a client buffer.
*
* Warning! The protocol described in this file is experimental and
* backward incompatible changes may be made. Backward compatible changes
* may be added together with the corresponding interface version bump.
* Backward incompatible changes are done by bumping the version number in
* the protocol and interface names and resetting the interface version.
* Once the protocol is to be declared stable, the 'z' prefix and the
* version number in the protocol and interface names are removed and the
* interface version number is reset.
*
* @section page_ifaces_wlr_screencopy_unstable_v1 Interfaces
* - @subpage page_iface_zwlr_screencopy_manager_v1 - manager to inform clients and begin capturing
* - @subpage page_iface_zwlr_screencopy_frame_v1 - a frame ready for copy
* @section page_copyright_wlr_screencopy_unstable_v1 Copyright
* <pre>
*
* Copyright © 2018 Simon Ser
* Copyright © 2019 Andri Yngvason
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
* </pre>
*/
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
/**
* @page page_iface_zwlr_screencopy_manager_v1 zwlr_screencopy_manager_v1
* @section page_iface_zwlr_screencopy_manager_v1_desc Description
*
* This object is a manager which offers requests to start capturing from a
* source.
* @section page_iface_zwlr_screencopy_manager_v1_api API
* See @ref iface_zwlr_screencopy_manager_v1.
*/
/**
* @defgroup iface_zwlr_screencopy_manager_v1 The zwlr_screencopy_manager_v1 interface
*
* This object is a manager which offers requests to start capturing from a
* source.
*/
extern const struct wl_interface zwlr_screencopy_manager_v1_interface;
#endif
#ifndef ZWLR_SCREENCOPY_FRAME_V1_INTERFACE
#define ZWLR_SCREENCOPY_FRAME_V1_INTERFACE
/**
* @page page_iface_zwlr_screencopy_frame_v1 zwlr_screencopy_frame_v1
* @section page_iface_zwlr_screencopy_frame_v1_desc Description
*
* This object represents a single frame.
*
* When created, a series of buffer events will be sent, each representing a
* supported buffer type. The "buffer_done" event is sent afterwards to
* indicate that all supported buffer types have been enumerated. The client
* will then be able to send a "copy" request. If the capture is successful,
* the compositor will send a "flags" followed by a "ready" event.
*
* For objects version 2 or lower, wl_shm buffers are always supported, ie.
* the "buffer" event is guaranteed to be sent.
*
* If the capture failed, the "failed" event is sent. This can happen anytime
* before the "ready" event.
*
* Once either a "ready" or a "failed" event is received, the client should
* destroy the frame.
* @section page_iface_zwlr_screencopy_frame_v1_api API
* See @ref iface_zwlr_screencopy_frame_v1.
*/
/**
* @defgroup iface_zwlr_screencopy_frame_v1 The zwlr_screencopy_frame_v1 interface
*
* This object represents a single frame.
*
* When created, a series of buffer events will be sent, each representing a
* supported buffer type. The "buffer_done" event is sent afterwards to
* indicate that all supported buffer types have been enumerated. The client
* will then be able to send a "copy" request. If the capture is successful,
* the compositor will send a "flags" followed by a "ready" event.
*
* For objects version 2 or lower, wl_shm buffers are always supported, ie.
* the "buffer" event is guaranteed to be sent.
*
* If the capture failed, the "failed" event is sent. This can happen anytime
* before the "ready" event.
*
* Once either a "ready" or a "failed" event is received, the client should
* destroy the frame.
*/
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
/**
* @ingroup iface_zwlr_screencopy_manager_v1
*/
#define ZWLR_SCREENCOPY_MANAGER_V1_CAPTURE_OUTPUT_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_screencopy_manager_v1
*/
#define ZWLR_SCREENCOPY_MANAGER_V1_CAPTURE_OUTPUT_REGION_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_screencopy_manager_v1
*/
#define ZWLR_SCREENCOPY_MANAGER_V1_DESTROY_SINCE_VERSION 1
/** @ingroup iface_zwlr_screencopy_manager_v1 */
static inline 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);
}
/** @ingroup iface_zwlr_screencopy_manager_v1 */
static inline 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 inline uint32_t
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);
}
/**
* @ingroup iface_zwlr_screencopy_manager_v1
*
* Capture the next frame of an entire output.
*/
static inline struct zwlr_screencopy_frame_v1 *
zwlr_screencopy_manager_v1_capture_output(struct zwlr_screencopy_manager_v1 *zwlr_screencopy_manager_v1, int32_t 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;
}
/**
* @ingroup iface_zwlr_screencopy_manager_v1
*
* Capture the next frame of an output's region.
*
* The region is given in output logical coordinates, see
* xdg_output.logical_size. The region will be clipped to the output's
* extents.
*/
static inline struct zwlr_screencopy_frame_v1 *
zwlr_screencopy_manager_v1_capture_output_region(struct zwlr_screencopy_manager_v1 *zwlr_screencopy_manager_v1, int32_t overlay_cursor, struct wl_output *output, int32_t x, int32_t y, int32_t width, int32_t 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;
}
/**
* @ingroup iface_zwlr_screencopy_manager_v1
*
* All objects created by the manager will still remain valid, until their
* appropriate destroy request has been called.
*/
static inline 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 {
/**
* the object has already been used to copy a wl_buffer
*/
ZWLR_SCREENCOPY_FRAME_V1_ERROR_ALREADY_USED = 0,
/**
* buffer attributes are invalid
*/
ZWLR_SCREENCOPY_FRAME_V1_ERROR_INVALID_BUFFER = 1,
};
#endif /* ZWLR_SCREENCOPY_FRAME_V1_ERROR_ENUM */
#ifndef ZWLR_SCREENCOPY_FRAME_V1_FLAGS_ENUM
#define ZWLR_SCREENCOPY_FRAME_V1_FLAGS_ENUM
enum zwlr_screencopy_frame_v1_flags {
/**
* contents are y-inverted
*/
ZWLR_SCREENCOPY_FRAME_V1_FLAGS_Y_INVERT = 1,
};
#endif /* ZWLR_SCREENCOPY_FRAME_V1_FLAGS_ENUM */
/**
* @ingroup iface_zwlr_screencopy_frame_v1
* @struct zwlr_screencopy_frame_v1_listener
*/
struct zwlr_screencopy_frame_v1_listener {
/**
* wl_shm buffer information
*
* Provides information about wl_shm buffer parameters that need
* to be used for this frame. This event is sent once after the
* frame is created if wl_shm buffers are supported.
* @param format buffer format
* @param width buffer width
* @param height buffer height
* @param stride buffer stride
*/
void (*buffer)(void *data,
struct zwlr_screencopy_frame_v1 *zwlr_screencopy_frame_v1,
uint32_t format,
uint32_t width,
uint32_t height,
uint32_t stride);
/**
* frame flags
*
* Provides flags about the frame. This event is sent once before
* the "ready" event.
* @param flags frame flags
*/
void (*flags)(void *data,
struct zwlr_screencopy_frame_v1 *zwlr_screencopy_frame_v1,
uint32_t flags);
/**
* indicates frame is available for reading
*
* Called as soon as the frame is copied, indicating it is
* available for reading. This event includes the time at which
* presentation happened at.
*
* The timestamp is expressed as tv_sec_hi, tv_sec_lo, tv_nsec
* triples, each component being an unsigned 32-bit value. Whole
* seconds are in tv_sec which is a 64-bit value combined from
* tv_sec_hi and tv_sec_lo, and the additional fractional part in
* tv_nsec as nanoseconds. Hence, for valid timestamps tv_nsec must
* be in [0, 999999999]. The seconds part may have an arbitrary
* offset at start.
*
* After receiving this event, the client should destroy the
* object.
* @param tv_sec_hi high 32 bits of the seconds part of the timestamp
* @param tv_sec_lo low 32 bits of the seconds part of the timestamp
* @param tv_nsec nanoseconds part of the timestamp
*/
void (*ready)(void *data,
struct zwlr_screencopy_frame_v1 *zwlr_screencopy_frame_v1,
uint32_t tv_sec_hi,
uint32_t tv_sec_lo,
uint32_t tv_nsec);
/**
* frame copy failed
*
* This event indicates that the attempted frame copy has failed.
*
* After receiving this event, the client should destroy the
* object.
*/
void (*failed)(void *data,
struct zwlr_screencopy_frame_v1 *zwlr_screencopy_frame_v1);
/**
* carries the coordinates of the damaged region
*
* This event is sent right before the ready event when
* copy_with_damage is requested. It may be generated multiple
* times for each copy_with_damage request.
*
* The arguments describe a box around an area that has changed
* since the last copy request that was derived from the current
* screencopy manager instance.
*
* The union of all regions received between the call to
* copy_with_damage and a ready event is the total damage since the
* prior ready event.
* @param x damaged x coordinates
* @param y damaged y coordinates
* @param width current width
* @param height current height
* @since 2
*/
void (*damage)(void *data,
struct zwlr_screencopy_frame_v1 *zwlr_screencopy_frame_v1,
uint32_t x,
uint32_t y,
uint32_t width,
uint32_t height);
/**
* linux-dmabuf buffer information
*
* Provides information about linux-dmabuf buffer parameters that
* need to be used for this frame. This event is sent once after
* the frame is created if linux-dmabuf buffers are supported.
* @param format fourcc pixel format
* @param width buffer width
* @param height buffer height
* @since 3
*/
void (*linux_dmabuf)(void *data,
struct zwlr_screencopy_frame_v1 *zwlr_screencopy_frame_v1,
uint32_t format,
uint32_t width,
uint32_t height);
/**
* all buffer types reported
*
* This event is sent once after all buffer events have been
* sent.
*
* The client should proceed to create a buffer of one of the
* supported types, and send a "copy" request.
* @since 3
*/
void (*buffer_done)(void *data,
struct zwlr_screencopy_frame_v1 *zwlr_screencopy_frame_v1);
};
/**
* @ingroup iface_zwlr_screencopy_frame_v1
*/
static inline 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_COPY_WITH_DAMAGE 2
/**
* @ingroup iface_zwlr_screencopy_frame_v1
*/
#define ZWLR_SCREENCOPY_FRAME_V1_BUFFER_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_screencopy_frame_v1
*/
#define ZWLR_SCREENCOPY_FRAME_V1_FLAGS_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_screencopy_frame_v1
*/
#define ZWLR_SCREENCOPY_FRAME_V1_READY_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_screencopy_frame_v1
*/
#define ZWLR_SCREENCOPY_FRAME_V1_FAILED_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_screencopy_frame_v1
*/
#define ZWLR_SCREENCOPY_FRAME_V1_DAMAGE_SINCE_VERSION 2
/**
* @ingroup iface_zwlr_screencopy_frame_v1
*/
#define ZWLR_SCREENCOPY_FRAME_V1_LINUX_DMABUF_SINCE_VERSION 3
/**
* @ingroup iface_zwlr_screencopy_frame_v1
*/
#define ZWLR_SCREENCOPY_FRAME_V1_BUFFER_DONE_SINCE_VERSION 3
/**
* @ingroup iface_zwlr_screencopy_frame_v1
*/
#define ZWLR_SCREENCOPY_FRAME_V1_COPY_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_screencopy_frame_v1
*/
#define ZWLR_SCREENCOPY_FRAME_V1_DESTROY_SINCE_VERSION 1
/**
* @ingroup iface_zwlr_screencopy_frame_v1
*/
#define ZWLR_SCREENCOPY_FRAME_V1_COPY_WITH_DAMAGE_SINCE_VERSION 2
/** @ingroup iface_zwlr_screencopy_frame_v1 */
static inline 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);
}
/** @ingroup iface_zwlr_screencopy_frame_v1 */
static inline 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 inline uint32_t
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);
}
/**
* @ingroup iface_zwlr_screencopy_frame_v1
*
* Copy the frame to the supplied buffer. The buffer must have a the
* correct size, see zwlr_screencopy_frame_v1.buffer and
* zwlr_screencopy_frame_v1.linux_dmabuf. The buffer needs to have a
* supported format.
*
* If the frame is successfully copied, a "flags" and a "ready" events are
* sent. Otherwise, a "failed" event is sent.
*/
static inline 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);
}
/**
* @ingroup iface_zwlr_screencopy_frame_v1
*
* Destroys the frame. This request can be sent at any time by the client.
*/
static inline 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);
}
/**
* @ingroup iface_zwlr_screencopy_frame_v1
*
* Same as copy, except it waits until there is damage to copy.
*/
static inline void
zwlr_screencopy_frame_v1_copy_with_damage(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_WITH_DAMAGE, NULL, wl_proxy_get_version((struct wl_proxy *) zwlr_screencopy_frame_v1), 0, buffer);
}
#ifdef __cplusplus
}
#endif
#endif