summaryrefslogtreecommitdiffstats
path: root/video/out/wayland_common.h
diff options
context:
space:
mode:
authorDudemanguy <random342@airmail.cc>2021-06-26 16:12:03 -0500
committerDudemanguy <random342@airmail.cc>2021-06-26 17:24:44 -0500
commit488581912d01a982f226162eef19ad8aec0c8ead (patch)
tree3b5aa34fe9afa52b9573b10c5f20448952712b73 /video/out/wayland_common.h
parent76a53f9de3592c435def1d020fab4a05f88a14e0 (diff)
downloadmpv-488581912d01a982f226162eef19ad8aec0c8ead.tar.bz2
mpv-488581912d01a982f226162eef19ad8aec0c8ead.tar.xz
wayland: reorganize wayland common code
Mostly a cosmetic change that (hopefully) makes things look better. Some functions and structs that were previously being exported in the wayland header were made static to the wayland_common.c file (these shouldn't be accessed by anyone else).
Diffstat (limited to 'video/out/wayland_common.h')
-rw-r--r--video/out/wayland_common.h131
1 files changed, 54 insertions, 77 deletions
diff --git a/video/out/wayland_common.h b/video/out/wayland_common.h
index bbdfdf82d2..f6075ae4cf 100644
--- a/video/out/wayland_common.h
+++ b/video/out/wayland_common.h
@@ -19,11 +19,8 @@
#define MPLAYER_WAYLAND_COMMON_H
#include <wayland-client.h>
-#include <wayland-cursor.h>
-#include <xkbcommon/xkbcommon.h>
-
-#include "vo.h"
#include "input/event.h"
+#include "vo.h"
struct wayland_opts {
int disable_vsync;
@@ -31,85 +28,66 @@ struct wayland_opts {
int edge_pixels_touch;
};
-struct vo_wayland_sync {
- int64_t ust;
- int64_t msc;
- int64_t sbc;
- bool filled;
-};
-
-struct vo_wayland_output {
- struct vo_wayland_state *wl;
- uint32_t id;
- struct wl_output *output;
- struct mp_rect geometry;
- int phys_width;
- int phys_height;
- int scale;
- uint32_t flags;
- double refresh_rate;
- char *make;
- char *model;
- bool has_surface;
- struct wl_list link;
-};
-
struct vo_wayland_state {
- struct mp_log *log;
- struct vo *vo;
- struct wl_display *display;
- struct wl_shm *shm;
- struct wl_compositor *compositor;
- struct wl_registry *registry;
- struct wayland_opts *opts;
-
struct m_config_cache *vo_opts_cache;
- struct mp_vo_opts *vo_opts;
-
- /* State */
+ struct mp_log *log;
+ struct mp_vo_opts *vo_opts;
+ struct vo *vo;
+ struct wayland_opts *opts;
+ struct wl_callback *frame_callback;
+ struct wl_compositor *compositor;
+ struct wl_display *display;
+ struct wl_registry *registry;
+ struct wl_shm *shm;
+ struct wl_surface *surface;
+
+ /* Geometry */
struct mp_rect geometry;
- struct mp_rect window_size;
struct mp_rect vdparams;
+ struct mp_rect window_size;
+ struct wl_list output_list;
+ struct vo_wayland_output *current_output;
int gcd;
- int reduced_width;
int reduced_height;
+ int reduced_width;
+ int toplevel_width;
+ int toplevel_height;
+
+ /* State */
+ bool activated;
+ bool has_keyboard_input;
+ bool focused;
bool frame_wait;
bool render;
bool state_change;
bool toplevel_configured;
- bool activated;
- bool has_keyboard_input;
- bool focused;
- int timeout_count;
- int wakeup_pipe[2];
- int pending_vo_events;
- int mouse_x;
- int mouse_y;
+ int display_fd;
int mouse_unscaled_x;
int mouse_unscaled_y;
+ int mouse_x;
+ int mouse_y;
+ int pending_vo_events;
int scaling;
+ int timeout_count;
int touch_entries;
- int toplevel_width;
- int toplevel_height;
- uint32_t pointer_id;
- int display_fd;
- struct wl_callback *frame_callback;
- struct wl_list output_list;
- struct vo_wayland_output *current_output;
+ int wakeup_pipe[2];
+
+ /* idle-inhibit */
+ struct zwp_idle_inhibit_manager_v1 *idle_inhibit_manager;
+ struct zwp_idle_inhibitor_v1 *idle_inhibitor;
+
+ /* xdg-decoration */
+ struct zxdg_decoration_manager_v1 *xdg_decoration_manager;
+ struct zxdg_toplevel_decoration_v1 *xdg_toplevel_decoration;
- /* Shell */
- struct wl_surface *surface;
+ /* xdg-shell */
struct xdg_wm_base *wm_base;
- struct xdg_toplevel *xdg_toplevel;
struct xdg_surface *xdg_surface;
+ struct xdg_toplevel *xdg_toplevel;
+
+ /* presentation-time */
struct wp_presentation *presentation;
struct wp_presentation_feedback *feedback;
- struct zxdg_decoration_manager_v1 *xdg_decoration_manager;
- struct zxdg_toplevel_decoration_v1 *xdg_toplevel_decoration;
- struct zwp_idle_inhibit_manager_v1 *idle_inhibit_manager;
- struct zwp_idle_inhibitor_v1 *idle_inhibitor;
-
- /* Presentation Feedback */
struct vo_wayland_sync *sync;
int sync_size;
int64_t last_ust;
@@ -120,43 +98,42 @@ struct vo_wayland_state {
int64_t vsync_duration;
/* Input */
- uint32_t keyboard_code;
- struct wl_seat *seat;
+ struct wl_keyboard *keyboard;
struct wl_pointer *pointer;
+ struct wl_seat *seat;
struct wl_touch *touch;
- struct wl_keyboard *keyboard;
struct xkb_context *xkb_context;
struct xkb_keymap *xkb_keymap;
struct xkb_state *xkb_state;
+ uint32_t keyboard_code;
/* DND */
- struct wl_data_device_manager *dnd_devman;
struct wl_data_device *dnd_ddev;
+ struct wl_data_device_manager *dnd_devman;
struct wl_data_offer *dnd_offer;
enum mp_dnd_action dnd_action;
char *dnd_mime_type;
- int dnd_mime_score;
int dnd_fd;
+ int dnd_mime_score;
/* Cursor */
struct wl_cursor_theme *cursor_theme;
struct wl_cursor *default_cursor;
struct wl_surface *cursor_surface;
- int allocated_cursor_scale;
bool cursor_visible;
+ int allocated_cursor_scale;
+ uint32_t pointer_id;
};
+int vo_wayland_control(struct vo *vo, int *events, int request, void *arg);
int vo_wayland_init(struct vo *vo);
int vo_wayland_reconfig(struct vo *vo);
-int vo_wayland_control(struct vo *vo, int *events, int request, void *arg);
-int last_available_sync(struct vo_wayland_state *wl);
+
+void vo_wayland_set_opaque_region(struct vo_wayland_state *wl, int alpha);
+void vo_wayland_sync_swap(struct vo_wayland_state *wl);
void vo_wayland_uninit(struct vo *vo);
-void vo_wayland_wakeup(struct vo *vo);
void vo_wayland_wait_events(struct vo *vo, int64_t until_time_us);
void vo_wayland_wait_frame(struct vo_wayland_state *wl);
-void vo_wayland_set_opaque_region(struct vo_wayland_state *wl, int alpha);
-void wayland_sync_swap(struct vo_wayland_state *wl);
-void vo_wayland_sync_shift(struct vo_wayland_state *wl);
-void queue_new_sync(struct vo_wayland_state *wl);
+void vo_wayland_wakeup(struct vo *vo);
#endif /* MPLAYER_WAYLAND_COMMON_H */