mpengine/src/mpmpxcollectionframeworkwrapper_p.cpp
changeset 45 612c4815aebe
parent 43 0f32e550d9d8
child 47 4cc1412daed0
--- a/mpengine/src/mpmpxcollectionframeworkwrapper_p.cpp	Fri Jul 09 16:27:03 2010 -0500
+++ b/mpengine/src/mpmpxcollectionframeworkwrapper_p.cpp	Fri Jul 23 17:31:12 2010 -0500
@@ -792,8 +792,8 @@
 
     RArray<TMPXAttribute> attrs;
     CleanupClosePushL( attrs );
-    attrs.Append( KMPXMediaGeneralId );
-    attrs.Append( KMPXMediaGeneralTitle );
+    attrs.AppendL( KMPXMediaGeneralId );
+    attrs.AppendL( KMPXMediaGeneralTitle );
 
     CMPXMedia* criteria = CMPXMedia::NewL();
     CleanupStack::PushL( criteria );
@@ -1130,23 +1130,28 @@
     const CMPXMediaArray* mediaArray = container.Value<CMPXMediaArray>( KMPXMediaArrayContents );
     CMPXMedia* album( mediaArray->AtL( index ) );
 
-    // Fetch the songs for the selected album
+	// Obtain the artistId from the container
+    TMPXItemId artistId = container.ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
+	
+    // Fetch the songs for the selected album and the artist
+	// Specifying artistId is necessary to search for songs in the artist’s unknown album.
     TMPXItemId albumId = album->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
     CMPXMedia* findCriteria = CMPXMedia::NewL();
     CleanupStack::PushL( findCriteria );
     findCriteria->SetTObjectValueL<TMPXGeneralType>( KMPXMediaGeneralType, EMPXGroup );
     findCriteria->SetTObjectValueL<TMPXGeneralCategory>( KMPXMediaGeneralCategory, EMPXSong );
     findCriteria->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, albumId );
+    findCriteria->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralContainerId, artistId );
     RArray<TMPXAttribute> attrs;
     CleanupClosePushL( attrs );
-    attrs.Append( TMPXAttribute( KMPXMediaIdGeneral,
+    attrs.AppendL( TMPXAttribute( KMPXMediaIdGeneral,
                                  EMPXMediaGeneralTitle |
 								 EMPXMediaGeneralUri |
                                  EMPXMediaGeneralId |
                                  EMPXMediaGeneralType |
                                  EMPXMediaGeneralCategory |
                                  EMPXMediaGeneralFlags ) );
-    attrs.Append( KMPXMediaMusicAlbumTrack );
+    attrs.AppendL( KMPXMediaMusicAlbumTrack );
 
     iCollectionUtility->Collection().FindAllL( *findCriteria, attrs.Array(), *this );
     CleanupStack::PopAndDestroy( &attrs );
@@ -1335,7 +1340,7 @@
             findCriteria->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, containerId );
             RArray<TMPXAttribute> attrs;
             CleanupClosePushL( attrs );
-            attrs.Append( TMPXAttribute( KMPXMediaIdGeneral,
+            attrs.AppendL( TMPXAttribute( KMPXMediaIdGeneral,
                                          EMPXMediaGeneralTitle |
                                          EMPXMediaGeneralId ) );
             results = iCollectionUtility->Collection().FindAllL( *findCriteria, attrs.Array() );