diff -r 2e2a89493e2b -r 48dd0f169f0d imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailgeneratetask.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailgeneratetask.cpp Fri Sep 03 10:29:37 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,601 +0,0 @@ -/* -* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Task for generating new thumbnails - * -*/ - - -#include -#include - -#include -#include "thumbnailgeneratetask.h" -#include "thumbnailscaletask.h" -#include "thumbnailprovider.h" -#include "thumbnailserver.h" -#include "thumbnailtaskprocessor.h" -#include "thumbnailmanagerconstants.h" -#include "thumbnaillog.h" -#include "thumbnailpanic.h" -#include "thumbnailfetchedchecker.h" -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "thumbnailgeneratetaskTraces.h" -#endif - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CThumbnailGenerateTask::CThumbnailGenerateTask() -// C++ default constructor can NOT contain any code, that might leave. -// --------------------------------------------------------------------------- -// -CThumbnailGenerateTask::CThumbnailGenerateTask( CThumbnailTaskProcessor& - aProcessor, CThumbnailServer& aServer, RFile64* aFile, TDesC8* aBuffer, - const TDataType* aMimeType, CThumbnailManager::TThumbnailFlags aFlags, - const TSize& aSize, TDisplayMode aDisplayMode, TInt aPriority, - RArray < TThumbnailPersistentSize >* aMissingSizes, const TDesC& aTargetUri, - TThumbnailSize aThumbnailSize, const TInt64 aModified, - const CThumbnailManager::TThumbnailQualityPreference aQualityPreference, - TBool aVirtualUri ): - CThumbnailTask( aProcessor, aPriority ), iServer( aServer ), - iFlags( aFlags ), iSize( aSize ), iDisplayMode( aDisplayMode ), - iMissingSizes( aMissingSizes ), iTargetUri( aTargetUri ), - iThumbnailSize( aThumbnailSize ), iModified(aModified), - iQualityPreference( aQualityPreference ), iVirtualUri( aVirtualUri ) - { - TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::CThumbnailGenerateTask()", this); - OstTrace1( TRACE_NORMAL, CTHUMBNAILGENERATETASK_CTHUMBNAILGENERATETASK, "CThumbnailGenerateTask::CThumbnailGenerateTask;this=%o", this ); - - if ( !aBuffer && aFile) - { - iFile = *aFile; - iFile.FullName( iFilename ); - } - else if( aBuffer ) - { - iBuffer = aBuffer; - } - if ( aMimeType ) - { - iMimeType = *aMimeType; - } - else - { - iMimeType = TDataType(KNullDesC8); - } - - // scaled bitmaps to pool by default - iScaledBitmapToPool = ETrue; - iBitmapHandle = 0; - } - - -// --------------------------------------------------------------------------- -// CThumbnailGenerateTask::~CThumbnailGenerateTask() -// Destructor. -// --------------------------------------------------------------------------- -// -CThumbnailGenerateTask::~CThumbnailGenerateTask() - { - TN_DEBUG2("CThumbnailGenerateTask(0x%08x)::~CThumbnailGenerateTask()", this); - OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILGENERATETASK_CTHUMBNAILGENERATETASK, "CThumbnailGenerateTask::~CThumbnailGenerateTask;this=%o", this ); - - if ( iProvider ) - { - iProvider->CancelGetThumbnail(); - } - - if ( iMissingSizes ) - { - iMissingSizes->Reset(); - delete iMissingSizes; - iMissingSizes = NULL; - } - - if ( iBitmapHandle ) - { - iServer.DeleteBitmapFromPool( iBitmapHandle ); - iBitmapHandle = 0; - } - - iProvider = NULL; - delete iBuffer; - iBuffer = NULL; - - iFile.Close(); - TN_DEBUG1("CThumbnailGenerateTask::~CThumbnailGenerateTask() - file handle closed"); - OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILGENERATETASK_CTHUMBNAILGENERATETASK, "CThumbnailGenerateTask::~CThumbnailGenerateTask - file handle closed" ); - } - - -// --------------------------------------------------------------------------- -// CThumbnailGenerateTask::StartL() -// --------------------------------------------------------------------------- -// -void CThumbnailGenerateTask::StartL() - { - TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::StartL()", this ); - OstTrace1( TRACE_NORMAL, CTHUMBNAILGENERATETASK_STARTL, "CThumbnailGenerateTask::StartL;this=%o", this ); - - CThumbnailTask::StartL(); - -#ifdef _DEBUG - aStart.UniversalTime(); -#endif - - TBuf8< KMaxDataTypeLength > mimeType; - - if ( (!iVirtualUri && iFilename.Right(KExtLength).CompareF(KNonEmbeddedArtExt) == 0) || - (iVirtualUri && iTargetUri.Right(KExtLength).CompareF(KContactExt) == 0) ) // tparse panics with virtual URI - { - mimeType.Copy( KImageMime ); - } - else - { - mimeType = iMimeType.Des8(); - } - iProvider = iServer.ResolveProviderL(mimeType); - - TN_DEBUG3( "CThumbnailGenerateTask(0x%08x) -- provider UID 0x%08x", this, iProvider->Uid()); - OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILGENERATETASK_STARTL, "CThumbnailGenerateTask::StartL;this=%o", this ); - - __ASSERT_DEBUG(( iProvider ), ThumbnailPanic( EThumbnailNullPointer )); - - iProvider->CancelGetThumbnail(); - iProvider->Reset(); - iProvider->SetObserver( *this ); - - TSize effectiveTargetSize; - TSize croppedTargetSize; - - CalculateTargetSizesL( effectiveTargetSize, croppedTargetSize ); - - iProvider->SetTargetSize( effectiveTargetSize ); - - if(effectiveTargetSize == TSize()) - { - iProvider->SetTargetSize( croppedTargetSize ); - } - - TInt providerErr; - - if ( !iBuffer ) - { - TRAP(providerErr, iProvider->GetThumbnailL( iServer.Fs(), iFile, iMimeType, iFlags, - iDisplayMode, iQualityPreference ) ); - } - else - { - TRAP( providerErr, iProvider->GetThumbnailL( iServer.Fs(), iBuffer, iMimeType, iFlags, - iDisplayMode, iQualityPreference )); - } - - DoBlacklisting( providerErr, TSize(0,0) ); - - User::LeaveIfError( providerErr ); - - TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::StartL() end", this ); - OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILGENERATETASK_STARTL, "CThumbnailGenerateTask::StartL -end;this=%o", this ); - } - - -// --------------------------------------------------------------------------- -// CThumbnailGenerateTask::RunL() -// --------------------------------------------------------------------------- -// -void CThumbnailGenerateTask::RunL() - { - // No implementation required - } - - -// --------------------------------------------------------------------------- -// CThumbnailGenerateTask::DoCancel() -// --------------------------------------------------------------------------- -// -void CThumbnailGenerateTask::DoCancel() - { - TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::DoCancel()", this ); - OstTrace1( TRACE_NORMAL, CTHUMBNAILGENERATETASK_DOCANCEL, "CThumbnailGenerateTask::DoCancel;this=%o", this ); - - if ( iProvider ) - { - iProvider->CancelGetThumbnail(); - } - } - - -// --------------------------------------------------------------------------- -// Calculate the largest non-cropped size and largest cropped size and -// let the provider plug-in know the values -// --------------------------------------------------------------------------- -// -void CThumbnailGenerateTask::CalculateTargetSizesL( TSize& aEffectiveTargetSize, - TSize& aCroppedTargetSize ) - { - if ( iThumbnailSize == ECustomThumbnailSize ) - { - if ( iFlags& CThumbnailManager::ECropToAspectRatio ) - { - aCroppedTargetSize = iSize; - } - else - { - aEffectiveTargetSize = iSize; - } - } - - if ( iThumbnailSize != ECustomThumbnailSize ) - { - RArray < TThumbnailPersistentSize > sizes = iServer.PersistentSizesL(); - const TInt count = sizes.Count(); - for ( TInt i = 0; i < count; i++ ) - { - TThumbnailPersistentSize size( sizes[i] ); - - iSize = size.iSize; - if ( size.iCrop ) - { - aCroppedTargetSize.iWidth = Max( aCroppedTargetSize.iWidth, - size.iSize.iWidth ); - aCroppedTargetSize.iHeight = Max( aCroppedTargetSize.iHeight, - size.iSize.iHeight ); - - if(iBuffer) - { - iFlags = ( CThumbnailManager::TThumbnailFlags ) (iFlags | CThumbnailManager::ECropToAspectRatio); - aEffectiveTargetSize = aCroppedTargetSize; - } - } - else - { - aEffectiveTargetSize.iWidth = Max( aEffectiveTargetSize.iWidth, - size.iSize.iWidth ); - aEffectiveTargetSize.iHeight = Max( aEffectiveTargetSize.iHeight, - size.iSize.iHeight ); - } - - if(size.iType == iThumbnailSize) - { - break; - } - } - } - } - -// --------------------------------------------------------------------------- -// Thumbnail provider observer callback to notify the server when -// thumbnail has been generated. -// --------------------------------------------------------------------------- -// -void CThumbnailGenerateTask::ThumbnailProviderReady( const TInt aError, - CFbsBitmap* aBitmap, const TSize& aOriginalSize, const TBool aEXIF, const TBool aPortrait ) - { - TN_DEBUG4( - "CThumbnailGenerateTask(0x%08x)::ThumbnailProviderReady(aError=%d, aBitmap=0x%08x)", this, aError, aBitmap ); - OstTrace1( TRACE_NORMAL, CTHUMBNAILGENERATETASK_THUMBNAILPROVIDERREADY, "CThumbnailGenerateTask::ThumbnailProviderReady;this=%o", this ); - OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILGENERATETASK_THUMBNAILPROVIDERREADY, "CThumbnailGenerateTask::ThumbnailProviderReady;aError=%d", aError ); - OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILGENERATETASK_THUMBNAILPROVIDERREADY, "CThumbnailGenerateTask::ThumbnailProviderReady;aBitmap=%o", aBitmap ); - - #ifdef _DEBUG - aStop.UniversalTime(); - TN_DEBUG2( "CThumbnailGenerateTask::ThumbnailProviderReady() generate took %d ms", (TInt)aStop.MicroSecondsFrom(aStart).Int64()/1000); - #endif - - iPortrait = aPortrait; - iEXIF = aEXIF; - iOriginalSize = aOriginalSize; - - if ( aError ) - { - delete aBitmap; - aBitmap = NULL; - - DoBlacklisting( aError, aOriginalSize ); - - Complete( aError ); - } - else - { - // CreateScaleTasksL will take ownership of bitmap - -#ifdef _DEBUG - TN_DEBUG2( "CThumbnailGenerateTask::ThumbnailProviderReady() - displaymode is %d", aBitmap->DisplayMode()); - OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILGENERATETASK_THUMBNAILPROVIDERREADY, "CThumbnailGenerateTask::ThumbnailProviderReady;aBitmap->DisplayMode()=%u", aBitmap->DisplayMode() ); -#endif - - TRAPD( err, CreateScaleTasksL( aBitmap )); - aBitmap = NULL; - // If CreateScaleTasksL left, we are responsible for completing - // the RMessage. If there was no leave, then this call will not - // complete actual the message, just the mark the task as completed. - Complete( err ); - } - } - - -// --------------------------------------------------------------------------- -// Create tasks to scale the thumbnail to each persistent thumbnail size -// and also to the size the client requested -// --------------------------------------------------------------------------- -// -void CThumbnailGenerateTask::CreateScaleTasksL( CFbsBitmap* aBitmap ) - { - __ASSERT_DEBUG(( aBitmap ), ThumbnailPanic( EThumbnailNullPointer )); - - CleanupStack::PushL( aBitmap ); - iServer.AddBitmapToPoolL( iRequestId.iSession, aBitmap, iRequestId ); - - // Keep handle so we can delete bitmap from pool - iBitmapHandle = aBitmap->Handle(); - CleanupStack::Pop( aBitmap ); - - // compTask is the scale task which returns the bitmap to the client - CThumbnailScaleTask* complTask = NULL; - - TInt err1 = KErrNone; - TInt err2 = KErrNone; - TBool isPublic = ETrue; - TBool isPublic2 = ETrue; - - if(iFilename != KNullDesC) - { - TRAP(err1, iServer.StoreForPathL(iFilename)); - - isPublic = iServer.IsPublicPath( iFilename ); - } - if(iTargetUri != KNullDesC ) - { - TRAP(err2, iServer.StoreForPathL(iTargetUri)); - - isPublic2 = iServer.IsPublicPath( iTargetUri ); - } - - // check if need to create more than one scale task - if ( iMissingSizes ) - { - const TInt count = iMissingSizes->Count(); - - // scale small thumbs first, because fullscreen encoding takes longer - for ( TInt i( count-1 ); i >= 0; i-- ) - { - TThumbnailSize size = (*iMissingSizes)[ i ].iType; -#ifdef _DEBUG - TN_DEBUG3( "CThumbnailGenerateTask(0x%08x)::CreateScaleTasksL() *iMissingSizes)[ i ].iType == %d", this, size ); - OstTrace1( TRACE_NORMAL, CTHUMBNAILGENERATETASK_CREATESCALETASKSL, "CThumbnailGenerateTask::CreateScaleTasksL;this=%o", this ); - OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILGENERATETASK_CREATESCALETASKSL, "CThumbnailGenerateTask::CreateScaleTasksL;size=%d", size ); -#endif - - if ( iPortrait ) - { - if ( size == EFullScreenThumbnailSize || - size == EVideoFullScreenThumbnailSize || - size == EAudioFullScreenThumbnailSize || - size == EImageFullScreenThumbnailSize || - size == EContactFullScreenThumbnailSize ) - { - TInt mis_width = (*iMissingSizes)[ i ].iSize.iWidth; - TN_DEBUG2( "*iMissingSizes)[ i ].iWidth == %d", (*iMissingSizes)[ i ].iSize.iWidth ); - OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILGENERATETASK_CREATESCALETASKSL, "CThumbnailGenerateTask::CreateScaleTasksL;width=%d", mis_width ); - - TInt mis_height = (*iMissingSizes)[ i ].iSize.iHeight; - TN_DEBUG2( "*iMissingSizes)[ i ].iHeight == %d", (*iMissingSizes)[ i ].iSize.iHeight ); - OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILGENERATETASK_CREATESCALETASKSL, "CThumbnailGenerateTask::CreateScaleTasksL;mis_height=%d", mis_height ); - TInt width = (*iMissingSizes)[ i ].iSize.iWidth; - (*iMissingSizes)[ i ].iSize.iWidth = (*iMissingSizes)[ i ].iSize.iHeight; - (*iMissingSizes)[ i ].iSize.iHeight = width; - TN_DEBUG2( "*iMissingSizes)[ i ].iWidth == %d", (*iMissingSizes)[ i ].iSize.iWidth ); - OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILGENERATETASK_CREATESCALETASKSL, "CThumbnailGenerateTask::CreateScaleTasksL;width=%d", width ); - mis_height = (*iMissingSizes)[ i ].iSize.iHeight; - TN_DEBUG2( "*iMissingSizes)[ i ].iHeight == %d", (*iMissingSizes)[ i ].iSize.iHeight ); - OstTrace1( TRACE_NORMAL, DUP5_CTHUMBNAILGENERATETASK_CREATESCALETASKSL, "CThumbnailGenerateTask::CreateScaleTasksL;mis_height=%d", mis_height ); - } - } - - CThumbnailScaleTask* complTask = CThumbnailScaleTask::NewL( iProcessor, iServer, iFilename, - aBitmap, iOriginalSize, (*iMissingSizes)[ i ].iSize, (*iMissingSizes)[ i ].iCrop, iDisplayMode, - KMaxPriority, iTargetUri, (*iMissingSizes)[ i ].iType, iModified, iScaledBitmapToPool, iEXIF, - iRequestId, iVirtualUri); - CleanupStack::PushL( complTask ); - - // if trying to access Z drive, don't try to store - // don't want to store custom sizes - // don't store if from private directory - if( !isPublic || !isPublic2 || - err1 == KErrAccessDenied || err2 == KErrAccessDenied || - (*iMissingSizes)[ i ].iType == ECustomThumbnailSize || - (*iMissingSizes)[ i ].iType == EUnknownThumbnailSize ) - { - complTask->SetDoStore( EFalse ); - TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::CreateScaleTasksL() - do not store", this ); - OstTrace1( TRACE_NORMAL, DUP6_CTHUMBNAILGENERATETASK_CREATESCALETASKSL, "CThumbnailGenerateTask::CreateScaleTasksL - do not store;this=%o", this ); - } - else - { - complTask->SetDoStore( ETrue ); - } - - iProcessor.AddTaskL( complTask ); - CleanupStack::Pop( complTask ); - - // completion to first task, because task processor works like stack - if( i == 0 ) - { - // compTask is now responsible for completing the RMessage - complTask->SetMessageData( iRequestId, iMessage, iClientThread ); - ResetMessageData(); - } - } - } - else - { - if( iPortrait ) - { - if ( iThumbnailSize == EFullScreenThumbnailSize || - iThumbnailSize == EVideoFullScreenThumbnailSize || - iThumbnailSize == EAudioFullScreenThumbnailSize || - iThumbnailSize == EImageFullScreenThumbnailSize || - iThumbnailSize == EContactFullScreenThumbnailSize) - { - TInt width = iSize.iWidth; - iSize.iWidth = iSize.iHeight; - iSize.iHeight = width; - } - } - - complTask = CThumbnailScaleTask::NewL( iProcessor, iServer, iFilename, - aBitmap, iOriginalSize, iSize, iFlags& CThumbnailManager - ::ECropToAspectRatio, iDisplayMode, KMaxPriority, iTargetUri, - iThumbnailSize, iModified, iScaledBitmapToPool, iEXIF, iRequestId, - iVirtualUri); - CleanupStack::PushL( complTask ); - - // if trying to access Z drive, don't try to store - // don't want to store custom sizes - if( !isPublic || !isPublic2 || - err1 == KErrAccessDenied || err2 == KErrAccessDenied || - iThumbnailSize == ECustomThumbnailSize || - iThumbnailSize == EUnknownThumbnailSize ) - { - complTask->SetDoStore( EFalse ); - TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::CreateScaleTasksL() - do not store", this ); - OstTrace1( TRACE_NORMAL, DUP7_CTHUMBNAILGENERATETASK_CREATESCALETASKSL, "CThumbnailGenerateTask::CreateScaleTasksL - do not store;this=%o", this ); - } - else - { - complTask->SetDoStore( ETrue ); - } - - iProcessor.AddTaskL( complTask ); - CleanupStack::Pop( complTask ); - - // compTask is now responsible for completing the RMessage and - // returning the bitmap to the client - complTask->SetMessageData( iRequestId, iMessage, iClientThread ); - ResetMessageData(); - } - - // Scale tasks now reference the bitmap in the pool - iServer.DeleteBitmapFromPool( iBitmapHandle ); - iBitmapHandle = 0; - aBitmap = NULL; - } - -// --------------------------------------------------------------------------- -// Defines if scaled bitmaps need to be added to pool -// --------------------------------------------------------------------------- -// -void CThumbnailGenerateTask::ScaledBitmapToPool( TBool aBool ) - { - iScaledBitmapToPool = aBool; - } - -// --------------------------------------------------------------------------- -// Stores a blacklisted thumbnail -// --------------------------------------------------------------------------- -// -void CThumbnailGenerateTask::CreateBlackListedL( const TSize& aOriginalSize ) - { - TN_DEBUG1( "CThumbnailGenerateTask::CreateBlackListedL()"); - OstTrace0( TRACE_NORMAL, CTHUMBNAILGENERATETASK_CREATEBLACKLISTEDL, "CThumbnailGenerateTask::CreateBlackListedL" ); - CFbsBitmap* tempBitmap = 0; - tempBitmap = new (ELeave) CFbsBitmap(); - CleanupStack::PushL( tempBitmap ); - TSize tempSize( 1, 1 ); - User::LeaveIfError( tempBitmap->Create( tempSize, iDisplayMode ) ); - - // Instead of creating a blacklisted entry of requested size (iThumbnailSize) in thumbnail db, - // consider blacklisting all sizes (hence the changes are needed in thumbnail fetching logic too). - // However, decoding of source to thumnail could succeed in other sizes, which makes blacklisting - // of requested size only meaningful. - - if(iFilename != KNullDesC) - { - iServer.StoreForPathL( iFilename )->StoreThumbnailL( - iFilename, tempBitmap, aOriginalSize, EFalse, iThumbnailSize, iModified, !iVirtualUri, ETrue ); - //remove result from fetched checker - iServer.FetchedChecker().SetFetchResult( iFilename, iThumbnailSize, KErrNone ); - } - else if(iTargetUri != KNullDesC) - { - iServer.StoreForPathL( iTargetUri )->StoreThumbnailL( - iTargetUri, tempBitmap, aOriginalSize, EFalse, iThumbnailSize, iModified, !iVirtualUri, ETrue ); - //remove result from fetched checker - iServer.FetchedChecker().SetFetchResult( iTargetUri, iThumbnailSize, KErrNone ); - } - - CleanupStack::PopAndDestroy( tempBitmap ); - } - -// --------------------------------------------------------------------------- -// Checks is blacklisting needed -// --------------------------------------------------------------------------- -// -void CThumbnailGenerateTask::DoBlacklisting( const TInt aError, const TSize& aOriginalSize ) - { - TN_DEBUG1( "CThumbnailGenerateTask::DoBlacklisting()"); - OstTrace0( TRACE_NORMAL, CTHUMBNAILGENERATETASK_DOBLACKLISTING, "CThumbnailGenerateTask::DoBlacklisting" ); - // Create a temporary bitmap of size 1 for storing blacklisted thumbnail - // Because no actual bitmap data is generated, there is no reason to - // add bitmap to server bitmap pool. Completion of client request with - // error code just results in applications showing their default bitmap. - if( aError != KErrNone && (iFilename != KNullDesC || iTargetUri != KNullDesC )) - { - if (aError == KErrNotFound || - aError == KErrNotSupported || - aError == KErrCorrupt || - aError == KErrCompletion || - aError == KErrUnderflow || - aError == KErrNotReady || - aError == KErrGeneral ) - { - - if(iMissingSizes) - { - TN_DEBUG2( "CThumbnailGenerateTask::DoBlacklisting() - blacklist missing sizes count = %d", iMissingSizes->Count() ); - OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILGENERATETASK_DOBLACKLISTING, "CThumbnailGenerateTask::DoBlacklisting - blacklist missing sizes count;iMissingSizes->Count()=%d", iMissingSizes->Count() ); - - for ( TInt i( 0 ); i < iMissingSizes->Count(); i++ ) - { - iThumbnailSize = (*iMissingSizes)[ i ].iType; - TRAPD( err, CreateBlackListedL( aOriginalSize ) ); - if (err != KErrNone) - { - TN_DEBUG3( "CThumbnailGenerateTask::DoBlacklisting() - blacklisting missing size %d failed with code %d", iThumbnailSize, err ); - OstTraceExt2( TRACE_NORMAL, DUP2_CTHUMBNAILGENERATETASK_DOBLACKLISTING, "CThumbnailGenerateTask::DoBlacklisting - - blacklisting missing size failed with error;iThumbnailSize=%u;err=%d", iThumbnailSize, err ); - } - } - return; - } - else - { - TN_DEBUG1( "CThumbnailGenerateTask::DoBlacklisting() - blacklist single size" ); - OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILGENERATETASK_DOBLACKLISTING, "CThumbnailGenerateTask::DoBlacklisting - blacklist single size" ); - TRAPD( err, CreateBlackListedL( aOriginalSize ) ); - if (err != KErrNone) - { - TN_DEBUG2( "CThumbnailGenerateTask::DoBlacklisting() - blacklisting failed with code %d", err ); - OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILGENERATETASK_DOBLACKLISTING, "CThumbnailGenerateTask::DoBlacklisting - blacklisting failed with code;err=%d", err ); - } - return; - } - } - TN_DEBUG1( "CThumbnailGenerateTask::DoBlacklisting() - not blacklisted " ); - OstTrace0( TRACE_NORMAL, DUP5_CTHUMBNAILGENERATETASK_DOBLACKLISTING, "CThumbnailGenerateTask::DoBlacklisting - not blacklisted" ); - } -} - -