[vlc-devel] commit: Modify playlist code to always use input_item_t->i_id in " item-change" callback. (Laurent Aimar )

Pierre d'Herbemont pdherbemont at gmail.com
Tue Feb 17 12:20:14 CET 2009


This might be out of topic, yet...

Using id field is pretty redundant to refcouting. I believe direct  
pointer should be used instead for a proper design.

However this requires more changes probably in the event client...

Pierre

On 16 févr. 09, at 22:09, git at videolan.org (git version control) wrote:

> vlc | branch: master | Laurent Aimar <fenrir at videolan.org> | Mon Feb  
> 16 21:33:43 2009 +0100| [aaa0d27584304a53f5f413f9b7a7f1b77d22c24e] |  
> committer: Laurent Aimar
>
> Modify playlist code to always use input_item_t->i_id in "item- 
> change" callback.
>
> The previous code mixed up playlist_item_t->i_id and input_item_t- 
> >i_id and
> so this callback was unusable.
>
>> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=aaa0d27584304a53f5f413f9b7a7f1b77d22c24e
> ---
>
> include/vlc_playlist.h |    8 ++++++++
> src/playlist/item.c    |    9 ++++-----
> 2 files changed, 12 insertions(+), 5 deletions(-)
>
> diff --git a/include/vlc_playlist.h b/include/vlc_playlist.h
> index 12521b7..6fbd4a1 100644
> --- a/include/vlc_playlist.h
> +++ b/include/vlc_playlist.h
> @@ -114,6 +114,14 @@ TYPEDEF_ARRAY(playlist_item_t*,  
> playlist_item_array_t);
>  * To delete an item, use playlist_DeleteFromInput( input_id ) which  
> will
>  * remove all occurrences of the input in both trees
>  *
> + *
> + * The playlist defines the following event variables:
> + * - "item-change": It will contains the input_item_t->i_id of a  
> changed input
> + * item monitored by the playlist.
> + *
> + * XXX Be really carefull, playlist_item_t->i_id and input_item_t- 
> >i_id are not
> + * the same.
> + *
>  * @{
>  */
>
> diff --git a/src/playlist/item.c b/src/playlist/item.c
> index e8179b1..383771a 100644
> --- a/src/playlist/item.c
> +++ b/src/playlist/item.c
> @@ -115,9 +115,9 @@ static void input_item_subitem_added( const  
> vlc_event_t * p_event,
> static void input_item_changed( const vlc_event_t * p_event,
>                                 void * user_data )
> {
> -    (void)p_event;
> -    playlist_item_t * p_item = user_data;
> -    var_SetInteger( p_item->p_playlist, "item-change", p_item- 
> >i_id );
> +    playlist_item_t *p_item = user_data;
> +    VLC_UNUSED( p_event );
> +    var_SetInteger( p_item->p_playlist, "item-change", p_item- 
> >p_input->i_id );
> }
>
> / 
> *** 
> *** 
> *** 
> ********************************************************************
> @@ -624,8 +624,7 @@ static playlist_item_t *ItemToNode( playlist_t  
> *p_playlist,
>         }
>         pl_priv(p_playlist)->b_reset_currently_playing = true;
>         vlc_cond_signal( &pl_priv(p_playlist)->signal );
> -        var_SetInteger( p_playlist, "item-change",  
> p_item_in_category->
> -                                                        p_input- 
> >i_id );
> +        var_SetInteger( p_playlist, "item-change",  
> p_item_in_category->p_input->i_id );
>         PL_UNLOCK_IF( !b_locked );
>         return p_item_in_category;
>     }
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> http://mailman.videolan.org/listinfo/vlc-devel



More information about the vlc-devel mailing list