diff -r a05c44bc3c61 -r d881023c13eb mmappcomponents/harvester/collectionmediator/src/mpxcollectionmediator.cpp --- a/mmappcomponents/harvester/collectionmediator/src/mpxcollectionmediator.cpp Fri Apr 16 15:28:14 2010 +0300 +++ b/mmappcomponents/harvester/collectionmediator/src/mpxcollectionmediator.cpp Mon May 03 12:58:40 2010 +0300 @@ -226,6 +226,42 @@ } // --------------------------------------------------------------------------- +// CMPXCollectionMediator::AddItemAsyncL() +// --------------------------------------------------------------------------- +// +EXPORT_C void CMPXCollectionMediator::AddItemAsyncL( CMPXMedia*& aMedia ) + { + ASSERT( iColUtil ); + + // If this is a podcast, change the collection id + if( IsPodcastL( *aMedia ) ) + { + UpdatePathToPodcastL( *aMedia ); + } + + // Add it to the collection + CMPXCommand* cmd = CMPXMedia::NewL(); + CleanupStack::PushL( cmd ); + + cmd->SetTObjectValueL(KMPXCommandGeneralId, KMPXCommandIdCollectionAdd ); + cmd->SetCObjectValueL(KMPXCommandColAddMedia, aMedia); // copied + + if (aMedia->IsSupported(KMPXMediaGeneralCollectionId)) + { + TUid collectionId = aMedia->ValueTObjectL(KMPXMediaGeneralCollectionId); + cmd->SetTObjectValueL(KMPXCommandGeneralCollectionId, collectionId.iUid); + } + else + { + User::Leave( KErrArgument ); + } + + iColUtil->CommandL(*cmd); + + CleanupStack::PopAndDestroy(cmd); + } + +// --------------------------------------------------------------------------- // CMPXCollectionMediator::AddItemL() // --------------------------------------------------------------------------- //