[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/multimedia/amarok/src/mediadevice
From: Jeff Mitchell <kde-dev () emailgoeshere ! com>
Date: 2007-07-19 3:57:13
Message-ID: 1184817433.782020.29375.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 689763 by mitchell:
Port forward r686665, r686663, and r686662 by Erik Hovland.
M +22 -2 mtp/mtpmediadevice.cpp
M +11 -1 njb/njbmediadevice.cpp
--- trunk/extragear/multimedia/amarok/src/mediadevice/mtp/mtpmediadevice.cpp #689762:689763
@@ -891,6 +891,26 @@
m_critical_mutex.lock();
LIBMTP_playlist_t *metadata = LIBMTP_new_playlist_t();
metadata->name = qstrdup( item->text( 0 ).toUtf8() );
+ const int trackCount = item->childCount();
+ if (trackCount > 0) {
+ uint32_t *tracks = ( uint32_t* )malloc( sizeof( uint32_t ) * trackCount );
+ uint32_t i = 0;
+ for( MtpMediaItem *it = dynamic_cast<MtpMediaItem *>(item->firstChild());
+ it;
+ it = dynamic_cast<MtpMediaItem *>(it->nextSibling()) )
+ {
+ tracks[i] = it->track()->id();
+ i++;
+ }
+ metadata->tracks = tracks;
+ metadata->no_tracks = i;
+ } else {
+ debug() << "no tracks available for playlist " << metadata->name
+ << endl;
+ metadata->no_tracks = 0;
+ }
+ QString genericError = i18n( "Could not save playlist." );
+
uint32_t *tracks = ( uint32_t* )malloc( sizeof( uint32_t ) * item->childCount() );
uint32_t i = 0;
for( MtpMediaItem *it = dynamic_cast<MtpMediaItem *>(item->firstChild());
@@ -948,7 +968,7 @@
{
int result = 0;
- if( isCanceled() )
+ if( isCanceled() || !item )
{
return -1;
}
@@ -975,7 +995,7 @@
if( item )
{
MtpMediaItem *parent = dynamic_cast<MtpMediaItem *> ( item->parent() );
- if( parent->type() == MediaItem::PLAYLIST ) {
+ if( parent && parent->type() == MediaItem::PLAYLIST ) {
delete( item );
playlistFromItem( parent );
}
--- trunk/extragear/multimedia/amarok/src/mediadevice/njb/njbmediadevice.cpp #689762:689763
@@ -265,7 +265,7 @@
{
DEBUG_BLOCK
int result = 0;
- if ( isCanceled() )
+ if ( isCanceled() || !item )
{
return -1;
}
@@ -390,6 +390,10 @@
if( (it->type() == MediaItem::TRACK) )
{
NjbMediaItem* auxItem = dynamic_cast<NjbMediaItem *>( (it) );
+ if( !auxItem ) {
+ debug() << "Dynamic cast to NJB Media Item failed." << endl;
+ return -1;
+ }
QString track_id;
track_id.setNum( auxItem->track()->id() );
filepath = path + auxItem->bundle()->url().path();
@@ -807,6 +811,12 @@
NjbMediaItem *it = dynamic_cast<NjbMediaItem *>( item );
+ if( !it )
+ {
+ debug() << "Dynamic cast to NJB media item failed" << endl;
+ return;
+ }
+
switch( it->type() )
{
case MediaItem::ARTIST:
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic