VLC  4.0.0-dev

Window provider event reporting. More...

Collaboration diagram for Window event reporting:

Functions

static void vlc_window_ReportSize (vlc_window_t *window, unsigned width, unsigned height)
 Reports the current window size. More...
 
static void vlc_window_ReportClose (vlc_window_t *window)
 Reports a request to close the window. More...
 
static void vlc_window_ReportState (vlc_window_t *window, unsigned state)
 Reports the current window state. More...
 
void vlc_window_ReportWindowed (vlc_window_t *wnd)
 Reports that the window is not in full screen. More...
 
void vlc_window_ReportFullscreen (vlc_window_t *wnd, const char *id)
 Reports that the window is in full screen. More...
 
static void vlc_window_SendMouseEvent (vlc_window_t *window, const vlc_window_mouse_event_t *mouse)
 
static void vlc_window_ReportMouseMoved (vlc_window_t *window, int x, int y)
 Reports a pointer movement. More...
 
static void vlc_window_ReportMousePressed (vlc_window_t *window, int button)
 Reports a mouse button press. More...
 
static void vlc_window_ReportMouseReleased (vlc_window_t *window, int button)
 Reports a mouse button release. More...
 
static void vlc_window_ReportMouseDoubleClick (vlc_window_t *window, int button)
 Reports a mouse double-click. More...
 
static void vlc_window_ReportKeyPress (vlc_window_t *window, int key)
 Reports a keyboard key press. More...
 
static void vlc_window_ReportOutputDevice (vlc_window_t *window, const char *id, const char *name)
 Adds/removes a fullscreen output. More...
 
static void vlc_window_ReportICCProfile (vlc_window_t *window, vlc_icc_profile_t *prof)
 Reports a change to the currently active ICC profile. More...
 

Detailed Description

Window provider event reporting.

The Window provider has to report some events to the core so that it can react appropriately to these events, for this the window provider calls the functions in this section when appropriate.

Note
These functions may only be called by the window provider implementation.

Function Documentation

◆ vlc_window_ReportClose()

static void vlc_window_ReportClose ( vlc_window_t window)
inlinestatic

Reports a request to close the window.

This function is called by the window implementation to advise that the window is being closed externally, and should be disabled by the owner.

Parameters
windowwindow implementation that reports the event

References vlc_window_owner::cbs, vlc_window_callbacks::closed, and vlc_window::owner.

◆ vlc_window_ReportFullscreen()

void vlc_window_ReportFullscreen ( vlc_window_t wnd,
const char *  id 
)

Reports that the window is in full screen.

Parameters
wndthe window reporting the fullscreen state
idfullscreen output nul-terminated identifier, NULL for default

References vlc_window_owner::cbs, container_of, window_t::fullscreen, vlc_window_callbacks::fullscreened, window_t::inhibit_windowed, window_t::lock, vlc_window::owner, vlc_mutex_lock(), vlc_mutex_unlock(), and vlc_window_UpdateInhibitionUnlocked().

◆ vlc_window_ReportICCProfile()

static void vlc_window_ReportICCProfile ( vlc_window_t window,
vlc_icc_profile_t prof 
)
inlinestatic

Reports a change to the currently active ICC profile.

Parameters
windowthe window reporting the ICC profile
profthe profile data, or NULL. Ownership transfers to callee

◆ vlc_window_ReportKeyPress()

static void vlc_window_ReportKeyPress ( vlc_window_t window,
int  key 
)
inlinestatic

Reports a keyboard key press.

Parameters
windowwindow in focus
keyVLC key code

References vlc_window_owner::cbs, vlc_window_callbacks::keyboard_event, and vlc_window::owner.

◆ vlc_window_ReportMouseDoubleClick()

static void vlc_window_ReportMouseDoubleClick ( vlc_window_t window,
int  button 
)
inlinestatic

Reports a mouse double-click.

