imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailgeneratetask.cpp
branchRCL_3
changeset 9 2eb74cf6572e
parent 5 82749d516180
child 10 7403edfcf0fb
equal deleted inserted replaced
5:82749d516180 9:2eb74cf6572e
    39 CThumbnailGenerateTask::CThumbnailGenerateTask( CThumbnailTaskProcessor&
    39 CThumbnailGenerateTask::CThumbnailGenerateTask( CThumbnailTaskProcessor&
    40     aProcessor, CThumbnailServer& aServer, RFile64* aFile, TDesC8* aBuffer,
    40     aProcessor, CThumbnailServer& aServer, RFile64* aFile, TDesC8* aBuffer,
    41     const TDataType* aMimeType, CThumbnailManager::TThumbnailFlags aFlags,
    41     const TDataType* aMimeType, CThumbnailManager::TThumbnailFlags aFlags,
    42     const TSize& aSize, TDisplayMode aDisplayMode, TInt aPriority,
    42     const TSize& aSize, TDisplayMode aDisplayMode, TInt aPriority,
    43     RArray < TThumbnailPersistentSize >* aMissingSizes, const TDesC& aTargetUri,
    43     RArray < TThumbnailPersistentSize >* aMissingSizes, const TDesC& aTargetUri,
    44     TThumbnailSize aThumbnailSize, const TThumbnailId aThumbnailId, 
    44     TThumbnailSize aThumbnailSize, const TInt64 aModified, 
    45     const CThumbnailManager::TThumbnailQualityPreference aQualityPreference ): 
    45     const CThumbnailManager::TThumbnailQualityPreference aQualityPreference ): 
    46     CThumbnailTask( aProcessor, aPriority ), iServer( aServer ), 
    46     CThumbnailTask( aProcessor, aPriority ), iServer( aServer ), 
    47     iFlags( aFlags ), iSize( aSize ), iDisplayMode( aDisplayMode ),
    47     iFlags( aFlags ), iSize( aSize ), iDisplayMode( aDisplayMode ),
    48     iMissingSizes( aMissingSizes ), iTargetUri( aTargetUri ),
    48     iMissingSizes( aMissingSizes ), iTargetUri( aTargetUri ),
    49     iThumbnailSize( aThumbnailSize ), iThumbnailId(aThumbnailId),
    49     iThumbnailSize( aThumbnailSize ), iModified(aModified),
    50     iQualityPreference( aQualityPreference )
    50     iQualityPreference( aQualityPreference )
    51     {
    51     {
    52     TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::CThumbnailGenerateTask()", this);
    52     TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::CThumbnailGenerateTask()", this);
    53     
    53     
    54     if ( !aBuffer && aFile)
    54     if ( !aBuffer && aFile)
   352                     }
   352                     }
   353                 }
   353                 }
   354             
   354             
   355             CThumbnailScaleTask* scaleTask = CThumbnailScaleTask::NewL( iProcessor, iServer, iFilename,
   355             CThumbnailScaleTask* scaleTask = CThumbnailScaleTask::NewL( iProcessor, iServer, iFilename,
   356                 iBitmap, iOriginalSize, (*iMissingSizes)[ i ].iSize, (*iMissingSizes)[ i ].iCrop, iDisplayMode,
   356                 iBitmap, iOriginalSize, (*iMissingSizes)[ i ].iSize, (*iMissingSizes)[ i ].iCrop, iDisplayMode,
   357                 KMaxPriority, iTargetUri, (*iMissingSizes)[ i ].iType, iThumbnailId, iScaledBitmapToPool, iEXIF );
   357                 KMaxPriority, iTargetUri, (*iMissingSizes)[ i ].iType, iModified, iScaledBitmapToPool, iEXIF );
   358             CleanupStack::PushL( scaleTask );
   358             CleanupStack::PushL( scaleTask );
   359             
   359             
   360             TInt err1 = KErrNone;
   360             TInt err1 = KErrNone;
   361             TInt err2 = KErrNone;
   361             TInt err2 = KErrNone;
   362             if(iFilename != KNullDesC)
   362             if(iFilename != KNullDesC)
   409             }
   409             }
   410         
   410         
   411         complTask = CThumbnailScaleTask::NewL( iProcessor, iServer, iFilename,
   411         complTask = CThumbnailScaleTask::NewL( iProcessor, iServer, iFilename,
   412             iBitmap, iOriginalSize, iSize, iFlags& CThumbnailManager
   412             iBitmap, iOriginalSize, iSize, iFlags& CThumbnailManager
   413             ::ECropToAspectRatio, iDisplayMode, KMaxPriority, iTargetUri,
   413             ::ECropToAspectRatio, iDisplayMode, KMaxPriority, iTargetUri,
   414             iThumbnailSize, iThumbnailId, iScaledBitmapToPool, iEXIF );
   414             iThumbnailSize, iModified, iScaledBitmapToPool, iEXIF );
   415         CleanupStack::PushL( complTask );
   415         CleanupStack::PushL( complTask );
   416         
   416         
   417         TInt err1 = KErrNone;
   417         TInt err1 = KErrNone;
   418         TInt err2 = KErrNone;
   418         TInt err2 = KErrNone;
   419         if(iFilename != KNullDesC)
   419         if(iFilename != KNullDesC)
   480     // of requested size only meaningful. 
   480     // of requested size only meaningful. 
   481     
   481     
   482     if(iFilename != KNullDesC)
   482     if(iFilename != KNullDesC)
   483         {
   483         {
   484         iServer.StoreForPathL( iFilename )->StoreThumbnailL( 
   484         iServer.StoreForPathL( iFilename )->StoreThumbnailL( 
   485             iFilename, tempBitmap, aOriginalSize, EFalse, iThumbnailSize, iThumbnailId, EFalse, ETrue );
   485             iFilename, tempBitmap, aOriginalSize, EFalse, iThumbnailSize, iModified, EFalse, ETrue );
   486         }
   486         }
   487     else if(iTargetUri != KNullDesC)
   487     else if(iTargetUri != KNullDesC)
   488         {
   488         {
   489         iServer.StoreForPathL( iTargetUri )->StoreThumbnailL( 
   489         iServer.StoreForPathL( iTargetUri )->StoreThumbnailL( 
   490             iTargetUri, tempBitmap, aOriginalSize, EFalse, iThumbnailSize, iThumbnailId, EFalse, ETrue );
   490             iTargetUri, tempBitmap, aOriginalSize, EFalse, iThumbnailSize, iModified, EFalse, ETrue );
   491         }
   491         }
   492 
   492 
   493     CleanupStack::PopAndDestroy( tempBitmap );
   493     CleanupStack::PopAndDestroy( tempBitmap );
   494     }
   494     }
   495 
   495 
   504     // Because no actual bitmap data is generated, there is no reason to 
   504     // Because no actual bitmap data is generated, there is no reason to 
   505     // add bitmap to server bitmap pool. Completion of client request with
   505     // add bitmap to server bitmap pool. Completion of client request with
   506     // error code just results in applications showing their default bitmap. 
   506     // error code just results in applications showing their default bitmap. 
   507     if( aError != KErrNone && (iFilename != KNullDesC || iTargetUri != KNullDesC ))
   507     if( aError != KErrNone && (iFilename != KNullDesC || iTargetUri != KNullDesC ))
   508         {
   508         {
   509         if ( aError == KErrNotSupported ||
   509         if (aError == KErrNotFound ||
       
   510             aError == KErrNotSupported ||
   510             aError == KErrCorrupt ||
   511             aError == KErrCorrupt ||
   511             aError == KErrCompletion ||
   512             aError == KErrCompletion ||
   512             aError == KErrUnderflow)
   513             aError == KErrUnderflow ||
       
   514             aError == KErrNotReady)
   513             {
   515             {
   514         
   516         
   515         if(iMissingSizes)
   517         if(iMissingSizes)
   516             {
   518             {
   517             TN_DEBUG2( "CThumbnailGenerateTask::DoBlacklisting() - blacklist missing sizes count = %d", iMissingSizes->Count() );
   519             TN_DEBUG2( "CThumbnailGenerateTask::DoBlacklisting() - blacklist missing sizes count = %d", iMissingSizes->Count() );