X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_input_item.h;h=5d5106b12161035ed074fca84619b226ec4df55d;hb=c12acbd7d48431d7b5029d765e69e87378aca7a2;hp=81616fc81c78e8a87179e85b6e662b685ad26899;hpb=998ebb85fdfe44160098608c12e35250e1f6658d;p=vlc diff --git a/include/vlc_input_item.h b/include/vlc_input_item.h index 81616fc81c..5d5106b121 100644 --- a/include/vlc_input_item.h +++ b/include/vlc_input_item.h @@ -32,6 +32,7 @@ #include #include +#include #include @@ -86,7 +87,6 @@ struct input_item_t vlc_mutex_t lock; /**< Lock for the item */ uint8_t i_type; /**< Type (file, disc, ... see input_item_type_e) */ - bool b_prefers_tree; /**< Do we prefer being displayed as tree*/ bool b_fixed_name; /**< Can the interface change the name ?*/ bool b_error_when_reading;/**< Error When Reading */ }; @@ -124,31 +124,28 @@ VLC_EXPORT( void, input_item_SetName, ( input_item_t *p_item, const char *psz_na * 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. */ + * the input item children. + * + * Sends a vlc_InputItemSubItemTreeAdded and a vlc_InputItemSubItemAdded event + */ VLC_EXPORT( void, input_item_PostSubItem, ( input_item_t *p_parent, input_item_t *p_child ) ); - /** * Start adding multiple subitems. * * Create a root node to hold a tree of subitems for given item */ -VLC_EXPORT( input_item_node_t *, input_item_node_Create, ( input_item_t *p_input ) ); +VLC_EXPORT( input_item_node_t *, input_item_node_Create, ( input_item_t *p_input ) LIBVLC_USED ); /** - * Add a subitem to this input_item and to this input_item_node. - * - * A vlc_InputItemSubItemAdded event will be sent right away. + * Add a new child node to this parent node that will point to this subitem. */ VLC_EXPORT( input_item_node_t *, input_item_node_AppendItem, ( input_item_node_t *p_node, input_item_t *p_item ) ); /** - * Add a subitem to this input_item and to this input_item_node. - * - * A vlc_InputItemSubItemAdded event will be sent right away for the subitem - * pointed by input_item_node_t. + * Add an already created node to children of this parent node. */ -VLC_EXPORT( void, input_item_node_AppendNode, ( input_item_node_t *p_node, input_item_node_t *p_item ) ); +VLC_EXPORT( void, input_item_node_AppendNode, ( input_item_node_t *p_parent, input_item_node_t *p_child ) ); /** * Delete a node created with input_item_node_Create() and all its children. @@ -158,11 +155,13 @@ VLC_EXPORT( void, input_item_node_Delete, ( input_item_node_t *p_node ) ); /** * End adding multiple subitems. * - * Send a notification 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. - * Then delete the node and all its children. + * 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. * - * A vlc_InputItemSubItemTreeAdded event will be sent. + * 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_EXPORT( void, input_item_node_PostAndDelete, ( input_item_node_t *p_node ) ); @@ -190,11 +189,11 @@ VLC_EXPORT( int, input_item_AddOption, (input_item_t *, const char *, unsigned VLC_EXPORT( bool, input_item_HasErrorWhenReading, ( input_item_t * ) ); VLC_EXPORT( void, input_item_SetMeta, ( input_item_t *, vlc_meta_type_t meta_type, const char *psz_val )); VLC_EXPORT( bool, input_item_MetaMatch, ( input_item_t *p_i, vlc_meta_type_t meta_type, const char *psz ) ); -VLC_EXPORT( char *, input_item_GetMeta, ( input_item_t *p_i, vlc_meta_type_t meta_type ) ); -VLC_EXPORT( char *, input_item_GetName, ( input_item_t * p_i ) ); -VLC_EXPORT( char *, input_item_GetTitleFbName, ( input_item_t * p_i ) ); -VLC_EXPORT( char *, input_item_GetURI, ( input_item_t * p_i ) ); -VLC_EXPORT( void, input_item_SetURI, ( input_item_t * p_i, const char *psz_uri )); +VLC_EXPORT( char *, input_item_GetMeta, ( input_item_t *p_i, vlc_meta_type_t meta_type ) LIBVLC_USED ); +VLC_EXPORT( char *, input_item_GetName, ( input_item_t * p_i ) LIBVLC_USED ); +VLC_EXPORT( char *, input_item_GetTitleFbName, ( input_item_t * p_i ) LIBVLC_USED ); +VLC_EXPORT( char *, input_item_GetURI, ( input_item_t * p_i ) LIBVLC_USED ); +VLC_EXPORT( void, input_item_SetURI, ( input_item_t * p_i, const char *psz_uri ) ); VLC_EXPORT(mtime_t, input_item_GetDuration, ( input_item_t * p_i ) ); VLC_EXPORT( void, input_item_SetDuration, ( input_item_t * p_i, mtime_t i_duration )); VLC_EXPORT( bool, input_item_IsPreparsed, ( input_item_t *p_i )); @@ -235,35 +234,41 @@ INPUT_META(TrackID) #define input_item_SetArtURL input_item_SetArtworkURL #define input_item_GetArtURL input_item_GetArtworkURL -VLC_EXPORT( char *, input_item_GetInfo, ( input_item_t *p_i, const char *psz_cat,const char *psz_name ) ); +VLC_EXPORT( char *, input_item_GetInfo, ( input_item_t *p_i, const char *psz_cat,const char *psz_name ) LIBVLC_USED ); VLC_EXPORT( int, input_item_AddInfo, ( input_item_t *p_i, const char *psz_cat, const char *psz_name, const char *psz_format, ... ) LIBVLC_FORMAT( 4, 5 ) ); VLC_EXPORT( int, input_item_DelInfo, ( input_item_t *p_i, const char *psz_cat, const char *psz_name ) ); VLC_EXPORT( void, input_item_ReplaceInfos, ( input_item_t *, info_category_t * ) ); VLC_EXPORT( void, input_item_MergeInfos, ( input_item_t *, info_category_t * ) ); /** - * This function creates a new input_item_t with the provided informations. + * 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_EXPORT( input_item_t *, input_item_NewWithType, ( vlc_object_t *, 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_EXPORT( input_item_t *, input_item_NewWithType, ( vlc_object_t *, 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 ) LIBVLC_USED ); /** - * This function creates a new input_item_t with the provided informations. + * This function creates a new input_item_t with the provided information. * * Provided for convenience. */ -VLC_EXPORT( input_item_t *, input_item_NewExt, (vlc_object_t *, 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_EXPORT( input_item_t *, input_item_NewExt, (vlc_object_t *, const char *psz_uri, const char *psz_name, int i_options, const char *const *ppsz_options, unsigned i_option_flags, mtime_t i_duration ) LIBVLC_USED ); #define input_item_NewExt(a,b,c,d,e,f,g) input_item_NewExt( VLC_OBJECT(a),b,c,d,e,f,g) /** - * This function creates a new input_item_t with the provided informations. + * This function creates a new input_item_t with the provided information. * * Provided for convenience. */ #define input_item_New( a,b,c ) input_item_NewExt( a, b, c, 0, NULL, 0, -1 ) +/** + * This function creates a new input_item_t as a copy of another. + */ +VLC_EXPORT( input_item_t *, input_item_Copy, (vlc_object_t *, input_item_t * ) LIBVLC_USED ); + + /****************** * Input stats ******************/ @@ -272,35 +277,35 @@ struct input_stats_t vlc_mutex_t lock; /* Input */ - int i_read_packets; - int i_read_bytes; + int64_t i_read_packets; + int64_t i_read_bytes; float f_input_bitrate; float f_average_input_bitrate; /* Demux */ - int i_demux_read_packets; - int i_demux_read_bytes; + int64_t i_demux_read_packets; + int64_t i_demux_read_bytes; float f_demux_bitrate; float f_average_demux_bitrate; - int i_demux_corrupted; - int i_demux_discontinuity; + int64_t i_demux_corrupted; + int64_t i_demux_discontinuity; /* Decoders */ - int i_decoded_audio; - int i_decoded_video; + int64_t i_decoded_audio; + int64_t i_decoded_video; /* Vout */ - int i_displayed_pictures; - int i_lost_pictures; + int64_t i_displayed_pictures; + int64_t i_lost_pictures; /* Sout */ - int i_sent_packets; - int i_sent_bytes; + int64_t i_sent_packets; + int64_t i_sent_bytes; float f_send_bitrate; /* Aout */ - int i_played_abuffers; - int i_lost_abuffers; + int64_t i_played_abuffers; + int64_t i_lost_abuffers; }; #endif