From: RĂ©mi Denis-Courmont Date: Sat, 16 May 2009 11:43:41 +0000 (+0300) Subject: playlist_DeleteFromInput: pass the input item rather than its ID X-Git-Tag: 1.1.0-ff~5929 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=cc321882c23496f30bed3fb3cec2975f86a0d784;p=vlc playlist_DeleteFromInput: pass the input item rather than its ID --- diff --git a/include/vlc_playlist.h b/include/vlc_playlist.h index c92c274d2f..d8de71caa0 100644 --- a/include/vlc_playlist.h +++ b/include/vlc_playlist.h @@ -111,7 +111,7 @@ TYPEDEF_ARRAY(playlist_item_t*, playlist_item_array_t); * 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 * * @@ -322,7 +322,7 @@ VLC_EXPORT( bool, playlist_IsServicesDiscoveryLoaded, ( playlist_t *,const char ********************************************************/ /*************************** 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 ) ); diff --git a/modules/control/dbus.c b/modules/control/dbus.c index 2753140710..9aa7a9dadb 100644 --- a/modules/control/dbus.c +++ b/modules/control/dbus.c @@ -514,7 +514,7 @@ DBUS_METHOD( DelTrack ) 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; diff --git a/modules/control/http/macro.c b/modules/control/http/macro.c index 3e401478ad..4d55c8df27 100644 --- a/modules/control/http/macro.c +++ b/modules/control/http/macro.c @@ -381,7 +381,7 @@ static void MacroDo( httpd_file_sys_t *p_args, p_items[i] ); if( p_item ) playlist_DeleteFromInput( p_sys->p_playlist, - p_item->p_input->i_id, + p_item->p_input, false ); } @@ -424,7 +424,7 @@ static void MacroDo( httpd_file_sys_t *p_args, 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 ); } } diff --git a/modules/control/http/rpn.c b/modules/control/http/rpn.c index 05c30cf4fe..43e72c5dbd 100644 --- a/modules/control/http/rpn.c +++ b/modules/control/http/rpn.c @@ -875,7 +875,7 @@ void EvaluateRPN( intf_thread_t *p_intf, mvar_t *vars, 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 diff --git a/modules/gui/macosx/playlist.m b/modules/gui/macosx/playlist.m index d777d4ae86..269e513d5b 100644 --- a/modules/gui/macosx/playlist.m +++ b/modules/gui/macosx/playlist.m @@ -968,7 +968,7 @@ 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; diff --git a/modules/gui/ncurses.c b/modules/gui/ncurses.c index 709171597c..d2f8ec8d7f 100644 --- a/modules/gui/ncurses.c +++ b/modules/gui/ncurses.c @@ -656,7 +656,7 @@ static int HandleKey( intf_thread_t *p_intf, int i_key ) 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 { diff --git a/modules/gui/qt4/components/playlist/playlist_model.cpp b/modules/gui/qt4/components/playlist/playlist_model.cpp index a474abd94e..5910ce2537 100644 --- a/modules/gui/qt4/components/playlist/playlist_model.cpp +++ b/modules/gui/qt4/components/playlist/playlist_model.cpp @@ -719,7 +719,7 @@ void PLModel::doDeleteItem( PLItem *item, QModelIndexList *fullList ) 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 */ diff --git a/modules/gui/skins2/vars/playtree.cpp b/modules/gui/skins2/vars/playtree.cpp index 839b928291..3dc32ab8af 100644 --- a/modules/gui/skins2/vars/playtree.cpp +++ b/modules/gui/skins2/vars/playtree.cpp @@ -74,7 +74,7 @@ void Playtree::delSelected() 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; diff --git a/modules/gui/wince/playlist.cpp b/modules/gui/wince/playlist.cpp index fd695a4b8f..8eebda56a7 100644 --- a/modules/gui/wince/playlist.cpp +++ b/modules/gui/wince/playlist.cpp @@ -700,7 +700,7 @@ void Playlist::UpdateItem( int i ) /********************************************************************** * 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; diff --git a/src/playlist/item.c b/src/playlist/item.c index 27c3416b9c..212ee75420 100644 --- a/src/playlist/item.c +++ b/src/playlist/item.c @@ -218,12 +218,12 @@ int playlist_ItemRelease( playlist_item_t *p_item ) * * 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; @@ -231,14 +231,14 @@ static int DeleteFromInput( playlist_t *p_playlist, int i_input_id, 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; } @@ -251,18 +251,18 @@ static int DeleteFromInput( playlist_t *p_playlist, int i_input_id, * * 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; } @@ -272,18 +272,18 @@ int playlist_DeleteFromInputInParent( playlist_t *p_playlist, int i_input_id, * * 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 ) ? @@ -620,7 +620,7 @@ static playlist_item_t *ItemToNode( playlist_t *p_playlist, 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; diff --git a/src/playlist/playlist_internal.h b/src/playlist/playlist_internal.h index 86279f66ed..6a8d0099c4 100644 --- a/src/playlist/playlist_internal.h +++ b/src/playlist/playlist_internal.h @@ -138,7 +138,8 @@ playlist_item_t *playlist_ItemFindFromInputAndRoot( playlist_t *p_playlist, 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 * ); diff --git a/src/playlist/services_discovery.c b/src/playlist/services_discovery.c index ab69fb54c2..54fb294b6f 100644 --- a/src/playlist/services_discovery.c +++ b/src/playlist/services_discovery.c @@ -219,7 +219,7 @@ static void playlist_sd_item_removed( const vlc_event_t * p_event, void * user_d 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 );