40 CThumbnailScaleTask* CThumbnailScaleTask::NewL( CThumbnailTaskProcessor& |
40 CThumbnailScaleTask* CThumbnailScaleTask::NewL( CThumbnailTaskProcessor& |
41 aProcessor, CThumbnailServer& aServer, const TDesC& aFilename, CFbsBitmap* |
41 aProcessor, CThumbnailServer& aServer, const TDesC& aFilename, CFbsBitmap* |
42 aBitmap, const TSize& aOriginalSize, const TSize& aTargetSize, TBool aCrop, |
42 aBitmap, const TSize& aOriginalSize, const TSize& aTargetSize, TBool aCrop, |
43 TDisplayMode aDisplayMode, TInt aPriority, const TDesC& aTargetUri, |
43 TDisplayMode aDisplayMode, TInt aPriority, const TDesC& aTargetUri, |
44 const TThumbnailSize aThumbnailSize, const TInt64 aModified, |
44 const TThumbnailSize aThumbnailSize, const TInt64 aModified, |
45 TBool aBitmapToPool, const TBool aEXIF, const TThumbnailServerRequestId aRequestId, |
45 TBool aBitmapToPool, const TBool aEXIF, const TThumbnailServerRequestId aRequestId) |
46 const TBool aImportVirtual) |
|
47 { |
46 { |
48 // We take ownership of aBitmap |
47 // We take ownership of aBitmap |
49 CleanupStack::PushL( aBitmap ); |
48 CleanupStack::PushL( aBitmap ); |
50 CThumbnailScaleTask* self = new( ELeave )CThumbnailScaleTask( aProcessor, |
49 CThumbnailScaleTask* self = new( ELeave )CThumbnailScaleTask( aProcessor, |
51 aServer, aFilename, aBitmap, aOriginalSize, aTargetSize, aCrop, |
50 aServer, aFilename, aBitmap, aOriginalSize, aTargetSize, aCrop, |
52 aDisplayMode, aPriority, aTargetUri, aThumbnailSize, aModified, |
51 aDisplayMode, aPriority, aTargetUri, aThumbnailSize, aModified, |
53 aBitmapToPool, aEXIF, aRequestId, aImportVirtual); |
52 aBitmapToPool, aEXIF, aRequestId); |
54 CleanupStack::Pop( aBitmap ); |
53 CleanupStack::Pop( aBitmap ); |
55 CleanupStack::PushL( self ); |
54 CleanupStack::PushL( self ); |
56 self->ConstructL(); |
55 self->ConstructL(); |
57 CleanupStack::Pop( self ); |
56 CleanupStack::Pop( self ); |
58 return self; |
57 return self; |
67 CThumbnailScaleTask::CThumbnailScaleTask( CThumbnailTaskProcessor& aProcessor, |
66 CThumbnailScaleTask::CThumbnailScaleTask( CThumbnailTaskProcessor& aProcessor, |
68 CThumbnailServer& aServer, const TDesC& aFilename, CFbsBitmap* aBitmap, |
67 CThumbnailServer& aServer, const TDesC& aFilename, CFbsBitmap* aBitmap, |
69 const TSize& aOriginalSize, const TSize& aTargetSize, TBool aCrop, |
68 const TSize& aOriginalSize, const TSize& aTargetSize, TBool aCrop, |
70 TDisplayMode aDisplayMode, TInt aPriority, const TDesC& aTargetUri, |
69 TDisplayMode aDisplayMode, TInt aPriority, const TDesC& aTargetUri, |
71 const TThumbnailSize aThumbnailSize, const TInt64 aModified, |
70 const TThumbnailSize aThumbnailSize, const TInt64 aModified, |
72 TBool aBitmapToPool, const TBool aEXIF, const TThumbnailServerRequestId aRequestId, |
71 TBool aBitmapToPool, const TBool aEXIF, const TThumbnailServerRequestId aRequestId): |
73 const TBool aVirtualUri): |
|
74 CThumbnailTask( aProcessor, aPriority ), iServer( aServer ), iOwnBitmap( aBitmap ), |
72 CThumbnailTask( aProcessor, aPriority ), iServer( aServer ), iOwnBitmap( aBitmap ), |
75 iOriginalSize( aOriginalSize ), iTargetSize(aTargetSize), iTargetSizeTN( aTargetSize ), iCrop( aCrop ), |
73 iOriginalSize( aOriginalSize ), iTargetSize(aTargetSize), iTargetSizeTN( aTargetSize ), iCrop( aCrop ), |
76 iDisplayMode( aDisplayMode ), iFilename( aFilename ), iTargetUri( aTargetUri ), |
74 iDisplayMode( aDisplayMode ), iFilename( aFilename ), iTargetUri( aTargetUri ), |
77 iThumbnailSize(aThumbnailSize), iModified(aModified), |
75 iThumbnailSize(aThumbnailSize), iModified(aModified), |
78 iBitmapToPool(aBitmapToPool), iEXIF(aEXIF), iVirtualUri( aVirtualUri ) |
76 iBitmapToPool(aBitmapToPool), iEXIF(aEXIF) |
79 { |
77 { |
80 TN_DEBUG2( "CThumbnailScaleTask(0x%08x)::CThumbnailScaleTask()", this ); |
78 TN_DEBUG2( "CThumbnailScaleTask(0x%08x)::CThumbnailScaleTask()", this ); |
81 |
79 |
82 iRequestId = aRequestId; |
80 iRequestId = aRequestId; |
83 } |
81 } |
239 ThumbnailPanic( EThumbnailBadSize )); |
236 ThumbnailPanic( EThumbnailBadSize )); |
240 |
237 |
241 if ( (iThumbnailSize == EFullScreenThumbnailSize || |
238 if ( (iThumbnailSize == EFullScreenThumbnailSize || |
242 iThumbnailSize == EImageFullScreenThumbnailSize || |
239 iThumbnailSize == EImageFullScreenThumbnailSize || |
243 iThumbnailSize == EVideoFullScreenThumbnailSize || |
240 iThumbnailSize == EVideoFullScreenThumbnailSize || |
244 iThumbnailSize == EAudioFullScreenThumbnailSize || |
241 iThumbnailSize == EAudioFullScreenThumbnailSize) && |
245 iThumbnailSize == EContactFullScreenThumbnailSize) && |
|
246 iOriginalSize.iHeight < iTargetSize.iHeight && |
242 iOriginalSize.iHeight < iTargetSize.iHeight && |
247 iOriginalSize.iWidth < iTargetSize.iWidth ) |
243 iOriginalSize.iWidth < iTargetSize.iWidth ) |
248 { |
244 { |
249 // do not upscale fullscreen thumbs |
245 // do not upscale fullscreen thumbs |
250 iTargetSize = iOriginalSize; |
246 iTargetSize = iOriginalSize; |
350 if (iTargetUri != KNullDesC) |
346 if (iTargetUri != KNullDesC) |
351 { |
347 { |
352 if (iFilename != KNullDesC && iFilename.CompareF(iTargetUri) == 0) |
348 if (iFilename != KNullDesC && iFilename.CompareF(iTargetUri) == 0) |
353 { |
349 { |
354 // filename and target URI match, so thumb created from associated path |
350 // filename and target URI match, so thumb created from associated path |
355 iServer.StoreThumbnailL( iTargetUri, iScaledBitmap, iOriginalSize, iCrop, |
351 iServer.StoreThumbnailL( iTargetUri, iScaledBitmap, iOriginalSize, iCrop, iThumbnailSize, iModified, ETrue ); |
356 iThumbnailSize, iModified, !iVirtualUri, !iVirtualUri ); |
|
357 } |
352 } |
358 else |
353 else |
359 { |
354 { |
360 // thumb not created from associated path |
355 // thumb not created from associated path |
361 iServer.StoreThumbnailL( iTargetUri, iScaledBitmap, iOriginalSize, iCrop, |
356 iServer.StoreThumbnailL( iTargetUri, iScaledBitmap, iOriginalSize, iCrop, iThumbnailSize, iModified, EFalse, EFalse ); |
362 iThumbnailSize, iModified, !iVirtualUri, EFalse ); |
|
363 } |
357 } |
364 } |
358 } |
365 else if (iFilename != KNullDesC) |
359 else if (iFilename != KNullDesC) |
366 { |
360 { |
367 iServer.StoreThumbnailL( iFilename, iScaledBitmap, iOriginalSize, iCrop, |
361 iServer.StoreThumbnailL( iFilename, iScaledBitmap, iOriginalSize, iCrop, iThumbnailSize, iModified, ETrue ); |
368 iThumbnailSize, iModified, !iVirtualUri, !iVirtualUri ); |
|
369 } |
362 } |
370 } |
363 } |
371 |
364 |
372 if ( ClientThreadAlive() ) |
365 if ( ClientThreadAlive() ) |
373 { |
366 { |