From 61ee17a85417817e8046fe5373f160f5349cbf07 Mon Sep 17 00:00:00 2001 From: Pierre d'Herbemont Date: Sun, 1 Jun 2008 21:47:49 +0200 Subject: [PATCH] playlist: Listen to duration changed events, and remove a vout->playlist dependency. --- src/input/input.c | 8 -------- src/playlist/item.c | 14 +++++++++++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/input/input.c b/src/input/input.c index 4ab5b55225..9914457420 100644 --- a/src/input/input.c +++ b/src/input/input.c @@ -2162,14 +2162,6 @@ static int UpdateFromAccess( input_thread_t *p_input ) static void UpdateItemLength( input_thread_t *p_input, int64_t i_length ) { input_item_SetDuration( p_input->p->input.p_item, (mtime_t) i_length ); - - if( !p_input->b_preparsing ) - { - pl_Yield( p_input ); - var_SetInteger( libvlc_priv (p_input->p_libvlc)->p_playlist, - "item-change", p_input->p->input.p_item->i_id ); - pl_Release( p_input ); - } } /***************************************************************************** diff --git a/src/playlist/item.c b/src/playlist/item.c index c2bc35c68e..1dee00b5a5 100644 --- a/src/playlist/item.c +++ b/src/playlist/item.c @@ -107,10 +107,10 @@ static void input_item_subitem_added( const vlc_event_t * p_event, } /***************************************************************************** - * An input item's meta has changed (Event Callback) + * An input item's meta or duration has changed (Event Callback) *****************************************************************************/ -static void input_item_meta_changed( const vlc_event_t * p_event, - void * user_data ) +static void input_item_changed( const vlc_event_t * p_event, + void * user_data ) { playlist_item_t * p_item = user_data; var_SetInteger( p_item->p_playlist, @@ -126,6 +126,10 @@ static void install_input_item_observer( playlist_item_t * p_item ) vlc_InputItemSubItemAdded, input_item_subitem_added, p_item ); + vlc_event_attach( &p_item->p_input->event_manager, + vlc_InputItemDurationChanged, + input_item_meta_changed, + p_item ); vlc_event_attach( &p_item->p_input->event_manager, vlc_InputItemMetaChanged, input_item_meta_changed, @@ -138,6 +142,10 @@ static void uninstall_input_item_observer( playlist_item_t * p_item ) vlc_InputItemMetaChanged, input_item_meta_changed, p_item ); + vlc_event_detach( &p_item->p_input->event_manager, + vlc_InputItemDurationChanged, + input_item_meta_changed, + p_item ); vlc_event_detach( &p_item->p_input->event_manager, vlc_InputItemSubItemAdded, input_item_subitem_added, -- 2.39.2