-};
-
-/* Internal helpers */
-static inline void input_ControlPush( input_thread_t *p_input,
- int i_type, vlc_value_t *p_val )
-{
- vlc_mutex_lock( &p_input->p->lock_control );
- if( i_type == INPUT_CONTROL_SET_DIE )
- {
- /* Special case, empty the control */
- p_input->p->i_control = 1;
- p_input->p->control[0].i_type = i_type;
- memset( &p_input->p->control[0].val, 0, sizeof( vlc_value_t ) );
- }
- else
- {
- if( p_input->p->i_control >= INPUT_CONTROL_FIFO_SIZE )
- {
- msg_Err( p_input, "input control fifo overflow, trashing type=%d",
- i_type );
- vlc_mutex_unlock( &p_input->p->lock_control );
- return;
- }
- p_input->p->control[p_input->p->i_control].i_type = i_type;
- if( p_val )
- p_input->p->control[p_input->p->i_control].val = *p_val;
- else
- memset( &p_input->p->control[p_input->p->i_control].val, 0,
- sizeof( vlc_value_t ) );
-
- p_input->p->i_control++;
- }
- vlc_mutex_unlock( &p_input->p->lock_control );
-}
-
-/** Stuff moved out of vlc_input.h -- FIXME: should probably not be inline
- * anyway. */
-static inline void input_ItemInit( 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 );
-
- p_i->i_type = ITEM_TYPE_UNKNOWN;
- p_i->b_fixed_name = VLC_TRUE;
-
- p_i->p_stats = NULL;
- p_i->p_meta = NULL;
-
- vlc_mutex_init( p_o, &p_i->lock );
- vlc_event_manager_init( &p_i->event_manager, p_i, p_o );
- vlc_event_manager_register_event_type( &p_i->event_manager,
- vlc_InputItemMetaChanged );
- vlc_event_manager_register_event_type( &p_i->event_manager,
- vlc_InputItemSubItemAdded );
- vlc_event_manager_register_event_type( &p_i->event_manager,
- vlc_InputItemDurationChanged );
- vlc_event_manager_register_event_type( &p_i->event_manager,
- vlc_InputItemPreparsedChanged );
-}
-
-static inline void input_item_SetPreparsed( input_item_t *p_i, vlc_bool_t preparsed )
-{
- vlc_bool_t send_event = VLC_FALSE;
-
- if( !p_i->p_meta )
- p_i->p_meta = vlc_meta_New();
-
- vlc_mutex_lock( &p_i->lock );
- int new_status;
- if( preparsed )
- new_status = p_i->p_meta->i_status | ITEM_PREPARSED;
- else
- new_status = p_i->p_meta->i_status & ~ITEM_PREPARSED;
- if ( p_i->p_meta->i_status != new_status )
- {
- p_i->p_meta->i_status = new_status;
- send_event = VLC_TRUE;
- }
-
- vlc_mutex_unlock( &p_i->lock );
-
- if ( send_event == VLC_TRUE )
- {
- vlc_event_t event;
- event.type = vlc_InputItemPreparsedChanged;
- event.u.input_item_preparsed_changed.new_status = new_status;
- vlc_event_send( &p_i->event_manager, &event );
- }
-}
-
-static inline void input_item_SetMetaFetched( input_item_t *p_i, vlc_bool_t metafetched )
-{
- if( !p_i->p_meta )
- p_i->p_meta = vlc_meta_New();
-
- if( metafetched )
- p_i->p_meta->i_status |= ITEM_META_FETCHED;
- else
- p_i->p_meta->i_status &= ~ITEM_META_FETCHED;
-}