Commit e2262479 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

libvlc_video_get_cursor: get the current mouse video coordinates

parent b5f800b6
...@@ -588,6 +588,32 @@ int libvlc_video_get_height( libvlc_media_player_t *p_mi ); ...@@ -588,6 +588,32 @@ int libvlc_video_get_height( libvlc_media_player_t *p_mi );
VLC_DEPRECATED_API VLC_DEPRECATED_API
int libvlc_video_get_width( libvlc_media_player_t *p_mi ); int libvlc_video_get_width( libvlc_media_player_t *p_mi );
/**
* Get the mouse pointer coordinates over a video.
* Coordinates are expressed in terms of the decoded video resolution,
* <b>not</b> in terms of pixels on the screen/viewport (to get the latter,
* you can query your windowing system directly).
*
* Either of the coordinates may be negative or larger than the corresponding
* dimension of the video, if the cursor is outside the rendering area.
*
* @warning The coordinates may be out-of-date if the pointer is not located
* on the video rendering area. LibVLC does not track the pointer if it is
* outside of the video widget.
*
* @note LibVLC does not support multiple pointers (it does of course support
* multiple input devices sharing the same pointer) at the moment.
*
* \param p_mi media player
* \param num number of the video (starting from, and most commonly 0)
* \param px pointer to get the abscissa [OUT]
* \param py pointer to get the ordinate [OUT]
* \return 0 on success, -1 if the specified video does not exist
*/
VLC_PUBLIC_API
int libvlc_video_get_cursor( libvlc_media_player_t *p_mi, unsigned num,
int *px, int *py );
/** /**
* Get the current video scaling factor. * Get the current video scaling factor.
* See also libvlc_video_set_scale(). * See also libvlc_video_set_scale().
......
...@@ -186,6 +186,19 @@ int libvlc_video_get_width( libvlc_media_player_t *p_mi ) ...@@ -186,6 +186,19 @@ int libvlc_video_get_width( libvlc_media_player_t *p_mi )
return width; return width;
} }
int libvlc_video_get_cursor( libvlc_media_player_t *mp, unsigned num,
int *px, int *py )
{
vout_thread_t *p_vout = GetVout (mp, num);
if (p_vout == NULL)
return -1;
*px = var_GetInteger (p_vout, "mouse-x");
*py = var_GetInteger (p_vout, "mouse-y");
vlc_object_release (p_vout);
return 0;
}
unsigned libvlc_media_player_has_vout( libvlc_media_player_t *p_mi ) unsigned libvlc_media_player_has_vout( libvlc_media_player_t *p_mi )
{ {
size_t n; size_t n;
......
...@@ -165,6 +165,7 @@ libvlc_video_get_chapter_description ...@@ -165,6 +165,7 @@ libvlc_video_get_chapter_description
libvlc_video_get_crop_geometry libvlc_video_get_crop_geometry
libvlc_video_get_size libvlc_video_get_size
libvlc_video_get_height libvlc_video_get_height
libvlc_video_get_cursor
libvlc_video_get_logo_int libvlc_video_get_logo_int
libvlc_video_get_marquee_int libvlc_video_get_marquee_int
libvlc_video_get_marquee_string libvlc_video_get_marquee_string
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment