p_playlist->i_size = 0;
p_playlist->pp_items = NULL;
p_playlist->i_all_size = 0;
- p_playlist->pp_all_items = malloc(sizeof(playlist_item_t*));
+ p_playlist->pp_all_items = 0;
playlist_ViewInsert( p_playlist, VIEW_CATEGORY, TITLE_CATEGORY );
- playlist_ViewInsert( p_playlist, VIEW_SIMPLE, TITLE_SIMPLE );
playlist_ViewInsert( p_playlist, VIEW_ALL, TITLE_ALL );
p_view = playlist_ViewFind( p_playlist, VIEW_CATEGORY );
/* Set startup status
* We set to simple view on startup for interfaces that don't do
* anything */
- p_view = playlist_ViewFind( p_playlist, VIEW_SIMPLE );
- p_playlist->status.i_view = VIEW_SIMPLE;
+ p_view = playlist_ViewFind( p_playlist, VIEW_CATEGORY );
+ p_playlist->status.i_view = VIEW_CATEGORY;
p_playlist->status.p_item = NULL;
p_playlist->status.p_node = p_view->p_root;
p_playlist->request.b_request = VLC_FALSE;
va_end( args );
vlc_mutex_unlock( &p_playlist->object_lock );
return i_result;
-
}
/**
if( p_playlist->i_size <= 0 )
{
- vlc_mutex_unlock( &p_playlist->object_lock );
return VLC_EGENERIC;
}
i_vout_destroyed_date = 0;
i_sout_destroyed_date = 0;
+ if( p_playlist->status.p_item->i_flags
+ & PLAYLIST_REMOVE_FLAG )
+ {
+ playlist_ItemDelete( p_item );
+ p_playlist->status.p_item = NULL;
+ }
+
continue;
}
/* This input is dying, let him do */
}
if( !p_playlist->request.b_request && p_playlist->status.p_item &&
- !(p_playlist->status.p_item->i_flags & PLAYLIST_SKIP_FLAG) )
+ !( p_playlist->status.p_item->i_flags & PLAYLIST_SKIP_FLAG ) )
{
msg_Dbg( p_playlist, "no-skip mode, stopping") ;
return NULL;
{
p_playlist->i_index++;
p_new = p_playlist->pp_items[p_playlist->i_index];
- if( !(p_new->i_flags & PLAYLIST_SKIP_FLAG) )
+ if( !( p_new->i_flags & PLAYLIST_SKIP_FLAG ) )
{
return NULL;
}
p_playlist->status.p_node,
NULL );
}
+ if( p_new != NULL && !(p_new->i_flags & PLAYLIST_SKIP_FLAG) )
+ return NULL;
}
}
}