[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