-/** Stuff moved out of vlc_input.h -- FIXME: should probably not be inline
- * anyway. */
-static inline void input_item_Init( vlc_object_t *p_o, input_item_t *p_i )
-{
- memset( p_i, 0, sizeof(input_item_t) );
-
- p_i->psz_name = NULL;
- p_i->psz_uri = NULL;
- TAB_INIT( p_i->i_es, p_i->es );
- TAB_INIT( p_i->i_options, p_i->ppsz_options );
- p_i->optflagv = NULL, p_i->optflagc = 0;
- TAB_INIT( p_i->i_categories, p_i->pp_categories );
- TAB_INIT( p_i->i_epg, p_i->pp_epg );
-
- p_i->i_type = ITEM_TYPE_UNKNOWN;
- p_i->b_fixed_name = true;
-
- p_i->p_stats = NULL;
- p_i->p_meta = NULL;
-
- vlc_mutex_init( &p_i->lock );
- vlc_event_manager_t * p_em = &p_i->event_manager;
- vlc_event_manager_init( p_em, p_i, p_o );
- vlc_event_manager_register_event_type( p_em, vlc_InputItemMetaChanged );
- vlc_event_manager_register_event_type( p_em, vlc_InputItemSubItemAdded );
- vlc_event_manager_register_event_type( p_em, vlc_InputItemSubItemTreeAdded );
- vlc_event_manager_register_event_type( p_em, vlc_InputItemDurationChanged );
- vlc_event_manager_register_event_type( p_em, vlc_InputItemPreparsedChanged );
- vlc_event_manager_register_event_type( p_em, vlc_InputItemNameChanged );
- vlc_event_manager_register_event_type( p_em, vlc_InputItemInfoChanged );
- vlc_event_manager_register_event_type( p_em, vlc_InputItemErrorWhenReadingChanged );
-}
-
-static inline void input_item_Clean( input_item_t *p_i )
-{
- int i;
-
- vlc_event_manager_fini( &p_i->event_manager );
-
- free( p_i->psz_name );
- free( p_i->psz_uri );
- if( p_i->p_stats )
- {
- vlc_mutex_destroy( &p_i->p_stats->lock );
- free( p_i->p_stats );
- }
-
- if( p_i->p_meta )
- vlc_meta_Delete( p_i->p_meta );
-
- for( i = 0; i < p_i->i_options; i++ )
- free( p_i->ppsz_options[i] );
- TAB_CLEAN( p_i->i_options, p_i->ppsz_options );
- free( p_i->optflagv);
-
- for( i = 0; i < p_i->i_es; i++ )
- {
- es_format_Clean( p_i->es[i] );
- free( p_i->es[i] );
- }
- TAB_CLEAN( p_i->i_es, p_i->es );
-
- for( i = 0; i < p_i->i_epg; i++ )
- vlc_epg_Delete( p_i->pp_epg[i] );
- TAB_CLEAN( p_i->i_epg, p_i->pp_epg );
-
- for( i = 0; i < p_i->i_categories; i++ )
- info_category_Delete( p_i->pp_categories[i] );
- TAB_CLEAN( p_i->i_categories, p_i->pp_categories );
-
- vlc_mutex_destroy( &p_i->lock );
-}