mpengine/src/mpmpxcollectionframeworkwrapper_p.cpp
changeset 45 612c4815aebe
parent 43 0f32e550d9d8
child 47 4cc1412daed0
equal deleted inserted replaced
43:0f32e550d9d8 45:612c4815aebe
   790     delete iUserPlaylists;
   790     delete iUserPlaylists;
   791     iUserPlaylists = NULL;
   791     iUserPlaylists = NULL;
   792 
   792 
   793     RArray<TMPXAttribute> attrs;
   793     RArray<TMPXAttribute> attrs;
   794     CleanupClosePushL( attrs );
   794     CleanupClosePushL( attrs );
   795     attrs.Append( KMPXMediaGeneralId );
   795     attrs.AppendL( KMPXMediaGeneralId );
   796     attrs.Append( KMPXMediaGeneralTitle );
   796     attrs.AppendL( KMPXMediaGeneralTitle );
   797 
   797 
   798     CMPXMedia* criteria = CMPXMedia::NewL();
   798     CMPXMedia* criteria = CMPXMedia::NewL();
   799     CleanupStack::PushL( criteria );
   799     CleanupStack::PushL( criteria );
   800     criteria->SetTObjectValueL<TMPXGeneralType>( 
   800     criteria->SetTObjectValueL<TMPXGeneralType>( 
   801         KMPXMediaGeneralType, EMPXGroup );
   801         KMPXMediaGeneralType, EMPXGroup );
  1128 {
  1128 {
  1129     const CMPXMedia& container = iCollectionData->containerMedia();
  1129     const CMPXMedia& container = iCollectionData->containerMedia();
  1130     const CMPXMediaArray* mediaArray = container.Value<CMPXMediaArray>( KMPXMediaArrayContents );
  1130     const CMPXMediaArray* mediaArray = container.Value<CMPXMediaArray>( KMPXMediaArrayContents );
  1131     CMPXMedia* album( mediaArray->AtL( index ) );
  1131     CMPXMedia* album( mediaArray->AtL( index ) );
  1132 
  1132 
  1133     // Fetch the songs for the selected album
  1133 	// Obtain the artistId from the container
       
  1134     TMPXItemId artistId = container.ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
       
  1135 	
       
  1136     // Fetch the songs for the selected album and the artist
       
  1137 	// Specifying artistId is necessary to search for songs in the artist’s unknown album.
  1134     TMPXItemId albumId = album->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
  1138     TMPXItemId albumId = album->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
  1135     CMPXMedia* findCriteria = CMPXMedia::NewL();
  1139     CMPXMedia* findCriteria = CMPXMedia::NewL();
  1136     CleanupStack::PushL( findCriteria );
  1140     CleanupStack::PushL( findCriteria );
  1137     findCriteria->SetTObjectValueL<TMPXGeneralType>( KMPXMediaGeneralType, EMPXGroup );
  1141     findCriteria->SetTObjectValueL<TMPXGeneralType>( KMPXMediaGeneralType, EMPXGroup );
  1138     findCriteria->SetTObjectValueL<TMPXGeneralCategory>( KMPXMediaGeneralCategory, EMPXSong );
  1142     findCriteria->SetTObjectValueL<TMPXGeneralCategory>( KMPXMediaGeneralCategory, EMPXSong );
  1139     findCriteria->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, albumId );
  1143     findCriteria->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, albumId );
       
  1144     findCriteria->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralContainerId, artistId );
  1140     RArray<TMPXAttribute> attrs;
  1145     RArray<TMPXAttribute> attrs;
  1141     CleanupClosePushL( attrs );
  1146     CleanupClosePushL( attrs );
  1142     attrs.Append( TMPXAttribute( KMPXMediaIdGeneral,
  1147     attrs.AppendL( TMPXAttribute( KMPXMediaIdGeneral,
  1143                                  EMPXMediaGeneralTitle |
  1148                                  EMPXMediaGeneralTitle |
  1144 								 EMPXMediaGeneralUri |
  1149 								 EMPXMediaGeneralUri |
  1145                                  EMPXMediaGeneralId |
  1150                                  EMPXMediaGeneralId |
  1146                                  EMPXMediaGeneralType |
  1151                                  EMPXMediaGeneralType |
  1147                                  EMPXMediaGeneralCategory |
  1152                                  EMPXMediaGeneralCategory |
  1148                                  EMPXMediaGeneralFlags ) );
  1153                                  EMPXMediaGeneralFlags ) );
  1149     attrs.Append( KMPXMediaMusicAlbumTrack );
  1154     attrs.AppendL( KMPXMediaMusicAlbumTrack );
  1150 
  1155 
  1151     iCollectionUtility->Collection().FindAllL( *findCriteria, attrs.Array(), *this );
  1156     iCollectionUtility->Collection().FindAllL( *findCriteria, attrs.Array(), *this );
  1152     CleanupStack::PopAndDestroy( &attrs );
  1157     CleanupStack::PopAndDestroy( &attrs );
  1153     CleanupStack::PopAndDestroy( findCriteria );
  1158     CleanupStack::PopAndDestroy( findCriteria );
  1154 }
  1159 }
  1333             findCriteria->SetTObjectValueL<TMPXGeneralType>( KMPXMediaGeneralType, EMPXGroup );
  1338             findCriteria->SetTObjectValueL<TMPXGeneralType>( KMPXMediaGeneralType, EMPXGroup );
  1334             findCriteria->SetTObjectValueL<TMPXGeneralCategory>( KMPXMediaGeneralCategory, EMPXSong );
  1339             findCriteria->SetTObjectValueL<TMPXGeneralCategory>( KMPXMediaGeneralCategory, EMPXSong );
  1335             findCriteria->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, containerId );
  1340             findCriteria->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, containerId );
  1336             RArray<TMPXAttribute> attrs;
  1341             RArray<TMPXAttribute> attrs;
  1337             CleanupClosePushL( attrs );
  1342             CleanupClosePushL( attrs );
  1338             attrs.Append( TMPXAttribute( KMPXMediaIdGeneral,
  1343             attrs.AppendL( TMPXAttribute( KMPXMediaIdGeneral,
  1339                                          EMPXMediaGeneralTitle |
  1344                                          EMPXMediaGeneralTitle |
  1340                                          EMPXMediaGeneralId ) );
  1345                                          EMPXMediaGeneralId ) );
  1341             results = iCollectionUtility->Collection().FindAllL( *findCriteria, attrs.Array() );
  1346             results = iCollectionUtility->Collection().FindAllL( *findCriteria, attrs.Array() );
  1342             CleanupStack::PopAndDestroy( &attrs );
  1347             CleanupStack::PopAndDestroy( &attrs );
  1343             CleanupStack::PopAndDestroy( findCriteria );
  1348             CleanupStack::PopAndDestroy( findCriteria );