X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fplaylist%2Fplaylist_internal.h;h=f12f8c6c69477473de2fc565fb3e95407ac4492b;hb=ffd957bd3130b792a11fc0422b9908ff5b46bf59;hp=b77a2bf99c69092e05a2160691e2b2ec55091cf4;hpb=b6d0e5a07a9a32894e31da69e25e81dec0366dc5;p=vlc diff --git a/src/playlist/playlist_internal.h b/src/playlist/playlist_internal.h index b77a2bf99c..f12f8c6c69 100644 --- a/src/playlist/playlist_internal.h +++ b/src/playlist/playlist_internal.h @@ -2,7 +2,7 @@ * playlist_internal.h : Functions for use by the playlist ***************************************************************************** * Copyright (C) 1999-2004 the VideoLAN team - * $Id: vlc_playlist.h 16505 2006-09-03 21:53:38Z zorglub $ + * $Id$ * * Authors: Samuel Hocevar * Clément Stenac @@ -22,6 +22,9 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ +#ifndef __LIBVLC_PLAYLIST_INTERNAL_H +# define __LIBVLC_PLAYLIST_INTERNAL_H 1 + /** * \file * This file contain internal structures and function prototypes related @@ -31,6 +34,9 @@ * @{ */ +#include "input/input_internal.h" +#include + struct playlist_preparse_t { VLC_COMMON_MEMBERS @@ -39,35 +45,35 @@ struct playlist_preparse_t input_item_t **pp_waiting; }; -typedef struct preparse_item_t -{ - input_item_t *p_item; - vlc_bool_t b_fetch_art; -} preparse_item_t; - -struct playlist_secondary_preparse_t +struct playlist_fetcher_t { VLC_COMMON_MEMBERS vlc_mutex_t lock; + int i_art_policy; int i_waiting; - preparse_item_t *p_waiting; + input_item_t **pp_waiting; + + DECL_ARRAY(playlist_album_t) albums; }; /***************************************************************************** * Prototypes *****************************************************************************/ +/* Global thread */ +#define playlist_ThreadCreate(a) __playlist_ThreadCreate(VLC_OBJECT(a)) +void __playlist_ThreadCreate ( vlc_object_t * ); + /* Creation/Deletion */ playlist_t *playlist_Create ( vlc_object_t * ); -void playlist_Destroy ( playlist_t * ); /* Engine */ void playlist_MainLoop( playlist_t * ); void playlist_LastLoop( playlist_t * ); void playlist_PreparseLoop( playlist_preparse_t * ); -void playlist_SecondaryPreparseLoop( playlist_secondary_preparse_t * ); +void playlist_FetcherLoop( playlist_fetcher_t * ); -void ResetCurrentlyPlaying( playlist_t *, vlc_bool_t, playlist_item_t * ); +void ResetCurrentlyPlaying( playlist_t *, bool, playlist_item_t * ); /* Control */ playlist_item_t * playlist_NextItem ( playlist_t * ); @@ -81,7 +87,8 @@ int playlist_MLDump( playlist_t *p_playlist ); * Item management **********************************************************************/ -void playlist_SendAddNotify( playlist_t *p_playlist, int i_item_id, int i_node_id ); +void playlist_SendAddNotify( playlist_t *p_playlist, int i_item_id, + int i_node_id, bool b_signal ); /* Tree walking */ int playlist_GetAllEnabledChildren( playlist_t *p_playlist, @@ -89,24 +96,42 @@ int playlist_GetAllEnabledChildren( playlist_t *p_playlist, playlist_item_t ***ppp_items ); playlist_item_t *playlist_GetNextLeaf( playlist_t *p_playlist, playlist_item_t *p_root, - playlist_item_t *, vlc_bool_t, vlc_bool_t ); + playlist_item_t *, bool, bool ); playlist_item_t *playlist_GetPrevLeaf( playlist_t *p_playlist, playlist_item_t *p_root, - playlist_item_t *, vlc_bool_t, vlc_bool_t ); + playlist_item_t *, bool, bool ); playlist_item_t *playlist_GetLastLeaf( playlist_t *p_playlist, playlist_item_t *p_root ); +playlist_item_t *playlist_ItemFindFromInputAndRoot( playlist_t *p_playlist, + int i_input_id, playlist_item_t *p_root, + bool ); + +int playlist_DeleteFromItemId( playlist_t*, int ); +int playlist_ItemDelete ( playlist_item_t * ); + +void playlist_release_current_input( playlist_t * p_playlist ); +void playlist_set_current_input( + playlist_t * p_playlist, input_thread_t * p_input ); + /** * @} */ -//#define PLAYLIST_DEBUG 1 -#undef PLAYLIST_DEBUG +#define PLAYLIST_DEBUG 1 +//#undef PLAYLIST_DEBUG2 #ifdef PLAYLIST_DEBUG -#define PL_DEBUG( msg, args... ) msg_Dbg( p_playlist, msg, ## args ) + #define PL_DEBUG( msg, args... ) msg_Dbg( p_playlist, msg, ## args ) + #ifdef PLAYLIST_DEBUG2 + #define PL_DEBUG2( msg, args... ) msg_Dbg( p_playlist, msg, ## args ) + #else + #define PL_DEBUG2( msg, args... ) {} + #endif #else -#define PL_DEBUG( msg, args ... ) {} + #define PL_DEBUG( msg, args ... ) {} + #define PL_DEBUG2( msg, args... ) {} #endif -#define PLI_NAME( p ) p ? p->p_input->psz_name : "null" +#define PLI_NAME( p ) p && p->p_input ? p->p_input->psz_name : "null" +#endif /* !__LIBVLC_PLAYLIST_INTERNAL_H */