[vlc-devel] commit: Add libvlc_media_player_get_(hwnd|xwindow) as requested on forum ( Rémi Denis-Courmont )
git version control
git at videolan.org
Thu Feb 12 21:23:11 CET 2009
vlc | branch: master | Rémi Denis-Courmont <rdenis at simphalempin.com> | Thu Feb 12 22:22:34 2009 +0200| [f2f24f4915d16e223b5716938c7aa2c5c7f2f6cd] | committer: Rémi Denis-Courmont
Add libvlc_media_player_get_(hwnd|xwindow) as requested on forum
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f2f24f4915d16e223b5716938c7aa2c5c7f2f6cd
---
include/vlc/libvlc.h | 21 +++++++++++++++++++++
src/control/media_player.c | 10 ++++++++++
src/libvlc.sym | 2 ++
3 files changed, 33 insertions(+), 0 deletions(-)
diff --git a/include/vlc/libvlc.h b/include/vlc/libvlc.h
index 57c88b2..3b8d8fc 100644
--- a/include/vlc/libvlc.h
+++ b/include/vlc/libvlc.h
@@ -569,6 +569,16 @@ VLC_PUBLIC_API void libvlc_media_player_stop ( libvlc_media_player_t *, libvlc_e
VLC_PUBLIC_API void libvlc_media_player_set_xwindow ( libvlc_media_player_t *p_mi, uint32_t drawable, libvlc_exception_t *p_e );
/**
+ * Get the X Window System window identifier previously set with
+ * libvlc_media_player_set_xwindow(). Note that this will return the identifier
+ * even if VLC is not currently using it (for instance if it is playing an
+ * audio-only input).
+ *
+ * \return an X window ID, or 0 if none where set.
+ */
+VLC_PUBLIC_API uint32_t libvlc_media_player_get_xwindow ( libvlc_media_player_t *p_mi );
+
+/**
* Set a Win32/Win64 API window handle (HWND) where the media player should
* render its video output. If LibVLC was built without Win32/Win64 API output
* support, then this has no effects.
@@ -579,6 +589,17 @@ VLC_PUBLIC_API void libvlc_media_player_set_xwindow ( libvlc_media_player_t *p_m
*/
VLC_PUBLIC_API void libvlc_media_player_set_hwnd ( libvlc_media_player_t *p_mi, void *drawable, libvlc_exception_t *p_e );
+/**
+ * Get the Windows API window handle (HWND) previously set with
+ * libvlc_media_player_set_hwnd(). The handle will be returned even if LibVLC
+ * is not currently outputting any video to it.
+ *
+ * \return a window handle or NULL if there are none.
+ */
+VLC_PUBLIC_API void *libvlc_media_player_get_hwnd ( libvlc_media_player_t *p_mi );
+
+
+
/** \bug This might go away ... to be replaced by a broader system */
/**
diff --git a/src/control/media_player.c b/src/control/media_player.c
index ec74c9b..aebe7d9 100644
--- a/src/control/media_player.c
+++ b/src/control/media_player.c
@@ -706,6 +706,11 @@ void libvlc_media_player_set_xwindow( libvlc_media_player_t *p_mi,
p_mi->drawable.xid = drawable;
}
+uint32_t libvlc_media_player_get_xwindow( libvlc_media_player_t *p_mi )
+{
+ return p_mi->drawable.xid;
+}
+
void libvlc_media_player_set_hwnd( libvlc_media_player_t *p_mi,
void *drawable,
libvlc_exception_t *p_e )
@@ -714,6 +719,11 @@ void libvlc_media_player_set_hwnd( libvlc_media_player_t *p_mi,
p_mi->drawable.hwnd = drawable;
}
+void *libvlc_media_player_get_hwnd( libvlc_media_player_t *p_mi )
+{
+ return p_mi->drawable.hwnd;
+}
+
/**************************************************************************
* Set Drawable
**************************************************************************/
diff --git a/src/libvlc.sym b/src/libvlc.sym
index 45587b8..8de9c3f 100644
--- a/src/libvlc.sym
+++ b/src/libvlc.sym
@@ -125,6 +125,7 @@ libvlc_media_player_get_chapter_count
libvlc_media_player_get_chapter_count_for_title
libvlc_media_player_get_drawable
libvlc_media_player_get_fps
+libvlc_media_player_get_hwnd
libvlc_media_player_get_length
libvlc_media_player_get_media
libvlc_media_player_get_position
@@ -133,6 +134,7 @@ libvlc_media_player_get_state
libvlc_media_player_get_time
libvlc_media_player_get_title
libvlc_media_player_get_title_count
+libvlc_media_player_get_xwindow
libvlc_media_player_has_vout
libvlc_media_player_is_seekable
libvlc_media_player_is_playing
More information about the vlc-devel
mailing list