Go to the documentation of this file.
25 #ifndef __LIBVLC_PLAYLIST_INTERNAL_H
26 # define __LIBVLC_PLAYLIST_INTERNAL_H 1
96 #define pl_priv( pl ) container_of(pl, playlist_private_t, public_data)
138 #define PLAYLIST_DELETE_FORCE 0x01
139 #define PLAYLIST_DELETE_STOP_IF_CURRENT 0x02
165 #define PLAYLIST_DEBUG 1
168 #ifdef PLAYLIST_DEBUG
169 #define PL_DEBUG( ... ) msg_Dbg( p_playlist, __VA_ARGS__ )
170 #ifdef PLAYLIST_DEBUG2
171 #define PL_DEBUG2( msg, ... ) msg_Dbg( p_playlist, __VA_ARGS__ )
173 #define PL_DEBUG2( msg, ... ) {}
176 #define PL_DEBUG( msg, ... ) {}
177 #define PL_DEBUG2( msg, ... ) {}
180 #define PLI_NAME( p ) p && p->p_input ? p->p_input->psz_name : "null"
182 #define PL_LOCK_IF( cond ) pl_lock_if( p_playlist, cond )
188 #define PL_UNLOCK_IF( cond ) pl_unlock_if( p_playlist, cond )
Structure containing information about the playlist.
Definition: vlc_playlist.h:151
struct playlist_private_t::@75 request
Helper structure to export to file part of the playlist.
Definition: vlc_playlist.h:117
FILE * vlc_fopen(const char *filename, const char *mode)
Opens a FILE pointer.
Definition: filesystem.c:46
bool killed
playlist is shutting down
Definition: playlist_internal.h:84
int playlist_AddInput(playlist_t *p_playlist, input_item_t *p_input, bool play_now, bool b_playlist)
Add an input item to the playlist node.
Definition: item.c:491
playlist_t * playlist_Create(vlc_object_t *)
Create playlist.
Definition: engine.c:195
playlist_item_t * get_current_status_node(playlist_t *p_playlist)
Definition: engine.c:403
int playlist_Export(playlist_t *p_playlist, const char *psz_filename, bool b_playlist, const char *psz_type)
Export a node of the playlist to a certain type of playlistfile.
Definition: loadsave.c:40
int playlist_Import(playlist_t *p_playlist, const char *psz_file)
Open a playlist file, add its content to the current playlist.
Definition: loadsave.c:91
static void input_item_subitem_tree_added(const vlc_event_t *p_event, void *user_data)
Definition: loadsave.c:115
playlist_item_t * p_node
Current node to play from.
Definition: playlist_internal.h:65
vlc_mutex_t lock
dah big playlist global lock
Definition: playlist_internal.h:82
void playlist_ItemRelease(playlist_t *, playlist_item_t *)
Release an item.
Definition: item.c:336
bool input_dead
Set when input has finished.
Definition: playlist_internal.h:78
playlist item / node
Definition: vlc_playlist.h:126
void playlist_Lock(playlist_t *pl)
Locks the playlist.
Definition: control.c:35
#define DIR_SEP
Definition: vlc_common.h:1023
int playlist_NodeInsert(playlist_item_t *, playlist_item_t *, int)
Definition: tree.c:147
void playlist_SendAddNotify(playlist_t *p_playlist, playlist_item_t *item)
Send a notification that an item has been added to a node.
Definition: item.c:697
#define PL_LOCK
Definition: vlc_playlist.h:216
playlist_item_t * get_current_status_item(playlist_t *p_playlist)
Accessor for status item and status nodes.
Definition: engine.c:396
#define PL_UNLOCK
Definition: vlc_playlist.h:217
Definition: vlc_events.h:101
bool cork_effective
Corked while actively playing.
Definition: playlist_internal.h:85
void ResetCurrentlyPlaying(playlist_t *p_playlist, playlist_item_t *p_cur)
Reset the currently playing playlist.
Definition: thread.c:143
playlist_item_t * p_item
Currently playing/active item.
Definition: playlist_internal.h:64
Definition: playlist_internal.h:46
union vlc_event_t::vlc_event_type_specific u
int playlist_MLDump(playlist_t *p_playlist)
Definition: loadsave.c:177
static void pl_lock_if(playlist_t *p_playlist, bool cond)
Definition: playlist_internal.h:182
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:86
bool b_preparse
Preparse items.
Definition: playlist_internal.h:92
#define _(str)
Definition: vlc_fixups.h:371
void set_current_status_node(playlist_t *, playlist_item_t *)
Definition: engine.c:418
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:350
int vlc_stat(const char *filename, struct stat *buf)
Finds file/inode information - like stat().
Definition: filesystem.c:170
int i_last_playlist_id
Last id to an item.
Definition: playlist_internal.h:87
Definition: vlc_events.h:122
pthread_cond_t vlc_cond_t
Condition variable.
Definition: vlc_threads.h:279
input_resource_t * p_input_resource
input resources
Definition: playlist_internal.h:59
int asprintf(char **, const char *,...)
#define var_Create(a, b, c)
Definition: vlc_variables.h:121
#define vlc_object_create(a, b)
Definition: vlc_objects.h:55
vlc_thread_t thread
engine thread
Definition: playlist_internal.h:81
void ResyncCurrentIndex(playlist_t *p_playlist, playlist_item_t *p_cur)
Synchronise the current index of the playlist to match the index of the current item.
Definition: thread.c:117
#define VLC_VAR_VOID
Definition: vlc_variables.h:48
int i_sds
Number of service discovery modules.
Definition: playlist_internal.h:56
vlc_renderer_item_t * p_renderer
Definition: playlist_internal.h:60
#define vlc_object_release(a)
Definition: vlc_objects.h:63
void * input_tree
Search tree for input item to playlist item mapping.
Definition: playlist_internal.h:51
int vlc_event_attach(vlc_event_manager_t *p_em, vlc_event_type_t event_type, vlc_event_callback_t pf_callback, void *p_user_data)
Add a callback for an event.
Definition: events.c:117
int vlc_rename(const char *oldpath, const char *newpath)
Moves a file atomically.
Definition: filesystem.c:194
int vlc_unlink(const char *filename)
Removes a file.
Definition: filesystem.c:180
struct playlist_private_t::@74 status
void playlist_Destroy(playlist_t *)
Destroy playlist.
Definition: engine.c:310
static void pl_unlock_if(playlist_t *p_playlist, bool cond)
Definition: playlist_internal.h:188
Internal module descriptor.
Definition: modules.h:79
void playlist_ServicesDiscoveryKillAll(playlist_t *p_playlist)
Definition: services_discovery.c:246
bool b_tree
Display as a tree.
Definition: playlist_internal.h:91
Thread handle.
Definition: vlc_threads.h:252
#define PL_ASSERT_LOCKED
Definition: vlc_playlist.h:218
Definition: vlc_configuration.h:123
int i_skip
Number of items to skip.
Definition: playlist_internal.h:73
playlist_t public_data
Definition: playlist_internal.h:48
void playlist_NodeDeleteExplicit(playlist_t *, playlist_item_t *, int flags)
Delete a node with explicit semantics.
Definition: tree.c:96
The main vlc_object_t structure.
Definition: vlc_objects.h:39
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:351
void set_current_status_item(playlist_t *, playlist_item_t *)
Definition: engine.c:410
pthread_mutex_t vlc_mutex_t
Mutex.
Definition: vlc_threads.h:267
struct playlist_private_t playlist_private_t
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:349
vlc_cond_t signal
wakes up the playlist engine thread
Definition: playlist_internal.h:83
#define VLC_USED
Definition: fourcc_gen.c:31
int playlist_InsertInputItemTree(playlist_t *p_playlist, playlist_item_t *p_parent, input_item_node_t *p_node, int i_pos, bool b_flat)
Insert a tree of input items into a given playlist node.
Definition: item.c:591
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:108
void playlist_Activate(playlist_t *)
Creates the main playlist thread.
Definition: thread.c:48
Definition: renderer_discovery.c:33
char * config_GetUserDir(vlc_userdir_t type)
Definition: specific.c:272
struct vlc_event_t::vlc_event_type_specific::vlc_input_item_subitem_tree_added input_item_subitem_tree_added
bool b_reset_currently_playing
Definition: playlist_internal.h:88
char * vlc_path2uri(const char *path, const char *scheme)
Converts local path to URL.
Definition: url.c:138
input_thread_t * p_input
the input thread associated with the current item
Definition: playlist_internal.h:57
playlist_item_t * playlist_ItemNewFromInput(playlist_t *p_playlist, input_item_t *p_input)
Definition: item.c:253
#define unlikely(p)
Definition: vlc_common.h:114
char * base_url
Definition: vlc_playlist.h:120
int config_CreateDir(vlc_object_t *, const char *)
Definition: file.c:263
playlist_item_t * p_playing
Definition: vlc_playlist.h:162
FILE * p_file
Definition: vlc_playlist.h:121
bool b_request
Set to true by the requester The playlist sets it back to false when processing the request.
Definition: playlist_internal.h:75
const char * vlc_strerror_c(int errnum)
Definition: error.c:34
Definition: services_discovery.c:32
struct intf_thread_t * interface
Linked-list of interfaces.
Definition: playlist_internal.h:49
playlist_item_t * playlist_GetNextLeaf(playlist_t *, playlist_item_t *p_root, playlist_item_t *p_item, bool b_ena, bool b_unplayed)
Finds the next item to play.
Definition: tree.c:204
void vlc_event_detach(vlc_event_manager_t *p_em, vlc_event_type_t event_type, vlc_event_callback_t pf_callback, void *p_user_data)
Remove a callback for an event.
Definition: events.c:142
playlist_item_t * p_media_library
Definition: vlc_playlist.h:163
int playlist_MLLoad(playlist_t *p_playlist)
Definition: loadsave.c:128
void playlist_Unlock(playlist_t *pl)
Unlocks the playlist.
Definition: control.c:40
playlist_item_t * p_root
Definition: vlc_playlist.h:122
#define module_unneed(a, b)
Definition: vlc_modules.h:49
unsigned i_consecutive_errors
Reset current item array.
Definition: playlist_internal.h:89
void * id_tree
Search tree for item ID to item mapping.
Definition: playlist_internal.h:53
#define msg_Err(p_this,...)
Definition: vlc_messages.h:82
#define module_need(a, b, c, d)
Definition: vlc_modules.h:47
Describe all interface-specific data of the interface thread.
Definition: vlc_interface.h:46
vlc_sd_internal_t ** pp_sds
Definition: playlist_internal.h:55