Go to the documentation of this file.
24 #ifndef LIBVLC_INPUT_ITEM_H
25 #define LIBVLC_INPUT_ITEM_H 1
40 # define item_owner(item) ((struct input_item_owner *)(item))
#define ARRAY_VAL(array, pos)
Definition: vlc_arrays.h:222
Structure containing information about the playlist.
Definition: vlc_playlist.h:151
uint16_t i_id
Definition: vlc_epg.h:36
struct playlist_private_t::@75 request
#define TAB_CLEAN(count, tab)
Definition: vlc_arrays.h:46
char * psz_filename
Definition: item.c:1422
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
Definition: vlc_events.h:100
void * p_obj
Definition: vlc_events.h:125
char * psz_name
Definition: vlc_epg.h:53
#define var_SetAddress(o, n, p)
Definition: vlc_variables.h:260
playlist_item_t * p_node
Current node to play from.
Definition: playlist_internal.h:65
void var_OptionParse(vlc_object_t *, const char *, bool trusted)
Parse a stringified option This function parse a string option and create the associated object varia...
Definition: variables.c:1029
playlist_item_t * playlist_NodeCreate(playlist_t *p_playlist, const char *psz_name, playlist_item_t *p_parent, int i_pos, int i_flags)
Create a playlist node.
Definition: tree.c:56
struct input_item_owner input_item_owner_t
void playlist_ItemRelease(playlist_t *p_playlist, playlist_item_t *p_item)
Release an item.
Definition: item.c:336
int strcasecmp(const char *, const char *)
#define ARRAY_APPEND(array, elem)
Definition: vlc_arrays.h:187
playlist_item_t * playlist_NodeAddInput(playlist_t *p_playlist, input_item_t *p_input, playlist_item_t *p_parent, int i_pos)
Add an input item to a given node.
Definition: item.c:517
static void playlist_ViewPlay(playlist_t *pl, playlist_item_t *node, playlist_item_t *item)
Definition: vlc_playlist.h:306
Definition: vlc_events.h:102
input_item_node_t * p_node
Definition: item.c:1423
#define EMPTY_STR(str)
Definition: vlc_common.h:768
int playlist_Add(playlist_t *p_playlist, const char *psz_uri, bool play_now)
Playlist add.
Definition: item.c:448
static void input_item_changed(const vlc_event_t *p_event, void *user_data)
Definition: item.c:225
#define TAB_FIND(count, tab, p, idx)
Definition: vlc_arrays.h:67
playlist_item_array_t current
Items currently being played.
Definition: vlc_playlist.h:157
playlist item / node
Definition: vlc_playlist.h:126
void * tdelete(const void *key, void **rootp, int(*cmp)(const void *, const void *))
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
int playlist_NodeAddCopy(playlist_t *p_playlist, playlist_item_t *p_item, playlist_item_t *p_parent, int i_pos)
Copy an item (and all its children, if any) into another node.
Definition: item.c:551
#define var_InheritInteger(o, n)
Definition: vlc_variables.h:612
char * psz_name
Name of this category.
Definition: vlc_input_item.h:50
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
int playlist_AddExt(playlist_t *p_playlist, const char *psz_uri, const char *psz_name, bool play_now, int i_options, const char *const *ppsz_options, unsigned i_option_flags, bool b_playlist)
Add a MRL into the playlist or the media library, duration and options given.
Definition: item.c:467
Definition: vlc_events.h:104
Definition: vlc_events.h:101
static int ItemIndex(playlist_item_t *p_item)
Definition: item.c:603
unsigned i_nb_played
Times played.
Definition: vlc_playlist.h:133
size_t i_event
Definition: vlc_epg.h:56
#define var_InheritBool(o, n)
Definition: vlc_variables.h:601
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
void vlc_UrlClean(vlc_url_t *restrict url)
Definition: url.c:594
Definition: playlist_internal.h:46
union vlc_event_t::vlc_event_type_specific u
Definition: vlc_input_item.h:48
libvlc_int_t * libvlc
LibVLC instance.
Definition: vlc_common.h:441
int vlc_UrlParse(vlc_url_t *url, const char *str)
Parses an URI or IRI.
Definition: url.c:554
int i_children
Number of children, -1 if not a node.
Definition: vlc_playlist.h:132
bool b_preparse
Preparse items.
Definition: playlist_internal.h:92
static int info_category_DeleteInfo(info_category_t *cat, const char *name)
Definition: info.h:113
const char psz_ext[7]
Definition: image.c:581
input_item_node_t * p_node
Definition: item.c:1428
#define ARRAY_REMOVE(array, pos)
Definition: vlc_arrays.h:211
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:350
#define VLC_VAR_ADDRESS
Definition: vlc_variables.h:53
#define ARRAY_SIZE(x)
Definition: vlc_arrays.h:162
static info_category_t * info_category_New(const char *name)
Definition: info.h:46
Definition: vlc_events.h:122
void vlc_cond_signal(vlc_cond_t *p_condvar)
Wakes up one thread waiting on a condition variable.
Definition: thread.c:256
#define var_InheritString(o, n)
Definition: vlc_variables.h:639
static int playlist_ItemCmpInput(const void *a, const void *b)
Definition: item.c:241
int asprintf(char **, const char *,...)
uint32_t i_id
Definition: vlc_epg.h:54
#define var_Create(a, b, c)
Definition: vlc_variables.h:121
#define vlc_object_create(a, b)
Definition: vlc_objects.h:55
char * vlc_uri_decode(char *str)
Decodes an URI component in place.
Definition: url.c:53
void playlist_Control(playlist_t *p_playlist, int query, int locked,...)
Do a playlist action.
Definition: control.c:139
#define TAB_ERASE(count, tab, index)
Definition: vlc_arrays.h:77
static void playlist_Preparse(playlist_t *, playlist_item_t *)
Definition: item.c:727
void playlist_Clear(playlist_t *p_playlist, bool b_locked)
Clear the playlist.
Definition: item.c:425
bool b_net
Definition: item.c:1141
char * psz_host
Definition: vlc_url.h:150
uint32_t i_duration
Definition: vlc_epg.h:35
#define vlc_object_release(a)
Definition: vlc_objects.h:63
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
#define ARRAY_BSEARCH(array, elem, zetype, key, answer)
Definition: vlc_arrays.h:224
No arg res=can fail.
Definition: vlc_playlist.h:226
int i_type
Definition: httpd.c:1250
char * psz_protocol
Definition: vlc_url.h:147
char * strcasestr(const char *, const char *)
playlist_item_t * p_parent
Item parent.
Definition: vlc_playlist.h:131
static int RecursiveInsertCopy(playlist_t *p_playlist, playlist_item_t *p_item, playlist_item_t *p_parent, int i_pos, bool b_flat)
Definition: item.c:818
#define TAB_INSERT(count, tab, p, index)
Definition: vlc_arrays.h:113
input_item_node_t * p_node
Definition: vlc_input_item.h:433
int64_t i_start
Definition: vlc_epg.h:34
void vlc_assert_locked(vlc_mutex_t *p_mutex)
Definition: thread.c:117
void ** pp_slaves
Definition: vlc_input_item.h:434
static void info_category_Delete(info_category_t *cat)
Definition: info.h:124
vlc_epg_event_t ** pp_event
Definition: vlc_epg.h:57
#define PL_LOCK_IF(cond)
Definition: playlist_internal.h:181
int vlc_filenamecmp(const char *a, const char *b)
Definition: strings.c:829
Definition: vlc_events.h:106
#define TAB_APPEND(count, tab, p)
Definition: vlc_arrays.h:64
#define PL_UNLOCK_IF(cond)
Definition: playlist_internal.h:187
int playlist_TreeMove(playlist_t *p_playlist, playlist_item_t *p_item, playlist_item_t *p_node, int i_newpos)
Moves an item.
Definition: item.c:626
const char * psz_name
Definition: vlc_codecs.h:315
static int RecursiveAddIntoParent(playlist_t *p_playlist, playlist_item_t *p_parent, input_item_node_t *p_node, int i_pos, bool b_flat, playlist_item_t **pp_first_leaf)
Definition: item.c:768
#define PL_ASSERT_LOCKED
Definition: vlc_playlist.h:218
void vlc_mutex_init(vlc_mutex_t *p_mutex)
Initializes a fast mutex.
Definition: thread.c:85
Definition: vlc_events.h:114
size_t i_slaves
Definition: vlc_input_item.h:435
#define var_SetInteger(a, b, c)
Definition: vlc_variables.h:256
uint8_t i_type
Definition: item.c:1140
void vlc_event_manager_fini(vlc_event_manager_t *p_em)
Destroy the event manager.
Definition: events.c:75
char * psz_description
Definition: vlc_epg.h:40
struct vlc_common_members obj
Definition: vlc_playlist.h:153
int playlist_TreeMoveMany(playlist_t *p_playlist, int i_items, playlist_item_t **pp_items, playlist_item_t *p_node, int i_newpos)
Moves an array of items.
Definition: item.c:661
void vlc_event_manager_init(vlc_event_manager_t *p_em, void *p_obj)
Initialize event manager object p_obj is the object that contains the event manager.
Definition: events.c:61
static int playlist_ItemCmpId(const void *a, const void *b)
Definition: item.c:233
void playlist_NodeDelete(playlist_t *p_playlist, playlist_item_t *p_root)
Remove all the children of a node and removes the node.
Definition: tree.c:90
void playlist_NodeDeleteExplicit(playlist_t *, playlist_item_t *, int flags)
Delete a node with explicit semantics.
Definition: tree.c:96
int i_id
Playlist item specific id.
Definition: vlc_playlist.h:135
playlist_item_t * playlist_ItemGetById(playlist_t *p_playlist, int id)
Finds a playlist item by ID.
Definition: item.c:383
struct info_t ** pp_infos
Pointer to an array of infos.
Definition: vlc_input_item.h:52
#define likely(p)
Definition: vlc_common.h:113
Definition: vlc_url.h:145
The main vlc_object_t structure.
Definition: vlc_objects.h:39
static char * EnsureUTF8(char *str)
Removes non-UTF-8 sequences.
Definition: vlc_charset.h:94
size_t i_dirs
Definition: vlc_input_item.h:437
char * psz_ignored_exts
Definition: vlc_input_item.h:441
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:351
char * psz_short_description
Definition: vlc_epg.h:39
void input_item_UpdateTracksInfo(input_item_t *item, const es_format_t *fmt)
Definition: item.c:1311
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:349
void * tfind(const void *key, const void **rootp, int(*cmp)(const void *, const void *))
vlc_cond_t signal
wakes up the playlist engine thread
Definition: playlist_internal.h:83
char * strdup(const char *)
char * psz_name
Definition: vlc_epg.h:38
bool b_show_hiddenfiles
Definition: vlc_input_item.h:439
bool b_present
Definition: vlc_epg.h:58
uint16_t i_source_id
Definition: vlc_epg.h:55
uint8_t i_flags
Flags.
Definition: vlc_playlist.h:136
unsigned i_port
Definition: vlc_url.h:151
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
static void input_item_add_subitem_tree(const vlc_event_t *p_event, void *user_data)
Definition: item.c:52
static info_t * info_category_VaAddInfo(info_category_t *cat, const char *name, const char *format, va_list args)
Definition: info.h:83
#define item_owner(item)
Definition: item.h:39
#define PLAYLIST_END
Definition: vlc_playlist.h:204
const char name[16]
Definition: httpd.c:1249
static void ChangeToNode(playlist_t *p_playlist, playlist_item_t *p_item)
Definition: item.c:748
#define TAB_INIT(count, tab)
Definition: vlc_arrays.h:40
Definition: vlc_events.h:105
void ** pp_dirs
Definition: vlc_input_item.h:436
Definition: fourcc_gen.c:50
void vlc_epg_Delete(vlc_epg_t *p_epg)
It releases a vlc_epg_t*.
Definition: epg.c:197
struct vlc_event_t::vlc_event_type_specific::vlc_input_item_subitem_tree_added input_item_subitem_tree_added
static info_t * info_category_FindInfo(const info_category_t *cat, int *index, const char *name)
Definition: info.h:58
bool b_reset_currently_playing
Definition: playlist_internal.h:88
#define TAB_REMOVE(count, tab, p)
Definition: vlc_arrays.h:91
void vlc_mutex_destroy(vlc_mutex_t *p_mutex)
Deinitializes a mutex.
Definition: thread.c:110
playlist_item_t * playlist_ItemNewFromInput(playlist_t *p_playlist, input_item_t *p_input)
Definition: item.c:253
vlc_epg_event_t * vlc_epg_event_Duplicate(const vlc_epg_event_t *p_src)
Returns a vlc_epg_event_t * duplicated from p_src.
Definition: epg.c:73
void vlc_mutex_unlock(vlc_mutex_t *p_mutex)
Releases a mutex.
Definition: thread.c:138
#define unlikely(p)
Definition: vlc_common.h:114
#define pl_priv(pl)
Definition: playlist_internal.h:95
Definition: vlc_input_item.h:42
playlist_item_t * p_playing
Definition: vlc_playlist.h:162
playlist_item_t * playlist_ItemGetByInput(playlist_t *p_playlist, const input_item_t *item)
Finds a playlist item by input item.
Definition: item.c:406
const vlc_epg_event_t * p_current
Definition: vlc_epg.h:59
struct tm * localtime_r(const time_t *, struct tm *)
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
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
char psz_path[]
Definition: item.c:1429
int64_t mtime_t
High precision date or time interval.
Definition: vlc_common.h:150
static void info_category_ReplaceInfo(info_category_t *cat, info_t *info)
Definition: info.h:71
playlist_item_t ** pp_children
Children nodes/items.
Definition: vlc_playlist.h:130
void * tsearch(const void *key, void **rootp, int(*cmp)(const void *, const void *))
playlist_item_t * p_media_library
Definition: vlc_playlist.h:163
int i_sub_autodetect_fuzzy
Definition: vlc_input_item.h:438
int i_infos
Number of infos in the category.
Definition: vlc_input_item.h:51
Access pf_readdir helper struct.
Definition: vlc_input_item.h:431
vlc_epg_t * vlc_epg_Duplicate(const vlc_epg_t *p_src)
Returns a duplicated p_src and its associated events.
Definition: epg.c:220
int vlc_MetadataRequest(libvlc_int_t *libvlc, input_item_t *item, input_item_meta_request_option_t i_options, int timeout, void *id)
Definition: libvlc.c:487
playlist_item_array_t items
Arrays of items.
Definition: vlc_playlist.h:155
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:948
void input_item_SetErrorWhenReading(input_item_t *p_i, bool b_error)
Definition: item.c:50
bool b_flatten
Definition: vlc_input_item.h:440
const char * psz_scheme
Definition: item.c:1139
int i_size
Definition: vlc_playlist.h:54
bool input_item_ShouldPreparseSubItems(input_item_t *p_i)
Definition: item.c:458
char * psz_path
Definition: vlc_url.h:152
void vlc_mutex_lock(vlc_mutex_t *p_mutex)
Acquires a mutex.
Definition: thread.c:123
Definition: vlc_playlist.h:208
mtime_t playlist_GetNodeDuration(playlist_item_t *node)
Get the duration of all items in a node.
Definition: item.c:711
void vlc_epg_event_Delete(vlc_epg_event_t *p_event)
Releases a vlc_epg_event_t*.
Definition: epg.c:46
input_item_slave_t * p_slave
Definition: item.c:1421
Must playlist stop if the item gets subitems ?
Definition: vlc_playlist.h:142
#define var_GetBool(a, b)
Definition: vlc_variables.h:656
input_item_t * p_input
Linked input item.
Definition: vlc_playlist.h:128
void vlc_event_send(vlc_event_manager_t *p_em, vlc_event_t *p_event)
Send an event to the listener attached to this p_em.
Definition: events.c:95
char * psz_value
Value of the info.
Definition: vlc_input_item.h:45