diff -r 000000000000 -r 3ce708148e4d customization/OperatorLogoAdapter/src/SyncImageOperations.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/customization/OperatorLogoAdapter/src/SyncImageOperations.cpp Thu Dec 17 08:40:12 2009 +0200 @@ -0,0 +1,192 @@ +/* +* Copyright (c) 2002 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: Synchronous Image Operations +* +*/ + + +#include "SyncImageOperations.h" + +// ------------------------------------------------------------------------------------------------ +// CSyncDither* CSyncDither::NewL() +// ------------------------------------------------------------------------------------------------ +CSyncDither* CSyncDither::NewL() + { + CSyncDither* self = NewLC(); + CleanupStack::Pop(); + return self; + } + +// ------------------------------------------------------------------------------------------------ +// CSyncDither* CSyncDither::NewLC() +// ------------------------------------------------------------------------------------------------ +CSyncDither* CSyncDither::NewLC() + { + CSyncDither* self = new (ELeave) CSyncDither(); + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } + + +// ------------------------------------------------------------------------------------------------ +// CSyncDither::CSyncDither() +// ------------------------------------------------------------------------------------------------ +CSyncDither::CSyncDither( ) + : iDitherer( 0 ) + , iScheduler() + , iError( KErrNone ) + { + } + +// ------------------------------------------------------------------------------------------------ +// CSyncDither::ConstructL() +// ------------------------------------------------------------------------------------------------ +void CSyncDither::ConstructL() + { + iDitherer = CMdaImageBitmapToBitmapUtility::NewL( *this ); + } + +// ------------------------------------------------------------------------------------------------ +// CSyncDither::~CSyncDither() +// ------------------------------------------------------------------------------------------------ +CSyncDither::~CSyncDither() + { + delete iDitherer; + } + +// ------------------------------------------------------------------------------------------------ +// CSyncDither:: +// ------------------------------------------------------------------------------------------------ +TInt CSyncDither::DitherL( CFbsBitmap& aBitmap, TDisplayMode aDisplayMode ) + { + TInt err = KErrNone; + + + CSyncDither* obj = CSyncDither::NewLC(); + err = obj->DoDitherL( aBitmap, aDisplayMode ); + + CleanupStack::PopAndDestroy( obj ); + return err; + } + + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// +// Internal methods +// +/////////////////////////////////////////////////////////////////////////////////////////////////// + +TInt CSyncDither::DoDitherL( CFbsBitmap& aBitmap, TDisplayMode aDisplayMode ) + { + iError = KErrNone; + + CFbsBitmap* tmpBitmap = new (ELeave) CFbsBitmap(); + CleanupStack::PushL( tmpBitmap ); + + TSize bmpSize = aBitmap.SizeInPixels(); + User::LeaveIfError( tmpBitmap->Create( bmpSize, aDisplayMode ) ); + + if(iError == KErrNone) + { + // Open original bitmap + iDitherer->OpenL( aBitmap ); + iScheduler.Start(); + } + + if(iError == KErrNone) + { + // Dither bitmap + iDitherer->ConvertL( *tmpBitmap ); + iScheduler.Start(); + } + + // Replace original bitmap with the new one. + if(iError == KErrNone) + { + aBitmap.Reset(); + aBitmap.Duplicate( tmpBitmap->Handle() ); + } + + // Cleanup + CleanupStack::PopAndDestroy( tmpBitmap ); + + return iError; + } + +// ------------------------------------------------------------------------------------------------ +// CSyncDither:: +// ------------------------------------------------------------------------------------------------ +void CSyncDither::MiuoCreateComplete(TInt aError) + { + iError = aError; + iScheduler.AsyncStop(); + } +void CSyncDither::MiuoOpenComplete(TInt aError) + { + iError = aError; + iScheduler.AsyncStop(); + } +void CSyncDither::MiuoConvertComplete(TInt aError) + { + iError = aError; + iScheduler.AsyncStop(); + } + + + +#if 0 +// ----------------------------------------------------------------------------- +// RAknsSrvSession::EnumerateSkinPackages +// ----------------------------------------------------------------------------- +// +EXPORT_C CArrayPtr* + RAknsSrvSession::EnumerateSkinPackagesL( + TAknSkinSrvSkinPackageLocation aLocation ) + { + AKNS_TRACE1("RAknsSrvSession::EnumerateSkinPackagesL %i", aLocation); + + + + + CArrayPtrFlat* array = + new (ELeave) CArrayPtrFlat(5); + CleanupStack::PushL( TCleanupItem( + AknsSrvCArrayPtrCAknsSrvSkinInformationPkgCleanup, array ) ); + + CDesC16ArrayFlat* skinfiles = new (ELeave) CDesC16ArrayFlat(5); + CleanupStack::PushL(skinfiles); + + switch (aLocation) + { + // Drives z and c + case EAknsSrvPhone: + AknsSrvUtils::SearchDirectoriesL(KAknSkinSrvSystemSkinPath, + skinfiles ); + AknsSrvUtils::SearchDirectoriesL(KAknSkinSrvSkinPathLFFS, + skinfiles ); + break; + // drive e + case EAknsSrvMMC: + AknsSrvUtils::SearchDirectoriesL(KAknSkinSrvSkinPathMMC, + skinfiles ); + break; + // all drives + case EAknsSrvAll: +#endif + + +// ------------------------------------------------------------------------------------------------ +// EOF +// ------------------------------------------------------------------------------------------------