# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1284490534 -10800 # Node ID 3d743e824514817d2c1f3c843b37a53bf2c08640 # Parent 9d4d3445ce6eae4170771ea544bbfd9bea09cdf9 Revision: 201033 Kit: 201035 diff -r 9d4d3445ce6e -r 3d743e824514 imagehandlingutilities/thumbnailmanager/thumbnailclient/inc/thumbnailrequestactive.h --- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/inc/thumbnailrequestactive.h Wed Sep 01 12:20:35 2010 +0100 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/inc/thumbnailrequestactive.h Tue Sep 14 21:55:34 2010 +0300 @@ -95,7 +95,7 @@ * ThumbnailReady callback. * @param aTargetUri Target URI to which the imported thumbnail is linked. */ - void GetThumbnailL( const RFile64& aFile, TThumbnailId aThumbnailId, + void GetThumbnailL( const RFile64& aFile, TThumbnailId aThumbnailId, const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly, const TDesC& aTargetUri = KNullDesC, @@ -117,7 +117,7 @@ * ThumbnailReady callback. * @param aTargetUri Target URI to which the imported thumbnail is linked. */ - void GetThumbnailL( TThumbnailId aThumbnailId, const TDesC& aPath, + void GetThumbnailL( TThumbnailId aThumbnailId, const TDesC& aPath, const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly, const TDesC& aTargetUri = KNullDesC, @@ -142,7 +142,7 @@ * @param aThumbnailSize Relative thumbnail size */ void GetThumbnailL( const TDesC& aPath, TThumbnailId aThumbnailId, - CThumbnailManager::TThumbnailFlags aFlags, + const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly, diff -r 9d4d3445ce6e -r 3d743e824514 imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailmanagerimpl.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailmanagerimpl.cpp Wed Sep 01 12:20:35 2010 +0100 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailmanagerimpl.cpp Tue Sep 14 21:55:34 2010 +0300 @@ -172,21 +172,21 @@ if(aObjectSource.Id() > 0) { - getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags, - iQualityPreference, iSize, iDisplayMode, priority, aClientData, aGeneratePersistentSizesOnly, - KNullDesC, iThumbnailSize); + getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), + aObjectSource.MimeType(),iFlags, iQualityPreference, iSize, iDisplayMode, + priority, aClientData, aGeneratePersistentSizesOnly, KNullDesC, iThumbnailSize); } else if ( aObjectSource.Uri().Length()) { - getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags, - iQualityPreference, iSize, iDisplayMode, priority, aClientData, aGeneratePersistentSizesOnly, - KNullDesC, iThumbnailSize ); + getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), + aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, + priority, aClientData, aGeneratePersistentSizesOnly, KNullDesC, iThumbnailSize ); } else { - getThumbnailActive->GetThumbnailL( aObjectSource.FileHandle(), aObjectSource.Id(), iFlags, - iQualityPreference, iSize, iDisplayMode, priority, aClientData, aGeneratePersistentSizesOnly, - KNullDesC, iThumbnailSize ); + getThumbnailActive->GetThumbnailL( aObjectSource.FileHandle(), aObjectSource.Id(), + aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, + priority, aClientData, aGeneratePersistentSizesOnly, KNullDesC, iThumbnailSize ); } iRequestQueue->AddRequestL( getThumbnailActive ); @@ -231,9 +231,9 @@ ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue ); CleanupStack::PushL( getThumbnailActive ); - getThumbnailActive->GetThumbnailL( KNullDesC, aThumbnailId, iFlags, - iQualityPreference, iSize, iDisplayMode, priority, aClientData, - EFalse, KNullDesC, iThumbnailSize ); + getThumbnailActive->GetThumbnailL( KNullDesC, aThumbnailId, KNullDesC8, + iFlags, iQualityPreference, iSize, iDisplayMode, priority, aClientData, + EFalse, KNullDesC, iThumbnailSize ); iRequestQueue->AddRequestL( getThumbnailActive ); CleanupStack::Pop( getThumbnailActive ); @@ -267,15 +267,15 @@ if ( aObjectSource.Uri().Length()) { - getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags, - iQualityPreference, iSize, iDisplayMode, priority, aClientData, - EFalse, aTargetUri, iThumbnailSize ); + getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), + aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, + priority, aClientData, EFalse, aTargetUri, iThumbnailSize ); } else { getThumbnailActive->GetThumbnailL( aObjectSource.FileHandle(), aObjectSource.Id(), - iFlags, iQualityPreference, iSize, iDisplayMode, priority, aClientData, - EFalse, aTargetUri, iThumbnailSize ); + aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, + priority, aClientData, EFalse, aTargetUri, iThumbnailSize ); } iRequestQueue->AddRequestL( getThumbnailActive ); @@ -374,9 +374,9 @@ else if( !aObjectSource.Buffer() ) { getThumbnailActive->GetThumbnailL( aObjectSource.Id(), - aObjectSource.Uri(), iFlags, iQualityPreference, iSize, - iDisplayMode, priority, NULL, ETrue, aObjectSource.Uri(), - EUnknownThumbnailSize); + aObjectSource.Uri(), aObjectSource.MimeType(), iFlags, + iQualityPreference, iSize, iDisplayMode, priority, NULL, + ETrue, aObjectSource.Uri(), EUnknownThumbnailSize); } else { diff -r 9d4d3445ce6e -r 3d743e824514 imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestactive.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestactive.cpp Wed Sep 01 12:20:35 2010 +0100 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestactive.cpp Tue Sep 14 21:55:34 2010 +0300 @@ -659,7 +659,7 @@ // --------------------------------------------------------------------------- // void CThumbnailRequestActive::GetThumbnailL( const RFile64& aFile, TThumbnailId aThumbnailId, - CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager + const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly, const TDesC& aTargetUri, TThumbnailSize aThumbnailSize) @@ -680,6 +680,7 @@ EThumbnailGeneratePersistentSizesOnly : EThumbnailNoControlFlags); iParams.iOriginalControlFlags = iParams.iControlFlags; + iParams.iMimeType = TDataType( aMimeType ); iParams.iBitmapHandle = 0; iParams.iSize = aSize; iParams.iDisplayMode = aDisplayMode; @@ -714,8 +715,8 @@ // --------------------------------------------------------------------------- // void CThumbnailRequestActive::GetThumbnailL( TThumbnailId aThumbnailId, - const TDesC& aPath, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager - ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const + const TDesC& aPath, const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, + CThumbnailManager::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly, const TDesC& aTargetUri, TThumbnailSize aThumbnailSize) { @@ -726,6 +727,7 @@ EThumbnailGeneratePersistentSizesOnly : EThumbnailNoControlFlags); iParams.iOriginalControlFlags = iParams.iControlFlags; + iParams.iMimeType = TDataType( aMimeType ); iParams.iBitmapHandle = 0; iParams.iSize = aSize; iParams.iDisplayMode = aDisplayMode; @@ -758,7 +760,7 @@ // --------------------------------------------------------------------------- // void CThumbnailRequestActive::GetThumbnailL( const TDesC& aPath, TThumbnailId aThumbnailId, - CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager + const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly, const TDesC& aTargetUri, TThumbnailSize aThumbnailSize) @@ -770,6 +772,7 @@ EThumbnailGeneratePersistentSizesOnly : EThumbnailNoControlFlags); iParams.iOriginalControlFlags = iParams.iControlFlags; + iParams.iMimeType = TDataType( aMimeType ); iParams.iBitmapHandle = 0; iParams.iSize = aSize; iParams.iDisplayMode = aDisplayMode; diff -r 9d4d3445ce6e -r 3d743e824514 imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserver.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserver.cpp Wed Sep 01 12:20:35 2010 +0100 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserver.cpp Tue Sep 14 21:55:34 2010 +0300 @@ -1408,10 +1408,14 @@ else if ( ext.CompareF( K3gpExt ) == 0 ) { aMimeType = TDataType( KVideo3gppMime ); + return KErrNotFound; + // 3gp can contain video or audio, should go to recognizer } else if ( ext.CompareF( K3gppExt ) == 0 ) { aMimeType = TDataType( KVideo3gppMime ); + return KErrNotFound; + // 3gp can contain video or audio, should go to recognizer } else if ( ext.CompareF( KAmrExt ) == 0 ) { diff -r 9d4d3445ce6e -r 3d743e824514 imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserversession.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserversession.cpp Wed Sep 01 12:20:35 2010 +0100 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserversession.cpp Tue Sep 14 21:55:34 2010 +0300 @@ -291,8 +291,26 @@ TInt sourceType = 0; TInt err = Server()->MimeTypeFromFileExt( params.iFileName, mimeType ); + // need to use recognizer + if (err == KErrNotFound) + { + Server()->Fs().ShareProtected(); + RFile64 file; + CleanupClosePushL( file ); + + User::LeaveIfError( file.Open( Server()->Fs(), params.iFileName, EFileShareReadersOrWriters )); + TN_DEBUG2( "CThumbnailServerSession::UpdateThumbnailsL - file handle opened for %S", ¶ms.iFileName ); + + mimeType = Server()->ResolveMimeTypeL(file); + + file.Close(); + TN_DEBUG1("CThumbnailServerSession::UpdateThumbnailsL - file handle closed"); + + CleanupStack::Pop( &file ); + } + // get missing sizes - if ( err == KErrNone && ( params.iControlFlags & EThumbnailGeneratePersistentSizesOnly ) != 0 ) + if ( ( params.iControlFlags & EThumbnailGeneratePersistentSizesOnly ) != 0 ) { sourceType = Server()->SourceTypeFromMimeType( mimeType );