mirror of
https://github.com/hyprwm/xdg-desktop-portal-hyprland.git
synced 2024-11-25 23:45:58 +01:00
66db43ea0e
The enum xdpw_frame_state is used to track the state of the xdpw_frame through the screencopy callbacks. xdpw_wlr_stream_finish is used as the new endpoint of the screencopy callbacks. Here we clean up the screencopy_frame, enqueue the pipewire buffer and restart the screencopy loop if needed.
31 lines
978 B
C
31 lines
978 B
C
#ifndef WLR_SCREENCAST_H
|
|
#define WLR_SCREENCAST_H
|
|
|
|
#include "screencast_common.h"
|
|
|
|
#define WL_OUTPUT_VERSION 1
|
|
|
|
#define SC_MANAGER_VERSION 3
|
|
#define SC_MANAGER_VERSION_MIN 2
|
|
|
|
#define WL_SHM_VERSION 1
|
|
|
|
#define XDG_OUTPUT_MANAGER_VERSION 3
|
|
|
|
struct xdpw_state;
|
|
|
|
int xdpw_wlr_screencopy_init(struct xdpw_state *state);
|
|
void xdpw_wlr_screencopy_finish(struct xdpw_screencast_context *ctx);
|
|
|
|
struct xdpw_wlr_output *xdpw_wlr_output_find_by_name(struct wl_list *output_list,
|
|
const char *name);
|
|
struct xdpw_wlr_output *xdpw_wlr_output_first(struct wl_list *output_list);
|
|
struct xdpw_wlr_output *xdpw_wlr_output_find(struct xdpw_screencast_context *ctx,
|
|
struct wl_output *out, uint32_t id);
|
|
struct xdpw_wlr_output *xdpw_wlr_output_chooser(struct xdpw_screencast_context *ctx);
|
|
|
|
void xdpw_wlr_frame_finish(struct xdpw_screencast_instance *cast);
|
|
void xdpw_wlr_frame_start(struct xdpw_screencast_instance *cast);
|
|
void xdpw_wlr_register_cb(struct xdpw_screencast_instance *cast);
|
|
|
|
#endif
|