mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp
branchRCL_3
changeset 17 780c925249c1
parent 9 bee149131e4b
child 19 51035f0751c2
--- a/mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp	Mon Mar 15 12:42:31 2010 +0200
+++ b/mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp	Wed Mar 31 22:26:09 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  Extracts metadata from a file
-*  Version     : %version: da1mmcf#38.1.4.2.6.1.5 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: da1mmcf#38.1.4.2.6.1.7 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -51,6 +51,9 @@
 const TInt KMPXMaxThumbnailRequest = 5; 
 #endif //RD_MPX_TNM_INTEGRATION
 
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+_LIT( KNonEmbeddedArtExt, ".alb" );
+#endif
 //Helper functions
 static void FindAndReplaceForbiddenChars(TDes& aString, TInt aLen)
     {
@@ -734,7 +737,31 @@
     // Get full file name.
     const TDesC& path = aMedia->ValueText(KMPXMediaGeneralUri);
     MPX_DEBUG2("CMPXMetadataExtractor::ExtractAlbumArtL Filename:%S ", &path );
-    
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+    TParsePtrC parse( path );
+    TPtrC ext( parse.Ext() );
+    if (ext.CompareF(KNonEmbeddedArtExt)== 0)
+        {
+		#ifdef RD_MPX_TNM_INTEGRATION
+
+        //check if can send TN request, If thumbnail creation is ongoing, wait til it is done
+        CheckBeforeSendRequest();
+
+        CThumbnailObjectSource* source = CThumbnailObjectSource::NewLC(
+           path, KImageFileType  );
+          
+       
+
+        iTNManager->CreateThumbnails( *source );
+        
+        iOutstandingThumbnailRequest++;
+        CleanupStack::PopAndDestroy( source );
+
+        #endif
+        }
+    else
+        {
+#endif
     // create wanted fields array
     RArray<TMetaDataFieldId> wantedFields;
     CleanupClosePushL( wantedFields );
@@ -763,7 +790,9 @@
 
     // Reset the utility
     iMetadataUtility->ResetL();
-    
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+      }
+#endif
     return err;
     }
 
@@ -817,26 +846,9 @@
     MPX_FUNC("CMPXMetadataExtractor::AddMediaAlbumArtL()");
 #ifdef RD_MPX_TNM_INTEGRATION
     
-    // If thumbnail creation is ongoing, wait til it is done
-    if ( iOutstandingThumbnailRequest > KMPXMaxThumbnailRequest )
-        {
-        MPX_DEBUG1("CMPXMetadataExtractor::AddMediaAlbumArtL(): Thumbnail creation ongoing!");
-        iTNMBlockCount++;
-        // Cancel timer.
-        CancelTimeoutTimer();
-        // Start timer in case there is no callback from ThumbNail Manager. 
-        iTimer->Start(
-            KMPXTimeoutTimer,
-            KMPXTimeoutTimer,
-            TCallBack(TimeoutTimerCallback, this ));
-        
-        // Start wait loop until we get a callback from ThumbNail Manager.
-        if ( !iTNSyncWait->IsStarted() )
-            {
-            iTNSyncWait->Start();
-            }
-        }
-    
+    //check if can send TN request, If thumbnail creation is ongoing, wait til it is done
+    CheckBeforeSendRequest();
+
     aMedia.SetTextValueL( KMPXMediaMusicAlbumArtFileName, aFile );
     
     TBuf<256> mimeType;
@@ -850,3 +862,29 @@
     
 #endif // RD_MPX_TNM_INTEGRATION          
     }
+
+void CMPXMetadataExtractor::CheckBeforeSendRequest()
+     {
+     MPX_FUNC("CMPXMetadataExtractor::CheckBeforeSendRequest()");
+#ifdef RD_MPX_TNM_INTEGRATION
+	// If thumbnail creation is ongoing, wait til it is done
+    if ( iOutstandingThumbnailRequest > KMPXMaxThumbnailRequest )
+        {
+        MPX_DEBUG1("CMPXMetadataExtractor::CheckBeforeSendRequest(): Thumbnail creation ongoing!");
+        iTNMBlockCount++;
+        // Cancel timer.
+        CancelTimeoutTimer();
+        // Start timer in case there is no callback from ThumbNail Manager.
+        iTimer->Start(
+            KMPXTimeoutTimer,
+            KMPXTimeoutTimer,
+            TCallBack(TimeoutTimerCallback, this ));
+
+        // Start wait loop until we get a callback from ThumbNail Manager.
+        if ( !iTNSyncWait->IsStarted() )
+            {
+            iTNSyncWait->Start();
+            }
+        }
+#endif // RD_MPX_TNM_INTEGRATION
+     }