* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
-#if !defined( __LIBVLC__ )
- #error You are not libvlc or one of its plugins. You cannot include this file
-#endif
-
#ifndef _VLC_PLAYLIST_H_
#define _VLC_PLAYLIST_H_
} ** pp_sds;
int i_sds; /**< Number of service discovery modules */
- int i_enabled; /**< How many items are enabled ? */
-
playlist_item_array_t items; /**< Arrays of items */
playlist_item_array_t all_items; /**< Array of items and nodes */
playlist_item_t * p_local_onelevel; /** < "Playlist" in ONELEVEL view */
playlist_item_t * p_ml_onelevel; /** < "Library" in ONELEVEL view */
- bool b_always_tree;/**< Always display as tree */
- bool b_never_tree;/**< Never display as tree */
+ bool b_tree; /**< Display as a tree */
bool b_doing_ml; /**< Doing media library stuff,
* get quicker */
#define ORDER_NORMAL 0
#define ORDER_REVERSE 1
+/* Used by playlist_Import */
+#define PLAYLIST_INSERT 0x0001
+#define PLAYLIST_APPEND 0x0002
+#define PLAYLIST_GO 0x0004
+#define PLAYLIST_PREPARSE 0x0008
+#define PLAYLIST_SPREPARSE 0x0010
+#define PLAYLIST_NO_REBUILD 0x0020
+
+#define PLAYLIST_END -666
+
/*****************************************************************************
* Prototypes
*****************************************************************************/
#define PL_LOCK vlc_object_lock( p_playlist )
#define PL_UNLOCK vlc_object_unlock( p_playlist )
-#define pl_Get( a ) a->p_libvlc->p_playlist
-
VLC_EXPORT( playlist_t *, __pl_Yield, ( vlc_object_t * ) );
#define pl_Yield( a ) __pl_Yield( VLC_OBJECT(a) )
*/
VLC_EXPORT( int, playlist_Control, ( playlist_t *p_playlist, int i_query, bool b_locked, ... ) );
+/** Get current playing input. The object is retained.
+ */
+VLC_EXPORT( input_thread_t *, playlist_CurrentInput, ( playlist_t *p_playlist ) );
+
/** Clear the playlist
* \param b_locked TRUE if playlist is locked when entering this function
*/
/********************** Misc item operations **********************/
VLC_EXPORT( playlist_item_t*, playlist_ItemToNode, (playlist_t *,playlist_item_t *, bool) );
-playlist_item_t *playlist_ItemFindFromInputAndRoot( playlist_t *p_playlist,
- int i_input_id, playlist_item_t *p_root,
- bool );
-
/********************************** Item search *************************/
VLC_EXPORT( playlist_item_t *, playlist_ItemGetById, (playlist_t *, int, bool ) );
VLC_EXPORT( playlist_item_t *, playlist_ItemGetByInput, (playlist_t *,input_item_t *, bool ) );
return VLC_SUCCESS;
}
+
/** Tell if the playlist is currently running */
-#define playlist_IsPlaying( pl ) ( pl->status.i_status == PLAYLIST_RUNNING )
+#define playlist_IsPlaying( pl ) ( pl->status.i_status == PLAYLIST_RUNNING && \
+ !(pl->request.b_request && pl->request.i_status == PLAYLIST_STOPPED) )
+
+#define playlist_IsStopped( pl ) ( pl->status.i_status == PLAYLIST_STOPPED || \
+ (pl->request.b_request && pl->request.i_status == PLAYLIST_STOPPED) )
/** Tell if the playlist is empty */
#define playlist_IsEmpty( pl ) ( pl->items.i_size == 0 )
/** Tell the number of items in the current playing context */
-#define playlist_CurrentSize( obj ) obj->p_libvlc->p_playlist->current.i_size
+#define playlist_CurrentSize( pl ) pl->current.i_size
+
+/** Tell the current item id in current playing context */
+#define playlist_CurrentId( pl ) pl->status.p_item->i_id
/** Ask the playlist to do some work */
#define playlist_Signal( p_playlist ) vlc_object_signal( p_playlist )