VLC  2.1.0-git
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
vlc_input_item.h File Reference

This file defines functions, structures and enums for input items in vlc. More...

Include dependency graph for vlc_input_item.h:

Go to the source code of this file.

Data Structures

struct  info_t
struct  info_category_t
struct  input_item_t
struct  input_item_node_t
struct  input_stats_t

Macros

#define INPUT_META(name)
#define input_item_SetTrackNum   input_item_SetTrackNumber
#define input_item_GetTrackNum   input_item_GetTrackNumber
#define input_item_SetArtURL   input_item_SetArtworkURL
#define input_item_GetArtURL   input_item_GetArtworkURL
#define input_item_New(a, b)   input_item_NewExt( a, b, 0, NULL, 0, -1 )
 This function creates a new input_item_t with the provided information.
#define vlc_gc_incref(i)   input_item_Hold(i)
#define vlc_gc_decref(i)   input_item_Release(i)

Enumerations

enum  input_item_type_e {
  ITEM_TYPE_UNKNOWN, ITEM_TYPE_FILE, ITEM_TYPE_DIRECTORY, ITEM_TYPE_DISC,
  ITEM_TYPE_CDDA, ITEM_TYPE_CARD, ITEM_TYPE_NET, ITEM_TYPE_PLAYLIST,
  ITEM_TYPE_NODE, ITEM_TYPE_NUMBER
}
enum  input_item_option_e { VLC_INPUT_OPTION_TRUSTED = 0x2, VLC_INPUT_OPTION_UNIQUE = 0x100 }
 Option flags. More...

Functions

void input_item_CopyOptions (input_item_t *p_parent, input_item_t *p_child)
void input_item_SetName (input_item_t *p_item, const char *psz_name)
void input_item_PostSubItem (input_item_t *p_parent, input_item_t *p_child)
 Add one subitem to this item.
input_item_node_tinput_item_node_Create (input_item_t *p_input)
 Start adding multiple subitems.
input_item_node_tinput_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.
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.
void input_item_node_Delete (input_item_node_t *p_node)
 Delete a node created with input_item_node_Create() and all its children.
void input_item_node_PostAndDelete (input_item_node_t *p_node)
 End adding multiple subitems.
int input_item_AddOption (input_item_t *, const char *, unsigned i_flags)
 This function allows to add an option to an existing input_item_t.
