24#ifndef VLC_VOUT_WINDOW_H
25#define VLC_VOUT_WINDOW_H 1
160#if defined(__APPLE__) || defined(_WIN32)
186 unsigned height,
void *data);
314 const char *id,
const char *desc);
398 struct wl_surface *
wl;
413 struct wl_display *
wl;
506 unsigned width,
unsigned height);
594 unsigned width,
unsigned height)
#define VLC_API
Definition: fourcc_gen.c:31
static void vlc_window_ReportClose(vlc_window_t *window)
Reports a request to close the window.
Definition: vlc_window.h:608
static void vlc_window_ReportMouseReleased(vlc_window_t *window, int button)
Reports a mouse button release.
Definition: vlc_window.h:695
static void vlc_window_ReportSize(vlc_window_t *window, unsigned width, unsigned height)
Reports the current window size.
Definition: vlc_window.h:594
void vlc_window_ReportFullscreen(vlc_window_t *wnd, const char *id)
Reports that the window is in full screen.
Definition: window.c:221
static void vlc_window_ReportMouseMoved(vlc_window_t *window, int x, int y)
Reports a pointer movement.
Definition: vlc_window.h:665
static void vlc_window_SendMouseEvent(vlc_window_t *window, const vlc_window_mouse_event_t *mouse)
Definition: vlc_window.h:648
void vlc_window_ReportWindowed(vlc_window_t *wnd)
Reports that the window is not in full screen.
Definition: window.c:205
static void vlc_window_ReportOutputDevice(vlc_window_t *window, const char *id, const char *name)
Adds/removes a fullscreen output.
Definition: vlc_window.h:745
static void vlc_window_ReportKeyPress(vlc_window_t *window, int key)
Reports a keyboard key press.
Definition: vlc_window.h:725
static void vlc_window_ReportICCProfile(vlc_window_t *window, vlc_icc_profile_t *prof)
Reports a change to the currently active ICC profile.
Definition: vlc_window.h:759
static void vlc_window_ReportState(vlc_window_t *window, unsigned state)
Reports the current window state.
Definition: vlc_window.h:623
static void vlc_window_ReportMousePressed(vlc_window_t *window, int button)
Reports a mouse button press.
Definition: vlc_window.h:680
static void vlc_window_ReportMouseDoubleClick(vlc_window_t *window, int button)
Reports a mouse double-click.
Definition: vlc_window.h:710
void vlc_window_SetInhibition(vlc_window_t *window, bool enabled)
Inhibits or deinhibits the screensaver.
Definition: window.c:194
struct vlc_window vlc_window_t
Window object.
vlc_window_t * vlc_window_New(vlc_object_t *obj, const char *module, const vlc_window_owner_t *owner, const vlc_window_cfg_t *cfg)
Creates a new window.
static void vlc_window_SetTitle(vlc_window_t *window, const char *title)
Request a new window title.
Definition: vlc_window.h:530
void vlc_window_SetFullScreen(vlc_window_t *window, const char *id)
Requests fullscreen mode.
Definition: window.c:246
void(* vlc_window_ack_cb)(struct vlc_window *, unsigned width, unsigned height, void *data)
Callback prototype for window event acknowledgement.
Definition: vlc_window.h:186
vlc_window_type
Window handle type.
Definition: vlc_window.h:61
static void vlc_window_SetState(vlc_window_t *window, unsigned state)
Requests a new window state.
Definition: vlc_window.h:481
void vlc_window_SetSize(vlc_window_t *window, unsigned width, unsigned height)
Requests a new window size.
Definition: window.c:144
vlc_window_state
Window states.
Definition: vlc_window.h:78
struct vlc_window_cfg vlc_window_cfg_t
Window (desired) configuration.
int vlc_window_Enable(vlc_window_t *window)
Enables a window.
Definition: window.c:122
void vlc_window_Delete(vlc_window_t *window)
Deletes a window.
Definition: window.c:156
void vlc_window_Disable(vlc_window_t *window)
Disables a window.
Definition: window.c:136
void vlc_window_UnsetFullScreen(vlc_window_t *window)
Requests windowed mode.
Definition: window.c:236
struct vlc_window_owner vlc_window_owner_t
Window callbacks and opaque data.
struct vlc_window_mouse_event vlc_window_mouse_event_t
Window mouse event.
vlc_window_mouse_event_type
Window mouse event types.
Definition: vlc_window.h:90
@ VLC_WINDOW_TYPE_KMS
DRM KMS CRTC.
Definition: vlc_window.h:69
@ VLC_WINDOW_TYPE_XID
X11 window.
Definition: vlc_window.h:63
@ VLC_WINDOW_TYPE_DCOMP
Win32 DirectComposition.
Definition: vlc_window.h:68
@ VLC_WINDOW_TYPE_ANDROID_NATIVE
Android native window.
Definition: vlc_window.h:66
@ VLC_WINDOW_TYPE_DUMMY
Dummy window (not an actual window)
Definition: vlc_window.h:62
@ VLC_WINDOW_TYPE_WAYLAND
Wayland surface.
Definition: vlc_window.h:67
@ VLC_WINDOW_TYPE_NSOBJECT
macOS/iOS view
Definition: vlc_window.h:65
@ VLC_WINDOW_TYPE_HWND
Win32 or OS/2 window.
Definition: vlc_window.h:64
@ VLC_WINDOW_STATE_NORMAL
Normal stacking.
Definition: vlc_window.h:79
@ VLC_WINDOW_STATE_ABOVE
Stacking above (a.k.a.
Definition: vlc_window.h:80
@ VLC_WINDOW_STATE_BELOW
Stacking below (a.k.a.
Definition: vlc_window.h:81
@ VLC_WINDOW_MOUSE_RELEASED
Pointer button release.
Definition: vlc_window.h:93
@ VLC_WINDOW_MOUSE_PRESSED
Pointer button press or single click.
Definition: vlc_window.h:92
@ VLC_WINDOW_MOUSE_DOUBLE_CLICK
Double click.
Definition: vlc_window.h:94
@ VLC_WINDOW_MOUSE_MOVED
Pointer position change.
Definition: vlc_window.h:91
const char name[16]
Definition: httpd.c:1281
static thread_local struct @81 state
Definition: vlc_ancillary.h:216
VLC object common members.
Definition: vlc_objects.h:45
Window event callbacks structure.
Definition: vlc_window.h:204
void(* icc_event)(struct vlc_window *, vlc_icc_profile_t *profile)
Callback for ICC profile update.
Definition: vlc_window.h:327
void(* mouse_event)(struct vlc_window *, const vlc_window_mouse_event_t *mouse)
Callback for pointer input events.
Definition: vlc_window.h:287
void(* closed)(struct vlc_window *)
Callback for window closing.
Definition: vlc_window.h:241
void(* fullscreened)(struct vlc_window *, const char *id)
Callback for fullscreen mode.
Definition: vlc_window.h:277
void(* windowed)(struct vlc_window *)
Callback for windowed mode.
Definition: vlc_window.h:264
void(* keyboard_event)(struct vlc_window *, unsigned key)
Callback for keyboard input events.
Definition: vlc_window.h:300
void(* output_event)(struct vlc_window *, const char *id, const char *desc)
Callback for fullscreen output enumeration.
Definition: vlc_window.h:314
void(* state_changed)(struct vlc_window *, unsigned state)
Callback for window state change.
Definition: vlc_window.h:254
void(* resized)(struct vlc_window *, unsigned width, unsigned height, vlc_window_ack_cb cb, void *opaque)
Callback for window size changes.
Definition: vlc_window.h:226
Window (desired) configuration.
Definition: vlc_window.h:150
bool is_fullscreen
Whether the window should be in full screen mode or not.
Definition: vlc_window.h:154
unsigned height
Intended pixel height of the window.
Definition: vlc_window.h:175
unsigned width
Intended pixel width of the window.
Definition: vlc_window.h:170
bool is_decorated
Whether the window should have decorations or not.
Definition: vlc_window.h:159
Window mouse event.
Definition: vlc_window.h:103
int button_mask
Pressed button.
Definition: vlc_window.h:141
enum vlc_window_mouse_event_type type
Event type.
Definition: vlc_window.h:104
int x
Pointer abscissa.
Definition: vlc_window.h:118
int y
Pointer ordinate.
Definition: vlc_window.h:132
Window implementation callbacks.
Definition: vlc_window.h:341
int(* enable)(struct vlc_window *, const vlc_window_cfg_t *)
Definition: vlc_window.h:342
void(* unset_fullscreen)(struct vlc_window *)
Definition: vlc_window.h:354
void(* set_fullscreen)(struct vlc_window *, const char *id)
Definition: vlc_window.h:355
void(* destroy)(struct vlc_window *)
Destroy the window.
Definition: vlc_window.h:351
void(* set_state)(struct vlc_window *, unsigned state)
Definition: vlc_window.h:353
void(* set_title)(struct vlc_window *, const char *id)
Definition: vlc_window.h:356
void(* disable)(struct vlc_window *)
Definition: vlc_window.h:343
void(* resize)(struct vlc_window *, unsigned width, unsigned height)
Definition: vlc_window.h:344
Window callbacks and opaque data.
Definition: vlc_window.h:333
const struct vlc_window_callbacks * cbs
Callbacks.
Definition: vlc_window.h:334
void * sys
Opaque data / private pointer for callbacks.
Definition: vlc_window.h:335
Window object.
Definition: vlc_window.h:372
char * x11
X11 display string (NULL = use default)
Definition: vlc_window.h:413
const struct vlc_window_operations * ops
operations handled by the window.
Definition: vlc_window.h:420
struct vlc_window::@294 info
uint32_t xid
X11 windows ID.
Definition: vlc_window.h:396
void * anativewindow
Android native window.
Definition: vlc_window.h:417
int android_id
AWindow_ID.
Definition: vlc_window.h:398
union vlc_window::@293 display
Display server (mandatory)
struct vlc_object_t obj
Definition: vlc_window.h:373
uint32_t crtc
KMS CRTC identifier.
Definition: vlc_window.h:401
unsigned type
Window handle type.
Definition: vlc_window.h:384
struct wl_surface * wl
Wayland surface (client pointer)
Definition: vlc_window.h:399
int drm_fd
KMS DRM device.
Definition: vlc_window.h:416
union vlc_window::@292 handle
Window handle (mandatory)
void * dcomp_device
DirectComposition device.
Definition: vlc_window.h:415
bool has_double_click
Whether double click events are sent, or need to be emulated.
Definition: vlc_window.h:424
void * dcomp_visual
Win32 direct composition visual.
Definition: vlc_window.h:400
struct wl_display * wl
Wayland display (client pointer)
Definition: vlc_window.h:414
void * nsobject
macOS/iOS view object
Definition: vlc_window.h:397
vlc_window_owner_t owner
Definition: vlc_window.h:434
void * hwnd
Win32 window handle.
Definition: vlc_window.h:395
void * sys
Definition: vlc_window.h:432
This file is a collection of common definitions and types.