author | Gareth Stockwell <gareth.stockwell@accenture.com> |
Fri, 22 Oct 2010 11:38:29 +0100 | |
branch | bug235_bringup_0 |
changeset 206 | c170e304623f |
parent 0 | 5d03bc08d59c |
permissions | -rw-r--r-- |
// Copyright (c) 2007-2009 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: // /** @file @test @internalComponent - Internal Symbian test code */ #include "tdisplaymode_mapping.h" const TPtrC KPixelFormatNames[] = { _L("EUidPixelFormatUnknown"), _L("EUidPixelFormatXRGB_8888"), _L("EUidPixelFormatARGB_8888"), _L("EUidPixelFormatARGB_8888_PRE"), _L("EUidPixelFormatRGB_888"), _L("EUidPixelFormatRGB_565"), _L("EUidPixelFormatP_8"), _L("EUidPixelFormatA_8"), _L("EUidPixelFormatP_2"), _L("EUidPixelFormatP_1"), }; /** Convert the string of pixel format to TDisplayMode @param aPixelformatString The input string of pixel format @return On return, it contains a display mode enum value */ TDisplayMode TDisplayModeMapping::ConvertPixelformatStringToDisplayMode(const TPtrC aPixelformatString) { TUidPixelFormat format = ConvertPixelformatStringToPixelFormat(aPixelformatString); return MapPixelFormatToDisplayMode(format); } /** Convert the string of pixel format to TUidPixelFormat @param aPixelformatString The input string of pixel format @return On return, it contains a pixel format enum value */ TUidPixelFormat TDisplayModeMapping::ConvertPixelformatStringToPixelFormat(const TPtrC aPixelformatString) { TUidPixelFormat format = EUidPixelFormatUnknown; if (aPixelformatString == KPixelFormatNames[1]) { format = EUidPixelFormatXRGB_8888; } if (aPixelformatString == KPixelFormatNames[2]) { format = EUidPixelFormatARGB_8888; } if (aPixelformatString == KPixelFormatNames[3]) { format = EUidPixelFormatARGB_8888_PRE; } if (aPixelformatString == KPixelFormatNames[4]) { format = EUidPixelFormatRGB_888; } if (aPixelformatString == KPixelFormatNames[5]) { format = EUidPixelFormatRGB_565; } if (aPixelformatString == KPixelFormatNames[6]) { format = EUidPixelFormatP_8; } if (aPixelformatString == KPixelFormatNames[7]) { format = EUidPixelFormatA_8; } if (aPixelformatString == KPixelFormatNames[8]) { format = EUidPixelFormatP_2; } if (aPixelformatString == KPixelFormatNames[9]) { format = EUidPixelFormatP_1; } return format; } /* Convert the pixel format enum to a string @param aFormat The pixel format enum @return On return, it contains the pixel format string */ TPtrC TDisplayModeMapping::ConvertPixelformatToPixelFormatString(const TUidPixelFormat aFormat) { TPtrC pixelFormatString(KPixelFormatNames[0]); if (aFormat == EUidPixelFormatXRGB_8888) { pixelFormatString.Set(KPixelFormatNames[1]); } if (aFormat == EUidPixelFormatARGB_8888) { pixelFormatString.Set(KPixelFormatNames[2]); } if (aFormat == EUidPixelFormatARGB_8888_PRE) { pixelFormatString.Set(KPixelFormatNames[3]); } if (aFormat == EUidPixelFormatRGB_888) { pixelFormatString.Set(KPixelFormatNames[4]); } if (aFormat == EUidPixelFormatRGB_565) { pixelFormatString.Set(KPixelFormatNames[5]); } if (aFormat == EUidPixelFormatP_8) { pixelFormatString.Set(KPixelFormatNames[6]); } if (aFormat == EUidPixelFormatA_8) { pixelFormatString.Set(KPixelFormatNames[7]); } if (aFormat == EUidPixelFormatP_2) { pixelFormatString.Set(KPixelFormatNames[8]); } if (aFormat == EUidPixelFormatP_1) { pixelFormatString.Set(KPixelFormatNames[9]); } return pixelFormatString; } /* Map pixel format enum to display mode enum @param aFormat The pixel format enum @return On return, it contains the display mode enum */ TDisplayMode TDisplayModeMapping::MapPixelFormatToDisplayMode(const TUidPixelFormat aFormat) { TDisplayMode mode; switch(aFormat) { /** Display mode with alpha (24bpp colour plus 8bpp alpha) */ case EUidPixelFormatXRGB_8888: //case EUidPixelFormatBGRX_8888: //case EUidPixelFormatXBGR_8888: mode = EColor16MU; break; /** Display mode with alpha (24bpp colour plus 8bpp alpha) */ case EUidPixelFormatARGB_8888: //case EUidPixelFormatBGRA_8888: //case EUidPixelFormatABGR_8888: mode = EColor16MA; break; /** Pre-multiplied Alpha display mode (24bpp color multiplied with the alpha channel value, plus 8bpp alpha) */ case EUidPixelFormatARGB_8888_PRE: //case EUidPixelFormatABGR_8888_PRE: //case EUidPixelFormatBGRA_8888_PRE: mode = EColor16MAP; break; /** True colour display mode (24 bpp) */ //case EUidPixelFormatBGR_888: case EUidPixelFormatRGB_888: mode = EColor16M; break; /** 64,000 colour display mode (16 bpp) */ case EUidPixelFormatRGB_565: //case EUidPixelFormatBGR_565: //case EUidPixelFormatARGB_1555: //case EUidPixelFormatXRGB_1555: //case EUidPixelFormatARGB_4444: //case EUidPixelFormatARGB_8332: //case EUidPixelFormatBGRX_5551: //case EUidPixelFormatBGRA_5551: //case EUidPixelFormatBGRA_4444: //case EUidPixelFormatBGRX_4444: //case EUidPixelFormatAP_88: //case EUidPixelFormatXRGB_4444: //case EUidPixelFormatXBGR_4444: mode = EColor64K; break; /** 256 colour display mode (8 bpp) */ //case EUidPixelFormatRGB_332: //case EUidPixelFormatBGR_332: case EUidPixelFormatP_8: mode = EColor256; break; /** 256 grayscales display mode (8 bpp) */ case EUidPixelFormatA_8: mode = EGray256; break; /** Low colour EGA 16 colour display mode (4 bpp) */ //case EUidPixelFormatP_4: // mode = EColor16; // mode = EGray16 ??? // break; /** Four grayscales display mode (2 bpp) */ case EUidPixelFormatP_2: mode = EGray4; break; /** Monochrome display mode (1 bpp) */ case EUidPixelFormatP_1: //case EUidPixelFormatBW_1: mode = EGray2; break; // Unknown display mode default: case EUidPixelFormatUnknown: //case EUidPixelFormatYUV_444Interleaved: //case EUidPixelFormatYUV_444Planar: //case EUidPixelFormatYUV_420Interleaved: //case EUidPixelFormatYUV_420Planar: //case EUidPixelFormatYUV_420PlanarReversed: //case EUidPixelFormatYUV_420SemiPlanar: //case EUidPixelFormatYUV_422Interleaved: //case EUidPixelFormatYUV_422Planar: //case EUidPixelFormatYUV_422Reversed: //case EUidPixelFormatYUV_422SemiPlanar: //case EUidPixelFormatYUV_422InterleavedReversed: //case EUidPixelFormatYYUV_422Interleaved: //case EUidPixelFormatARGB_2101010: //case EUidPixelFormatABGR_2101010: mode = ENone; break; } return mode; } /* Map display mode enum to pixel formation enum @param aDisplayMode The display mode enum @return On return, it contains the pixel format enum */ TUidPixelFormat TDisplayModeMapping::MapDisplayModeToPixelFormat(const TDisplayMode aDisplayMode) { TUidPixelFormat format; switch(aDisplayMode) { /** Display mode with alpha (24bpp colour plus 8bpp alpha) */ case EColor16MU: //case EUidPixelFormatBGRX_8888: //case EUidPixelFormatXBGR_8888: format = EUidPixelFormatXRGB_8888; break; /** Display mode with alpha (24bpp colour plus 8bpp alpha) */ case EColor16MA: //case EUidPixelFormatBGRA_8888: //case EUidPixelFormatABGR_8888: format = EUidPixelFormatARGB_8888; break; /** Pre-multiplied Alpha display mode (24bpp color multiplied with the alpha channel value, plus 8bpp alpha) */ case EColor16MAP: //case EUidPixelFormatABGR_8888_PRE: //case EUidPixelFormatBGRA_8888_PRE: format = EUidPixelFormatARGB_8888_PRE; break; /** True colour display mode (24 bpp) */ //case EUidPixelFormatBGR_888: case EColor16M: format = EUidPixelFormatRGB_888; break; /** 64,000 colour display mode (16 bpp) */ case EColor64K: //case EUidPixelFormatBGR_565: //case EUidPixelFormatARGB_1555: //case EUidPixelFormatXRGB_1555: //case EUidPixelFormatARGB_4444: //case EUidPixelFormatARGB_8332: //case EUidPixelFormatBGRX_5551: //case EUidPixelFormatBGRA_5551: //case EUidPixelFormatBGRA_4444: //case EUidPixelFormatBGRX_4444: //case EUidPixelFormatAP_88: //case EUidPixelFormatXRGB_4444: //case EUidPixelFormatXBGR_4444: format = EUidPixelFormatRGB_565; break; /** 256 colour display mode (8 bpp) */ //case EUidPixelFormatRGB_332: //case EUidPixelFormatBGR_332: case EColor256: format = EUidPixelFormatP_8; break; /** 256 grayscales display mode (8 bpp) */ case EGray256: format = EUidPixelFormatA_8; break; /** Low colour EGA 16 colour display mode (4 bpp) */ //case EUidPixelFormatP_4: // mode = EColor16; // mode = EGray16 ??? // break; /** Four grayscales display mode (2 bpp) */ case EGray4: format = EUidPixelFormatP_2; break; /** Monochrome display mode (1 bpp) */ case EGray2: //case EUidPixelFormatBW_1: format = EUidPixelFormatP_1; break; // Unknown display mode default: case ENone: //case EUidPixelFormatYUV_444Interleaved: //case EUidPixelFormatYUV_444Planar: //case EUidPixelFormatYUV_420Interleaved: //case EUidPixelFormatYUV_420Planar: //case EUidPixelFormatYUV_420PlanarReversed: //case EUidPixelFormatYUV_420SemiPlanar: //case EUidPixelFormatYUV_422Interleaved: //case EUidPixelFormatYUV_422Planar: //case EUidPixelFormatYUV_422Reversed: //case EUidPixelFormatYUV_422SemiPlanar: //case EUidPixelFormatYUV_422InterleavedReversed: //case EUidPixelFormatYYUV_422Interleaved: //case EUidPixelFormatARGB_2101010: //case EUidPixelFormatABGR_2101010: format = EUidPixelFormatUnknown; break; } return format; } /** Converts pixel format strings to pixel format enums. @param aPixelFormatInput The pixel format string for testing @param aPixelFormatArray An array of TUidPixelFormats as output. */ void TDisplayModeMapping::ConvertPixelFormats(TPtrC aPixelFormatInput, RArray<TUidPixelFormat>& aPixelFormatArray) { TPtrC tempBuf = aPixelFormatInput; TInt position = tempBuf.Find(_L(",")); while(KErrNotFound != position) { aPixelFormatArray.Append(TDisplayModeMapping::ConvertPixelformatStringToPixelFormat(tempBuf.Left(position))); tempBuf.Set(tempBuf.Mid(position + 2)); position = tempBuf.Find(_L(",")); } if (position == KErrNotFound) { aPixelFormatArray.Append(TDisplayModeMapping::ConvertPixelformatStringToPixelFormat(tempBuf)); } }