* Generally speaking, playlist_NodeAddInput should not be used in newer code, it
* will maybe become useful again when we merge VLM;
*
- * To delete an item, use playlist_DeleteFromInput( input_id ) which will
+ * To delete an item, use playlist_DeleteFromInput( p_item ) which will
* remove all occurrences of the input in both trees
*
*
********************************************************/
/*************************** Item deletion **************************/
-VLC_EXPORT( int, playlist_DeleteFromInput, ( playlist_t *, int, bool ) );
+VLC_EXPORT( int, playlist_DeleteFromInput, ( playlist_t *, input_item_t *, bool ) );
/******************** Item addition ********************/
VLC_EXPORT( int, playlist_Add, ( playlist_t *, const char *, const char *, int, int, bool, bool ) );
if( i_position < p_playlist->current.i_size )
{
playlist_DeleteFromInput( p_playlist,
- p_playlist->current.p_elems[i_position]->p_input->i_id,
+ p_playlist->current.p_elems[i_position]->p_input,
pl_Locked );
}
PL_UNLOCK;
p_items[i] );
if( p_item )
playlist_DeleteFromInput( p_sys->p_playlist,
- p_item->p_input->i_id,
+ p_item->p_input,
false );
}
msg_Dbg( p_intf, "requested playlist delete: %d",
p_sys->p_playlist->items.p_elems[i]->i_id );
playlist_DeleteFromInput( p_sys->p_playlist,
- p_sys->p_playlist->items.p_elems[i]->p_input->i_id,
+ p_sys->p_playlist->items.p_elems[i]->p_input,
false );
}
}
if( p_item )
{
playlist_DeleteFromInput( p_sys->p_playlist,
- p_item->p_input->i_id, pl_Locked );
+ p_item->p_input, pl_Locked );
msg_Dbg( p_intf, "requested playlist delete: %d", i_id );
}
else
playlist_NodeDelete( p_playlist, p_item, true, false );
}
else
- playlist_DeleteFromInput( p_playlist, p_item->p_input->i_id, pl_Locked );
+ playlist_DeleteFromInput( p_playlist, p_item->p_input, pl_Locked );
}
PL_UNLOCK;
if( p_item->i_children == -1 )
{
playlist_DeleteFromInput( p_playlist,
- p_item->p_input->i_id, pl_Locked );
+ p_item->p_input, pl_Locked );
}
else
{
return;
}
if( p_item->i_children == -1 )
- playlist_DeleteFromInput( p_playlist, item->i_input_id, pl_Locked );
+ playlist_DeleteFromInput( p_playlist, p_item->p_input, pl_Locked );
else
playlist_NodeDelete( p_playlist, p_item, true, false );
/* And finally, remove it from the tree */
if( p_item->i_children == -1 )
{
playlist_DeleteFromInput( getIntf()->p_sys->p_playlist,
- p_item->p_input->i_id, pl_Locked );
+ p_item->p_input, pl_Locked );
it2 = getNextVisibleItem( it ) ;
it->parent()->removeChild( it );
it = it2;
/**********************************************************************
* Private functions
**********************************************************************/
-void Playlist::DeleteItem( int item )
+void Playlist::DeleteItem( input_item_t *item )
{
playlist_t *p_playlist = pl_Hold( p_intf );
if( p_playlist == NULL ) return;
*
* Remove an input item when it appears from a root playlist item
* \param p_playlist playlist object
- * \param i_input_id id of the input to delete
+ * \param p_input the input to delete
* \param p_root root playlist item
* \param b_do_stop must stop or not the playlist
* \return VLC_SUCCESS or VLC_EGENERIC
*/
-static int DeleteFromInput( playlist_t *p_playlist, int i_input_id,
+static int DeleteFromInput( playlist_t *p_playlist, input_item_t *p_input,
playlist_item_t *p_root, bool b_do_stop )
{
int i;
for( i = 0 ; i< p_root->i_children ; i++ )
{
if( p_root->pp_children[i]->i_children == -1 &&
- p_root->pp_children[i]->p_input->i_id == i_input_id )
+ p_root->pp_children[i]->p_input == p_input )
{
DeleteInner( p_playlist, p_root->pp_children[i], b_do_stop );
return VLC_SUCCESS;
}
else if( p_root->pp_children[i]->i_children >= 0 )
{
- int i_ret = DeleteFromInput( p_playlist, i_input_id,
+ int i_ret = DeleteFromInput( p_playlist, p_input,
p_root->pp_children[i], b_do_stop );
if( i_ret == VLC_SUCCESS ) return VLC_SUCCESS;
}
*
* Remove an input item when it appears from a root playlist item
* \param p_playlist playlist object
- * \param i_input_id id of the input to delete
+ * \param p_input the input to delete
* \param p_root root playlist item
* \param b_locked TRUE if the playlist is locked
* \return VLC_SUCCESS or VLC_EGENERIC
*/
-int playlist_DeleteFromInputInParent( playlist_t *p_playlist, int i_input_id,
+int playlist_DeleteFromInputInParent( playlist_t *p_playlist,
+ input_item_t *p_item,
playlist_item_t *p_root, bool b_locked )
{
int i_ret;
PL_LOCK_IF( !b_locked );
- i_ret = DeleteFromInput( p_playlist, i_input_id,
- p_root, true );
+ i_ret = DeleteFromInput( p_playlist, p_item, p_root, true );
PL_UNLOCK_IF( !b_locked );
return i_ret;
}
*
* Remove an input item from ONELEVEL and CATEGORY
* \param p_playlist playlist object
- * \param i_input_id id of the input to delete
+ * \param p_input the input to delete
* \param b_locked TRUE if the playlist is locked
* \return VLC_SUCCESS or VLC_ENOITEM
*/
-int playlist_DeleteFromInput( playlist_t *p_playlist, int i_input_id,
+int playlist_DeleteFromInput( playlist_t *p_playlist, input_item_t *p_input,
bool b_locked )
{
int i_ret1, i_ret2;
PL_LOCK_IF( !b_locked );
- i_ret1 = DeleteFromInput( p_playlist, i_input_id,
+ i_ret1 = DeleteFromInput( p_playlist, p_input,
p_playlist->p_root_category, true );
- i_ret2 = DeleteFromInput( p_playlist, i_input_id,
+ i_ret2 = DeleteFromInput( p_playlist, p_input,
p_playlist->p_root_onelevel, true );
PL_UNLOCK_IF( !b_locked );
return ( i_ret1 == VLC_SUCCESS || i_ret2 == VLC_SUCCESS ) ?
if( p_prev_status_item )
set_current_status_item( p_playlist, p_prev_status_item );
}
- DeleteFromInput( p_playlist, p_item_in_one->p_input->i_id,
+ DeleteFromInput( p_playlist, p_item_in_one->p_input,
p_playlist->p_root_onelevel, false );
}
pl_priv(p_playlist)->b_reset_currently_playing = true;
int i_input_id, playlist_item_t *p_root,
bool );
-int playlist_DeleteFromInputInParent( playlist_t *, int, playlist_item_t *, bool );
+int playlist_DeleteFromInputInParent( playlist_t *, input_item_t *,
+ playlist_item_t *, bool );
int playlist_DeleteFromItemId( playlist_t*, int );
int playlist_ItemRelease( playlist_item_t * );
playlist_NodeDelete( p_parent->p_playlist, p_pl_item, true, false );
else
/* Delete the non-node item normally */
- playlist_DeleteFromInputInParent( p_parent->p_playlist, p_input->i_id,
+ playlist_DeleteFromInputInParent( p_parent->p_playlist, p_input,
p_parent, pl_Locked );
playlist_Unlock( p_parent->p_playlist );