Parameters
windowwindow in focus
buttondouble-clicked button (see vlc_mouse_button)

References VLC_WINDOW_MOUSE_DOUBLE_CLICK, and vlc_window_SendMouseEvent().

◆ vlc_window_ReportMouseMoved()

static void vlc_window_ReportMouseMoved ( vlc_window_t window,
int  x,
int  y 
)
inlinestatic

Reports a pointer movement.

The mouse position must be expressed in window pixel units. See also vlc_window_mouse_event_t.

Parameters
windowwindow in focus
xabscissa
yordinate

References VLC_WINDOW_MOUSE_MOVED, and vlc_window_SendMouseEvent().

Referenced by vout_display_SendMouseMovedDisplayCoordinates().

◆ vlc_window_ReportMousePressed()

static void vlc_window_ReportMousePressed ( vlc_window_t window,
int  button 
)
inlinestatic

Reports a mouse button press.

Parameters
windowwindow in focus
buttonpressed button (see vlc_mouse_button)

References VLC_WINDOW_MOUSE_PRESSED, and vlc_window_SendMouseEvent().

Referenced by vout_display_SendEventMousePressed().

◆ vlc_window_ReportMouseReleased()

static void vlc_window_ReportMouseReleased ( vlc_window_t window,
int  button 
)
inlinestatic

Reports a mouse button release.

Parameters
windowwindow in focus
buttonreleased button (see vlc_mouse_button)

References VLC_WINDOW_MOUSE_RELEASED, and vlc_window_SendMouseEvent().

Referenced by vout_display_SendEventMouseReleased().

◆ vlc_window_ReportOutputDevice()

static void vlc_window_ReportOutputDevice ( vlc_window_t window,
const char *  id,
const char *  name 
)
inlinestatic

Adds/removes a fullscreen output.

This notifies the owner of the window that a usable fullscreen output has been added, changed or removed.

If an output with the same identifier is already known, its name will be updated. Otherwise it will be added. If the name parameter is NULL, the output will be removed.

Parameters
windowthe window reporting the output device
idunique nul-terminated identifier for the output
namehuman-readable name

References vlc_window_owner::cbs, name, vlc_window_callbacks::output_event, and vlc_window::owner.

◆ vlc_window_ReportSize()

static void vlc_window_ReportSize ( vlc_window_t window,
unsigned  width,
unsigned  height 
)
inlinestatic

Reports the current window size.

This function is called by the window implementation and notifies the owner of the window what the pixel dimensions of the window are (or should be, depending on the windowing system).

Note
This function is thread-safe. In case of concurrent call, it is undefined which one is taken into account (but at least one is).
Parameters
windowwindow implementation that reports the event
widthwidth of the usable window area in pixels
heightheight of the usable window area in pixels

References vlc_window_owner::cbs, vlc_window::owner, and vlc_window_callbacks::resized.

◆ vlc_window_ReportState()

static void vlc_window_ReportState ( vlc_window_t window,
unsigned  state 
)
inlinestatic

Reports the current window state.

This function is called by the window implementation to notify the owner of the window that the state of the window changed.

Parameters
windowthe window reporting the state change
state
See also
vlc_window_state

References vlc_window_owner::cbs, vlc_window::owner, state, and vlc_window_callbacks::state_changed.

◆ vlc_window_ReportWindowed()

void vlc_window_ReportWindowed ( vlc_window_t wnd)

Reports that the window is not in full screen.

This notifies the owner of the window that the window is windowed, i.e. not in full screen mode.

Parameters
wndwindow implementation that reports the event

References vlc_window_owner::cbs, container_of, window_t::fullscreen, window_t::inhibit_windowed, window_t::lock, vlc_window::owner, vlc_mutex_lock(), vlc_mutex_unlock(), vlc_window_UpdateInhibitionUnlocked(), and vlc_window_callbacks::windowed.

◆ vlc_window_SendMouseEvent()