diff -r 4bdfb6b5c9b4 -r b67379558a75 imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserver.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserver.cpp Wed Jun 23 18:33:48 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserver.cpp Tue Jul 06 14:37:18 2010 +0300 @@ -43,6 +43,7 @@ _LIT8( KThumbnailMimeImage, "image" ); _LIT8( KThumbnailMimeVideo, "video" ); _LIT8( KThumbnailMimeAudio, "audio" ); +_LIT8( KThumbnailMimeContact, "contact" ); const TChar KThumbnailMimeSeparatorChar = '/'; const TChar KThumbnailMimeWildCardChar = '*'; @@ -285,8 +286,11 @@ iUnmountedDrives.Close(); delete iFetchedChecker; + iFetchedChecker = NULL; delete iShutdownObserver; + iShutdownObserver = NULL; delete iProcessor; + iProcessor = NULL; if(iReconnect) { @@ -306,7 +310,9 @@ iUnmountObservers.ResetAndDestroy(); delete iMMCObserver; + iMMCObserver = NULL; delete iFormatObserver; + iFormatObserver = NULL; THashMapIter < TInt, TThumbnailBitmapRef > bpiter( iBitmapPool ); @@ -320,11 +326,13 @@ } delete iScaler; + iScaler = NULL; iBitmapPool.Close(); iFbsSession.Disconnect(); iRecognizer.Close(); iPluginInfoArray.ResetAndDestroy(); delete iCenrep; + iCenrep = NULL; iFs.Close(); REComSession::FinalClose(); } @@ -439,8 +447,7 @@ TN_DEBUG2( "CThumbnailServer::DropSession() aSession = 0x%08x", aSession ); - // clean-up bitmap pool - + // clean-up bitmap pool THashMapIter < TInt, TThumbnailBitmapRef > bpiter( iBitmapPool ); // const pointer to a non-const object @@ -457,8 +464,8 @@ TN_DEBUG2( "CThumbnailServer::DropSession() - deleted bitmap, left=%d", iBitmapPool.Count()); } - ref = bpiter.NextValue(); + ref = bpiter.NextValue(); } if ( iSessionCount <= 0 ) @@ -549,12 +556,12 @@ if (!aCheckExist) { StoreForPathL( aPath )->StoreThumbnailL( aPath, aBitmap, aOriginalSize, - aCropped, aThumbnailSize, aModified, aThumbFromPath ); + aCropped, aThumbnailSize, aModified, aThumbFromPath, EFalse ); } else if(BaflUtils::FileExists( iFs, aPath)) { StoreForPathL( aPath )->StoreThumbnailL( aPath, aBitmap, aOriginalSize, - aCropped, aThumbnailSize, aModified, aThumbFromPath ); + aCropped, aThumbnailSize, aModified, aThumbFromPath, EFalse ); } else { @@ -796,7 +803,7 @@ // ----------------------------------------------------------------------------- -// CThumbnailServer::GetProviderL() +// CThumbnailServer::PreLoadProviders() // ----------------------------------------------------------------------------- // void CThumbnailServer::PreLoadProviders( ) @@ -806,7 +813,7 @@ for(TInt i=0; i< iPluginInfoArray.Count(); i++) { - TRAP(err, GetProviderL( iPluginInfoArray[i]->ImplementationUid())); + TRAP(err, GetProviderL( iPluginInfoArray[i]->ImplementationUid())); } } @@ -829,20 +836,17 @@ // ----------------------------------------------------------------------------- // TInt CThumbnailServer::DequeTask( const TThumbnailServerRequestId& aRequestId ) - { - + { TInt error = iProcessor->RemoveTask( aRequestId ); - // clean-up bitmap pool - + // clean-up bitmap pool THashMapIter < TInt, TThumbnailBitmapRef > bpiter( iBitmapPool ); // const pointer to a non-const object const TThumbnailBitmapRef* ref = bpiter.NextValue(); while ( ref ) - { - + { TN_DEBUG2( "CThumbnailServer::DequeTask() - ref->iRequestId = %d", ref->iRequestId ); if ( ref->iSession == aRequestId.iSession && @@ -852,10 +856,10 @@ bpiter.RemoveCurrent(); TN_DEBUG2( "CThumbnailServer::DequeTask() - deleted bitmap, left=%d", - iBitmapPool.Count()); + iBitmapPool.Count()); } - ref = bpiter.NextValue(); + ref = bpiter.NextValue(); } return error; @@ -1335,8 +1339,7 @@ TInt CThumbnailServer::MimeTypeFromFileExt( const TDesC& aFileName, TDataType& aMimeType ) { TBool found = ETrue; - TParsePtrC parse( aFileName ); - TPtrC ext( parse.Ext() ); + TPtrC ext( aFileName.Right(KExtLength) ); // tparse panics with virtual URI if ( ext.CompareF( KJpegExt ) == 0 || ext.CompareF( KJpgExt ) == 0) { @@ -1446,6 +1449,10 @@ { aMimeType = TDataType( KMatroskaVideoMime ); } + else if ( ext.CompareF( KContactExt ) == 0 ) + { + aMimeType = TDataType( KContactMime ); + } else { aMimeType = TDataType( KNullDesC8 ); @@ -1483,6 +1490,10 @@ { return TThumbnailPersistentSize::EAudio; } + else if (mediaType.Compare(KThumbnailMimeContact) == 0) + { + return TThumbnailPersistentSize::EContact; + } return TThumbnailPersistentSize::EUnknownSourceType; } @@ -1512,6 +1523,11 @@ case EAudioFullScreenThumbnailSize: sourceType = TThumbnailPersistentSize::EAudio; break; + case EContactListThumbnailSize: + case EContactGridThumbnailSize: + case EContactFullScreenThumbnailSize: + sourceType = TThumbnailPersistentSize::EContact; + break; default: sourceType = TThumbnailPersistentSize::EUnknownSourceType; } @@ -1531,24 +1547,29 @@ mimeType.CompareF( KJpeg2000Mime ) == 0 || mimeType.CompareF( KGifMime ) == 0 || mimeType.CompareF( KPngMime ) == 0 || - mimeType.CompareF( KBmpMime ) == 0 || + mimeType.CompareF( KSvgMime ) == 0 || mimeType.CompareF( KMpgMime1 ) == 0 || mimeType.CompareF( KMpeg4Mime ) == 0 || mimeType.CompareF( KMp4Mime ) == 0 || mimeType.CompareF( KAviMime ) == 0 || - mimeType.CompareF( KVideo3gppMime ) == 0 || - mimeType.CompareF( KVideoWmvMime ) == 0 || - mimeType.CompareF( KRealVideoMime ) == 0 || mimeType.CompareF( KMp3Mime ) == 0 || + mimeType.CompareF( KNonEmbeddArtMime ) == 0 || + mimeType.CompareF( KM4aMime ) == 0 || mimeType.CompareF( KAacMime ) == 0 || mimeType.CompareF( KWmaMime ) == 0 || + mimeType.CompareF( KBmpMime ) == 0 || + mimeType.CompareF( KAudio3gppMime ) == 0 || + mimeType.CompareF( KVideo3gppMime ) == 0 || mimeType.CompareF( KAudioAmrMime ) == 0 || + mimeType.CompareF( KVideoWmvMime ) == 0 || mimeType.CompareF( KRealAudioMime ) == 0 || - mimeType.CompareF( KM4aMime ) == 0 || - mimeType.CompareF( KFlashVideoMime ) == 0 || + mimeType.CompareF( KPmRealAudioPluginMime ) == 0 || mimeType.CompareF( KPmRealVideoPluginMime ) == 0 || mimeType.CompareF( KPmRealVbVideoPluginMime ) == 0 || - mimeType.CompareF( KPmRealAudioPluginMime ) == 0 ) + mimeType.CompareF( KRealVideoMime ) == 0 || + mimeType.CompareF( KFlashVideoMime ) == 0 || + mimeType.CompareF( KMatroskaVideoMime ) == 0 || + mimeType.CompareF( KContactMime ) == 0 ) { return ETrue; } @@ -1770,7 +1791,7 @@ // --------------------------------------------------------------------------- -// CThumbnailServer::ReconnectCallBack() +// CThumbnailServer::UnmountCallBack() // --------------------------------------------------------------------------- // TInt CThumbnailServer::UnmountCallBack(TAny* aAny)