VLC  3.0.15
item.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * item.h
3  *****************************************************************************
4  * Copyright (C) 2008 Laurent Aimar
5  * $Id: f4b89a411fd07b6b3082161a749d44094e73dc29 $
6  *
7  * Authors: Laurent Aimar <fenrir _AT_ videolan _DOT_ org>
8  *
9  * This program is free software; you can redistribute it and/or modify it
10  * under the terms of the GNU Lesser General Public License as published by
11  * the Free Software Foundation; either version 2.1 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public License
20  * along with this program; if not, write to the Free Software Foundation,
21  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22  *****************************************************************************/
23 
24 #ifndef LIBVLC_INPUT_ITEM_H
25 #define LIBVLC_INPUT_ITEM_H 1
26 
27 #include "input_interface.h"
28 #include <vlc_atomic.h>
29 
30 void input_item_SetErrorWhenReading( input_item_t *p_i, bool b_error );
31 void input_item_UpdateTracksInfo( input_item_t *item, const es_format_t *fmt );
33 
34 typedef struct input_item_owner
35 {
37  atomic_uint refs;
39 
40 # define item_owner(item) ((struct input_item_owner *)(item))
41 
42 #endif
input_item_SignalPreparseEnded
void input_item_SignalPreparseEnded(input_item_t *p_i, int status)
Definition: item.c:68
ARRAY_VAL
#define ARRAY_VAL(array, pos)
Definition: vlc_arrays.h:222
input_item_MergeInfos
void input_item_MergeInfos(input_item_t *p_item, info_category_t *p_cat)
Definition: item.c:847
rdh_should_match_idx
static int rdh_should_match_idx(struct vlc_readdir_helper *p_rdh, struct rdh_slave *p_rdh_sub)
Definition: item.c:1520
playlist_t
Structure containing information about the playlist.
Definition: vlc_playlist.h:151
input_item_t::event_manager
vlc_event_manager_t event_manager
Definition: vlc_input_item.h:91
vlc_epg_event_t::i_id
uint16_t i_id
Definition: vlc_epg.h:36
playlist_private_t::request
struct playlist_private_t::@75 request
TAB_CLEAN
#define TAB_CLEAN(count, tab)
Definition: vlc_arrays.h:46
input_item_CopyOptions
void input_item_CopyOptions(input_item_t *p_child, input_item_t *p_parent)
Definition: item.c:158
rdh_slave::psz_filename
char * psz_filename
Definition: item.c:1422
input_item_t::p_meta
vlc_meta_t * p_meta
Definition: vlc_input_item.h:80
SLAVE_TYPE_SPU
Definition: vlc_input_item.h:131
playlist_AddInput
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
vlc_InputItemMetaChanged
Definition: vlc_events.h:100
vlc_event_t::p_obj
void * p_obj
Definition: vlc_events.h:125
rdh_unflatten
static int rdh_unflatten(struct vlc_readdir_helper *p_rdh, input_item_node_t **pp_node, const char *psz_path, int i_net)
Definition: item.c:1629
ITEM_NET
Definition: vlc_input_item.h:125
input_item_GetName
char * input_item_GetName(input_item_t *p_item)
Definition: item.c:301
vlc_epg_t::psz_name
char * psz_name
Definition: vlc_epg.h:53
info.h
vlc_meta_Get
const char * vlc_meta_Get(const vlc_meta_t *p_meta, vlc_meta_type_t meta_type)
Definition: meta.c:131
var_SetAddress
#define var_SetAddress(o, n, p)
Definition: vlc_variables.h:260
playlist_private_t::p_node
playlist_item_t * p_node
Current node to play from.
Definition: playlist_internal.h:65
input_item_slave::i_priority
enum slave_priority i_priority
Slave priority.
Definition: vlc_input_item.h:175
var_OptionParse
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
input_item_t::optflagv
uint8_t * optflagv
Some flags of input options.
Definition: vlc_input_item.h:65
playlist_NodeCreate
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
input_item_owner_t
struct input_item_owner input_item_owner_t
ITEM_NET_UNKNOWN
Definition: vlc_input_item.h:124
playlist_ItemRelease
void playlist_ItemRelease(playlist_t *p_playlist, playlist_item_t *p_item)
Release an item.
Definition: item.c:336
strcasecmp
int strcasecmp(const char *, const char *)
ITEM_TYPE_PLAYLIST
Definition: vlc_input_item.h:115
ARRAY_APPEND
#define ARRAY_APPEND(array, elem)
Definition: vlc_arrays.h:187
playlist_NodeAddInput
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
input_item_t::i_categories
int i_categories
Number of info categories.
Definition: vlc_input_item.h:72
input_item_t::i_options
int i_options
Number of input options.
Definition: vlc_input_item.h:63
input_item_slave_New
input_item_slave_t * input_item_slave_New(const char *psz_uri, enum slave_type i_type, enum slave_priority i_priority)
Definition: item.c:668
input_item_AddOption
int input_item_AddOption(input_item_t *p_input, const char *psz_option, unsigned flags)
This function allows to add an option to an existing input_item_t.
Definition: item.c:531
vlc_meta_Merge
void vlc_meta_Merge(vlc_meta_t *dst, const vlc_meta_t *src)
Merging meta.
Definition: meta.c:177
playlist_ViewPlay
static void playlist_ViewPlay(playlist_t *pl, playlist_item_t *node, playlist_item_t *item)
Definition: vlc_playlist.h:306
vlc_epg_event_t
Definition: vlc_epg.h:32
vlc_InputItemDurationChanged
Definition: vlc_events.h:102
rdh_slave::p_node
input_item_node_t * p_node
Definition: item.c:1423
EMPTY_STR
#define EMPTY_STR(str)
Definition: vlc_common.h:768
SLAVE_TYPE_AUDIO
Definition: vlc_input_item.h:132
SLAVE_PRIORITY_MATCH_LEFT
Definition: vlc_input_item.h:139
playlist_Add
int playlist_Add(playlist_t *p_playlist, const char *psz_uri, bool play_now)
Playlist add.
Definition: item.c:448
input_item_changed
static void input_item_changed(const vlc_event_t *p_event, void *user_data)
Definition: item.c:225
TAB_FIND
#define TAB_FIND(count, tab, p, idx)
Definition: vlc_arrays.h:67
vlc_common.h
playlist_t::current
playlist_item_array_t current
Items currently being played.
Definition: vlc_playlist.h:157
playlist_item_t
playlist item / node
Definition: vlc_playlist.h:126
input_item_ShouldPreparseSubItems
bool input_item_ShouldPreparseSubItems(input_item_t *p_item)
Definition: item.c:458
input_item_t::i_preparse_depth
int i_preparse_depth
How many level of sub items can be preparsed: -1: recursive, 0: none, >0: n levels.
Definition: vlc_input_item.h:100
input_item_SetName
void input_item_SetName(input_item_t *p_item, const char *psz_name)
Definition: item.c:310
vlc_readdir_helper_additem
int vlc_readdir_helper_additem(struct vlc_readdir_helper *p_rdh, const char *psz_uri, const char *psz_flatpath, const char *psz_filename, int i_type, int i_net)
Add a new input_item_t entry to the node of the vlc_readdir_helper struct.
Definition: item.c:1751
input_item_AddInfo
int input_item_AddInfo(input_item_t *p_i, const char *psz_cat, const char *psz_name, const char *psz_format,...)
Definition: item.c:770
tdelete
void * tdelete(const void *key, void **rootp, int(*cmp)(const void *, const void *))
playlist_NodeInsert
int playlist_NodeInsert(playlist_item_t *, playlist_item_t *, int)
Definition: tree.c:147
playlist_SendAddNotify
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
input_item_node_Create
input_item_node_t * input_item_node_Create(input_item_t *p_input)
Start adding multiple subitems.
Definition: item.c:1240
input_item_t::b_error_when_reading
bool b_error_when_reading
Error When Reading.
Definition: vlc_input_item.h:98
PL_LOCK
#define PL_LOCK
Definition: vlc_playlist.h:216
playlist_NodeAddCopy
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
var_InheritInteger
#define var_InheritInteger(o, n)
Definition: vlc_variables.h:612
info_category_t::psz_name
char * psz_name
Name of this category.
Definition: vlc_input_item.h:50
input_item_t
Describes an input and is used to spawn input_thread_t objects.
Definition: vlc_input_item.h:58
input_item_t::i_slaves
int i_slaves
running/selected program cur/next EPG table
Definition: vlc_input_item.h:87
get_current_status_item
playlist_item_t * get_current_status_item(playlist_t *p_playlist)
Accessor for status item and status nodes.
Definition: engine.c:396
input_item_opaque
Definition: item.c:41
input_item_t::i_epg
int i_epg
Number of EPG entries.
Definition: vlc_input_item.h:82
PL_UNLOCK
#define PL_UNLOCK
Definition: vlc_playlist.h:217
playlist_AddExt
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
input_item_t::pp_categories
info_category_t ** pp_categories
Pointer to the first info category.
Definition: vlc_input_item.h:73
ITEM_TYPE_FILE
Definition: vlc_input_item.h:110
input_item_opaque::value
void * value
Definition: item.c:64
input_item_t::i_epg_time
int64_t i_epg_time
Definition: vlc_input_item.h:84
es_format_t::i_id
int i_id
es identifier, where means -1: let the core mark the right id >=0: valid id
Definition: vlc_es.h:586
vlc_InputItemNameChanged
Definition: vlc_events.h:104
vlc_InputItemSubItemTreeAdded
Definition: vlc_events.h:101
input_item_t::lock
vlc_mutex_t lock
Lock for the item.
Definition: vlc_input_item.h:93
ItemIndex
static int ItemIndex(playlist_item_t *p_item)
Definition: item.c:603
SLAVE_PRIORITY_MATCH_RIGHT
Definition: vlc_input_item.h:138
typecmp
static int typecmp(const void *key, const void *entry)
Definition: item.c:1144
input_item_AddOpaque
int input_item_AddOpaque(input_item_t *item, const char *name, void *value)
Definition: item.c:582
playlist_item_t::i_nb_played
unsigned i_nb_played
Times played.
Definition: vlc_playlist.h:133
input_item_t::optflagc
unsigned optflagc
Definition: vlc_input_item.h:66
input_item_node_t::pp_children
input_item_node_t ** pp_children
Definition: vlc_input_item.h:184
input_item_net_type
input_item_net_type
Definition: vlc_input_item.h:122
vlc_epg_t::i_event
size_t i_event
Definition: vlc_epg.h:56
var_InheritBool
#define var_InheritBool(o, n)
Definition: vlc_variables.h:601
vlc_charset.h
ResetCurrentlyPlaying
void ResetCurrentlyPlaying(playlist_t *p_playlist, playlist_item_t *p_cur)
Reset the currently playing playlist.
Definition: thread.c:143
input_item_New
#define input_item_New(psz_uri, psz_name)
Definition: vlc_input_item.h:333
playlist_private_t::p_item
playlist_item_t * p_item
Currently playing/active item.
Definition: playlist_internal.h:64
vlc_UrlClean
void vlc_UrlClean(vlc_url_t *restrict url)
Definition: url.c:594
playlist_private_t
Definition: playlist_internal.h:46
vlc_event_t::u
union vlc_event_t::vlc_event_type_specific u
bsearch_strcmp_cb
static int bsearch_strcmp_cb(const void *a, const void *b)
Definition: item.c:619
info_category_t
Definition: vlc_input_item.h:48
vlc_common_members::libvlc
libvlc_int_t * libvlc
LibVLC instance.
Definition: vlc_common.h:441
vlc_UrlParse
int vlc_UrlParse(vlc_url_t *url, const char *str)
Parses an URI or IRI.
Definition: url.c:554
playlist_item_t::i_children
int i_children
Number of children, -1 if not a node.
Definition: vlc_playlist.h:132
playlist_private_t::b_preparse
bool b_preparse
Preparse items.
Definition: playlist_internal.h:92
es_format_Clean
void es_format_Clean(es_format_t *fmt)
This function will clean up a es_format_t and release all associated resources.
Definition: es_format.c:539
input_item_node_Delete
void input_item_node_Delete(input_item_node_t *p_node)
Delete a node created with input_item_node_Create() and all its children.
Definition: item.c:1257
vlc_meta_NowPlaying
Definition: vlc_meta.h:47
info_category_DeleteInfo
static int info_category_DeleteInfo(info_category_t *cat, const char *name)
Definition: info.h:113
psz_ext
const char psz_ext[7]
Definition: image.c:581
rdh_dir::p_node
input_item_node_t * p_node
Definition: item.c:1428
input_item_Copy
input_item_t * input_item_Copy(input_item_t *p_input)
This function creates a new input_item_t as a copy of another.
Definition: item.c:1108
ARRAY_REMOVE
#define ARRAY_REMOVE(array, pos)
Definition: vlc_arrays.h:211
InputItemVaAddInfo
static int InputItemVaAddInfo(input_item_t *p_i, const char *psz_cat, const char *psz_name, const char *psz_format, va_list args)
Definition: item.c:749
rdh_slave
Definition: item.c:1419
VLC_EGENERIC
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:350
VLC_VAR_ADDRESS
#define VLC_VAR_ADDRESS
Definition: vlc_variables.h:53
ARRAY_SIZE
#define ARRAY_SIZE(x)
Definition: vlc_arrays.h:162
info_category_New
static info_category_t * info_category_New(const char *name)
Definition: info.h:46
input_item_node_AppendNode
void input_item_node_AppendNode(input_item_node_t *p_parent, input_item_node_t *p_child)
Add an already created node to children of this parent node.
Definition: item.c:1287
input_item_GetDuration
mtime_t input_item_GetDuration(input_item_t *p_i)
Definition: item.c:398
vlc_event_t
Definition: vlc_events.h:122
input_item_GetAlbum
static char * input_item_GetAlbum(input_item_t *p_input)
Definition: vlc_input_item.h:290
vlc_cond_signal
void vlc_cond_signal(vlc_cond_t *p_condvar)
Wakes up one thread waiting on a condition variable.
Definition: thread.c:256
rdh_get_slave_priority
static uint8_t rdh_get_slave_priority(input_item_t *p_item, input_item_slave_t *p_slave, const char *psz_slave_filename)
Definition: item.c:1463
input_item_node_t::i_children
int i_children
Definition: vlc_input_item.h:183
var_InheritString
#define var_InheritString(o, n)
Definition: vlc_variables.h:639
playlist_ItemCmpInput
static int playlist_ItemCmpInput(const void *a, const void *b)
Definition: item.c:241
ITEM_TYPE_CARD
Definition: vlc_input_item.h:113
asprintf
int asprintf(char **, const char *,...)
input_item_AddOptions
int input_item_AddOptions(input_item_t *p_item, int i_options, const char *const *ppsz_options, unsigned i_flags)
This function add several options to an existing input_item_t.
Definition: item.c:572
vlc_epg_t::i_id
uint32_t i_id
Definition: vlc_epg.h:54
vlc_rand.h
var_Create
#define var_Create(a, b, c)
Definition: vlc_variables.h:121
input_item_NewExt
input_item_t * input_item_NewExt(const char *psz_uri, const char *psz_name, mtime_t duration, int type, enum input_item_net_type i_net)
This function creates a new input_item_t with the provided information.
Definition: item.c:1057
vlc_object_create
#define vlc_object_create(a, b)
Definition: vlc_objects.h:55
vlc_uri_decode
char * vlc_uri_decode(char *str)
Decodes an URI component in place.
Definition: url.c:53
input_item_AddSlave
int input_item_AddSlave(input_item_t *p_item, input_item_slave_t *p_slave)
This function allows adding a slave to an existing input item.
Definition: item.c:686
input_item_SetArtNotFound
void input_item_SetArtNotFound(input_item_t *p_i, bool b_not_found)
Definition: item.c:106
vlc_meta_t
Definition: meta.c:41
input_item_opaque::next
struct input_item_opaque * next
Definition: item.c:63
item_type_entry
Definition: item.c:1137
input_item_SetEpg
void input_item_SetEpg(input_item_t *p_item, const vlc_epg_t *p_update, bool b_current_source)
Definition: item.c:918
playlist_Control
void playlist_Control(playlist_t *p_playlist, int query, int locked,...)
Do a playlist action.
Definition: control.c:139
TAB_ERASE
#define TAB_ERASE(count, tab, index)
Definition: vlc_arrays.h:77
playlist_Preparse
static void playlist_Preparse(playlist_t *, playlist_item_t *)
Definition: item.c:727
vlc_event_t::vlc_event_type_specific::vlc_input_item_subitem_tree_added::p_root
input_item_node_t * p_root
Definition: vlc_events.h:139
vlc_meta_Title
Definition: vlc_meta.h:35
playlist_Clear
void playlist_Clear(playlist_t *p_playlist, bool b_locked)
Clear the playlist.
Definition: item.c:425
item_type_entry::b_net
bool b_net
Definition: item.c:1141
vlc_url_t::psz_host
char * psz_host
Definition: vlc_url.h:150
input_item_ApplyOptions
void input_item_ApplyOptions(vlc_object_t *obj, input_item_t *item)
Definition: item.c:601
slave_priority
slave_priority
Definition: vlc_input_item.h:135
vlc_epg_event_t::i_duration
uint32_t i_duration
Definition: vlc_epg.h:35
rdh_attach_slaves
static void rdh_attach_slaves(struct vlc_readdir_helper *p_rdh, input_item_node_t *p_parent_node)
Definition: item.c:1559
vlc_object_release
#define vlc_object_release(a)
Definition: vlc_objects.h:63
vlc_event_attach
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
ARRAY_BSEARCH
#define ARRAY_BSEARCH(array, elem, zetype, key, answer)
Definition: vlc_arrays.h:224
slave_type
slave_type
Definition: vlc_input_item.h:129
PLAYLIST_STOP
No arg res=can fail.
Definition: vlc_playlist.h:226
i_type
int i_type
Definition: httpd.c:1250
vlc_url_t::psz_protocol
char * psz_protocol
Definition: vlc_url.h:147
strcasestr
char * strcasestr(const char *, const char *)
playlist_item_t::p_parent
playlist_item_t * p_parent
Item parent.
Definition: vlc_playlist.h:131
input_item_owner::item
input_item_t item
Definition: item.h:35
input_item_t::psz_name
char * psz_name
text describing this item
Definition: vlc_input_item.h:60
es_format_t
Definition: vlc_es.h:580
input_item_t::i_duration
mtime_t i_duration
Duration in microseconds.
Definition: vlc_input_item.h:69
input_item_SetArtFetched
void input_item_SetArtFetched(input_item_t *p_i, bool b_art_fetched)
Definition: item.c:125
RecursiveInsertCopy
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
vlc_atomic.h
input_item_SetPreparsed
void input_item_SetPreparsed(input_item_t *p_i, bool b_preparsed)
Definition: item.c:75
input_item_GetTitleFbName
char * input_item_GetTitleFbName(input_item_t *p_item)
Definition: item.c:279
TAB_INSERT
#define TAB_INSERT(count, tab, p, index)
Definition: vlc_arrays.h:113
vlc_readdir_helper::p_node
input_item_node_t * p_node
Definition: vlc_input_item.h:433
input_item_slave::b_forced
bool b_forced
Slave should be selected.
Definition: vlc_input_item.h:176
vlc_epg_event_t::i_start
int64_t i_start
Definition: vlc_epg.h:34
vlc_assert_locked
void vlc_assert_locked(vlc_mutex_t *p_mutex)
Definition: thread.c:117
vlc_interface.h
input_item_t::opaques
input_item_opaque_t * opaques
List of opaque pointer values.
Definition: vlc_input_item.h:67
input_item_IsPreparsed
bool input_item_IsPreparsed(input_item_t *p_item)
Definition: item.c:440
vlc_strings.h
rdh_dir
Definition: item.c:1426
vlc_meta_SetStatus
void vlc_meta_SetStatus(vlc_meta_t *m, int status)
Definition: meta.c:168
vlc_readdir_helper::pp_slaves
void ** pp_slaves
Definition: vlc_input_item.h:434
GuessType
static int GuessType(const input_item_t *p_item, bool *p_net)
Definition: item.c:1153
vlc_meta_Delete
void vlc_meta_Delete(vlc_meta_t *m)
Definition: meta.c:110
input_item_IsArtFetched
bool input_item_IsArtFetched(input_item_t *p_item)
Definition: item.c:449
input_item_t::pp_slaves
input_item_slave_t ** pp_slaves
Slave entries that will be loaded by the input_thread.
Definition: vlc_input_item.h:88
input_item_MetaMatch
bool input_item_MetaMatch(input_item_t *p_i, vlc_meta_type_t meta_type, const char *psz)
Definition: item.c:242
info_category_Delete
static void info_category_Delete(info_category_t *cat)
Definition: info.h:124
input_stats_t::lock
vlc_mutex_t lock
Definition: vlc_input_item.h:392
vlc_epg_t::pp_event
vlc_epg_event_t ** pp_event
Definition: vlc_epg.h:57
PL_LOCK_IF
#define PL_LOCK_IF(cond)
Definition: playlist_internal.h:181
vlc_filenamecmp
int vlc_filenamecmp(const char *a, const char *b)
Definition: strings.c:829
vlc_InputItemErrorWhenReadingChanged
Definition: vlc_events.h:106
TAB_APPEND
#define TAB_APPEND(count, tab, p)
Definition: vlc_arrays.h:64
PL_UNLOCK_IF
#define PL_UNLOCK_IF(cond)
Definition: playlist_internal.h:187
playlist_TreeMove
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
input_item_GetNowPlayingFb
char * input_item_GetNowPlayingFb(input_item_t *p_item)
Definition: item.c:428
playlist_internal.h
input_item_SetEpgEvent
void input_item_SetEpgEvent(input_item_t *p_item, const vlc_epg_event_t *p_epg_evt)
Definition: item.c:866
psz_name
const char * psz_name
Definition: vlc_codecs.h:315
vlc_meta_New
vlc_meta_t * vlc_meta_New(void)
vlc_meta contructor.
Definition: meta.c:92
ITEM_TYPE_UNKNOWN
Definition: vlc_input_item.h:109
RecursiveAddIntoParent
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
PL_ASSERT_LOCKED
#define PL_ASSERT_LOCKED
Definition: vlc_playlist.h:218
vlc_mutex_init
void vlc_mutex_init(vlc_mutex_t *p_mutex)
Initializes a fast mutex.
Definition: thread.c:85
vlc_event_manager_t
Definition: vlc_events.h:114
input_item_GetMeta
char * input_item_GetMeta(input_item_t *p_i, vlc_meta_type_t meta_type)
Definition: item.c:260
ITEM_PREPARSED
#define ITEM_PREPARSED
Definition: vlc_meta.h:66
ITEM_TYPE_DIRECTORY
Definition: vlc_input_item.h:111
vlc_readdir_helper::i_slaves
size_t i_slaves
Definition: vlc_input_item.h:435
var_SetInteger
#define var_SetInteger(a, b, c)
Definition: vlc_variables.h:256
input_item_Release
void input_item_Release(input_item_t *p_item)
Releases an input item, i.e.
Definition: item.c:477
SLAVE_PRIORITY_MATCH_ALL
Definition: vlc_input_item.h:140
input_item_node_RemoveNode
void input_item_node_RemoveNode(input_item_node_t *parent, input_item_node_t *child)
Remove a node from its parent.
Definition: item.c:1295
item_type_entry::i_type
uint8_t i_type
Definition: item.c:1140
vlc_event_manager_fini
void vlc_event_manager_fini(vlc_event_manager_t *p_em)
Destroy the event manager.
Definition: events.c:75
vlc_epg_event_t::psz_description
char * psz_description
Definition: vlc_epg.h:40
rdh_compar_type
static int rdh_compar_type(input_item_t *p1, input_item_t *p2)
Definition: item.c:1340
playlist_t::obj
struct vlc_common_members obj
Definition: vlc_playlist.h:153
input_item_node_t::p_item
input_item_t * p_item
Definition: vlc_input_item.h:182
rdh_name_from_filename
static char * rdh_name_from_filename(const char *psz_filename)
Definition: item.c:1432
VLC_INPUT_OPTION_UNIQUE
Definition: vlc_input_item.h:229
playlist_TreeMoveMany
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
vlc_event_manager_init
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
playlist_ItemCmpId
static int playlist_ItemCmpId(const void *a, const void *b)
Definition: item.c:233
playlist_NodeDelete
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
playlist_NodeDeleteExplicit
void playlist_NodeDeleteExplicit(playlist_t *, playlist_item_t *, int flags)
Delete a node with explicit semantics.
Definition: tree.c:96
playlist_item_t::i_id
int i_id
Playlist item specific id.
Definition: vlc_playlist.h:135
input_item_SetMeta
void input_item_SetMeta(input_item_t *p_i, vlc_meta_type_t meta_type, const char *psz_val)
Definition: item.c:144
input_item_owner::refs
atomic_uint refs
Definition: item.h:36
vlc_url.h
input_item_GetInfo
char * input_item_GetInfo(input_item_t *p_i, const char *psz_cat, const char *psz_name)
Get a info item from a given category in a given input item.
Definition: item.c:728
playlist_ItemGetById
playlist_item_t * playlist_ItemGetById(playlist_t *p_playlist, int id)
Finds a playlist item by ID.
Definition: item.c:383
vlc_epg_t
Definition: vlc_epg.h:51
info_category_t::pp_infos
struct info_t ** pp_infos
Pointer to an array of infos.
Definition: vlc_input_item.h:52
likely
#define likely(p)
Definition: vlc_common.h:113
vlc_url_t
Definition: vlc_url.h:145
InputItemFindCat
static info_category_t * InputItemFindCat(input_item_t *p_item, int *pi_index, const char *psz_cat)
Definition: item.c:700
vlc_object_t
The main vlc_object_t structure.
Definition: vlc_objects.h:39
EnsureUTF8
static char * EnsureUTF8(char *str)
Removes non-UTF-8 sequences.
Definition: vlc_charset.h:94
vlc_readdir_helper::i_dirs
size_t i_dirs
Definition: vlc_input_item.h:437
vlc_readdir_helper::psz_ignored_exts
char * psz_ignored_exts
Definition: vlc_input_item.h:441
VLC_ENOMEM
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:351
rdh_file_has_ext
static bool rdh_file_has_ext(const char *psz_filename, const char *psz_ignored_exts)
Does the provided file name has one of the extension provided ?
Definition: item.c:1381
vlc_epg_event_t::psz_short_description
char * psz_short_description
Definition: vlc_epg.h:39
input_item_ChangeEPGSource
void input_item_ChangeEPGSource(input_item_t *p_item, int i_source_id)
Definition: item.c:995
input_item_UpdateTracksInfo
void input_item_UpdateTracksInfo(input_item_t *item, const es_format_t *fmt)
Definition: item.c:1311
input_item_DelInfo
int input_item_DelInfo(input_item_t *p_i, const char *psz_cat, const char *psz_name)
Definition: item.c:793
input_item_opaque::name
char name[1]
Definition: item.c:65
input_interface.h
VLC_SUCCESS
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:349
tfind
void * tfind(const void *key, const void **rootp, int(*cmp)(const void *, const void *))
VLC_INPUT_OPTION_TRUSTED
Definition: vlc_input_item.h:225
playlist_private_t::signal
vlc_cond_t signal
wakes up the playlist engine thread
Definition: playlist_internal.h:83
strdup
char * strdup(const char *)
vlc_epg_event_t::psz_name
char * psz_name
Definition: vlc_epg.h:38
vlc_readdir_helper::b_show_hiddenfiles
bool b_show_hiddenfiles
Definition: vlc_input_item.h:439
vlc_epg_t::b_present
bool b_present
Definition: vlc_epg.h:58
vlc_epg_t::i_source_id
uint16_t i_source_id
Definition: vlc_epg.h:55
playlist_item_t::i_flags
uint8_t i_flags
Flags.
Definition: vlc_playlist.h:136
vlc_url_t::i_port
unsigned i_port
Definition: vlc_url.h:151
playlist_InsertInputItemTree
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
input_item_add_subitem_tree
static void input_item_add_subitem_tree(const vlc_event_t *p_event, void *user_data)
Definition: item.c:52
input_item_GetURI
char * input_item_GetURI(input_item_t *p_i)
Definition: item.c:320
info_category_VaAddInfo
static info_t * info_category_VaAddInfo(info_category_t *cat, const char *name, const char *format, va_list args)
Definition: info.h:83
item_owner
#define item_owner(item)
Definition: item.h:39
PLAYLIST_END
#define PLAYLIST_END
Definition: vlc_playlist.h:204
ITEM_TYPE_NODE
Definition: vlc_input_item.h:116
input_item_node_AppendItem
input_item_node_t * input_item_node_AppendItem(input_item_node_t *p_node, input_item_t *p_item)
Add a new child node to this parent node that will point to this subitem.
Definition: item.c:1267
name
const char name[16]
Definition: httpd.c:1249
input_item_t::b_net
bool b_net
Net: always true for TYPE_STREAM, it depends for others types.
Definition: vlc_input_item.h:96
vlc_meta_GetStatus
int vlc_meta_GetStatus(vlc_meta_t *m)
vlc_meta status (see vlc_meta_status_e)
Definition: meta.c:163
input_item_slave::i_type
enum slave_type i_type
Slave type (spu, audio)
Definition: vlc_input_item.h:174
vlc_readdir_helper_finish
void vlc_readdir_helper_finish(struct vlc_readdir_helper *p_rdh, bool b_success)
Finish adding items to the node.
Definition: item.c:1724
ChangeToNode
static void ChangeToNode(playlist_t *p_playlist, playlist_item_t *p_item)
Definition: item.c:748
vlc_readdir_helper_init
void vlc_readdir_helper_init(struct vlc_readdir_helper *p_rdh, vlc_object_t *p_obj, input_item_node_t *p_node)
Init a vlc_readdir_helper struct.
Definition: item.c:1696
TAB_INIT
#define TAB_INIT(count, tab)
Definition: vlc_arrays.h:40
vlc_InputItemInfoChanged
Definition: vlc_events.h:105
input_item_GetArtist
static char * input_item_GetArtist(input_item_t *p_input)
Definition: vlc_input_item.h:286
input_item_HasErrorWhenReading
bool input_item_HasErrorWhenReading(input_item_t *p_item)
Definition: item.c:231
vlc_readdir_helper::pp_dirs
void ** pp_dirs
Definition: vlc_input_item.h:436
entry
Definition: fourcc_gen.c:50
input_item_slave
Definition: vlc_input_item.h:172
ITEM_ART_FETCHED
#define ITEM_ART_FETCHED
Definition: vlc_meta.h:67
vlc_epg_Delete
void vlc_epg_Delete(vlc_epg_t *p_epg)
It releases a vlc_epg_t*.
Definition: epg.c:197
vlc_event_t::vlc_event_type_specific::input_item_subitem_tree_added
struct vlc_event_t::vlc_event_type_specific::vlc_input_item_subitem_tree_added input_item_subitem_tree_added
info_category_FindInfo
static info_t * info_category_FindInfo(const info_category_t *cat, int *index, const char *name)
Definition: info.h:58
playlist_private_t::b_reset_currently_playing
bool b_reset_currently_playing
Definition: playlist_internal.h:88
TAB_REMOVE
#define TAB_REMOVE(count, tab, p)
Definition: vlc_arrays.h:91
vlc_mutex_destroy
void vlc_mutex_destroy(vlc_mutex_t *p_mutex)
Deinitializes a mutex.
Definition: thread.c:110
SLAVE_AUDIO_EXTENSIONS
#define SLAVE_AUDIO_EXTENSIONS
Definition: vlc_input_item.h:167
playlist_ItemNewFromInput
playlist_item_t * playlist_ItemNewFromInput(playlist_t *p_playlist, input_item_t *p_input)
Definition: item.c:253
vlc_epg_event_Duplicate
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
MASTER_EXTENSIONS
#define MASTER_EXTENSIONS
Definition: vlc_input_item.h:145
vlc_mutex_unlock
void vlc_mutex_unlock(vlc_mutex_t *p_mutex)
Releases a mutex.
Definition: thread.c:138
unlikely
#define unlikely(p)
Definition: vlc_common.h:114
rdh_sort
static void rdh_sort(input_item_node_t *p_node)
Definition: item.c:1364
pl_priv
#define pl_priv(pl)
Definition: playlist_internal.h:95
SLAVE_SPU_EXTENSIONS
#define SLAVE_SPU_EXTENSIONS
Definition: vlc_input_item.h:157
info_t
Definition: vlc_input_item.h:42
playlist_t::p_playing
playlist_item_t * p_playing
Definition: vlc_playlist.h:162
input_item_t::p_epg_table
const vlc_epg_t * p_epg_table
EPG timedate as epoch time.
Definition: vlc_input_item.h:85
playlist_ItemGetByInput
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
vlc_epg_t::p_current
const vlc_epg_event_t * p_current
Definition: vlc_epg.h:59
input_item_owner
Definition: item.h:33
localtime_r
struct tm * localtime_r(const time_t *, struct tm *)
vlc_meta_Set
void vlc_meta_Set(vlc_meta_t *p_meta, vlc_meta_type_t meta_type, const char *psz_val)
vlc_meta has two kinds of meta, the one in a table, and the one in a dictionary.
Definition: meta.c:124
libvlc.h
playlist_private_t::b_request
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
rdh_file_is_ignored
static bool rdh_file_is_ignored(struct vlc_readdir_helper *p_rdh, const char *psz_filename)
Definition: item.c:1409
input_item_SetEpgTime
void input_item_SetEpgTime(input_item_t *p_item, int64_t i_time)
Definition: item.c:1015
vlc_event_detach
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
rdh_compar_filename
static int rdh_compar_filename(const void *a, const void *b)
Definition: item.c:1352
rdh_dir::psz_path
char psz_path[]
Definition: item.c:1429
mtime_t
int64_t mtime_t
High precision date or time interval.
Definition: vlc_common.h:150
input_item_t::pp_epg
vlc_epg_t ** pp_epg
EPG entries.
Definition: vlc_input_item.h:83
vlc_playlist.h
info_category_ReplaceInfo
static void info_category_ReplaceInfo(info_category_t *cat, info_t *info)
Definition: info.h:71
input_item_SetErrorWhenReading
void input_item_SetErrorWhenReading(input_item_t *p_i, bool b_error)
Definition: item.c:50
playlist_item_t::pp_children
playlist_item_t ** pp_children
Children nodes/items.
Definition: vlc_playlist.h:130
tsearch
void * tsearch(const void *key, void **rootp, int(*cmp)(const void *, const void *))
playlist_t::p_media_library
playlist_item_t * p_media_library
Definition: vlc_playlist.h:163
ITEM_TYPE_STREAM
Definition: vlc_input_item.h:114
SLAVE_PRIORITY_MATCH_NONE
Definition: vlc_input_item.h:137
vlc_meta_ESNowPlaying
Definition: vlc_meta.h:48
vlc_readdir_helper::i_sub_autodetect_fuzzy
int i_sub_autodetect_fuzzy
Definition: vlc_input_item.h:438
info_category_t::i_infos
int i_infos
Number of infos in the category.
Definition: vlc_input_item.h:51
input_item_SetDuration
void input_item_SetDuration(input_item_t *p_i, mtime_t i_duration)
Definition: item.c:408
input_item_node_PostAndDelete
void input_item_node_PostAndDelete(input_item_node_t *p_root)
Definition: item.c:1301
vlc_readdir_helper
Access pf_readdir helper struct.
Definition: vlc_input_item.h:431
input_item_slave_Delete
#define input_item_slave_Delete(p_slave)
Definition: vlc_input_item.h:250
input_item_t::p_stats
input_stats_t * p_stats
Statistics.
Definition: vlc_input_item.h:78
input_item_IsMaster
static bool input_item_IsMaster(const char *psz_filename)
Definition: item.c:625
vlc_epg_Duplicate
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
vlc_MetadataRequest
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
input_item_SetURI
void input_item_SetURI(input_item_t *p_i, const char *psz_uri)
Definition: item.c:330
playlist_t::items
playlist_item_array_t items
Arrays of items.
Definition: vlc_playlist.h:155
vlc_meta_type_t
vlc_meta_type_t
Definition: vlc_meta.h:33
input_item_node_t
Definition: vlc_input_item.h:180
vlc_alloc
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:948
input_item_SetErrorWhenReading
void input_item_SetErrorWhenReading(input_item_t *p_i, bool b_error)
Definition: item.c:50
input_item_Hold
input_item_t * input_item_Hold(input_item_t *p_item)
Holds an input item, i.e.
Definition: item.c:469
vlc_readdir_helper::b_flatten
bool b_flatten
Definition: vlc_input_item.h:440
input_item_ReplaceInfos
void input_item_ReplaceInfos(input_item_t *p_item, info_category_t *p_cat)
Definition: item.c:829
input_internal.h
item_type_entry::psz_scheme
const char * psz_scheme
Definition: item.c:1139
ITEM_ART_NOTFOUND
#define ITEM_ART_NOTFOUND
Definition: vlc_meta.h:68
playlist_item_array_t::i_size
int i_size
Definition: vlc_playlist.h:54
input_item_ShouldPreparseSubItems
bool input_item_ShouldPreparseSubItems(input_item_t *p_i)
Definition: item.c:458
vlc_url_t::psz_path
char * psz_path
Definition: vlc_url.h:152
es_format_Copy
int es_format_Copy(es_format_t *restrict dst, const es_format_t *src)
Definition: es_format.c:460
vlc_mutex_lock
void vlc_mutex_lock(vlc_mutex_t *p_mutex)
Acquires a mutex.
Definition: thread.c:123
input_item_t::i_type
uint8_t i_type
Type (file, disc, ...
Definition: vlc_input_item.h:95
pl_Locked
Definition: vlc_playlist.h:208
input_item_UpdateTracksInfo
void input_item_UpdateTracksInfo(input_item_t *item, const es_format_t *fmt)
Definition: item.c:1311
playlist_GetNodeDuration
mtime_t playlist_GetNodeDuration(playlist_item_t *node)
Get the duration of all items in a node.
Definition: item.c:711
input_item_t::es
es_format_t ** es
Es formats.
Definition: vlc_input_item.h:76
vlc_epg_event_Delete
void vlc_epg_event_Delete(vlc_epg_event_t *p_event)
Releases a vlc_epg_event_t*.
Definition: epg.c:46
rdh_slave::p_slave
input_item_slave_t * p_slave
Definition: item.c:1421
PLAYLIST_SUBITEM_STOP_FLAG
Must playlist stop if the item gets subitems ?
Definition: vlc_playlist.h:142
input_item_slave_GetType
bool input_item_slave_GetType(const char *psz_filename, enum slave_type *p_slave_type)
Definition: item.c:637
var_GetBool
#define var_GetBool(a, b)
Definition: vlc_variables.h:656
input_item_t::i_es
int i_es
Number of es format descriptions.
Definition: vlc_input_item.h:75
playlist_item_t::p_input
input_item_t * p_input
Linked input item.
Definition: vlc_playlist.h:128
input_item_t::psz_uri
char * psz_uri
mrl of this item
Definition: vlc_input_item.h:61
ITEM_TYPE_DISC
Definition: vlc_input_item.h:112
vlc_event_send
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
p
#define p(t)
input_item_slave::psz_uri
char psz_uri[]
Slave mrl.
Definition: vlc_input_item.h:177
input_item_SetEpgOffline
void input_item_SetEpgOffline(input_item_t *p_item)
Definition: item.c:1022
info_t::psz_value
char * psz_value
Value of the info.
Definition: vlc_input_item.h:45
input_item_t::ppsz_options
char ** ppsz_options
Array of input options.
Definition: vlc_input_item.h:64
item.h