diff -r f5050f1da672 -r 04becd199f91 javauis/lcdui_akn/javalcdui/src.nokialcdui/CMIDConvertFactory.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javauis/lcdui_akn/javalcdui/src.nokialcdui/CMIDConvertFactory.cpp Tue Apr 27 16:30:29 2010 +0300 @@ -0,0 +1,145 @@ +/* +* 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: Creates converters. +* +*/ + + + +// INCLUDE FILES +#include + +#include "CMIDConvertFactory.h" + +#include "TMID4444Format.h" +#include "TMID444Format.h" +#include "TMID565Format.h" +#include "TMID8888Format.h" +#include "TMID888Format.h" +#include "TMID888AFormat.h" +#include "TMIDGray1.h" +#include "TMIDGray1Vertical.h" + + +CMIDConvertFactory::CMIDConvertFactory() +{ +} + +CMIDConvertFactory::~CMIDConvertFactory() +{ + delete iLastUsedConverter; +} + +TMIDFormatConverter* CMIDConvertFactory::ConverterL(TInt aFormat) +{ + if (aFormat != iFormat) + { + TMIDFormatConverter* converter = NewConverterL(aFormat); + delete iLastUsedConverter; + iLastUsedConverter = converter; + iFormat = aFormat; + } + return iLastUsedConverter; +} + +TMIDFormatConverter* CMIDConvertFactory::NewConverterL(TInt aFormat) +{ + switch (aFormat) + { + case KMIDTypeUshort4444ARGB: + { + return new(ELeave)TMID4444Format(); + } + case KMIDTypeUshort444RGB: + { + return new(ELeave)TMID444Format(); + } + case KMIDTypeUshort565RGB: + { + return new(ELeave)TMID565Format(); + } + case KMIDTypeInt8888ARGB: + { + return new(ELeave)TMID8888Format(); + } + case KMIDTypeInt888RGB: + { + return new(ELeave)TMID888Format(); + } + case KMIDTypeInt888ARGB: + { + return new(ELeave)TMID888AFormat(); + } + case KMIDTypeByte1Gray: + { + return new(ELeave)TMIDGray1(); + } + case KMIDTypeByte1GrayVertical: + { + return new(ELeave)TMIDGray1Vertical(); + } + default: + { + User::Leave(KFormatNotSupported); + } + } + // not possible to come here. + ASSERT(false); + return NULL; +} + +TInt CMIDConvertFactory::GetPixelFormat(const TDisplayMode& aDisplayMode) +{ + TInt nativePixelFormat(KFormatNotSupported); + switch (aDisplayMode) + { + case EGray2: + { + nativePixelFormat = KMIDTypeByte1Gray; + break; + } + case EColor64K: + { + nativePixelFormat = KMIDTypeUshort565RGB; + break; + } + case EColor16MA: + case EColor16M: + { + nativePixelFormat = KMIDTypeInt8888ARGB; + break; + } + case ERgb: + { + nativePixelFormat = KMIDTypeInt888RGB; + break; + } + case EColor4K: + { + nativePixelFormat = KMIDTypeUshort4444ARGB; + break; + } + case EColor16MU: + { + nativePixelFormat = KMIDTypeInt888RGB; + break; + } + default: + { + nativePixelFormat = KFormatNotSupported; + break; + } + } + return nativePixelFormat; +}