24#ifndef VLC_VOUT_WINDOW_H
25#define VLC_VOUT_WINDOW_H 1
161#if defined(__APPLE__) || defined(_WIN32)
187 unsigned height,
void *data);
315 const char *id,
const char *desc);
399 struct wl_surface *wl;
415 struct wl_display *wl;
425 bool has_double_click;
508 unsigned width,
unsigned height);
595 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:609
static void vlc_window_ReportMouseReleased(vlc_window_t *window, int button)
Reports a mouse button release.
Definition vlc_window.h:696
static void vlc_window_ReportSize(vlc_window_t *window, unsigned width, unsigned height)
Reports the current window size.
Definition vlc_window.h:595
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:666
static void vlc_window_SendMouseEvent(vlc_window_t *window, const vlc_window_mouse_event_t *mouse)
Definition vlc_window.h:649
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:746
static void vlc_window_ReportKeyPress(vlc_window_t *window, int key)
Reports a keyboard key press.
Definition vlc_window.h:726
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:760
static void vlc_window_ReportState(vlc_window_t *window, unsigned state)
Reports the current window state.
Definition vlc_window.h:624
static void vlc_window_ReportMousePressed(vlc_window_t *window, int button)
Reports a mouse button press.
Definition vlc_window.h:681
static void vlc_window_ReportMouseDoubleClick(vlc_window_t *window, int button)
Reports a mouse double-click.
Definition vlc_window.h:711
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:532
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:187
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:483
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:79
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:91
@ 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_MMAL
MMAL window.
Definition vlc_window.h:70
@ 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:80
@ VLC_WINDOW_STATE_ABOVE
Stacking above (a.k.a.
Definition vlc_window.h:81
@ VLC_WINDOW_STATE_BELOW
Stacking below (a.k.a.
Definition vlc_window.h:82
@ VLC_WINDOW_MOUSE_RELEASED
Pointer button release.
Definition vlc_window.h:94
@ VLC_WINDOW_MOUSE_PRESSED
Pointer button press or single click.
Definition vlc_window.h:93
@ VLC_WINDOW_MOUSE_DOUBLE_CLICK
Double click.
Definition vlc_window.h:95
@ VLC_WINDOW_MOUSE_MOVED
Pointer position change.
Definition vlc_window.h:92
const char name[16]
Definition httpd.c:1298
static thread_local struct @82 state
Definition vlc_ancillary.h:216
VLC object common members.
Definition vlc_objects.h:53
Window event callbacks structure.
Definition vlc_window.h:205
void(* icc_event)(struct vlc_window *, vlc_icc_profile_t *profile)
Callback for ICC profile update.
Definition vlc_window.h:328
void(* mouse_event)(struct vlc_window *, const vlc_window_mouse_event_t *mouse)
Callback for pointer input events.
Definition vlc_window.h:288
void(* closed)(struct vlc_window *)
Callback for window closing.
Definition vlc_window.h:242
void(* fullscreened)(struct vlc_window *, const char *id)
Callback for fullscreen mode.
Definition vlc_window.h:278
void(* windowed)(struct vlc_window *)
Callback for windowed mode.
Definition vlc_window.h:265
void(* keyboard_event)(struct vlc_window *, unsigned key)
Callback for keyboard input events.
Definition vlc_window.h:301
void(* output_event)(struct vlc_window *, const char *id, const char *desc)
Callback for fullscreen output enumeration.
Definition vlc_window.h:315
void(* state_changed)(struct vlc_window *, unsigned state)
Callback for window state change.
Definition vlc_window.h:255
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:227
Window (desired) configuration.
Definition vlc_window.h:151
bool is_fullscreen
Whether the window should be in full screen mode or not.
Definition vlc_window.h:155
unsigned height
Intended pixel height of the window.
Definition vlc_window.h:176
unsigned width
Intended pixel width of the window.
Definition vlc_window.h:171
bool is_decorated
Whether the window should have decorations or not.
Definition vlc_window.h:160
Window mouse event.
Definition vlc_window.h:104
int button_mask
Pressed button.
Definition vlc_window.h:142
enum vlc_window_mouse_event_type type
Event type.
Definition vlc_window.h:105
int x
Pointer abscissa.
Definition vlc_window.h:119
int y
Pointer ordinate.
Definition vlc_window.h:133
Window implementation callbacks.
Definition vlc_window.h:342
int(* enable)(struct vlc_window *, const vlc_window_cfg_t *)
Definition vlc_window.h:343
void(* unset_fullscreen)(struct vlc_window *)
Definition vlc_window.h:355
void(* set_fullscreen)(struct vlc_window *, const char *id)
Definition vlc_window.h:356
void(* destroy)(struct vlc_window *)
Destroy the window.
Definition vlc_window.h:352
void(* set_state)(struct vlc_window *, unsigned state)
Definition vlc_window.h:354
void(* set_title)(struct vlc_window *, const char *id)
Definition vlc_window.h:357
void(* disable)(struct vlc_window *)
Definition vlc_window.h:344
void(* resize)(struct vlc_window *, unsigned width, unsigned height)
Definition vlc_window.h:345
Window callbacks and opaque data.
Definition vlc_window.h:334
const struct vlc_window_callbacks * cbs
Callbacks.
Definition vlc_window.h:335
void * sys
Opaque data / private pointer for callbacks.
Definition vlc_window.h:336
Window object.
Definition vlc_window.h:373
char * x11
X11 display string (NULL = use default)
Definition vlc_window.h:415
const struct vlc_window_operations * ops
operations handled by the window.
Definition vlc_window.h:422
uint32_t xid
X11 windows ID.
Definition vlc_window.h:397
void * anativewindow
Android native window.
Definition vlc_window.h:419
int android_id
AWindow_ID.
Definition vlc_window.h:399
struct vlc_window::@299 info
struct vlc_object_t obj
Definition vlc_window.h:374
uint32_t crtc
KMS CRTC identifier.
Definition vlc_window.h:402
unsigned type
Window handle type.
Definition vlc_window.h:385
union vlc_window::@298 display
Display server (mandatory)
struct wl_surface * wl
Wayland surface (client pointer)
Definition vlc_window.h:400
int drm_fd
KMS DRM device.
Definition vlc_window.h:418
void * dcomp_device
DirectComposition device.
Definition vlc_window.h:417
bool has_double_click
Whether double click events are sent, or need to be emulated.
Definition vlc_window.h:426
void * dcomp_visual
Win32 direct composition visual.
Definition vlc_window.h:401
struct wl_display * wl
Wayland display (client pointer)
Definition vlc_window.h:416
void * nsobject
macOS/iOS view object
Definition vlc_window.h:398
union vlc_window::@297 handle
Window handle (mandatory)
vlc_window_owner_t owner
Definition vlc_window.h:436
void * hwnd
Win32 window handle.
Definition vlc_window.h:396
int display_id
MMAL display ID.
Definition vlc_window.h:403
void * sys
Definition vlc_window.h:434
This file is a collection of common definitions and types.