[vlc-devel] commit: libvlc_video_get_cursor: get the current mouse video coordinates ( Rémi Denis-Courmont )
git version control
git at videolan.org
Thu Feb 11 17:27:32 CET 2010
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Thu Feb 11 18:26:54 2010 +0200| [e22624799da7c67a3cfa6ab366927d2ddc985a01] | committer: Rémi Denis-Courmont
libvlc_video_get_cursor: get the current mouse video coordinates
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e22624799da7c67a3cfa6ab366927d2ddc985a01
---
include/vlc/libvlc_media_player.h | 26 ++++++++++++++++++++++++++
src/control/video.c | 13 +++++++++++++
src/libvlc.sym | 1 +
3 files changed, 40 insertions(+), 0 deletions(-)
diff --git a/include/vlc/libvlc_media_player.h b/include/vlc/libvlc_media_player.h
index d8c930b..029ddb1 100644
--- a/include/vlc/libvlc_media_player.h
+++ b/include/vlc/libvlc_media_player.h
@@ -589,6 +589,32 @@ VLC_DEPRECATED_API
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.
* See also libvlc_video_set_scale().
*
diff --git a/src/control/video.c b/src/control/video.c
index e9f8ed7..db90825 100644
--- a/src/control/video.c
+++ b/src/control/video.c
@@ -186,6 +186,19 @@ int libvlc_video_get_width( libvlc_media_player_t *p_mi )
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 )
{
size_t n;
diff --git a/src/libvlc.sym b/src/libvlc.sym
index d0a21c4..15965ef 100644
--- a/src/libvlc.sym
+++ b/src/libvlc.sym
@@ -165,6 +165,7 @@ libvlc_video_get_chapter_description
libvlc_video_get_crop_geometry
libvlc_video_get_size
libvlc_video_get_height
+libvlc_video_get_cursor
libvlc_video_get_logo_int
libvlc_video_get_marquee_int
libvlc_video_get_marquee_string
More information about the vlc-devel
mailing list