diff -r d240f0a77280 -r 780c925249c1 mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp --- 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 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 + }