bool b_locked )
{
playlist_item_t *p_item;
- /* FIXME: use b_killed instead: */
- if( !vlc_object_alive(p_playlist) ) return VLC_EGENERIC;
+
if( !pl_priv(p_playlist)->b_doing_ml )
PL_DEBUG( "adding item `%s' ( %s )", p_input->psz_name,
p_input->psz_uri );
PL_LOCK_IF( !b_locked );
p_item = playlist_ItemNewFromInput( p_playlist, p_input );
- if( p_item == NULL ) return VLC_ENOMEM;
+ if( p_item == NULL )
+ {
+ PL_UNLOCK_IF( !b_locked );
+ return VLC_ENOMEM;
+ }
AddItem( p_playlist, p_item,
b_playlist ? p_playlist->p_playing :
p_playlist->p_media_library , i_mode, i_pos );
assert( p_input );
assert( p_parent && p_parent->i_children != -1 );
- /* FIXME: use b_killed instead: */
- if( !vlc_object_alive(p_playlist) )
- return NULL;
-
PL_LOCK_IF( !b_locked );
p_item = playlist_ItemNewFromInput( p_playlist, p_input );
- if( p_item == NULL ) return NULL;
+ if( p_item == NULL )
+ goto end;
AddItem( p_playlist, p_item, p_parent, i_mode, i_pos );
GoAndPreparse( p_playlist, i_mode, p_item );
+end:
PL_UNLOCK_IF( !b_locked );
return p_item;
input_item_IsPreparsed( p_item->p_input ) == false &&
( EMPTY_STR( psz_artist ) || ( EMPTY_STR( psz_album ) ) )
)
- playlist_PreparseEnqueue( p_playlist, p_item->p_input );
+ libvlc_MetaRequest( p_playlist->p_libvlc, p_item->p_input );
free( psz_artist );
free( psz_album );
}