extern "C" {
# endif
-#include <vlc_input.h>
#include <vlc_events.h>
TYPEDEF_ARRAY(playlist_item_t*, playlist_item_array_t)
+struct intf_thread_t;
+
/**
* \file
* This file contain structures and function prototypes related
playlist_item_t **pp_children; /**< Children nodes/items */
playlist_item_t *p_parent; /**< Item parent */
int i_children; /**< Number of children, -1 if not a node */
+ unsigned i_nb_played; /**< Times played */
int i_id; /**< Playlist item specific id */
uint8_t i_flags; /**< Flags \see playlist_item_flags_e */
#define PL_UNLOCK playlist_Unlock( p_playlist )
#define PL_ASSERT_LOCKED playlist_AssertLocked( p_playlist )
-VLC_API playlist_t * pl_Get( vlc_object_t * );
-#define pl_Get( a ) pl_Get( VLC_OBJECT(a) )
+/** Playlist commands */
+enum {
+ PLAYLIST_PLAY, /**< No arg. res=can fail*/
+ PLAYLIST_VIEWPLAY, /**< arg1= playlist_item_t*,*/
+ /** arg2 = playlist_item_t* , res=can fail */
+ PLAYLIST_TOGGLE_PAUSE, /**< No arg res=can fail */
+ PLAYLIST_STOP, /**< No arg res=can fail*/
+ PLAYLIST_SKIP, /**< arg1=int, res=can fail*/
+ PLAYLIST_PAUSE, /**< No arg */
+ PLAYLIST_RESUME, /**< No arg */
+};
-/* Playlist control */
#define playlist_Play(p) playlist_Control(p,PLAYLIST_PLAY, pl_Unlocked )
-#define playlist_Pause(p) playlist_Control(p,PLAYLIST_PAUSE, pl_Unlocked )
+#define playlist_TogglePause(p) \
+ playlist_Control(p, PLAYLIST_TOGGLE_PAUSE, pl_Unlocked)
#define playlist_Stop(p) playlist_Control(p,PLAYLIST_STOP, pl_Unlocked )
#define playlist_Next(p) playlist_Control(p,PLAYLIST_SKIP, pl_Unlocked, 1)
#define playlist_Prev(p) playlist_Control(p,PLAYLIST_SKIP, pl_Unlocked, -1)
#define playlist_Skip(p,i) playlist_Control(p,PLAYLIST_SKIP, pl_Unlocked, (i) )
+#define playlist_Pause(p) \
+ playlist_Control(p, PLAYLIST_PAUSE, pl_Unlocked)
+#define playlist_Resume(p) \
+ playlist_Control(p, PLAYLIST_RESUME, pl_Unlocked)
VLC_API void playlist_Lock( playlist_t * );
VLC_API void playlist_Unlock( playlist_t * );
* \param i_query the command to do
* \param b_locked TRUE if playlist is locked when entering this function
* \param variable number of arguments
- * \return VLC_SUCCESS or an error
*/
-VLC_API int playlist_Control( playlist_t *p_playlist, int i_query, bool b_locked, ... );
+VLC_API void playlist_Control( playlist_t *p_playlist, int i_query, bool b_locked, ... );
/** Get current playing input. The object is retained.
*/
*/
VLC_API void playlist_Clear( playlist_t *, bool );
-/** Enqueue an input item for preparsing */
-VLC_API int playlist_PreparseEnqueue(playlist_t *, input_item_t * );
-
/* Playlist sorting */
VLC_API int playlist_TreeMove( playlist_t *, playlist_item_t *, playlist_item_t *, int );
VLC_API int playlist_TreeMoveMany( playlist_t *, int, playlist_item_t **, playlist_item_t *, int );
/***********************************************************************
* Inline functions
***********************************************************************/
-/** Small helper tp get current playing input or NULL. Release the input after use. */
-#define pl_CurrentInput(a) __pl_CurrentInput( VLC_OBJECT(a) )
-static inline input_thread_t * __pl_CurrentInput( vlc_object_t * p_this )
-{
- return playlist_CurrentInput( pl_Get( p_this ) );
-}
-
/** Tell if the playlist is empty */
static inline bool playlist_IsEmpty( playlist_t *p_playlist )
{