mmappcomponents/collectionhelper/src/mpxcollectioncachedhelper.cpp
changeset 25 d881023c13eb
parent 0 a2952bb97e68
child 27 cbb1bfb7ebfb
--- a/mmappcomponents/collectionhelper/src/mpxcollectioncachedhelper.cpp	Fri Apr 16 15:28:14 2010 +0300
+++ b/mmappcomponents/collectionhelper/src/mpxcollectioncachedhelper.cpp	Mon May 03 12:58:40 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  Extended collection helper with an internal caching array
-*  Version     : %version: da1mmcf#27.1.12 % 
+*  Version     : %version: da1mmcf#27.1.12.3.1 % 
 *
 */
 
@@ -157,9 +157,24 @@
         {
         Commit();
         }
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+    TBool extract = ETrue;
+    if( aMedia->IsSupported( KMPXMediaMTPSampleDataFlag ) )
+        {
+        
+        extract = aMedia->ValueTObjectL<TBool>( KMPXMediaMTPSampleDataFlag );
+        MPX_DEBUG2("CMPXCollectionCachedHelper::AddL KMPXMediaMTPSampleDataFlag is set. extract=%d", extract );
+        }
     
+    if( extract )
+        {
+        // Extract album art from the file
+        iMetadataExtractor->ExtractAlbumArtL( aMedia );
+        }
+#else
     // Extract album art from the file
     iMetadataExtractor->ExtractAlbumArtL( aMedia );
+#endif
     
     CMPXMedia* copy = CMPXMedia::NewL( *aMedia );
     CleanupStack::PushL( copy );
@@ -332,7 +347,20 @@
 void CMPXCollectionCachedHelper::SetL( CMPXMedia*& aMedia )
     {
     MPX_DEBUG1("CMPXCollectionCachedHelper::::SetL <--");     
-    
+
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED    
+    if( aMedia->IsSupported( KMPXMediaMTPSampleDataFlag ) )
+        {
+        TBool flag = aMedia->ValueTObjectL<TBool>( KMPXMediaMTPSampleDataFlag );            
+        MPX_DEBUG2("CMPXCollectionCachedHelper::SetL KMPXMediaMTPSampleDataFlag is set. flag=%d", flag );
+        if( flag )
+            {        
+            iMetadataExtractor->ExtractAlbumArtL( aMedia );
+            }
+        return;
+        }
+#endif
+            
     const TDesC& newUri = aMedia->ValueText( KMPXMediaGeneralUri );
     TInt count( iCache->Count() );
     
@@ -719,7 +747,11 @@
 
     MPX_DEBUG1("CMPXCollectionCachedHelper::GetL <--");
 
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+    if (aItemCat != EMPXSong && aItemCat != EMPXPlaylist && aItemCat != EMPXAbstractAlbum)
+#else
     if (aItemCat != EMPXSong && aItemCat != EMPXPlaylist)
+#endif
         {
         User::Leave(KErrArgument);
         }
@@ -751,11 +783,20 @@
                           EMPXMediaGeneralTitle | EMPXMediaGeneralDate |
                           EMPXMediaGeneralDuration | EMPXMediaGeneralComment |
                           EMPXMediaGeneralUri ));
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
         attributes.AppendL(
             TMPXAttribute(KMPXMediaIdMusic,
                           EMPXMediaMusicArtist | EMPXMediaMusicAlbum |
                           EMPXMediaMusicAlbumTrack | EMPXMediaMusicComposer |
-                          EMPXMediaMusicYear | EMPXMediaMusicGenre));
+                          EMPXMediaMusicYear | EMPXMediaMusicGenre | 
+                          EMPXMediaMusicAlbumArtist));
+#else
+	    attributes.AppendL(
+            TMPXAttribute(KMPXMediaIdMusic,
+	                      EMPXMediaMusicArtist | EMPXMediaMusicAlbum |
+	                      EMPXMediaMusicAlbumTrack | EMPXMediaMusicComposer |
+	                      EMPXMediaMusicYear | EMPXMediaMusicGenre));
+#endif
         attributes.AppendL(KMPXMediaAudioAudioAll);
         attributes.AppendL(KMPXMediaMTPAll);
 
@@ -997,6 +1038,14 @@
              aSrc.ValueTObjectL<TInt>( KMPXMediaMusicRating ) 
                                      );   
         }
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED 
+    if( atts&EMPXMediaMusicAlbumArtist ) // Text
+        {
+        aDestination.SetTextValueL( KMPXMediaMusicAlbumArtist,
+                     aSrc.ValueText(KMPXMediaMusicAlbumArtist ) 
+                                  );
+        }
+#endif
     MPX_DEBUG1("CMPXCollectionCachedHelper::DoAppendMusicL -->");     
     }