Add libvlc_media_player_get_(hwnd|xwindow) as requested on forum
authorRémi Denis-Courmont <rdenis@simphalempin.com>
Thu, 12 Feb 2009 20:22:34 +0000 (22:22 +0200)
committerRémi Denis-Courmont <rdenis@simphalempin.com>
Thu, 12 Feb 2009 20:23:08 +0000 (22:23 +0200)
include/vlc/libvlc.h
src/control/media_player.c
src/libvlc.sym

index 57c88b2..3b8d8fc 100644 (file)
@@ -568,6 +568,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
@@ -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 */
 
 /**
index ec74c9b..aebe7d9 100644 (file)
@@ -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
  **************************************************************************/
index 45587b8..8de9c3f 100644 (file)
@@ -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