]> git.sesse.net Git - vlc/commitdiff
Adding a libvlc_MediaPlayerLengthChanged event
authorHugo Beauzee-Luyssen <beauze.h@gmail.com>
Thu, 14 May 2009 12:52:32 +0000 (14:52 +0200)
committerLaurent Aimar <fenrir@videolan.org>
Thu, 14 May 2009 18:16:43 +0000 (20:16 +0200)
Signed-off-by: Laurent Aimar <fenrir@videolan.org>
include/vlc/libvlc_events.h
src/control/media_player.c

index 1004989475794db3dfdd9eb986ed003b1ad9e65b..57bb9a6a7e97a0b63aa5d894769386237d8e2598 100644 (file)
@@ -88,6 +88,7 @@ typedef enum libvlc_event_type_t {
 
     libvlc_MediaPlayerTitleChanged,
     libvlc_MediaPlayerSnapshotTaken,
+    libvlc_MediaPlayerLengthChanged,
     /* New event types HERE */
 } libvlc_event_type_t;
 
@@ -202,6 +203,11 @@ typedef struct libvlc_event_t
              char* psz_filename ;
         } media_player_snapshot_taken ;
 
+        /* Length changed */
+        struct
+        {
+            libvlc_time_t   new_length;
+        } media_player_length_changed;
     } u;
 } libvlc_event_t;
 
index 41845add076070f04784a083e565daad0f3246ff..0ef1e65c0d516165b3542a49f0d093151b45c45c 100644 (file)
@@ -232,6 +232,13 @@ input_event_changed( vlc_object_t * p_this, char const * psz_cmd,
                                                var_GetTime( p_input, "time" );
         libvlc_event_send( p_mi->p_event_manager, &event );
     }
+    else if( newval.i_int == INPUT_EVENT_LENGTH )
+    {
+        event.type = libvlc_MediaPlayerLengthChanged;
+        event.u.media_player_length_changed.new_length =
+                                               var_GetTime( p_input, "length" );
+        libvlc_event_send( p_mi->p_event_manager, &event );
+    }
 
     return VLC_SUCCESS;
 
@@ -313,6 +320,8 @@ libvlc_media_player_new( libvlc_instance_t * p_libvlc_instance,
             libvlc_MediaPlayerPositionChanged, p_e );
     libvlc_event_manager_register_event_type( p_mi->p_event_manager,
             libvlc_MediaPlayerTimeChanged, p_e );
+    libvlc_event_manager_register_event_type( p_mi->p_event_manager,
+            libvlc_MediaPlayerLengthChanged, p_e );
     libvlc_event_manager_register_event_type( p_mi->p_event_manager,
             libvlc_MediaPlayerTitleChanged, p_e );
     libvlc_event_manager_register_event_type( p_mi->p_event_manager,