X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fwxwidgets%2Fplaylist_manager.cpp;h=ce2628b13c5d6db3431accedd696db3943875547;hb=7ca4e3eb624251feb1f97cfc25104cce473e04a0;hp=334a5ae2fd32fef45b3fddca35baf31cf7cc91b3;hpb=9fa2642c44cc79793530eda5ab44c03c6ab47d46;p=vlc diff --git a/modules/gui/wxwidgets/playlist_manager.cpp b/modules/gui/wxwidgets/playlist_manager.cpp index 334a5ae2fd..ce2628b13c 100644 --- a/modules/gui/wxwidgets/playlist_manager.cpp +++ b/modules/gui/wxwidgets/playlist_manager.cpp @@ -87,8 +87,15 @@ END_EVENT_TABLE() class PlaylistItem : public wxTreeItemData { public: - PlaylistItem( playlist_item_t *p_item ) : i_id(p_item->p_input->i_id) {} + PlaylistItem( playlist_item_t *p_item ) : wxTreeItemData() + { + i_id = p_item->i_id; + i_input_id = p_item->p_input->i_id; + } +protected: + int i_input_id; int i_id; +friend class PlaylistManager; }; /***************************************************************************** @@ -99,13 +106,12 @@ PlaylistManager::PlaylistManager( intf_thread_t *_p_intf, wxWindow *p_parent ): { /* Initializations */ p_intf = _p_intf; - b_need_update = VLC_FALSE; + b_need_update = false; i_items_to_append = 0; i_cached_item_id = -1; i_update_counter = 0; - p_playlist = (playlist_t *) - vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); + p_playlist = pl_Yield( p_intf ); if( p_playlist == NULL ) return; var_Create( p_intf, "random", VLC_VAR_BOOL | VLC_VAR_DOINHERIT ); @@ -149,11 +155,11 @@ PlaylistManager::PlaylistManager( intf_thread_t *_p_intf, wxWindow *p_parent ): #if wxUSE_DRAG_AND_DROP /* Associate drop targets with the playlist */ - SetDropTarget( new DragAndDrop( p_intf, VLC_TRUE ) ); + SetDropTarget( new DragAndDrop( p_intf, true ) ); #endif /* Update the playlist */ - Rebuild( VLC_TRUE ); + Rebuild( true ); /* * We want to be notified of playlist changes @@ -193,7 +199,7 @@ static int PlaylistChanged( vlc_object_t *p_this, const char *psz_variable, vlc_value_t oval, vlc_value_t nval, void *param ) { PlaylistManager *p_playlist = (PlaylistManager *)param; - p_playlist->b_need_update = VLC_TRUE; + p_playlist->b_need_update = true; return VLC_SUCCESS; } @@ -282,7 +288,7 @@ void PlaylistManager::UpdateTreeItem( wxTreeItemId item ) LockPlaylist( p_intf->p_sys, p_playlist ); playlist_item_t *p_item = playlist_ItemGetById( p_playlist, ((PlaylistItem *)p_data)->i_id, - VLC_TRUE ); + true ); if( !p_item ) { UnlockPlaylist( p_intf->p_sys, p_playlist ); @@ -291,17 +297,17 @@ void PlaylistManager::UpdateTreeItem( wxTreeItemId item ) wxString msg; wxString duration = wxU( "" ); - char *psz_artist = p_item->p_input->p_meta->psz_artist ? - strdup( p_item->p_input->p_meta->psz_artist ) : - strdup( "" ); + + char *psz_artist = input_item_GetArtist( p_item->p_input ); if( !psz_artist ) - { - UnlockPlaylist( p_intf->p_sys, p_playlist ); - return; - } + psz_artist = strdup( "" ); + + char *psz_name = input_item_GetName( p_item->p_input ); + if( !psz_name ) + psz_name = strdup( "" ); char psz_duration[MSTRTIME_MAX_SIZE]; - mtime_t dur = p_item->p_input->i_duration; + mtime_t dur = input_item_GetDuration( p_item->p_input ); if( dur != -1 ) { @@ -310,16 +316,17 @@ void PlaylistManager::UpdateTreeItem( wxTreeItemId item ) wxU( " )" ) ); } - if( !strcmp( psz_artist, "" ) || p_item->p_input->b_fixed_name == VLC_TRUE ) + if( !strcmp( psz_artist, "" ) || p_item->p_input->b_fixed_name == true ) { - msg = wxString( wxU( p_item->p_input->psz_name ) ) + duration; + msg = wxString( wxU( psz_name ) ) + duration; } else { msg = wxString(wxU( psz_artist )) + wxT(" - ") + - wxString(wxU(p_item->p_input->psz_name)) + duration; + wxString(wxU(psz_name)) + duration; } free( psz_artist ); + free( psz_name ); treectrl->SetItemText( item , msg ); treectrl->SetItemImage( item, p_item->p_input->i_type ); @@ -355,7 +362,7 @@ void PlaylistManager::AppendItem( wxCommandEvent& event ) node = FindItem( treectrl->GetRootItem(), p_add->i_node ); if( !node.IsOk() ) goto update; - p_item = playlist_ItemGetById( p_playlist, p_add->i_item, VLC_TRUE ); + p_item = playlist_ItemGetById( p_playlist, p_add->i_item, false ); if( !p_item ) goto update; item = FindItem( treectrl->GetRootItem(), p_add->i_item ); @@ -403,8 +410,8 @@ void PlaylistManager::Update() if( this->b_need_update ) { - this->b_need_update = VLC_FALSE; - Rebuild( VLC_TRUE ); + this->b_need_update = false; + Rebuild( true ); } /* Updating the playing status every 0.5s is enough */ @@ -414,7 +421,7 @@ void PlaylistManager::Update() /********************************************************************** * Rebuild the playlist **********************************************************************/ -void PlaylistManager::Rebuild( vlc_bool_t b_root ) +void PlaylistManager::Rebuild( bool b_root ) { i_items_to_append = 0; i_cached_item_id = -1; @@ -496,14 +503,14 @@ void PlaylistManager::OnActivateItem( wxTreeEvent& event ) if( !p_wxparent ) return; LockPlaylist( p_intf->p_sys, p_playlist ); - p_item = playlist_ItemGetById( p_playlist, p_wxitem->i_id, VLC_TRUE ); - p_node = playlist_ItemGetById( p_playlist, p_wxparent->i_id, VLC_TRUE ); + p_item = playlist_ItemGetById( p_playlist, p_wxitem->i_id, true ); + p_node = playlist_ItemGetById( p_playlist, p_wxparent->i_id, true ); if( !p_item || p_item->i_children >= 0 ) { p_node = p_item; p_item = NULL; } - playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, VLC_TRUE, p_node, p_item ); + playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, true, p_node, p_item ); UnlockPlaylist( p_intf->p_sys, p_playlist ); } @@ -561,7 +568,7 @@ static int ItemAppended( vlc_object_t *p_this, const char *psz_variable, { /* Too many items waiting to be added, it will be quicker to rebuild * the whole playlist */ - p_playlist->b_need_update = VLC_TRUE; + p_playlist->b_need_update = true; return VLC_SUCCESS; }