* Copyright (C) 2000-2005 the VideoLAN team
* $Id$
*
- * Authors: Olivier Teulière <ipkiss@via.ecp.fr>
- * Clément Stenac <zorglub@videolan.org>
+ * Authors: Olivier Teulière <ipkiss@via.ecp.fr>
+ * Clément Stenac <zorglub@videolan.org>
* Gildas Bazin <gbazin@videolan.org>
*
* This program is free software; you can redistribute it and/OR MODIFy
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
/*****************************************************************************
#include <wx/dynarray.h>
#include <wx/imaglist.h>
+#include "vlc_meta.h"
namespace wxvlc {
/* Callback prototype */
class PlaylistItem : public wxTreeItemData
{
public:
- PlaylistItem( playlist_item_t *p_item ) : i_id(p_item->input.i_id) {}
+ PlaylistItem( playlist_item_t *p_item ) : i_id(p_item->p_input->i_id) {}
int i_id;
};
sizer = new wxBoxSizer( wxHORIZONTAL );
SetSizer( sizer );
sizer->Add( treectrl, 1, wxEXPAND );
- treectrl->SetSizeHints( 500, 150 );
sizer->Layout();
sizer->Fit( this );
void PlaylistManager::CreateNode( playlist_item_t *p_node, wxTreeItemId parent)
{
wxTreeItemId node =
- treectrl->AppendItem( parent, wxL2U( p_node->input.psz_name ), -1, -1,
+ treectrl->AppendItem( parent, wxL2U( p_node->p_input->psz_name ), -1, -1,
new PlaylistItem( p_node ) );
- treectrl->SetItemImage( node, p_node->input.i_type );
+ treectrl->SetItemImage( node, p_node->p_input->i_type );
UpdateNodeChildren( p_node, node );
}
}
}
- treectrl->SetItemImage( node, p_node->input.i_type );
+ treectrl->SetItemImage( node, p_node->p_input->i_type );
}
{
wxTreeItemId item =
treectrl->AppendItem( node,
- wxL2U( p_node->pp_children[i]->input.psz_name ), -1,-1,
+ wxL2U( p_node->pp_children[i]->p_input->psz_name ), -1,-1,
new PlaylistItem( p_node->pp_children[i]) );
UpdateTreeItem( item );
wxString msg;
wxString duration = wxU( "" );
- char *psz_author =
- vlc_input_item_GetInfo( &p_item->input,
- _("Meta-information"), _("Artist"));
+ char *psz_author = p_item->p_input->p_meta->psz_artist ?
+ strdup( p_item->p_input->p_meta->psz_artist ) :
+ strdup( "" );
if( !psz_author )
{
UnlockPlaylist( p_intf->p_sys, p_playlist );
}
char psz_duration[MSTRTIME_MAX_SIZE];
- mtime_t dur = p_item->input.i_duration;
+ mtime_t dur = p_item->p_input->i_duration;
if( dur != -1 )
{
wxU( " )" ) );
}
- if( !strcmp( psz_author, "" ) || p_item->input.b_fixed_name == VLC_TRUE )
+ if( !strcmp( psz_author, "" ) || p_item->p_input->b_fixed_name == VLC_TRUE )
{
- msg = wxString( wxU( p_item->input.psz_name ) ) + duration;
+ msg = wxString( wxU( p_item->p_input->psz_name ) ) + duration;
}
else
{
msg = wxString(wxU( psz_author )) + wxT(" - ") +
- wxString(wxU(p_item->input.psz_name)) + duration;
+ wxString(wxU(p_item->p_input->psz_name)) + duration;
}
free( psz_author );
treectrl->SetItemText( item , msg );
- treectrl->SetItemImage( item, p_item->input.i_type );
+ treectrl->SetItemImage( item, p_item->p_input->i_type );
if( p_playlist->status.p_item == p_item )
{
item = FindItem( treectrl->GetRootItem(), p_add->i_item );
if( item.IsOk() ) goto update;
- item = treectrl->AppendItem( node, wxL2U( p_item->input.psz_name ), -1,-1,
+ item = treectrl->AppendItem( node, wxL2U( p_item->p_input->psz_name ), -1,-1,
new PlaylistItem( p_item ) );
- treectrl->SetItemImage( item, p_item->input.i_type );
+ treectrl->SetItemImage( item, p_item->p_input->i_type );
if( item.IsOk() && p_item->i_children == -1 ) UpdateTreeItem( item );
**********************************************************************/
void PlaylistManager::Rebuild( vlc_bool_t b_root )
{
- playlist_view_t *p_view;
-
i_items_to_append = 0;
i_cached_item_id = -1;
- p_view = playlist_ViewFind( p_playlist, VIEW_CATEGORY );
-
treectrl->DeleteAllItems();
treectrl->AddRoot( wxU(_("root" )), -1, -1,
- new PlaylistItem( p_view->p_root ) );
+ new PlaylistItem( p_playlist->p_root_category ) );
wxTreeItemId root = treectrl->GetRootItem();
- UpdateNode( p_view->p_root, root );
+ UpdateNode( p_playlist->p_root_category, root );
}
/**********************************************************************
p_node = p_item;
p_item = NULL;
}
-
- playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, VIEW_CATEGORY,
- p_node, p_item );
+ playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, p_node, p_item );
UnlockPlaylist( p_intf->p_sys, p_playlist );
}
playlist_add_t *p_add = (playlist_add_t *)malloc(sizeof( playlist_add_t));
memcpy( p_add, nval.p_address, sizeof( playlist_add_t ) );
- if( p_playlist->i_items_to_append++ > 50 )
+ if( ++p_playlist->i_items_to_append >= 50 )
{
/* Too many items waiting to be added, it will be quicker to rebuild
* the whole playlist */