Go to the documentation of this file.
24 #ifndef VLC_VOUT_WINDOW_H
25 #define VLC_VOUT_WINDOW_H 1
158 #if defined(__APPLE__) || defined(_WIN32)
307 const char *id,
const char *desc);
379 struct wl_surface *
wl;
393 struct wl_display *
wl;
482 unsigned width,
unsigned height)
485 window->
ops->
resize(window, width, height);
560 unsigned width,
unsigned height)
void vout_window_SetInhibition(vout_window_t *window, bool enabled)
Inhibits or deinhibits the screensaver.
Definition: window.c:159
#define VLC_API
Definition: fourcc_gen.c:31
static void vout_window_SetState(vout_window_t *window, unsigned state)
Requests a new window state.
Definition: vlc_vout_window.h:457
enum vout_window_mouse_event_type type
Event type.
Definition: vlc_vout_window.h:102
char * x11
X11 display string (NULL = use default)
Definition: vlc_vout_window.h:393
void(* set_title)(struct vout_window_t *, const char *id)
Definition: vlc_vout_window.h:337
struct vout_window_t vout_window_t
Window object.
Window object.
Definition: vlc_vout_window.h:353
static void vout_window_SetSize(vout_window_t *window, unsigned width, unsigned height)
Requests a new window size.
Definition: vlc_vout_window.h:482
vout_window_state
Window states.
Definition: vlc_vout_window.h:76
vout_window_mouse_event_type
Window mouse event types.
Definition: vlc_vout_window.h:88
struct wl_display * wl
Wayland display (client pointer)
Definition: vlc_vout_window.h:394
void(* mouse_event)(struct vout_window_t *, const vout_window_mouse_event_t *mouse)
Callback for pointer input events.
Definition: vlc_vout_window.h:280
void * dcomp_visual
Win32 direct composition visual.
Definition: vlc_vout_window.h:381
void * sys
Definition: vlc_vout_window.h:410
vout_window_owner_t owner
Definition: vlc_vout_window.h:412
VLC_EXPORT void vout_window_Delete(vout_window_t *window)
Deletes a window.
Definition: window.c:121
static void vout_window_ReportOutputDevice(vout_window_t *window, const char *id, const char *name)
Adds/removes a fullscreen output.
Definition: vlc_vout_window.h:704
static void vout_window_ReportClose(vout_window_t *window)
Reports a request to close the window.
Definition: vlc_vout_window.h:572
void(* resize)(struct vout_window_t *, unsigned width, unsigned height)
Definition: vlc_vout_window.h:325
static void vout_window_ReportMouseReleased(vout_window_t *window, int button)
Reports a mouse button release.
Definition: vlc_vout_window.h:655
void(* resized)(struct vout_window_t *, unsigned width, unsigned height, vout_window_ack_cb cb, void *opaque)
Callback for window size changes.
Definition: vlc_vout_window.h:219
union vout_window_t::@278 handle
Window handle (mandatory)
static void vout_window_ReportSize(vout_window_t *window, unsigned width, unsigned height)
Reports the current window size.
Definition: vlc_vout_window.h:560
struct vout_window_mouse_event_t vout_window_mouse_event_t
Window mouse event.
struct vout_window_owner vout_window_owner_t
Window callbacks and opaque data.
@ VOUT_WINDOW_TYPE_DCOMP
Win32 DirectComposition.
Definition: vlc_vout_window.h:67
@ VOUT_WINDOW_MOUSE_MOVED
Pointer position change.
Definition: vlc_vout_window.h:89
void(* fullscreened)(struct vout_window_t *, const char *id)
Callback for fullscreen mode.
Definition: vlc_vout_window.h:270
@ VOUT_WINDOW_TYPE_HWND
Win32 or OS/2 window.
Definition: vlc_vout_window.h:63
static void vout_window_SetFullScreen(vout_window_t *window, const char *id)
Requests fullscreen mode.
Definition: vlc_vout_window.h:495
static void vout_window_ReportKeyPress(vout_window_t *window, int key)
Reports a keyboard key press.
Definition: vlc_vout_window.h:685
@ VOUT_WINDOW_TYPE_WAYLAND
Wayland surface.
Definition: vlc_vout_window.h:66
void(* state_changed)(struct vout_window_t *, unsigned state)
Callback for window state change.
Definition: vlc_vout_window.h:247
Window mouse event.
Definition: vlc_vout_window.h:100
void(* disable)(struct vout_window_t *)
Definition: vlc_vout_window.h:324
static void vout_window_SetTitle(vout_window_t *window, const char *title)
Request a new window title.
Definition: vlc_vout_window.h:519
VLC_EXPORT void vout_window_ReportWindowed(vout_window_t *wnd)
Reports that the window is not in full screen.
Definition: window.c:170
void(* output_event)(struct vout_window_t *, const char *id, const char *desc)
Callback for fullscreen output enumeration.
Definition: vlc_vout_window.h:307
VLC_EXPORT void vout_window_Disable(vout_window_t *window)
Disables a window.
Definition: window.c:113
void(* set_state)(struct vout_window_t *, unsigned state)
Definition: vlc_vout_window.h:334
VLC_EXPORT void vout_window_ReportFullscreen(vout_window_t *wnd, const char *id)
Reports that the window is in full screen.
Definition: window.c:186
@ VOUT_WINDOW_MOUSE_DOUBLE_CLICK
Double click.
Definition: vlc_vout_window.h:92
@ VOUT_WINDOW_MOUSE_PRESSED
Pointer button press or single click.
Definition: vlc_vout_window.h:90
int(* enable)(struct vout_window_t *, const vout_window_cfg_t *)
Definition: vlc_vout_window.h:323
@ VOUT_WINDOW_TYPE_DUMMY
Dummy window (not an actual window)
Definition: vlc_vout_window.h:61
struct wl_surface * wl
Wayland surface (client pointer)
Definition: vlc_vout_window.h:380
bool is_fullscreen
Whether the window should be in full screen mode or not.
Definition: vlc_vout_window.h:152
@ VOUT_WINDOW_MOUSE_RELEASED
Pointer button release.
Definition: vlc_vout_window.h:91
unsigned width
Intended pixel width of the window.
Definition: vlc_vout_window.h:168
void * hwnd
Win32 window handle.
Definition: vlc_vout_window.h:376
int y
Pointer ordinate.
Definition: vlc_vout_window.h:130
void(* windowed)(struct vout_window_t *)
Callback for windowed mode.
Definition: vlc_vout_window.h:257
static void vout_window_SendMouseEvent(vout_window_t *window, const vout_window_mouse_event_t *mouse)
Definition: vlc_vout_window.h:608
void(* destroy)(struct vout_window_t *)
Destroy the window.
Definition: vlc_vout_window.h:332
unsigned type
Window handle type.
Definition: vlc_vout_window.h:365
void(* closed)(struct vout_window_t *)
Callback for window closing.
Definition: vlc_vout_window.h:234
vout_window_type
Window handle type.
Definition: vlc_vout_window.h:60
static void vout_window_ReportMousePressed(vout_window_t *window, int button)
Reports a mouse button press.
Definition: vlc_vout_window.h:640
static void vout_window_ReportMouseDoubleClick(vout_window_t *window, int button)
Reports a mouse double-click.
Definition: vlc_vout_window.h:670
bool has_double_click
Whether double click events are sent, or need to be emulated.
Definition: vlc_vout_window.h:402
@ VOUT_WINDOW_STATE_NORMAL
Normal stacking.
Definition: vlc_vout_window.h:77
VLC object common members.
Definition: vlc_objects.h:43
static void vout_window_ReportMouseMoved(vout_window_t *window, int x, int y)
Reports a pointer movement.
Definition: vlc_vout_window.h:625
const struct vout_window_operations * ops
operations handled by the window.
Definition: vlc_vout_window.h:398
const struct vout_window_callbacks * cbs
Callbacks.
Definition: vlc_vout_window.h:315
VLC_EXPORT vout_window_t * vout_window_New(vlc_object_t *obj, const char *module, const vout_window_owner_t *owner)
Creates a new window.
Definition: window.c:62
Window (desired) configuration.
Definition: vlc_vout_window.h:148
void(* set_fullscreen)(struct vout_window_t *, const char *id)
Definition: vlc_vout_window.h:336
void(* keyboard_event)(struct vout_window_t *, unsigned key)
Callback for keyboard input events.
Definition: vlc_vout_window.h:293
void * nsobject
macOS/iOS view object
Definition: vlc_vout_window.h:378
const char name[16]
Definition: httpd.c:1268
void(* vout_window_ack_cb)(struct vout_window_t *, void *)
Callback prototype for window event acknowledgement.
Definition: vlc_vout_window.h:180
void(* unset_fullscreen)(struct vout_window_t *)
Definition: vlc_vout_window.h:335
int button_mask
Pressed button.
Definition: vlc_vout_window.h:139
void * anativewindow
Android native window.
Definition: vlc_vout_window.h:379
Window event callbacks structure.
Definition: vlc_vout_window.h:197
Window callbacks and opaque data.
Definition: vlc_vout_window.h:314
@ VOUT_WINDOW_STATE_ABOVE
Stacking above (a.k.a.
Definition: vlc_vout_window.h:78
VLC_EXPORT int vout_window_Enable(vout_window_t *window, const vout_window_cfg_t *cfg)
Enables a window.
@ VOUT_WINDOW_TYPE_ANDROID_NATIVE
Android native window.
Definition: vlc_vout_window.h:65
int x
Pointer abscissa.
Definition: vlc_vout_window.h:116
struct vlc_object_t obj
Definition: vlc_vout_window.h:354
@ VOUT_WINDOW_TYPE_XID
X11 window.
Definition: vlc_vout_window.h:62
struct vout_window_t::@280 info
static void vout_window_UnsetFullScreen(vout_window_t *window)
Requests windowed mode.
Definition: vlc_vout_window.h:507
bool is_decorated
Whether the window should have decorations or not.
Definition: vlc_vout_window.h:157
void * dcomp_device
DirectComposition device.
Definition: vlc_vout_window.h:395
static thread_local struct @76 state
@ VOUT_WINDOW_STATE_BELOW
Stacking below (a.k.a.
Definition: vlc_vout_window.h:79
unsigned height
Intended pixel height of the window.
Definition: vlc_vout_window.h:173
union vout_window_t::@279 display
Display server (mandatory)
uint32_t xid
X11 windows ID.
Definition: vlc_vout_window.h:377
Window implementation callbacks.
Definition: vlc_vout_window.h:322
struct vout_window_cfg_t vout_window_cfg_t
Window (desired) configuration.
void * sys
Opaque data / private pointer for callbacks.
Definition: vlc_vout_window.h:316
@ VOUT_WINDOW_TYPE_NSOBJECT
macOS/iOS view
Definition: vlc_vout_window.h:64
static void vout_window_ReportState(vout_window_t *window, unsigned state)
Reports the current window state.
Definition: vlc_vout_window.h:586