diff -r 235a7fc86938 -r 2edacbf5d3f9 imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailscaletask.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailscaletask.cpp Tue Feb 02 00:23:15 2010 +0200 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailscaletask.cpp Fri Mar 19 09:35:30 2010 +0200 @@ -41,14 +41,14 @@ aProcessor, CThumbnailServer& aServer, const TDesC& aFilename, CFbsBitmap* aBitmap, const TSize& aOriginalSize, const TSize& aTargetSize, TBool aCrop, TDisplayMode aDisplayMode, TInt aPriority, const TDesC& aTargetUri, - const TThumbnailSize aThumbnailSize, const TThumbnailId aThumbnailId, + const TThumbnailSize aThumbnailSize, const TInt64 aModified, TBool aBitmapToPool, const TBool aEXIF) { // We take ownership of aBitmap CleanupStack::PushL( aBitmap ); CThumbnailScaleTask* self = new( ELeave )CThumbnailScaleTask( aProcessor, aServer, aFilename, aBitmap, aOriginalSize, aTargetSize, aCrop, - aDisplayMode, aPriority, aTargetUri, aThumbnailSize, aThumbnailId, + aDisplayMode, aPriority, aTargetUri, aThumbnailSize, aModified, aBitmapToPool, aEXIF); CleanupStack::Pop( aBitmap ); CleanupStack::PushL( self ); @@ -67,12 +67,12 @@ CThumbnailServer& aServer, const TDesC& aFilename, CFbsBitmap* aBitmap, const TSize& aOriginalSize, const TSize& aTargetSize, TBool aCrop, TDisplayMode aDisplayMode, TInt aPriority, const TDesC& aTargetUri, - const TThumbnailSize aThumbnailSize, const TThumbnailId aThumbnailId, + const TThumbnailSize aThumbnailSize, const TInt64 aModified, TBool aBitmapToPool, const TBool aEXIF): CThumbnailTask( aProcessor, aPriority ), iServer( aServer ), iOwnBitmap( aBitmap ), - iOriginalSize( aOriginalSize ), iTargetSize( aTargetSize ), iCrop( aCrop ), + iOriginalSize( aOriginalSize ), iTargetSize(aTargetSize), iTargetSizeTN( aTargetSize ), iCrop( aCrop ), iDisplayMode( aDisplayMode ), iFilename( aFilename ), iTargetUri( aTargetUri ), - iThumbnailSize(aThumbnailSize), iThumbnailId(aThumbnailId), + iThumbnailSize(aThumbnailSize), iModified(aModified), iBitmapToPool(aBitmapToPool), iEXIF(aEXIF) { TN_DEBUG2( "CThumbnailScaleTask(0x%08x)::CThumbnailScaleTask()", this ); @@ -86,7 +86,7 @@ // void CThumbnailScaleTask::ConstructL() { - iServer.AddBitmapToPoolL( NULL, iOwnBitmap ); + iServer.AddBitmapToPoolL( iRequestId.iSession, iOwnBitmap, iRequestId ); // Successfully added bitmap to pool, we are no longer responsible for // deleting it directly. @@ -326,16 +326,14 @@ // void CThumbnailScaleTask::StoreAndCompleteL() { - TN_DEBUG5( "CThumbnailScaleTask(0x%08x)::StoreAndCompleteL() iFilename=%S, iBitmap=0x%08x, iScaledBitmap=0x%08x)", - this, &iFilename, iBitmap, iScaledBitmap ); + TN_DEBUG6( "CThumbnailScaleTask(0x%08x)::StoreAndCompleteL() iFilename=%S, iThumbnailSize=%d, iBitmap=0x%08x, iScaledBitmap=0x%08x)", + this, &iFilename, iThumbnailSize, iBitmap, iScaledBitmap ); // do not store TN if quality is too low eg. orignal size of image is smaller than requested size // (do not store upscaled images) - if ( iTargetSize.iWidth >= iOriginalSize.iWidth && - iTargetSize.iHeight >= iOriginalSize.iHeight && iEXIF) + if ( (iTargetSizeTN.iWidth > iOriginalSize.iWidth || iTargetSizeTN.iHeight > iOriginalSize.iHeight) && iEXIF) { TN_DEBUG1("CThumbnailScaleTask()::StoreAndCompleteL() too low quality"); - //don't store preview image iDoStore = EFalse; } @@ -348,34 +346,35 @@ if (iFilename != KNullDesC && iFilename.CompareF(iTargetUri) == 0) { // filename and target URI match, so thumb created from associated path - iServer.StoreThumbnailL( iTargetUri, iScaledBitmap, iOriginalSize, iCrop, iThumbnailSize, iThumbnailId, ETrue ); + iServer.StoreThumbnailL( iTargetUri, iScaledBitmap, iOriginalSize, iCrop, iThumbnailSize, iModified, ETrue ); } else { // thumb not created from associated path - iServer.StoreThumbnailL( iTargetUri, iScaledBitmap, iOriginalSize, iCrop, iThumbnailSize, iThumbnailId, EFalse, EFalse ); + iServer.StoreThumbnailL( iTargetUri, iScaledBitmap, iOriginalSize, iCrop, iThumbnailSize, iModified, EFalse, EFalse ); } } else if (iFilename != KNullDesC) { - iServer.StoreThumbnailL( iFilename, iScaledBitmap, iOriginalSize, iCrop, iThumbnailSize, iThumbnailId, ETrue ); + iServer.StoreThumbnailL( iFilename, iScaledBitmap, iOriginalSize, iCrop, iThumbnailSize, iModified, ETrue ); } } - if ( iMessage.Handle() ) + if ( ClientThreadAlive() ) { TN_DEBUG1("CThumbnailScaleTask()::StoreAndCompleteL() scaled bitmap handle to params"); - TThumbnailRequestParams& params = iParamsBuf(); - iMessage.ReadL( 0, iParamsBuf ); - params.iBitmapHandle = iScaledBitmap->Handle(); - + TThumbnailRequestParams& params = iParamsBuf(); + iMessage.ReadL( 0, iParamsBuf ); + // if need to add scaled bitmap to pool if (iBitmapToPool) { TN_DEBUG1("CThumbnailScaleTask()::StoreAndCompleteL() scaled bitmap to pool"); - iServer.AddBitmapToPoolL( iRequestId.iSession, iScaledBitmap ); + params.iBitmapHandle = iScaledBitmap->Handle(); + + iServer.AddBitmapToPoolL( iRequestId.iSession, iScaledBitmap, iRequestId ); iScaledBitmapHandle = params.iBitmapHandle; }