bool input_item_HasErrorWhenReading (input_item_t *)
void input_item_SetMeta (input_item_t *, vlc_meta_type_t meta_type, const char *psz_val)
bool input_item_MetaMatch (input_item_t *p_i, vlc_meta_type_t meta_type, const char *psz)
char * input_item_GetMeta (input_item_t *p_i, vlc_meta_type_t meta_type)
char * input_item_GetName (input_item_t *p_i)
char * input_item_GetTitleFbName (input_item_t *p_i)
char * input_item_GetURI (input_item_t *p_i)
void input_item_SetURI (input_item_t *p_i, const char *psz_uri)
mtime_t input_item_GetDuration (input_item_t *p_i)
void input_item_SetDuration (input_item_t *p_i, mtime_t i_duration)
bool input_item_IsPreparsed (input_item_t *p_i)
bool input_item_IsArtFetched (input_item_t *p_i)
static void input_item_SetTitle (input_item_t *p_input, const char *val)
static char * input_item_GetTitle (input_item_t *p_input)
static void input_item_SetArtist (input_item_t *p_input, const char *val)
static char * input_item_GetArtist (input_item_t *p_input)
static void input_item_SetGenre (input_item_t *p_input, const char *val)
static char * input_item_GetGenre (input_item_t *p_input)
static void input_item_SetCopyright (input_item_t *p_input, const char *val)
static char * input_item_GetCopyright (input_item_t *p_input)
static void input_item_SetAlbum (input_item_t *p_input, const char *val)
static char * input_item_GetAlbum (input_item_t *p_input)
static void input_item_SetTrackNumber (input_item_t *p_input, const char *val)
static char * input_item_GetTrackNumber (input_item_t *p_input)
static void input_item_SetDescription (input_item_t *p_input, const char *val)
static char * input_item_GetDescription (input_item_t *p_input)
static void input_item_SetRating (input_item_t *p_input, const char *val)
static char * input_item_GetRating (input_item_t *p_input)
static void input_item_SetDate (input_item_t *p_input, const char *val)
static char * input_item_GetDate (input_item_t *p_input)
static void input_item_SetSetting (input_item_t *p_input, const char *val)
static char * input_item_GetSetting (input_item_t *p_input)
static void input_item_SetURL (input_item_t *p_input, const char *val)
static char * input_item_GetURL (input_item_t *p_input)
static void input_item_SetLanguage (input_item_t *p_input, const char *val)
static char * input_item_GetLanguage (input_item_t *p_input)
static void input_item_SetNowPlaying (input_item_t *p_input, const char *val)
static char * input_item_GetNowPlaying (input_item_t *p_input)
static void input_item_SetPublisher (input_item_t *p_input, const char *val)
static char * input_item_GetPublisher (input_item_t *p_input)
static void input_item_SetEncodedBy (input_item_t *p_input, const char *val)
static char * input_item_GetEncodedBy (input_item_t *p_input)
static void input_item_SetArtworkURL (input_item_t *p_input, const char *val)
static char * input_item_GetArtworkURL (input_item_t *p_input)
static void input_item_SetTrackID (input_item_t *p_input, const char *val)
static char * input_item_GetTrackID (input_item_t *p_input)
static void input_item_SetTrackTotal (input_item_t *p_input, const char *val)
static char * input_item_GetTrackTotal (input_item_t *p_input)
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.
int input_item_AddInfo (input_item_t *p_i, const char *psz_cat, const char *psz_name, const char *psz_format,...)
int input_item_DelInfo (input_item_t *p_i, const char *psz_cat, const char *psz_name)
void input_item_ReplaceInfos (input_item_t *, info_category_t *)
void input_item_MergeInfos (input_item_t *, info_category_t *)
input_item_tinput_item_NewWithType (const char *psz_uri, const char *psz_name, int i_options, const char *const *ppsz_options, unsigned i_option_flags, mtime_t i_duration, int i_type)
 This function creates a new input_item_t with the provided information.
input_item_tinput_item_NewExt (const char *psz_uri, const char *psz_name, int i_options, const char *const *ppsz_options, unsigned i_option_flags, mtime_t i_duration)
 This function creates a new input_item_t with the provided information.
input_item_tinput_item_Copy (input_item_t *)
 This function creates a new input_item_t as a copy of another.
input_item_tinput_item_Hold (input_item_t *)
 Holds an input item, i.e.
void input_item_Release (input_item_t *)
 Releases an input item, i.e.

Detailed Description

This file defines functions, structures and enums for input items in vlc.

Macro Definition Documentation

#define input_item_GetArtURL   input_item_GetArtworkURL
#define input_item_GetTrackNum   input_item_GetTrackNumber

Referenced by str_format_meta().

#define input_item_New (   a,
 
)    input_item_NewExt( a, b, 0, NULL, 0, -1 )

This function creates a new input_item_t with the provided information.

Provided for convenience.

Referenced by vlm_ControlMediaAdd(), vlm_MediaInstanceNew(), and vlm_OnMediaUpdate().

