24 #ifndef VLC_VOUT_DISPLAY_H
25 #define VLC_VOUT_DISPLAY_H 1
37 #include <vlc_mouse.h>
46 typedef struct vout_display_sys_t vout_display_sys_t;
48 typedef struct vout_display_owner_sys_t vout_display_owner_sys_t;
55 VOUT_DISPLAY_ALIGN_CENTER,
57 VOUT_DISPLAY_ALIGN_LEFT,
58 VOUT_DISPLAY_ALIGN_RIGHT,
60 VOUT_DISPLAY_ALIGN_TOP,
61 VOUT_DISPLAY_ALIGN_BOTTOM,
68 VOUT_WINDOW_STATE_NORMAL=0,
69 VOUT_WINDOW_STATE_ABOVE=1,
70 VOUT_WINDOW_STATE_BELOW=2,
71 VOUT_WINDOW_STACK_MASK=3,
103 bool is_display_filled;
124 bool has_double_click;
126 bool has_pictures_invalid;
127 bool has_event_thread;
137 VOUT_DISPLAY_HIDE_MOUSE,
142 VOUT_DISPLAY_RESET_PICTURES,
146 VOUT_DISPLAY_CHANGE_FULLSCREEN,
150 VOUT_DISPLAY_CHANGE_WINDOW_STATE,
154 VOUT_DISPLAY_CHANGE_DISPLAY_SIZE,
158 VOUT_DISPLAY_CHANGE_DISPLAY_FILLED,
162 VOUT_DISPLAY_CHANGE_ZOOM,
166 VOUT_DISPLAY_CHANGE_SOURCE_ASPECT,
172 VOUT_DISPLAY_CHANGE_SOURCE_CROP,
175 VOUT_DISPLAY_GET_OPENGL,
189 VOUT_DISPLAY_EVENT_PICTURES_INVALID,
191 VOUT_DISPLAY_EVENT_FULLSCREEN,
192 VOUT_DISPLAY_EVENT_WINDOW_STATE,
194 VOUT_DISPLAY_EVENT_DISPLAY_SIZE,
197 VOUT_DISPLAY_EVENT_CLOSE,
198 VOUT_DISPLAY_EVENT_KEY,
204 VOUT_DISPLAY_EVENT_MOUSE_STATE,
207 VOUT_DISPLAY_EVENT_MOUSE_MOVED,
208 VOUT_DISPLAY_EVENT_MOUSE_PRESSED,
209 VOUT_DISPLAY_EVENT_MOUSE_RELEASED,
210 VOUT_DISPLAY_EVENT_MOUSE_DOUBLE_CLICK,
219 vout_display_owner_sys_t *sys;
314 void (*display)(vout_display_t *, picture_t *,
subpicture_t *);
317 int (*control)(vout_display_t *, int, va_list);
320 void (*manage)(vout_display_t *);
326 vout_display_sys_t *sys;
335 static inline void vout_display_SendEvent(
vout_display_t *vd,
int query, ...)
338 va_start(args, query);
339 vd->owner.event(vd, query, args);
343 static inline void vout_display_SendEventDisplaySize(
vout_display_t *vd,
int width,
int height,
bool is_fullscreen)
345 vout_display_SendEvent(vd, VOUT_DISPLAY_EVENT_DISPLAY_SIZE, width, height, is_fullscreen);
347 static inline void vout_display_SendEventPicturesInvalid(
vout_display_t *vd)
349 vout_display_SendEvent(vd, VOUT_DISPLAY_EVENT_PICTURES_INVALID);
351 static inline void vout_display_SendEventClose(
vout_display_t *vd)
353 vout_display_SendEvent(vd, VOUT_DISPLAY_EVENT_CLOSE);
355 static inline void vout_display_SendEventKey(
vout_display_t *vd,
int key)
357 vout_display_SendEvent(vd, VOUT_DISPLAY_EVENT_KEY, key);
359 static inline void vout_display_SendEventFullscreen(
vout_display_t *vd,
bool is_fullscreen)
361 vout_display_SendEvent(vd, VOUT_DISPLAY_EVENT_FULLSCREEN, is_fullscreen);
363 static inline void vout_display_SendWindowState(
vout_display_t *vd,
unsigned state)
365 vout_display_SendEvent(vd, VOUT_DISPLAY_EVENT_WINDOW_STATE, state);
368 static inline void vout_display_SendEventMouseState(
vout_display_t *vd,
int x,
int y,
int button_mask)
370 vout_display_SendEvent(vd, VOUT_DISPLAY_EVENT_MOUSE_STATE, x, y, button_mask);
372 static inline void vout_display_SendEventMouseMoved(
vout_display_t *vd,
int x,
int y)
374 vout_display_SendEvent(vd, VOUT_DISPLAY_EVENT_MOUSE_MOVED, x, y);
376 static inline void vout_display_SendEventMousePressed(
vout_display_t *vd,
int button)
378 vout_display_SendEvent(vd, VOUT_DISPLAY_EVENT_MOUSE_PRESSED, button);
380 static inline void vout_display_SendEventMouseReleased(
vout_display_t *vd,
int button)
382 vout_display_SendEvent(vd, VOUT_DISPLAY_EVENT_MOUSE_RELEASED, button);
384 static inline void vout_display_SendEventMouseDoubleClick(
vout_display_t *vd)
386 vout_display_SendEvent(vd, VOUT_DISPLAY_EVENT_MOUSE_DOUBLE_CLICK);
396 return vd->owner.window_new(vd, cfg);
405 vd->owner.window_del(vd, window);
VLC_API void vout_display_GetDefaultDisplaySize(unsigned *width, unsigned *height, const video_format_t *source, const vout_display_cfg_t *)
Definition: vlc_vout_display.h:122
Definition: vlc_vout_display.h:77
Definition: vlc_picture.h:69
Definition: vlc_vout_display.h:420
VLC_API void vout_display_PlacePicture(vout_display_place_t *place, const video_format_t *source, const vout_display_cfg_t *cfg, bool do_clipping)
Definition: vlc_subpicture.h:136
Definition: vlc_vout_display.h:216
vout_display_align_t
Definition: vlc_vout_display.h:53
Definition: vlc_vout_window.h:59
struct picture_pool_t picture_pool_t
Definition: vlc_picture_pool.h:40
uint32_t vlc_fourcc_t
Definition: vlc_common.h:160
Definition: vlc_vout_window.h:80
Definition: vlc_vout_display.h:243