X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_input_item.h;h=ca11d0910920a44c620a14077b7d2a2892a5bdc9;hb=6c73ecd0995166536973595f63e08ed51f2e54f5;hp=72f9d39b08eed159ebd042cf000e9be297ddd474;hpb=85297c0a112a14635a7b810c8a34970704ff0cb9;p=vlc diff --git a/include/vlc_input_item.h b/include/vlc_input_item.h index 72f9d39b08..ca11d09109 100644 --- a/include/vlc_input_item.h +++ b/include/vlc_input_item.h @@ -22,8 +22,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ -#ifndef VLC__INPUT_ITEM_H -#define VLC__INPUT_ITEM_H 1 +#ifndef VLC_INPUT_ITEM_H +#define VLC_INPUT_ITEM_H 1 /** * \file @@ -86,7 +86,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,47 +123,46 @@ 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. */ -VLC_EXPORT( void, input_item_AddSubItem, ( input_item_t *p_parent, input_item_t *p_child ) ); - - -/** - * Start adding multiple subitems at once. + * the input item children. * - * This is a hint for the client that he should probably wait for - * input_item_AddSubItemTree()'s input_item_subitemtree_added event before - * processing any added subitem. + * Sends a vlc_InputItemSubItemTreeAdded and a vlc_InputItemSubItemAdded event */ -VLC_EXPORT( input_item_node_t *, input_item_node_Create, ( input_item_t *p_input ) ); +VLC_EXPORT( void, input_item_PostSubItem, ( input_item_t *p_parent, input_item_t *p_child ) ); /** - * Notify that we are done adding subitems to this tree. + * Start adding multiple subitems. * - * This send a input_item_subitemtree_added event. + * Create a root node to hold a tree of subitems for given item */ -VLC_EXPORT( void, input_item_AddSubItemTree, ( input_item_node_t *p_root ) ); +VLC_EXPORT( input_item_node_t *, input_item_node_Create, ( input_item_t *p_input ) ); /** - * Add a subitem to this input_item and to this input_item_node. - * - * An input_item_subitem_added 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. - * - * An input_item_subitem_added 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 the result of input_item_node_Create(). + * Delete a node created with input_item_node_Create() and all its children. */ VLC_EXPORT( void, input_item_node_Delete, ( 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_EXPORT( void, input_item_node_PostAndDelete, ( input_item_node_t *p_node ) ); /** @@ -238,6 +236,8 @@ INPUT_META(TrackID) VLC_EXPORT( char *, input_item_GetInfo, ( input_item_t *p_i, const char *psz_cat,const char *psz_name ) ); 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. @@ -252,8 +252,8 @@ VLC_EXPORT( input_item_t *, input_item_NewWithType, ( vlc_object_t *, const char * * Provided for convenience. */ -#define input_item_NewExt(a,b,c,d,e,f,g) __input_item_NewExt( VLC_OBJECT(a),b,c,d,e,f,g) -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 ) ); +#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. @@ -262,6 +262,12 @@ VLC_EXPORT( input_item_t *, __input_item_NewExt, (vlc_object_t *, const char *ps */ #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 * ) ); + + /****************** * Input stats ******************/