mmappcomponents/harvester/collectionmediator/src/mpxcollectionmediator.cpp
changeset 25 d881023c13eb
parent 0 a2952bb97e68
--- 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<TUid>(KMPXMediaGeneralCollectionId);
+        cmd->SetTObjectValueL(KMPXCommandGeneralCollectionId, collectionId.iUid);
+        }
+    else
+        {
+        User::Leave( KErrArgument );
+        }
+
+    iColUtil->CommandL(*cmd);
+
+    CleanupStack::PopAndDestroy(cmd);
+    }
+
+// ---------------------------------------------------------------------------
 // CMPXCollectionMediator::AddItemL()
 // ---------------------------------------------------------------------------
 //