24 #ifndef VLC_PLAYLIST_H_
25 #define VLC_PLAYLIST_H_
127 const char *psz_filename;
197 #define VLC_DEFINE_SORT_FUNCTIONS \
200 DEF( SORT_TITLE_NODES_FIRST )\
203 DEF( SORT_DURATION )\
204 DEF( SORT_TITLE_NUMERIC )\
206 DEF( SORT_TRACK_NUMBER )\
207 DEF( SORT_DESCRIPTION )\
214 VLC_DEFINE_SORT_FUNCTIONS
216 NUM_SORT_FNS=SORT_RANDOM
219 #ifndef VLC_INTERNAL_PLAYLIST_SORT_FUNCTIONS
220 #undef VLC_DEFINE_SORT_FUNCTIONS
230 #define PLAYLIST_INSERT 0x0001
231 #define PLAYLIST_APPEND 0x0002
232 #define PLAYLIST_GO 0x0004
233 #define PLAYLIST_PREPARSE 0x0008
234 #define PLAYLIST_SPREPARSE 0x0010
235 #define PLAYLIST_NO_REBUILD 0x0020
237 #define PLAYLIST_END -666
250 #define PL_LOCK playlist_Lock( p_playlist )
251 #define PL_UNLOCK playlist_Unlock( p_playlist )
252 #define PL_ASSERT_LOCKED playlist_AssertLocked( p_playlist )
255 #define pl_Get( a ) pl_Get( VLC_OBJECT(a) )
258 #define playlist_Play(p) playlist_Control(p,PLAYLIST_PLAY, pl_Unlocked )
259 #define playlist_Pause(p) playlist_Control(p,PLAYLIST_PAUSE, pl_Unlocked )
260 #define playlist_Stop(p) playlist_Control(p,PLAYLIST_STOP, pl_Unlocked )
261 #define playlist_Next(p) playlist_Control(p,PLAYLIST_SKIP, pl_Unlocked, 1)
262 #define playlist_Prev(p) playlist_Control(p,PLAYLIST_SKIP, pl_Unlocked, -1)
263 #define playlist_Skip(p,i) playlist_Control(p,PLAYLIST_SKIP, pl_Unlocked, (i) )
267 VLC_API
void playlist_AssertLocked(
playlist_t * );
268 VLC_API
void playlist_Deactivate(
playlist_t * );
322 VLC_API
int playlist_Import( playlist_t *p_playlist, const
char *psz_file );
342 VLC_API
int playlist_DeleteFromInput( playlist_t *,
input_item_t *,
bool );
345 VLC_API
int playlist_Add( playlist_t *, const
char *, const
char *,
int,
int,
bool,
bool );
346 VLC_API
int playlist_AddExt( playlist_t *, const
char *, const
char *,
int,
int,
mtime_t,
int, const
char *const *,
unsigned,
bool,
bool );
347 VLC_API
int playlist_AddInput( playlist_t *, input_item_t *,
int,
int,
bool,
bool );
349 VLC_API
int playlist_NodeAddCopy( playlist_t *, playlist_item_t *, playlist_item_t *,
int );
352 VLC_API playlist_item_t * playlist_ItemGetById(playlist_t *,
int ) VLC_USED;
353 VLC_API playlist_item_t * playlist_ItemGetByInput(playlist_t *,input_item_t * ) VLC_USED;
355 VLC_API
int playlist_LiveSearchUpdate(playlist_t *, playlist_item_t *, const
char *,
bool );
361 VLC_API playlist_item_t * playlist_NodeCreate( playlist_t *, const
char *, playlist_item_t * p_parent,
int i_pos,
int i_flags, input_item_t * );
362 VLC_API
int playlist_NodeAppend(playlist_t *,playlist_item_t*,playlist_item_t *);
363 VLC_API
int playlist_NodeInsert(playlist_t *,playlist_item_t*,playlist_item_t *,
int);
364 VLC_API
int playlist_NodeRemoveItem(playlist_t *,playlist_item_t*,playlist_item_t *);
365 VLC_API playlist_item_t * playlist_ChildSearchName(playlist_item_t*, const
char* ) VLC_USED;
366 VLC_API
int playlist_NodeDelete( playlist_t *, playlist_item_t *,
bool ,
bool );
368 VLC_API playlist_item_t * playlist_GetNextLeaf( playlist_t *p_playlist, playlist_item_t *p_root, playlist_item_t *p_item,
bool b_ena,
bool b_unplayed ) VLC_USED;
369 VLC_API playlist_item_t * playlist_GetPrevLeaf( playlist_t *p_playlist, playlist_item_t *p_root, playlist_item_t *p_item,
bool b_ena,
bool b_unplayed ) VLC_USED;
377 #define AOUT_VOLUME_DEFAULT 256
378 #define AOUT_VOLUME_MAX 512
380 VLC_API
float playlist_VolumeGet( playlist_t * );
381 VLC_API
int playlist_VolumeSet( playlist_t *,
float );
382 VLC_API
int playlist_VolumeUp( playlist_t *,
int,
float * );
383 #define playlist_VolumeDown(a, b, c) playlist_VolumeUp(a, -(b), c)
384 VLC_API
int playlist_MuteSet( playlist_t *,
bool );
385 VLC_API
int playlist_MuteGet( playlist_t * );
387 static inline int playlist_MuteToggle( playlist_t *pl )
389 int val = playlist_MuteGet( pl );
391 val = playlist_MuteSet( pl, !val );
395 VLC_API
void playlist_EnableAudioFilter( playlist_t *,
const char *,
bool );
401 #define pl_CurrentInput(a) __pl_CurrentInput( VLC_OBJECT(a) )
408 static inline bool playlist_IsEmpty( playlist_t *p_playlist )
411 return p_playlist->
items.i_size == 0;
415 static inline int playlist_CurrentSize( playlist_t *p_playlist )
418 return p_playlist->
current.i_size;
Definition: vlc_playlist.h:148
Definition: vlc_playlist.h:152
VLC_API int playlist_ServicesDiscoveryAdd(playlist_t *, const char *)
uint8_t i_flags
Definition: vlc_playlist.h:142
VLC_API int playlist_Import(playlist_t *p_playlist, const char *psz_file)
int i_children
Definition: vlc_playlist.h:139
Definition: vlc_playlist.h:154
playlist_item_t * p_ml_onelevel
Definition: vlc_playlist.h:183
VLC_API int playlist_PreparseEnqueue(playlist_t *, input_item_t *)
VLC_API int playlist_AskForArtEnqueue(playlist_t *, input_item_t *)
Definition: vlc_playlist.h:124
input_item_t * p_input
Definition: vlc_playlist.h:135
Definition: vlc_playlist.h:151
VLC_COMMON_MEMBERS playlist_item_array_t items
Definition: vlc_playlist.h:166
VLC_API int playlist_Control(playlist_t *p_playlist, int i_query, bool b_locked,...)
playlist_item_array_t all_items
Definition: vlc_playlist.h:167
Definition: vlc_playlist.h:149
playlist_item_t * p_parent
Definition: vlc_playlist.h:138
playlist_item_t * p_local_onelevel
Definition: vlc_playlist.h:182
Definition: vlc_playlist.h:153
VLC_API void playlist_Clear(playlist_t *, bool)
Definition: vlc_playlist.h:133
VLC_API input_thread_t * playlist_CurrentInput(playlist_t *p_playlist) VLC_USED
playlist_t * p_playlist
Definition: vlc_playlist.h:144
int i_id
Definition: vlc_playlist.h:141
playlist_item_array_t current
Definition: vlc_playlist.h:169
VLC_API bool playlist_IsServicesDiscoveryLoaded(playlist_t *, const char *) VLC_DEPRECATED
int i_node
Definition: vlc_playlist.h:189
playlist_item_flags_e
Definition: vlc_playlist.h:147
playlist_item_t * p_root_category
Definition: vlc_playlist.h:178
VLC_API mtime_t playlist_GetNodeDuration(playlist_item_t *)
Definition: vlc_aout.h:101
VLC_API int playlist_Export(playlist_t *p_playlist, const char *psz_name, playlist_item_t *p_export_root, const char *psz_type)
int i_item
Definition: vlc_playlist.h:190
playlist_item_t * p_root_onelevel
Definition: vlc_playlist.h:179
int64_t mtime_t
Definition: vlc_common.h:153
Definition: vlc_playlist.h:187
struct playlist_export_t playlist_export_t
Definition: vlc_playlist.h:150
VLC_API int playlist_ServicesDiscoveryControl(playlist_t *, const char *, int,...)
int i_current_index
Definition: vlc_playlist.h:170
playlist_status_t
Definition: vlc_playlist.h:158
Definition: vlc_objects.h:42
VLC_API int playlist_ServicesDiscoveryRemove(playlist_t *, const char *)
playlist_item_t ** pp_children
Definition: vlc_playlist.h:137
Definition: vlc_playlist.h:162
playlist_item_t * p_ml_category
Definition: vlc_playlist.h:181