#define input_item_SetArtURL   input_item_SetArtworkURL
#define input_item_SetTrackNum   input_item_SetTrackNumber
#define INPUT_META (   name)
Value:
static inline \
void input_item_Set ## name (input_item_t *p_input, const char *val) \
{ \
input_item_SetMeta (p_input, vlc_meta_ ## name, val); \
} \
static inline \
char *input_item_Get ## name (input_item_t *p_input) \
{ \
return input_item_GetMeta (p_input, vlc_meta_ ## name); \
}
#define vlc_gc_decref (   i)    input_item_Release(i)
#define vlc_gc_incref (   i)    input_item_Hold(i)

Enumeration Type Documentation

Option flags.

Enumerator:
VLC_INPUT_OPTION_TRUSTED 
VLC_INPUT_OPTION_UNIQUE 
Enumerator:
ITEM_TYPE_UNKNOWN 
ITEM_TYPE_FILE 
ITEM_TYPE_DIRECTORY 
ITEM_TYPE_DISC 
ITEM_TYPE_CDDA 
ITEM_TYPE_CARD 
ITEM_TYPE_NET 
ITEM_TYPE_PLAYLIST 
ITEM_TYPE_NODE 
ITEM_TYPE_NUMBER 

Function Documentation

int input_item_AddInfo ( input_item_t p_i,
const char *  psz_cat,
const char *  psz_name,
const char *  psz_format,
  ... 
)
int input_item_AddOption ( input_item_t ,
const char *  ,
unsigned  i_flags 
)
input_item_t* input_item_Copy ( input_item_t )
void input_item_CopyOptions ( input_item_t p_parent,
input_item_t p_child 
)
int input_item_DelInfo ( input_item_t p_i,
const char *  psz_cat,
const char *  psz_name 
)
static char* input_item_GetAlbum ( input_item_t p_input)
inlinestatic
static char* input_item_GetArtist ( input_item_t p_input)
inlinestatic
static char* input_item_GetArtworkURL ( input_item_t p_input)
inlinestatic
static char* input_item_GetCopyright ( input_item_t p_input)
inlinestatic

Referenced by str_format_meta().

static char* input_item_GetDate ( input_item_t p_input)
inlinestatic

Referenced by str_format_meta().

static char* input_item_GetDescription ( input_item_t p_input)
inlinestatic

Referenced by str_format_meta().

mtime_t input_item_GetDuration ( input_item_t p_i)
static char* input_item_GetEncodedBy ( input_item_t p_input)
inlinestatic

Referenced by str_format_meta().

static char* input_item_GetGenre ( input_item_t p_input)
inlinestatic

Referenced by str_format_meta().

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.

Parameters
p_iThe input item to get info from
psz_catString representing the category for the info
psz_nameString representing the name of the desired info
Returns
A pointer to the string with the given info if found, or an empty string otherwise. The caller should free the returned pointer.

References info_category_FindInfo(), InputItemFindCat(), input_item_t::lock, info_t::psz_value, strdup(), vlc_mutex_lock(), and vlc_mutex_unlock().

Referenced by input_vaControl(), playlist_FindArtInCacheUsingItemUID(), and playlist_SaveArt().

static char* input_item_GetLanguage ( input_item_t p_input)
inlinestatic

Referenced by str_format_meta().

char* input_item_GetMeta ( input_item_t p_i,
vlc_meta_type_t  meta_type 
)
char* input_item_GetName ( input_item_t p_i)
static char* input_item_GetNowPlaying ( input_item_t p_input)
inlinestatic
static char* input_item_GetPublisher ( input_item_t p_input)
inlinestatic

Referenced by str_format_meta().

static char* input_item_GetRating ( input_item_t p_input)
inlinestatic

Referenced by str_format_meta().

static char* input_item_GetSetting ( input_item_t p_input)
inlinestatic
static char* input_item_GetTitle ( input_item_t p_input)
inlinestatic
char* input_item_GetTitleFbName ( input_item_t p_i)
static char* input_item_GetTrackID ( input_item_t p_input)
inlinestatic
static char* input_item_GetTrackNumber ( input_item_t p_input)
inlinestatic
static char* input_item_GetTrackTotal ( input_item_t p_input)
inlinestatic
char* input_item_GetURI ( input_item_t p_i)
static char* input_item_GetURL ( input_item_t p_input)
inlinestatic

Referenced by str_format_meta().

bool input_item_HasErrorWhenReading ( input_item_t )
input_item_t* input_item_Hold ( input_item_t )

Holds an input item, i.e.

creates a new reference.

References item_owner, and input_item_owner::refs.

bool input_item_IsArtFetched ( input_item_t p_i)
bool input_item_IsPreparsed ( input_item_t p_i)
void input_item_MergeInfos ( input_item_t ,
info_category_t  
)
bool input_item_MetaMatch ( input_item_t p_i,
vlc_meta_type_t  meta_type,
const char *  psz 
)
input_item_t* input_item_NewExt ( const char *  psz_uri,
const char *  psz_name,
int  i_options,
const char *const *  ppsz_options,
unsigned  i_option_flags,
mtime_t  i_duration 
)

This function creates a new input_item_t with the provided information.

Provided for convenience.

References input_item_NewWithType(), and ITEM_TYPE_UNKNOWN.

Referenced by playlist_AddExt(), playlist_Import(), and playlist_MLLoad().

input_item_t* input_item_NewWithType ( const char *  psz_uri,
const char *  psz_name,
int  i_options,
const char *const *  ppsz_options,
unsigned  i_option_flags,
mtime_t  i_duration,
int  i_type 
)
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.

References input_item_node_AppendNode(), and input_item_node_Create().

Referenced by input_item_PostSubItem().

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.

References input_item_node_t::i_children, INSERT_ELEM, input_item_node_t::p_parent, and input_item_node_t::pp_children.

Referenced by input_item_node_AppendItem().

input_item_node_t* input_item_node_Create ( input_item_t p_input)

Start adding multiple subitems.

Create a root node to hold a tree of subitems for given item

References input_item_node_t::i_children, input_item_node_t::p_item, input_item_node_t::p_parent, input_item_node_t::pp_children, and vlc_gc_incref.

Referenced by input_item_node_AppendItem(), and input_item_PostSubItem().

void input_item_node_Delete ( input_item_node_t p_node)
void input_item_node_PostAndDelete ( input_item_node_t p_node)

End adding multiple subitems.

Sends a vlc_InputItemSubItemTreeAdded event to notify that the item pointed to by the given root node has created new subitems that are pointed to by all the children of the node.

Also sends vlc_InputItemSubItemAdded event for every child under the given root node;

In the end deletes the node and all its children nodes.

References input_item_t::event_manager, input_item_node_Delete(), input_item_node_t::p_item, post_subitems(), vlc_event_t::type, vlc_event_send(), and vlc_InputItemSubItemTreeAdded.

Referenced by input_item_PostSubItem().

void input_item_PostSubItem ( input_item_t p_parent,
input_item_t p_child 
)

Add one subitem to this item.

This won't hold the item, but can tell to interested third parties Like the playlist, that there is a new sub item. With this design It is not the input item's responsability to keep all the ref of the input item children.

Sends a vlc_InputItemSubItemTreeAdded and a vlc_InputItemSubItemAdded event

References input_item_node_AppendItem(), input_item_node_Create(), and input_item_node_PostAndDelete().

void input_item_Release ( input_item_t )
void input_item_ReplaceInfos ( input_item_t ,
info_category_t  
)
static void input_item_SetAlbum ( input_item_t p_input,
const char *  val 
)
inlinestatic
static void input_item_SetArtist ( input_item_t p_input,
const char *  val 
)
inlinestatic
static void input_item_SetArtworkURL ( input_item_t p_input,
const char *  val 
)
inlinestatic
static void input_item_SetCopyright ( input_item_t p_input,
const char *  val 
)
inlinestatic
static void input_item_SetDate ( input_item_t p_input,
const char *  val 
)
inlinestatic
static void input_item_SetDescription ( input_item_t p_input,
const char *  val 
)
inlinestatic
void input_item_SetDuration ( input_item_t p_i,
mtime_t  i_duration 
)
static void input_item_SetEncodedBy ( input_item_t p_input,
const char *  val 
)
inlinestatic
static void input_item_SetGenre ( input_item_t p_input,
const char *  val 
)
inlinestatic
static void input_item_SetLanguage ( input_item_t p_input,
const char *  val 
)
inlinestatic
void input_item_SetMeta ( input_item_t ,
vlc_meta_type_t  meta_type,
const char *  psz_val 
)
void input_item_SetName ( input_item_t p_item,
const char *  psz_name 
)
static void input_item_SetNowPlaying ( input_item_t p_input,
const char *  val 
)
inlinestatic
static void input_item_SetPublisher ( input_item_t p_input,
const char *  val 
)
inlinestatic
static void input_item_SetRating ( input_item_t p_input,
const char *  val 
)
inlinestatic
static void input_item_SetSetting ( input_item_t p_input,
const char *  val 
)
inlinestatic
static void input_item_SetTitle ( input_item_t p_input,
const char *  val 
)
inlinestatic
static void input_item_SetTrackID ( input_item_t p_input,
const char *  val 
)
inlinestatic
static void input_item_SetTrackNumber ( input_item_t p_input,
const char *  val 
)
inlinestatic
static void input_item_SetTrackTotal ( input_item_t p_input,
const char *  val 
)
inlinestatic
void input_item_SetURI ( input_item_t p_i,
const char *  psz_uri 
)
static void input_item_SetURL ( input_item_t p_input,
const char *  val 
)
inlinestatic