imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailscaletask.cpp
branchRCL_3
changeset 58 9e8b0cc88842
parent 50 60bb012f1157
equal deleted inserted replaced
50:60bb012f1157 58:9e8b0cc88842
    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     }
   119         iServer.DeleteBitmapFromPool( iBitmap->Handle());
   117         iServer.DeleteBitmapFromPool( iBitmap->Handle());
   120         }
   118         }
   121 
   119 
   122     // Scaled bitmap is owned by us, delete now
   120     // Scaled bitmap is owned by us, delete now
   123     delete iScaledBitmap;
   121     delete iScaledBitmap;
   124     iScaledBitmap = NULL;
       
   125     }
   122     }
   126 
   123 
   127 
   124 
   128 // ---------------------------------------------------------------------------
   125 // ---------------------------------------------------------------------------
   129 // CThumbnailScaleTask::StartL()
   126 // CThumbnailScaleTask::StartL()
   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         {