QVisu
Qt-based visualization for smart homes
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
vlc_input_item.h File Reference
#include <vlc_meta.h>
#include <vlc_epg.h>
#include <vlc_events.h>
#include <string.h>

Go to the source code of this file.

Classes

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 )
 
#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 }
 

Functions

VLC_API void input_item_CopyOptions (input_item_t *p_parent, input_item_t *p_child)
 
VLC_API void input_item_SetName (input_item_t *p_item, const char *psz_name)
 
VLC_API void input_item_PostSubItem (input_item_t *p_parent, input_item_t *p_child)
 
VLC_API input_item_node_tinput_item_node_Create (input_item_t *p_input) VLC_USED
 
VLC_API input_item_node_tinput_item_node_AppendItem (input_item_node_t *p_node, input_item_t *p_item)
 
VLC_API void input_item_node_AppendNode (input_item_node_t *p_parent, input_item_node_t *p_child)
 
VLC_API void input_item_node_Delete (input_item_node_t *p_node)
 
VLC_API void input_item_node_PostAndDelete (input_item_node_t *p_node)
 
VLC_API int input_item_AddOption (input_item_t *, const char *, unsigned i_flags)
 
VLC_API bool input_item_HasErrorWhenReading (input_item_t *)
 
VLC_API void input_item_SetMeta (input_item_t *, vlc_meta_type_t meta_type, const char *psz_val)
 
VLC_API bool input_item_MetaMatch (input_item_t *p_i, vlc_meta_type_t meta_type, const char *psz)
 
VLC_API char * input_item_GetMeta (input_item_t *p_i, vlc_meta_type_t meta_type) VLC_USED
 
VLC_API char * input_item_GetName (input_item_t *p_i) VLC_USED
 
VLC_API char * input_item_GetTitleFbName (input_item_t *p_i) VLC_USED
 
VLC_API char * input_item_GetURI (input_item_t *p_i) VLC_USED
 
VLC_API void input_item_SetURI (input_item_t *p_i, const char *psz_uri)
 
VLC_API mtime_t input_item_GetDuration (input_item_t *p_i)
 
VLC_API void input_item_SetDuration (input_item_t *p_i, mtime_t i_duration)
 
VLC_API bool input_item_IsPreparsed (input_item_t *p_i)
 
VLC_API bool input_item_IsArtFetched (input_item_t *p_i)
 
VLC_API char * input_item_GetInfo (input_item_t *p_i, const char *psz_cat, const char *psz_name) VLC_USED
 
VLC_API int input_item_AddInfo (input_item_t *p_i, const char *psz_cat, const char *psz_name, const char *psz_format,...) VLC_FORMAT(4
 
VLC_API int VLC_API int input_item_DelInfo (input_item_t *p_i, const char *psz_cat, const char *psz_name)
 
VLC_API void input_item_ReplaceInfos (input_item_t *, info_category_t *)
 
VLC_API void input_item_MergeInfos (input_item_t *, info_category_t *)
 
VLC_API 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) VLC_USED
 
VLC_API 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) VLC_USED
 
VLC_API input_item_tinput_item_Copy (input_item_t *) VLC_USED
 
VLC_API input_item_tinput_item_Hold (input_item_t *)
 
VLC_API void input_item_Release (input_item_t *)
 

Detailed Description

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

Macro Definition Documentation

#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.

#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); \
}
Definition: vlc_input_item.h:55

Enumeration Type Documentation

Option flags

Function Documentation

VLC_API 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.

VLC_API input_item_t* input_item_Copy ( input_item_t )

This function creates a new input_item_t as a copy of another.

VLC_API input_item_t* input_item_Hold ( input_item_t )

Holds an input item, i.e. creates a new reference.

VLC_API 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.

VLC_API 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 
)

This function creates a new input_item_t with the provided information.

XXX You may also use input_item_New or input_item_NewExt as they need less arguments.

VLC_API 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.

VLC_API 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.

VLC_API 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

VLC_API void input_item_node_Delete ( input_item_node_t p_node)

Delete a node created with input_item_node_Create() and all its children.

VLC_API 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.

VLC_API 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

VLC_API void input_item_Release ( input_item_t )

Releases an input item, i.e. decrements its reference counter.