--- 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
+ }