void vlc_mutex_init(vlc_mutex_t *mtx)
Initializes a fast mutex.
Definition: threads.c:123
Mouse state.
Definition: vlc_mouse.h:45
void vout_window_SetInhibition(vout_window_t *window, bool enabled)
Inhibits or deinhibits the screensaver.
Definition: window.c:159
void vout_MouseState(vout_thread_t *vout, const vlc_mouse_t *mouse)
Updates the pointing device state.
Definition: video_output.c:361
int() var_Create(vlc_object_t *p_this, const char *psz_name, int i_type)
Creates a VLC object variable.
Definition: variables.c:291
void vlc_inhibit_Destroy(vlc_inhibit_t *ih)
Definition: inhibit.c:56
enum vout_window_mouse_event_type type
Event type.
Definition: vlc_vout_window.h:102
vlc_mutex_t lock
Definition: window.c:69
static void vout_window_Ack(void *data)
Definition: window.c:207
Window object.
Definition: vlc_vout_window.h:353
vout_window_t * window
Definition: window.c:202
#define vlc_mutex_assert(m)
Asserts that a mutex is locked by the calling thread.
Definition: vlc_threads.h:328
bool b_double_click
Definition: vlc_mouse.h:53
static bool vlc_mouse_IsLeftPressed(const vlc_mouse_t *p_mouse)
Definition: vlc_mouse.h:96
vout_window_owner_t owner
Definition: vlc_vout_window.h:412
#define vlc_module_load(ctx, cap, name, strict,...)
Definition: vlc_modules.h:99
void vout_window_Delete(vout_window_t *window)
Deletes a window.
Definition: window.c:121
vout_window_ack_cb callback
Definition: window.c:203
#define VLC_VAR_BOOL
Definition: vlc_variables.h:49
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:106
vlc_inhibit_t * vlc_inhibit_Create(vlc_object_t *parent)
Definition: inhibit.c:37
bool inhibit_windowed
Definition: window.c:66
static char * var_InheritString(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:705
void vout_display_window_Delete(vout_window_t *)
Destroys a video window.
Definition: window.c:402
#define ARRAY_SIZE(x)
Definition: vlc_arrays.h:178
#define VLC_VAR_INTEGER
Definition: vlc_variables.h:50
#define VLC_VAR_STRING
Definition: vlc_variables.h:51
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
static void vout_window_UpdateInhibitionUnlocked(vout_window_t *window)
Definition: window.c:146
void() var_Destroy(vlc_object_t *p_this, const char *psz_name)
Destroys a VLC object variable.
Definition: variables.c:382
@ VOUT_WINDOW_MOUSE_MOVED
Pointer position change.
Definition: vlc_vout_window.h:89
Mutex.
Definition: vlc_threads.h:225
static void vout_display_window_StateNotify(vout_window_t *window, unsigned window_state)
Definition: window.c:250
static void vout_display_window_MouseEvent(vout_window_t *window, const vout_window_mouse_event_t *ev)
Definition: window.c:289
vout_window_t wnd
Definition: window.c:63
#define DOUBLE_CLICK_TIME
Definition: window.c:221
#define vlc_assert_unreachable()
Impossible branch assertion.
Definition: vlc_common.h:253
static void vout_display_window_OutputEvent(vout_window_t *window, const char *name, const char *desc)
Definition: window.c:347
Window mouse event.
Definition: vlc_vout_window.h:100
static void vout_display_window_CloseNotify(vout_window_t *window)
Definition: window.c:243
static int var_SetString(vlc_object_t *p_obj, const char *psz_name, const char *psz_string)
Set the value of a string variable.
Definition: vlc_variables.h:345
vlc_tick_t vlc_tick_now(void)
Precision monotonic clock.
Definition: thread.c:261
void vout_window_ReportWindowed(vout_window_t *window)
Reports that the window is not in full screen.
Definition: window.c:170
void vout_window_Disable(vout_window_t *window)
Disables a window.
Definition: window.c:113
Internal module descriptor.
Definition: modules.h:78
bool active
Definition: window.c:67
static void vlc_inhibit_Set(vlc_inhibit_t *ih, unsigned flags)
Definition: vlc_inhibit.h:57
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
void vout_window_ReportFullscreen(vout_window_t *window, 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
static void vout_display_window_WindowingNotify(vout_window_t *window)
Definition: window.c:280
void vlc_objres_clear(vlc_object_t *obj)
Releases all resources of an object.
Definition: objres.c:84
vlc_mutex_t lock
Definition: rand.c:50
@ VOUT_WINDOW_MOUSE_RELEASED
Pointer button release.
Definition: vlc_vout_window.h:91
static const struct vout_window_callbacks vout_display_window_cbs
Definition: window.c:356
static int var_SetBool(vlc_object_t *p_obj, const char *psz_name, bool b)
Set the value of an boolean variable.
Definition: vlc_variables.h:308
int y
Pointer ordinate.
Definition: vlc_vout_window.h:130
static void vout_display_window_ResizeNotify(vout_window_t *window, unsigned width, unsigned height, vout_window_ack_cb cb, void *opaque)
Definition: window.c:230
static void vlc_mouse_SetPosition(vlc_mouse_t *p_mouse, int i_x, int i_y)
Definition: vlc_mouse.h:83
module_t * module
Definition: window.c:64
@ MOUSE_BUTTON_LEFT
Definition: vlc_mouse.h:52
#define container_of(ptr, type, member)
Definition: vlc_common.h:1140
Definition: vlc_inhibit.h:44
vout_window_t * vout_display_window_New(vout_thread_t *)
Creates a video window, initially without any attached display.
Definition: window.c:370
void vout_display_window_Delete(vout_window_t *window)
Destroys a video window.
Definition: window.c:402
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
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
vout_thread_t * vout
Definition: window.c:225
const struct vout_window_callbacks * cbs
Callbacks.
Definition: vlc_vout_window.h:315
static int64_t var_InheritInteger(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:685
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
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:117
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
const char name[16]
Definition: httpd.c:1268
int vout_window_Enable(vout_window_t *window, const vout_window_cfg_t *restrict cfg)
Definition: window.c:100
vlc_inhibit_t * inhibit
Definition: window.c:65
void(* vout_window_ack_cb)(struct vout_window_t *, void *)
Callback prototype for window event acknowledgement.
Definition: vlc_vout_window.h:180
bool fullscreen
Definition: window.c:68
static void vout_display_window_FullscreenNotify(vout_window_t *window, const char *id)
Definition: window.c:267
static int var_SetInteger(vlc_object_t *p_obj, const char *psz_name, int64_t i)
Set the value of an integer variable.
Definition: vlc_variables.h:293
int button_mask
Pressed button.
Definition: vlc_vout_window.h:139
vlc_tick_t last_left_press
Definition: window.c:227
static int vout_window_start(void *func, bool forced, va_list ap)
Definition: window.c:50
Window event callbacks structure.
Definition: vlc_vout_window.h:197
Window callbacks and opaque data.
Definition: vlc_vout_window.h:314
void * opaque
Definition: window.c:204
@ VLC_INHIBIT_NONE
Definition: vlc_inhibit.h:37
@ VOUT_WINDOW_STATE_ABOVE
Stacking above (a.k.a.
Definition: vlc_vout_window.h:78
#define vlc_object_delete(obj)
Definition: vlc_objects.h:136
static void vlc_mouse_SetReleased(vlc_mouse_t *p_mouse, int i_button)
Definition: vlc_mouse.h:78
int x
Pointer abscissa.
Definition: vlc_vout_window.h:116
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition: vlc_objects.h:70
Video output thread descriptor.
Definition: vlc_vout.h:55
struct vout_display_window vout_display_window_t
struct vout_window_t::@280 info
static thread_local struct @76 state
struct vout_crop::@121::@123 window
static void vlc_mouse_SetPressed(vlc_mouse_t *p_mouse, int i_button)
Definition: vlc_mouse.h:73
vout_window_t * vout_display_window_New(vout_thread_t *vout)
Creates a video window, initially without any attached display.
Definition: window.c:370
void vout_ChangeDisplaySize(vout_thread_t *vout, unsigned width, unsigned height, void(*cb)(void *), void *opaque)
Definition: video_output.c:545
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
#define vlc_object_instance(o)
Definition: vlc_objects.h:195
@ VOUT_WINDOW_STATE_BELOW
Stacking below (a.k.a.
Definition: vlc_vout_window.h:79
static void vout_display_window_KeyboardEvent(vout_window_t *window, unsigned key)
Definition: window.c:341
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
void * sys
Opaque data / private pointer for callbacks.
Definition: vlc_vout_window.h:316
vlc_mouse_t mouse
Definition: window.c:226
static void vlc_mouse_Init(vlc_mouse_t *p_mouse)
Definition: vlc_mouse.h:64
#define VLC_INHIBIT_VIDEO
Definition: vlc_inhibit.h:41