[vlc-devel] [PATCH] libvlc: add API to control display of the video title.

Mark Lee mark.lee at capricasoftware.co.uk
Tue Jul 2 21:48:02 CEST 2013


 * libvlc_media_player_set_video_title_show
 * libvlc_media_player_get_video_title_show
 * libvlc_media_player_set_video_title_position
 * libvlc_media_player_get_video_title_position
 * libvlc_media_player_set_video_title_timeout
 * libvlc_media_player_get_video_title_timeout
---
 include/vlc/libvlc_media_player.h | 68 +++++++++++++++++++++++++++++++++++++++
 lib/libvlc.sym                    |  6 ++++
 lib/media_player.c                | 35 ++++++++++++++++++++
 3 files changed, 109 insertions(+)

diff --git a/include/vlc/libvlc_media_player.h b/include/vlc/libvlc_media_player.h
index bd93201..7b2e222 100644
--- a/include/vlc/libvlc_media_player.h
+++ b/include/vlc/libvlc_media_player.h
@@ -824,6 +824,74 @@ LIBVLC_API void libvlc_media_player_navigate( libvlc_media_player_t* p_mi,
                                               unsigned navigate );
 
 /**
+ * Enumeration of values used to set the video title position.
+ */
+typedef enum libvlc_title_position_t {
+    libvlc_title_centre=0,
+    libvlc_title_left,
+    libvlc_title_right,
+    libvlc_title_top,
+    libvlc_title_top_left,
+    libvlc_title_top_right,
+    libvlc_title_bottom,
+    libvlc_title_bottom_left,
+    libvlc_title_bottom_right
+} libvlc_title_position_t;
+
+/**
+ * Set whether or not the video title will be shown when media is played.
+ *
+ * \param p_mi the media player
+ * \param show true to show the title; otherwise false
+ * \version libVLC 2.1.0 or later
+ */
+LIBVLC_API void libvlc_media_player_set_video_title_show( libvlc_media_player_t *p_mi, bool show );
+
+/**
+ * Will the video title be shown when media is played?
+ *
+ * \param p_mi the media player
+ * \return true if the title will be shown; false if it will not
+ * \version libVLC 2.1.0 or later
+ */
+LIBVLC_API bool libvlc_media_player_get_video_title_show( libvlc_media_player_t *p_mi );
+
+/**
+ * Set the video title position.
+ *
+ * \param p_mi the media player
+ * \pos position
+ * \version libVLC 2.1.0 or later
+ */
+LIBVLC_API void libvlc_media_player_set_video_title_position( libvlc_media_player_t *p_mi, libvlc_title_position_t pos );
+
+/**
+ * Get the video title position.
+ *
+ * \param p_mi the media player
+ * \return position
+ * \version libVLC 2.1.0 or later
+ */
+LIBVLC_API libvlc_title_position_t libvlc_media_player_get_video_title_position( libvlc_media_player_t *p_mi );
+
+/**
+ * Set the video title timeout.
+ *
+ * \param p_mi the media player
+ * \param timeout timeout (milliseconds)
+ * \version libVLC 2.1.0 or later
+ */
+LIBVLC_API void libvlc_media_player_set_video_title_timeout( libvlc_media_player_t *p_mi, unsigned timeout );
+
+/**
+ * Get the video title timeout.
+ *
+ * \return timeout (milliseconds)
+ * \version libVLC 2.1.0 or later
+ */
+LIBVLC_API unsigned libvlc_media_player_get_video_title_timeout( libvlc_media_player_t *p_mi );
+
+/**
  * Release (free) libvlc_track_description_t
  *
  * \param p_track_description the structure to release
diff --git a/lib/libvlc.sym b/lib/libvlc.sym
index c19628a..f532890 100644
--- a/lib/libvlc.sym
+++ b/lib/libvlc.sym
@@ -164,6 +164,12 @@ libvlc_media_player_set_xwindow
 libvlc_media_player_stop
 libvlc_media_player_will_play
 libvlc_media_player_navigate
+libvlc_media_player_set_video_title_show
+libvlc_media_player_get_video_title_show
+libvlc_media_player_set_video_title_position
+libvlc_media_player_get_video_title_position
+libvlc_media_player_set_video_title_timeout
+libvlc_media_player_get_video_title_timeout
 libvlc_media_release
 libvlc_media_retain
 libvlc_media_save_meta
diff --git a/lib/media_player.c b/lib/media_player.c
index c48daa4..a0f38e6 100644
--- a/lib/media_player.c
+++ b/lib/media_player.c
@@ -457,6 +457,11 @@ libvlc_media_player_new( libvlc_instance_t *instance )
     var_Create (mp, "amem-rate", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT);
     var_Create (mp, "amem-channels", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT);
 
+    /* Video Title */
+    var_Create (mp, "video-title-show", VLC_VAR_BOOL | VLC_VAR_DOINHERIT);
+    var_Create (mp, "video-title-position", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT);
+    var_Create (mp, "video-title-timeout", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT);
+
     mp->p_md = NULL;
     mp->state = libvlc_NothingSpecial;
     mp->p_libvlc_instance = instance;
@@ -1385,3 +1390,33 @@ void libvlc_media_player_next_frame( libvlc_media_player_t *p_mi )
         vlc_object_release( p_input_thread );
     }
 }
+
+void libvlc_media_player_set_video_title_show( libvlc_media_player_t *p_mi, bool show )
+{
+    var_SetBool( p_mi, "video-title-show", show );
+}
+
+bool libvlc_media_player_get_video_title_show( libvlc_media_player_t *p_mi )
+{
+    return var_GetBool( p_mi, "video-title-show" );
+}
+
+void libvlc_media_player_set_video_title_position( libvlc_media_player_t *p_mi, libvlc_title_position_t pos )
+{
+    var_SetInteger( p_mi, "video-title-position", pos );
+}
+
+libvlc_title_position_t libvlc_media_player_get_video_title_position( libvlc_media_player_t *p_mi )
+{
+    return var_GetInteger( p_mi, "video-title-position" );
+}
+
+void libvlc_media_player_set_video_title_timeout( libvlc_media_player_t *p_mi, unsigned timeout )
+{
+    var_SetInteger( p_mi, "video-title-timeout", timeout );
+}
+
+unsigned libvlc_media_player_get_video_title_timeout( libvlc_media_player_t *p_mi )
+{
+    return var_GetInteger( p_mi, "video-title-timeout" );
+}
-- 
1.8.1.2




More information about the vlc-devel mailing list