diff -r bf7481649c98 -r 2717213c588a graphicsapitest/graphicssvs/fbserv/src/T_DataFbsBitmap.cpp --- a/graphicsapitest/graphicssvs/fbserv/src/T_DataFbsBitmap.cpp Fri Jun 11 14:58:47 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2296 +0,0 @@ -/* -* Copyright (c) 2005-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: -* -*/ - -/** -@test -@internalComponent -v -This contains CT_DataFbsBitmap -*/ - -// User includes -#include "T_DataFbsBitmap.h" -#include "T_GraphicsUtil.h" - -// EPOC includes -#include - -/*@{*/ -/// Parameters -_LIT(KAlways, "always"); -_LIT(KBitmapId, "bitmap_id"); -_LIT(KBuffLength, "buff_length"); -_LIT(KDitherOffsetX, "dither_offset_x"); -_LIT(KDitherOffsetY, "dither_offset_y"); -_LIT(KExpectedBool, "expected_bool"); -_LIT(KExpectedInt, "expected_int"); -_LIT(KFbsBitmapName, "fbs_bitmap_name"); -_LIT(KFileName, "file_name"); -_LIT(KFileOffset, "file_offset"); -_LIT(KHeight, "height"); -_LIT(KHandle, "handle"); -_LIT(KWidth, "width"); -_LIT(KLength, "length"); -_LIT(KNullExpected, "null_expected"); -_LIT(KDevice, "device"); -_LIT(KNumberOfSources, "number_of_sources"); -_LIT(KPixels, "pixels"); -_LIT(KPointX, "point_x"); -_LIT(KPointY, "point_y"); -_LIT(KRectTlX, "rect_tl_x"); -_LIT(KRectTlY, "rect_tl_y"); -_LIT(KRectBrX, "rect_br_x"); -_LIT(KRectBrY, "rect_br_y"); -_LIT(KScanLineCoord, "scan_line_coord"); -_LIT(KSourceFileName0, "source_file_name_0"); // we don't need more than 3 sources for our test anyway. -_LIT(KSourceFileName1, "source_file_name_1"); // So that this solution is ok -_LIT(KSourceFileName2, "source_file_name_2"); -_LIT(KSourceBitmapId0, "source_bitmap_id_0"); -_LIT(KSourceBitmapId1, "source_bitmap_id_1"); -_LIT(KSourceBitmapId2, "source_bitmap_id_2"); -_LIT(KShareIfLoaded, "share_if_loaded"); -_LIT(KTwips, "twips"); -_LIT(KUseDitherOffset, "use_dither_offset"); -_LIT(KUseRFile, "use_rfile"); -_LIT(KUseClosedRFile, "use_closed_rfile"); -_LIT(KUseClosedStream, "use_closed_stream"); -_LIT(KUseRequestStatus, "use_request_status"); -_LIT(KUid, "uid"); -_LIT(KPalette, "palette"); -_LIT(KModifiable, "modifiable"); -_LIT(KEntries, "entries"); -_LIT(KRed, "red"); -_LIT(KGreen, "green"); -_LIT(KBlue, "blue"); -_LIT(KDisplayMode, "displaymode"); -_LIT(KBitmapfileCompressionScheme, "bitmap_compression_scheme"); - -/// Commands -_LIT(KCmdDisown, "disown"); -_LIT(KCmdNew, "new"); -_LIT(KCmdDestructor, "~"); -_LIT(KCmdCompress, "Compress"); -_LIT(KCmdCompressInBackground, "CompressInBackground"); -_LIT(KCmdCreate, "Create"); -_LIT(KCmdCreateHardwareBitmap, "CreateHardwareBitmap"); -_LIT(KCmdDataAddress, "DataAddress"); -_LIT(KCmdDataStride, "DataStride"); -_LIT(KCmdDisplayMode, "DisplayMode"); -_LIT(KCmdDuplicate, "Duplicate"); -_LIT(KCmdExternalizeL, "ExternalizeL"); -_LIT(KCmdExternalizeRectangleL, "ExternalizeRectangleL"); -_LIT(KCmdGetPalette, "GetPalette"); -_LIT(KCmdGetPixel, "GetPixel"); -_LIT(KCmdGetScanLine, "GetScanLine"); -_LIT(KCmdGetVerticalScanLine, "GetVerticalScanLine"); -_LIT(KCmdHandle, "Handle"); -_LIT(KCmdHardwareBitmapHandle, "HardwareBitmapHandle"); -_LIT(KCmdHeader, "Header"); -_LIT(KCmdHorizontalPixelsToTwips, "HorizontalPixelsToTwips"); -_LIT(KCmdHorizontalTwipsToPixels, "HorizontalTwipsToPixels"); -_LIT(KCmdInitialDisplayMode, "InitialDisplayMode"); -_LIT(KCmdInternalizeL, "InternalizeL"); -_LIT(KCmdIsCompressedInRAM, "IsCompressedInRAM"); -_LIT(KCmdIsFileInRom, "IsFileInRom"); -_LIT(KCmdIsLargeBitmap, "IsLargeBitmap"); -_LIT(KCmdIsMonochrome, "IsMonochrome"); -_LIT(KCmdIsRomBitmap, "IsRomBitmap"); -_LIT(KCmdLoad, "Load"); -_LIT(KCmdLoadAndCompress, "LoadAndCompress"); -_LIT(KCmdLockHeap, "LockHeap"); -_LIT(KCmdLockHeapLC, "LockHeapLC"); -_LIT(KCmdPaletteAttributes, "PaletteAttributes"); -_LIT(KCmdReset, "Reset"); -_LIT(KCmdResize, "Resize"); -_LIT(KCmdSave, "Save"); -_LIT(KCmdScanLineLength, "ScanLineLength"); -_LIT(KCmdSetDisplayMode, "SetDisplayMode"); -_LIT(KCmdSetPalette, "SetPalette"); -_LIT(KCmdSetRomBitmapL, "SetRomBitmapL"); -_LIT(KCmdSetScanLine, "SetScanLine"); -_LIT(KCmdSetSizeInTwips, "SetSizeInTwips"); -_LIT(KCmdSizeInPixels, "SizeInPixels"); -_LIT(KCmdSizeInTwips, "SizeInTwips"); -_LIT(KCmdStoreL, "StoreL"); -_LIT(KCmdSwapWidthAndHeight, "SwapWidthAndHeight"); -_LIT(KCmdUnlockHeap, "UnlockHeap"); -_LIT(KCmdVerticalPixelsToTwips, "VerticalPixelsToTwips"); -_LIT(KCmdVerticalTwipsToPixels, "VerticalTwipsToPixels"); - -//?? SetRomBitmapL -// Begin -// End -// GetDecompressionBuffer -// GetAllBitmapHandles -/*@}*/ - -/** -* Two phase constructor -*/ -CT_DataFbsBitmap* CT_DataFbsBitmap::NewL() - { - CT_DataFbsBitmap* ret = new (ELeave) CT_DataFbsBitmap(); - CleanupStack::PushL(ret); - ret->ConstructL(); - CleanupStack::Pop(ret); - return ret; - } - -/** -* Protected constructor. First phase construction -*/ -CT_DataFbsBitmap::CT_DataFbsBitmap() -: CDataWrapperBase() -, iFbsBitmap(NULL) -, iDisplayMode(ENone) -, iPopWhenUnlocking(EFalse) -, iCompressFailed(EFalse) -, iActiveCompressInBackground(NULL) - { - } - -/** -* Protected constructor. Second phase construction -*/ -void CT_DataFbsBitmap::ConstructL() - { - iActiveCompressInBackground=CActiveCallback::NewL(*this); - } - -/** -* Destructor. -*/ -CT_DataFbsBitmap::~CT_DataFbsBitmap() - { - DestroyData(); - delete iActiveCompressInBackground; - iActiveCompressInBackground=NULL; - } - -/** -* Contains cleanup implementation -*/ -void CT_DataFbsBitmap::DestroyData() - { - delete iFbsBitmap; - iFbsBitmap=NULL; - } - -/** -* Return a pointer to the object that the data wraps -* -* @return pointer to the object that the data wraps -*/ -TAny* CT_DataFbsBitmap::GetObject() - { - return iFbsBitmap; - } - -void CT_DataFbsBitmap::SetObjectL(TAny* aAny) - { - DestroyData(); - iFbsBitmap=static_cast (aAny); - } - -void CT_DataFbsBitmap::DisownObjectL() - { - iFbsBitmap=NULL; - } - -CFbsBitmap* CT_DataFbsBitmap::GetFbsBitmap() const - { - return iFbsBitmap; - } - -/** -* Process a command read from the ini file -* -* @param aDataWrapper test step requiring command to be processed -* @param aCommand the command to process -* @param aSection the entry in the ini file requiring the command to be processed -* -* @return ETrue if the command is processed -*/ -TBool CT_DataFbsBitmap::DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt aAsyncErrorIndex) - { - TBool retVal = ETrue; - - if (aCommand == KCmdNew) - { - DoCmdNewL(); - } - else if (aCommand == KCmdDestructor) - { - DoCmdDestructor(); - } - else if (aCommand == KCmdCompress) - { - DoCmdCompress(aSection); - } - else if (aCommand == KCmdCompressInBackground) - { - DoCmdCompressInBackground(aSection, aAsyncErrorIndex); - } - else if (aCommand == KCmdCreate) - { - DoCmdCreate(aSection); - } - else if (aCommand == KCmdCreateHardwareBitmap) - { - DoCmdCreateHardwareBitmap(aSection); - } - else if (aCommand == KCmdDataAddress) - { - DoCmdDataAddress(aSection); - } - else if (aCommand == KCmdDataStride) - { - DoCmdDataStride(aSection); - } - else if (aCommand == KCmdDisplayMode) - { - DoCmdDisplayMode(aSection); - } - else if (aCommand == KCmdDuplicate) - { - DoCmdDuplicateL(aSection); - } - else if (aCommand == KCmdExternalizeL) - { - DoCmdExternalizeL(aSection); - } - else if (aCommand == KCmdExternalizeRectangleL) - { - DoCmdExternalizeRectangleL(aSection); - } - else if (aCommand == KCmdGetPalette) - { - DoCmdGetPaletteL(aSection); - } - else if (aCommand == KCmdGetPixel) - { - DoCmdGetPixel(aSection); - } - else if (aCommand == KCmdGetScanLine) - { - DoCmdGetScanLineL(aSection); - } - else if (aCommand == KCmdGetVerticalScanLine) - { - DoCmdGetVerticalScanLineL(aSection); - } - else if (aCommand == KCmdHandle) - { - DoCmdHandle(aSection); - } - else if (aCommand == KCmdHardwareBitmapHandle) - { - DoCmdHardwareBitmapHandle(aSection); - } - else if (aCommand == KCmdHeader) - { - DoCmdHeader(); - } - else if (aCommand == KCmdHorizontalPixelsToTwips) - { - DoCmdHorizontalPixelsToTwips(aSection); - } - else if (aCommand == KCmdHorizontalTwipsToPixels) - { - DoCmdHorizontalTwipsToPixels(aSection); - } - else if (aCommand == KCmdInitialDisplayMode) - { - DoCmdInitialDisplayMode(aSection); - } - else if (aCommand == KCmdInternalizeL) - { - DoCmdInternalizeL(aSection); - } - else if (aCommand == KCmdIsCompressedInRAM) - { - DoCmdIsCompressedInRAM(aSection); - } - else if (aCommand == KCmdIsFileInRom) - { - DoCmdIsFileInRom(aSection); - } - else if (aCommand == KCmdIsLargeBitmap) - { - DoCmdIsLargeBitmap(aSection); - } - else if (aCommand == KCmdIsMonochrome) - { - DoCmdIsMonochrome(aSection); - } - else if (aCommand == KCmdIsRomBitmap) - { - DoCmdIsRomBitmap(aSection); - } - else if (aCommand == KCmdLoad) - { - DoCmdLoadL(aSection); - } - else if (aCommand == KCmdLoadAndCompress) - { - DoCmdLoadAndCompressL(aSection); - } - else if (aCommand == KCmdLockHeap) - { - DoCmdLockHeap(aSection); - } - else if (aCommand == KCmdLockHeapLC) - { - DoCmdLockHeapLC(aSection); - } - else if (aCommand == KCmdPaletteAttributes) - { - DoCmdPaletteAttributes(aSection); - } - else if (aCommand == KCmdReset) - { - DoCmdReset(); - } - else if (aCommand == KCmdResize) - { - DoCmdResize(aSection); - } - else if (aCommand == KCmdSave) - { - DoCmdSave(aSection); - } - else if (aCommand == KCmdScanLineLength) - { - DoCmdScanLineLength(aSection); - } - else if (aCommand == KCmdSetDisplayMode) - { - DoCmdSetDisplayMode(aSection); - } - else if (aCommand == KCmdSetPalette) - { - DoCmdSetPaletteL(aSection); - } - else if (aCommand == KCmdSetRomBitmapL) - { - DoCmdSetRomBitmapL(aSection); - } - else if (aCommand == KCmdSetScanLine) - { - DoCmdSetScanLineL(aSection); - } - else if (aCommand == KCmdSetSizeInTwips) - { - DoCmdSetSizeInTwipsL(aSection); - } - else if (aCommand == KCmdSizeInPixels) - { - DoCmdSizeInPixels(aSection); - } - else if (aCommand == KCmdSizeInTwips) - { - DoCmdSizeInTwips(aSection); - } - else if (aCommand == KCmdStoreL) - { - DoCmdStoreL(aSection); - } - else if (aCommand == KCmdSwapWidthAndHeight) - { - DoCmdSwapWidthAndHeight(); - } - else if (aCommand == KCmdUnlockHeap) - { - DoCmdUnlockHeapL(aSection); - } - else if (aCommand == KCmdVerticalPixelsToTwips) - { - DoCmdVerticalPixelsToTwips(aSection); - } - else if (aCommand == KCmdVerticalTwipsToPixels) - { - DoCmdVerticalTwipsToPixels(aSection); - } - else if (aCommand == KCmdDisown) - { - DisownObjectL(); - } - else - { - retVal=EFalse; - } - - return retVal; - } - - -/** Creates new CFbsBitmap class instance */ -void CT_DataFbsBitmap::DoCmdNewL() - { - INFO_PRINTF1(_L("Creates new CFbsBitmap class instance")); - - // cleanup if already created - DestroyData(); - iFbsBitmap=new (ELeave) CFbsBitmap(); - } - -/** Calls static CFbsBitmap destructor */ -void CT_DataFbsBitmap::DoCmdDestructor() - { - DestroyData(); - } - -/** Calls CFbsBitmap::Compress() */ -void CT_DataFbsBitmap::DoCmdCompress(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::Compress()")); - - TInt err=KErrNone; - TBitmapfileCompressionScheme compressionScheme; - if ( CT_GraphicsUtil::ReadBitmapfileCompressionScheme(*this, aSection, KBitmapfileCompressionScheme(), compressionScheme) ) - { - err=GetFbsBitmap()->Compress(compressionScheme); - } - else - { - // call Compress() - err=GetFbsBitmap()->Compress(); - } - // check error code - if ( err!=KErrNone ) - { - ERR_PRINTF2(_L("Compress error: %d"), err); - SetError(err); - iCompressFailed = ETrue; - } - else - { - iCompressFailed = EFalse; - }; - } - -/** Calls CFbsBitmap::CompressInBackground() */ -void CT_DataFbsBitmap::DoCmdCompressInBackground(const TDesC& aSection, const TInt aAsyncErrorIndex) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::CompressInBackground()")); - - // get a flag if to use requset status from parameters - TBool useRequestStatus = EFalse; - GetBoolFromConfig(aSection, KUseRequestStatus(), useRequestStatus); - - TBitmapfileCompressionScheme compressionScheme; - TBool hasCompressionScheme=CT_GraphicsUtil::ReadBitmapfileCompressionScheme(*this, aSection, KBitmapfileCompressionScheme(), compressionScheme); - - // call CompressInBackground() - if ( useRequestStatus ) - { - if ( hasCompressionScheme ) - { - GetFbsBitmap()->CompressInBackground(iActiveCompressInBackground->iStatus, compressionScheme); - } - else - { - GetFbsBitmap()->CompressInBackground(iActiveCompressInBackground->iStatus); - } - iActiveCompressInBackground->Activate(aAsyncErrorIndex); - IncOutstanding(); - } - else - { - TInt err = KErrNone; - - if ( hasCompressionScheme ) - { - err=GetFbsBitmap()->CompressInBackground(compressionScheme); - } - else - { - err=GetFbsBitmap()->CompressInBackground(); - } - - // check error code - if ( err != KErrNone ) - { - ERR_PRINTF2(_L("Compress in background error: %d"), err); - SetError(err); - iCompressFailed = ETrue; - } - else - { - iCompressFailed = EFalse; - } - } - } - -/** Calls CFbsBitmap::Create() */ -void CT_DataFbsBitmap::DoCmdCreate(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::Create()")); - - // get size height from parameters - TInt height; - if(!GetIntFromConfig(aSection, KHeight(), height)) - { - ERR_PRINTF2(_L("No %S"), &KHeight()); - SetBlockResult(EFail); - } - - // get size width from parameters - TInt width; - if(!GetIntFromConfig(aSection, KWidth(), width)) - { - ERR_PRINTF2(_L("No %S"), &KWidth()); - SetBlockResult(EFail); - } - - // get display mode from parameters - - TDisplayMode displayMode; - if ( !CT_GraphicsUtil::ReadDisplayMode(*this, aSection, KDisplayMode(), displayMode) ) - { - ERR_PRINTF1(_L("No display mode")); - SetBlockResult(EFail); - } - else - { - // call Create() - TInt err = GetFbsBitmap()->Create(TSize(width, height), displayMode); - - // check error code - if (err != KErrNone) - { - ERR_PRINTF2(_L("Creation error: %d"), err); - SetError(err); - } - } - } - -/** Calls CFbsBitmap::CreateHardwareBitmap() */ -void CT_DataFbsBitmap::DoCmdCreateHardwareBitmap(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::CreateHardwareBitmap()")); - - // get size height from parameters - TInt height; - if(!GetIntFromConfig(aSection, KHeight(), height)) - { - ERR_PRINTF2(_L("No %S"), &KHeight()); - SetBlockResult(EFail); - } - - // get size width from parameters - TInt width; - if(!GetIntFromConfig(aSection, KWidth(), width)) - { - ERR_PRINTF2(_L("No %S"), &KWidth()); - SetBlockResult(EFail); - } - - // get display mode from parameters - TDisplayMode displayMode; - if ( !CT_GraphicsUtil::ReadDisplayMode(*this, aSection, KDisplayMode(), displayMode) ) - { - ERR_PRINTF1(_L("No display mode")); - SetBlockResult(EFail); - } - - // get application uid from parameters - TInt uidInt; - if(!GetIntFromConfig(aSection, KUid(), uidInt)) - { - ERR_PRINTF2(_L("No %S"), &KUid()); - SetBlockResult(EFail); - } - - // call Create() - TInt err = GetFbsBitmap()->CreateHardwareBitmap(TSize(width, height), displayMode, TUid::Uid(uidInt)); - - // check error code - if ( err != KErrNone ) - { - ERR_PRINTF2(_L("Hardware bitmap creation error: %d"), err); - SetError(err); - } - } - -/** Calls CFbsBitmap::DataAddress() locking and unlocking heap by defined in parameters means */ -void CT_DataFbsBitmap::DoCmdDataAddress(const TDesC& aSection) - { - // call DataAddress() - TUint32* address=GetFbsBitmap()->DataAddress(); - INFO_PRINTF2(_L("DataAddress %d"), address); - - // validate returned value if needed - TInt expectedValue; - if(GetIntFromConfig(aSection, KExpectedInt(), expectedValue)) - { - if (expectedValue != (TInt)address) - { - ERR_PRINTF1(_L("The returned value is not as expected")); - SetBlockResult(EFail); - } - } - } - -/** Calls CFbsBitmap::DataStride() */ -void CT_DataFbsBitmap::DoCmdDataStride(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::DataStride()")); - - // call DataStride() - TInt value = GetFbsBitmap()->DataStride(); - INFO_PRINTF2(_L("Data stride: %d"), value); - - // validate returned value if needed - TInt expectedValue; - if(GetIntFromConfig(aSection, KExpectedInt(), expectedValue)) - { - if (expectedValue != value) - { - ERR_PRINTF3(_L("The returned value is not as expected, expected: %d, actual: %d"), expectedValue, value); - SetBlockResult(EFail); - } - } - - // check the value is not NULL - if (value <= 0) - { - ERR_PRINTF2(_L("The data stride is not expected zero or less, value: %d"), value); - SetBlockResult(EFail); - } - } - -/** Checks CFbsBitmap::DisplayMode() value */ -void CT_DataFbsBitmap::DoCmdDisplayMode(const TDesC& aSection) - { - INFO_PRINTF1(_L("Checks CFbsBitmap::DisplayMode() value")); - - // call DisplayMode() - iDisplayMode=GetFbsBitmap()->DisplayMode(); - INFO_PRINTF2(_L("Display Mode %d"), iDisplayMode); - - // get display mode from parameters - TDisplayMode expectedValue; - if ( CT_GraphicsUtil::ReadDisplayMode(*this, aSection, KDisplayMode(), expectedValue) ) - { - // check value against NULL - if ( iDisplayMode!=expectedValue ) - { - ERR_PRINTF3(_L("The value is not as expected! expected: %d, actual: %d"), expectedValue, iDisplayMode); - SetBlockResult(EFail); - } - } - } - -/** Calls CFbsBitmap::Duplicate() */ -void CT_DataFbsBitmap::DoCmdDuplicateL(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::Duplicate()")); - TInt handle=GetHandle(); - TPtrC objectName; - if ( GetStringFromConfig(aSection, KFbsBitmapName(), objectName) ) - { - CDataWrapperBase* wrapper=static_cast(GetDataWrapperL(objectName)); - handle=wrapper->GetHandle(); - } - else - { - GetIntFromConfig(aSection, KHandle(), handle); - } - - // call Duplicate() - TInt err = GetFbsBitmap()->Duplicate(handle); - if (err != KErrNone) - { - ERR_PRINTF2(_L("Duplicate error: %d"), err); - SetError(err); - } - } - -/** Calls CFbsBitmap::ExternalizeL() */ -void CT_DataFbsBitmap::DoCmdExternalizeL(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::ExternalizeL()")); - ExternalizeImplL(aSection, TRect(), EFalse); - } - -/** Calls CFbsBitmap::ExternalizeRectangleL() */ -void CT_DataFbsBitmap::DoCmdExternalizeRectangleL(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::ExternalizeRectangleL()")); - - // get rectangle top left x-coordinate from parameters - TInt tlx; - if(!GetIntFromConfig(aSection, KRectTlX(), tlx)) - { - ERR_PRINTF2(_L("No %S"), &KRectTlX()); - SetBlockResult(EFail); - } - - // get rectangle top left x-coordinate from parameters - TInt tly; - if(!GetIntFromConfig(aSection, KRectTlY(), tly)) - { - ERR_PRINTF2(_L("No %S"), &KRectTlY()); - SetBlockResult(EFail); - } - - // get rectangle top left x-coordinate from parameters - TInt brx; - if(!GetIntFromConfig(aSection, KRectBrX(), brx)) - { - ERR_PRINTF2(_L("No %S"), &KRectBrX()); - SetBlockResult(EFail); - } - - // get rectangle top left x-coordinate from parameters - TInt bry; - if(!GetIntFromConfig(aSection, KRectBrY(), bry)) - { - ERR_PRINTF2(_L("No %S"), &KRectBrY()); - SetBlockResult(EFail); - } - - ExternalizeImplL(aSection, TRect(tlx, tly, brx, bry), ETrue); - } - -/** Calls CFbsBitmap::GetPalette() */ -void CT_DataFbsBitmap::DoCmdGetPaletteL(const TDesC& aSection) - { - // call GetPalette() - CPalette* palette = NULL; - TInt err = GetFbsBitmap()->GetPalette(palette); - INFO_PRINTF2(_L("Calls CFbsBitmap::GetPalette() %d"), palette); - - // check error code - if (err != KErrNone) - { - ERR_PRINTF2(_L("GetPalette error: %d"), err); - SetError(err); - } - else - { - // Verify palette - CPalette* expectedPalette = NULL; - - if ( CT_GraphicsUtil::GetPaletteL(*this, aSection, KPalette(), expectedPalette) ) - { - if ( palette != expectedPalette ) - { - ERR_PRINTF3(_L("GetPalette palette %d not the expected palette %d"), palette, expectedPalette); - SetBlockResult(EFail); - } - } - } - } - -/** Calls CFbsBitmap::GetPixel() */ -void CT_DataFbsBitmap::DoCmdGetPixel(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::GetPixel()")); - - // get point x-coordinate from parameters - TInt pointX; - if(!GetIntFromConfig(aSection, KPointX(), pointX)) - { - ERR_PRINTF2(_L("No %S"), &KPointX()); - SetBlockResult(EFail); - } - - // get point y-coordinate from parameters - TInt pointY; - if(!GetIntFromConfig(aSection, KPointY(), pointY)) - { - ERR_PRINTF2(_L("No %S"), &KPointY()); - SetBlockResult(EFail); - } - - // call GetPixel() - TRgb color; - GetFbsBitmap()->GetPixel(color, TPoint(pointX, pointY)); - - INFO_PRINTF2(_L("Red %d"), color.Red()); - INFO_PRINTF2(_L("Green %d"), color.Green()); - INFO_PRINTF2(_L("Blue %d"), color.Blue()); - - TInt actual; - TInt expected; - - if(GetIntFromConfig(aSection, KRed(), expected)) - { - actual=color.Red(); - if ( expected != actual ) - { - ERR_PRINTF3(_L("Expected Red %d does not match actual %d"), expected, actual); - SetBlockResult(EFail); - } - } - - if(GetIntFromConfig(aSection, KGreen(), expected)) - { - actual=color.Green(); - if ( expected != actual ) - { - ERR_PRINTF3(_L("Expected Green %d does not match actual %d"), expected, actual); - SetBlockResult(EFail); - } - } - - if(GetIntFromConfig(aSection, KBlue(), expected)) - { - actual=color.Blue(); - if ( expected != actual ) - { - ERR_PRINTF3(_L("Expected Blue %d does not match actual %d"), expected, actual); - SetBlockResult(EFail); - } - } - } - -/** Calls CFbsBitmap::GetScanLine() */ -void CT_DataFbsBitmap::DoCmdGetScanLineL(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::GetScanLine()")); - TBool dataOk=ETrue; - - // get point x coordinate from parameters - TInt pointX = 0; - if(!GetIntFromConfig(aSection, KPointX(), pointX)) - { - ERR_PRINTF2(_L("No %S"), &KPointX()); - SetBlockResult(EFail); - dataOk=EFalse; - } - - // get point y coordinate from parameters - TInt pointY = 0; - if(!GetIntFromConfig(aSection, KPointY(), pointY)) - { - ERR_PRINTF2(_L("No %S"), &KPointY()); - SetBlockResult(EFail); - dataOk=EFalse; - } - - // get length from parameters - TInt length = 0; - if(!GetIntFromConfig(aSection, KLength(), length)) - { - ERR_PRINTF2(_L("No %S"), &KLength()); - SetBlockResult(EFail); - dataOk=EFalse; - } - - // get buffer length from parameters - TInt buffLength = 0; - if(!GetIntFromConfig(aSection, KBuffLength(), buffLength)) - { - ERR_PRINTF2(_L("No %S"), &KBuffLength()); - SetBlockResult(EFail); - dataOk=EFalse; - } - - // get display mode from parameters - TDisplayMode displayMode; - if ( !CT_GraphicsUtil::ReadDisplayMode(*this, aSection, KDisplayMode(), displayMode) ) - { - ERR_PRINTF1(_L("No display mode")); - SetBlockResult(EFail); - dataOk=EFalse; - } - - if ( dataOk ) - { - // call GetScanLine() - TUint8* buffer = new (ELeave) TUint8[buffLength]; - TPtr8 scanline(buffer, buffLength, buffLength); - - GetFbsBitmap()->GetScanLine(scanline, TPoint(pointX, pointY), length, displayMode); - - delete [] buffer; - } - } - -/** Calls CFbsBitmap::GetVerticalScanLine() */ -void CT_DataFbsBitmap::DoCmdGetVerticalScanLineL(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::GetVerticalScanLine()")); - TBool dataOk=ETrue; - - // get point x coordinate from parameters - TInt pointX = 0; - if(!GetIntFromConfig(aSection, KPointX(), pointX)) - { - ERR_PRINTF2(_L("No %S"), &KPointX()); - SetBlockResult(EFail); - dataOk=EFalse; - } - - // get if to use dither offset flag from parameters - TBool useDitherOffset = EFalse; - if(!GetBoolFromConfig(aSection, KUseDitherOffset(), useDitherOffset)) - { - ERR_PRINTF2(_L("No %S"), &KUseDitherOffset()); - SetBlockResult(EFail); - dataOk=EFalse; - } - - // get dither offset x coordinate from parameters - TInt ditherOffsetX = 0; - if(useDitherOffset && !GetIntFromConfig(aSection, KDitherOffsetX(), ditherOffsetX)) - { - ERR_PRINTF2(_L("No %S"), &KDitherOffsetX()); - SetBlockResult(EFail); - dataOk=EFalse; - } - - // get dither offset y coordinate from parameters - TInt ditherOffsetY = 0; - if(useDitherOffset && !GetIntFromConfig(aSection, KDitherOffsetY(), ditherOffsetY)) - { - ERR_PRINTF2(_L("No %S"), &KDitherOffsetY()); - SetBlockResult(EFail); - dataOk=EFalse; - } - - // get buffer length from parameters - TInt buffLength = 0; - if(!GetIntFromConfig(aSection, KBuffLength(), buffLength)) - { - ERR_PRINTF2(_L("No %S"), &KBuffLength()); - SetBlockResult(EFail); - dataOk=EFalse; - } - - // get display mode from parameters - TDisplayMode displayMode; - if ( !CT_GraphicsUtil::ReadDisplayMode(*this, aSection, KDisplayMode(), displayMode) ) - { - ERR_PRINTF1(_L("No display mode")); - SetBlockResult(EFail); - dataOk=EFalse; - } - - if ( dataOk ) - { - // call GetVerticalScanLine() - TUint8* buffer = new (ELeave) TUint8[buffLength]; - TPtr8 scanline(buffer, buffLength, buffLength); - - if (useDitherOffset) - { - GetFbsBitmap()->GetVerticalScanLine(scanline, pointX, displayMode); - } - else - { - GetFbsBitmap()->GetVerticalScanLine(scanline, pointX, TPoint(ditherOffsetX, ditherOffsetY), displayMode); - } - - delete [] buffer; - } - } - -/** Calls CFbsBitmap::Handle() */ -void CT_DataFbsBitmap::DoCmdHandle(const TDesC& aSection) - { - - // call Handle() - TInt handle=GetFbsBitmap()->Handle(); - INFO_PRINTF2(_L("Calls CFbsBitmap::Handle() %d"), handle); - SetHandle(handle); - - // validate returned value if needed - TInt expectedValue; - if(GetIntFromConfig(aSection, KExpectedInt(), expectedValue)) - { - if (expectedValue != handle) - { - ERR_PRINTF3(_L("The returned value is not as expected, expected: %d, actual: %d"), expectedValue, handle); - SetBlockResult(EFail); - } - } - } - -/** Checks CFbsBitmap::HardwareBitmapHandle() */ -void CT_DataFbsBitmap::DoCmdHardwareBitmapHandle(const TDesC& aSection) - { - // call HardwareBitmapHandle() - TInt handle=GetFbsBitmap()->HardwareBitmapHandle(); - INFO_PRINTF2(_L("CFbsBitmap::HardwareBitmapHandle() %d"), handle); - SetHandle(handle); - - // get if null expected flag from parameters - TBool nullExpected = EFalse; - if ( GetBoolFromConfig(aSection, KNullExpected(), nullExpected) ) - { - // check value againts NULL - if ( (handle == NULL) != nullExpected ) - { - ERR_PRINTF2(_L("The value is not as expected! value: %d"), handle); - SetBlockResult(EFail); - } - } - } - -/** Calls CFbsBitmap::Header() */ -void CT_DataFbsBitmap::DoCmdHeader() - { - INFO_PRINTF1(_L("Calls CFbsBitmap::Header()")); - - // call Header() - SEpocBitmapHeader header=GetFbsBitmap()->Header(); - INFO_PRINTF2(_L("Header iBitmapSize &d"), header.iBitmapSize); - INFO_PRINTF2(_L("Header iBitsPerPixel &d"), header.iBitsPerPixel); - INFO_PRINTF2(_L("Header iColor &d"), header.iColor); - INFO_PRINTF2(_L("Header iCompression &d"), header.iCompression); - INFO_PRINTF2(_L("Header iPaletteEntries &d"), header.iPaletteEntries); - INFO_PRINTF3(_L("Header iSizeInPixels &d %d"), header.iSizeInPixels.iWidth, header.iSizeInPixels.iHeight); - INFO_PRINTF3(_L("Header iSizeInTwips &d %d"), header.iSizeInTwips.iWidth, header.iSizeInTwips.iHeight); - INFO_PRINTF2(_L("Header iStructSize &d"), header.iStructSize); - } - -/** Calls CFbsBitmap::HorizontalPixelsToTwips() */ -void CT_DataFbsBitmap::DoCmdHorizontalPixelsToTwips(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::HorizontalPixelsToTwips()")); - - // get pixels from parameters - TInt pixels; - if(!GetIntFromConfig(aSection, KPixels(), pixels)) - { - ERR_PRINTF2(_L("No %S"), &KPixels()); - SetBlockResult(EFail); - } - - // call HorizontalPixelsToTwips() - TInt value = GetFbsBitmap()->HorizontalPixelsToTwips(pixels); - INFO_PRINTF2(_L("Twips: %d"), value); - - // validate returned value if needed - TInt expectedValue; - if(GetIntFromConfig(aSection, KExpectedInt(), expectedValue)) - { - if (expectedValue != value) - { - ERR_PRINTF3(_L("The returned value is not as expected, expected: %d, actual: %d"), expectedValue, value); - SetBlockResult(EFail); - } - } - } - -/** Calls CFbsBitmap::HorizontalTwipsToPixels() */ -void CT_DataFbsBitmap::DoCmdHorizontalTwipsToPixels(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::HorizontalTwipsToPixels()")); - - // get twips from parameters - TInt twips; - if(!GetIntFromConfig(aSection, KTwips(), twips)) - { - ERR_PRINTF2(_L("No %S"), &KTwips()); - SetBlockResult(EFail); - } - - // call HorizontalTwipsToPixels() - TInt value = GetFbsBitmap()->HorizontalTwipsToPixels(twips); - INFO_PRINTF2(_L("Pixels: %d"), value); - - // validate returned value if needed - TInt expectedValue; - if(GetIntFromConfig(aSection, KExpectedInt(), expectedValue)) - { - if (expectedValue != value) - { - ERR_PRINTF3(_L("The returned value is not as expected, expected: %d, actual: %d"), expectedValue, value); - SetBlockResult(EFail); - } - } - } - -/** Checks CFbsBitmap::InitialDisplayMode() value */ -void CT_DataFbsBitmap::DoCmdInitialDisplayMode(const TDesC& aSection) - { - INFO_PRINTF1(_L("Checks CFbsBitmap::InitialDisplayMode() value")); - - // call InitialDisplayMode() - TInt actualValue = GetFbsBitmap()->InitialDisplayMode(); - INFO_PRINTF2(_L("Initial Display Mode %d"), actualValue); - - // get display mode from parameters - TDisplayMode expectedValue; - if ( CT_GraphicsUtil::ReadDisplayMode(*this, aSection, KDisplayMode(), expectedValue) ) - { - // check value againts NULL - if (actualValue != expectedValue) - { - ERR_PRINTF3(_L("The value is not as expected! expecyed: %d, actual: %d"), expectedValue, actualValue); - SetBlockResult(EFail); - } - } - } - -/** Calls CFbsBitmap::InternalizeL() */ -void CT_DataFbsBitmap::DoCmdInternalizeL(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::InternalizeL()")); - - // get file name from parameters - TPtrC fileName; - if (!GetStringFromConfig(aSection, KFileName(), fileName)) - { - ERR_PRINTF2(_L("No %S"), &KFileName()); - SetBlockResult(EFail); - } - - // get a flag if to use closed stream from parameters - TBool useClosedStream = EFalse; - if(!GetBoolFromConfig(aSection, KUseClosedStream(), useClosedStream)) - { - ERR_PRINTF2(_L("No %S"), &KUseClosedStream()); - SetBlockResult(EFail); - } - - // ReadStore creation - CDirectFileStore* readstore = CDirectFileStore::OpenL(FileServer(), fileName, EFileStream | EFileRead); - CleanupStack::PushL(readstore); - TInt popCount=1; - TStreamId headerid = readstore->Root(); - RStoreReadStream readstrm; - - // close stream if defined by parameters - if (!useClosedStream) - { - readstrm.OpenL(*readstore, headerid); - CleanupClosePushL(readstrm); - popCount=2; - } - - // call InternalizeL() - TRAPD(err, GetFbsBitmap()->InternalizeL(readstrm)); - if (err != KErrNone) - { - ERR_PRINTF2(_L("Internalize error: %d"), err); - SetError(err); - } - - // cleanup - CleanupStack::PopAndDestroy(popCount, readstore); - } - -/** Calls CFbsBitmap::IsCompressedInRAM() to check againt expected value */ -void CT_DataFbsBitmap::DoCmdIsCompressedInRAM(const TDesC& aSection) - { - // call IsCompressedInRAM() to get actual value - TBool actualValue = GetFbsBitmap()->IsCompressedInRAM(); - INFO_PRINTF2(_L("CFbsBitmap::IsCompressedInRAM() %d"), actualValue); - - // get expected value from parameters - TBool expectedValue = EFalse; - if ( GetBoolFromConfig(aSection, KExpectedBool(), expectedValue) ) - { - if (actualValue != expectedValue) - { - ERR_PRINTF3(_L("Expected value doesn't match to actual! expected: %d, actual: %d"), expectedValue, actualValue); - if (!iCompressFailed) - { - SetBlockResult(EFail); - }; - } - } - } - -/** Calls CFbsBitmap::IsFileInRom() and check against expectation */ -void CT_DataFbsBitmap::DoCmdIsFileInRom(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::IsFileInRom() and check against expectation")); - - // get file name from parameters - - TPtrC fileName; - if ( !GetStringFromConfig(aSection, KFileName(), fileName) ) - { - ERR_PRINTF2(_L("No %S"), &KFileName()); - SetBlockResult(EFail); - } - - // get flag if use RFile instance in Save() call from parameters - TBool useRFile = EFalse; - GetBoolFromConfig(aSection, KUseRFile(), useRFile); - - TInt err = KErrNone; - TBool isFileInRom = EFalse; - TUint32* addressInRom = NULL; - if (useRFile) - { - // open rfile - RFile file; - err = file.Open(FileServer(), fileName, EFileShareReadersOnly); - - // check if failed to open file - if ( err != KErrNone ) - { - ERR_PRINTF2(_L("File open error: %d"), err); - SetBlockResult(EFail); - } - else - { - // call IsFileInRom() - isFileInRom = CFbsBitmap::IsFileInRom(file, addressInRom); - - // close rfile - file.Close(); - } - } - else - { - isFileInRom = CFbsBitmap::IsFileInRom(fileName, addressInRom); - } - - // get expected value if is in ROM from parameters - TBool expectedIsFileInRom = EFalse; - if ( GetBoolFromConfig(aSection, KExpectedBool(), expectedIsFileInRom) ) - { - // check the expectation - if (expectedIsFileInRom != isFileInRom) - { - ERR_PRINTF3(_L("The value is not as expected! expected: %d, actual: %d"), expectedIsFileInRom, isFileInRom); - SetBlockResult(EFail); - } - } - - // check that address is not null if in rom - if ( isFileInRom && addressInRom == NULL ) - { - ERR_PRINTF1(_L("The file is in ROM but returned address is NULL")); - SetBlockResult(EFail); - } - } - -/** Calls CFbsBitmap::IsLargeBitmap() */ -void CT_DataFbsBitmap::DoCmdIsLargeBitmap(const TDesC& aSection) - { - // call IsLargeBitmap() - TBool value = GetFbsBitmap()->IsLargeBitmap(); - INFO_PRINTF2(_L("Is large bitmap: %d"), value); - - // validate returned value if needed - TBool expectedBool; - if(GetIntFromConfig(aSection, KExpectedBool(), expectedBool)) - { - if (expectedBool != value) - { - ERR_PRINTF3(_L("The returned value is not as expected, expected: %d, actual: %d"), expectedBool, value); - SetBlockResult(EFail); - } - } - } - -/** Calls CFbsBitmap::IsMonochrome() */ -void CT_DataFbsBitmap::DoCmdIsMonochrome(const TDesC& aSection) - { - - // call IsMonochrome() - TBool value = GetFbsBitmap()->IsMonochrome(); - INFO_PRINTF2(_L("Is monochrome: %d"), value); - - // validate returned value if needed - TBool expectedBool; - if(GetIntFromConfig(aSection, KExpectedBool(), expectedBool)) - { - if (expectedBool != value) - { - ERR_PRINTF3(_L("The returned value is not as expected, expected: %d, actual: %d"), expectedBool, value); - SetBlockResult(EFail); - } - } - } - -/** Calls CFbsBitmap::IsRomBitmap() and check against expectation */ -void CT_DataFbsBitmap::DoCmdIsRomBitmap(const TDesC& aSection) - { - // call IsRomBitmap() - TBool actualValue = GetFbsBitmap()->IsRomBitmap(); - INFO_PRINTF2(_L("CFbsBitmap::IsRomBitmap() %d"), actualValue); - - // get expected value if is in ROM from parameters - TBool expectedIsRomBitmap = EFalse; - if ( GetBoolFromConfig(aSection, KExpectedBool(), expectedIsRomBitmap) ) - { - // check the expectation - if (expectedIsRomBitmap != actualValue) - { - ERR_PRINTF3(_L("The value is not as expected! expected: %d, actual: %d"), expectedIsRomBitmap, actualValue); - SetBlockResult(EFail); - } - } - } - -/** CFbsBitmap::Load() Call */ -void CT_DataFbsBitmap::DoCmdLoadL(const TDesC& aSection) - { - INFO_PRINTF1(_L("CFbsBitmap::Load() Call")); - LoadOrLoadAndCompressL(aSection, EFalse); - } - -/** CFbsBitmap::LoadAndCompress() Call */ -void CT_DataFbsBitmap::DoCmdLoadAndCompressL(const TDesC& aSection) - { - INFO_PRINTF1(_L("CFbsBitmap::LoadAndCompress() Call")); - LoadOrLoadAndCompressL(aSection, ETrue); - } - -/** Calls static CFbsBitmap destructor */ -void CT_DataFbsBitmap::DoCmdLockHeap(const TDesC& aSection) - { - TBool always=EFalse; - GetBoolFromConfig(aSection, KAlways(), always); - GetFbsBitmap()->LockHeap(always); - } - -/** Calls static CFbsBitmap destructor */ -void CT_DataFbsBitmap::DoCmdLockHeapLC(const TDesC& aSection) - { - TBool always=EFalse; - GetBoolFromConfig(aSection, KAlways(), always); - - GetFbsBitmap()->LockHeapLC(always); - iPopWhenUnlocking=ETrue; - } - -/** Calls CFbsBitmap::PaletteAttributes() */ -void CT_DataFbsBitmap::DoCmdPaletteAttributes(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::PaletteAttributes()")); - - // call PaletteAttributes() - TBool modifiable; - TInt entries; - GetFbsBitmap()->PaletteAttributes(modifiable, entries); - - INFO_PRINTF3(_L("Modifiable: %d, Number of entries: %d"), modifiable, entries); - - // validate returned value if needed - TBool expectedModifiable; - if(GetBoolFromConfig(aSection, KModifiable(), expectedModifiable)) - { - if (expectedModifiable != modifiable) - { - ERR_PRINTF3(_L("The returned modifaiable value is not as expected, expected: %d, actual: %d"), expectedModifiable, modifiable); - SetBlockResult(EFail); - } - } - - // validate returned value if needed - TBool expectedEntries; - if(GetIntFromConfig(aSection, KEntries(), expectedEntries)) - { - if (expectedEntries != entries) - { - ERR_PRINTF3(_L("The returned modifaiable value is not as expected, expected: %d, actual: %d"), expectedEntries, entries); - SetBlockResult(EFail); - } - } - } - -/** Calls CFbsBitmap::Reset() */ -void CT_DataFbsBitmap::DoCmdReset() - { - INFO_PRINTF1(_L("Calls CFbsBitmap::Reset()")); - - // call Reset() - GetFbsBitmap()->Reset(); - } - -/** Calls CFbsBitmap::Resize() */ -void CT_DataFbsBitmap::DoCmdResize(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::Resize()")); - - // get size height from parameters - TInt height; - if(!GetIntFromConfig(aSection, KHeight(), height)) - { - ERR_PRINTF2(_L("No %S"), &KHeight()); - SetBlockResult(EFail); - } - - // get size width from parameters - TInt width; - if(!GetIntFromConfig(aSection, KWidth(), width)) - { - ERR_PRINTF2(_L("No %S"), &KWidth()); - SetBlockResult(EFail); - } - - // call Resize() - TInt err = GetFbsBitmap()->Resize(TSize(width, height)); - - // check error code - if (err != KErrNone) - { - ERR_PRINTF2(_L("Resize error: %d"), err); - SetError(err); - } - } - -/** Calls CFbsBitmap::Save() */ -void CT_DataFbsBitmap::DoCmdSave(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::Save()")); - - // get file name from parameters - TPtrC fileName; - if (!GetStringFromConfig(aSection, KFileName(), fileName)) - { - ERR_PRINTF2(_L("No %S"), &KFileName()); - SetBlockResult(EFail); - } - - // get flag if use RFile instance in Save() call from parameters - TBool useRFile = EFalse; - if(!GetBoolFromConfig(aSection, KUseRFile(), useRFile)) - { - ERR_PRINTF2(_L("No %S"), &KUseRFile()); - SetBlockResult(EFail); - } - - // get flag if use RFile instance in Load() call from parameters - TBool useClosedRFile = EFalse; - if(GetBoolFromConfig(aSection, KUseClosedRFile(), useClosedRFile)) - { - if (useClosedRFile && !useRFile) - { - ERR_PRINTF3(_L("Cannot use %S parameter if %S is not set to TRUE"), &KUseClosedRFile(), &KUseRFile()); - SetBlockResult(EFail); - } - } - - TInt err = KErrNone; - if (useRFile) - { - // required to allow file handle to be adopted by another process - FileServer().ShareProtected(); - - // open or create rfile - RFile file; - - if (!useClosedRFile) - { - err = file.Open(FileServer(), fileName, EFileWrite); - - if (err == KErrNotFound) - { - err = file.Create(FileServer(), fileName, EFileWrite); - - // check if failed to create file - if (err != KErrNone) - { - ERR_PRINTF2(_L("File create error: %d"), err); - SetBlockResult(EFail); - } - } - else if (err != KErrNone) - { - // if failed to open file - ERR_PRINTF2(_L("File open error: %d"), err); - SetBlockResult(EFail); - } - } - - // call Save() - err = GetFbsBitmap()->Save(file); - - // close rfile - file.Close(); - } - else - { - err = GetFbsBitmap()->Save(fileName); - } - - // check error code - if (err != KErrNone) - { - ERR_PRINTF2(_L("Save error: %d"), err); - SetError(err); - } - } - -/** Calls CFbsBitmap::ScanLineLength() */ -void CT_DataFbsBitmap::DoCmdScanLineLength(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::ScanLineLength()")); - - // get length from parameters - TInt length = 0; - if(!GetIntFromConfig(aSection, KLength(), length)) - { - ERR_PRINTF2(_L("No %S"), &KLength()); - SetBlockResult(EFail); - } - - // get display mode from parameters - TDisplayMode displayMode; - if ( !CT_GraphicsUtil::ReadDisplayMode(*this, aSection, KDisplayMode(), displayMode) ) - { - ERR_PRINTF1(_L("No display mode")); - SetBlockResult(EFail); - } - else - { - TInt actualValue = CFbsBitmap::ScanLineLength(length, displayMode); - INFO_PRINTF2(_L("CFbsBitmap::ScanLineLength() %d"), actualValue); - - TInt expectedValue = 0; - if ( GetIntFromConfig(aSection, KExpectedInt(), expectedValue) ) - { - if (actualValue != expectedValue) - { - ERR_PRINTF3(_L("Expected value doesn't match to actual! expected: %d, actual: %d"), expectedValue, actualValue); - SetBlockResult(EFail); - } - } - } - } - -/** Calls CFbsBitmap::SetDisplayMode() */ -void CT_DataFbsBitmap::DoCmdSetDisplayMode(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::SetDisplayMode()")); - - // get display mode from parameters - TDisplayMode displayMode; - if ( !CT_GraphicsUtil::ReadDisplayMode(*this, aSection, KDisplayMode(), displayMode) ) - { - ERR_PRINTF1(_L("No display mode")); - SetBlockResult(EFail); - } - else - { - // call SetDisplayMode() - TInt err = GetFbsBitmap()->SetDisplayMode(displayMode); - - // check error code - if (err != KErrNone) - { - ERR_PRINTF2(_L("Set display mode error: %d"), err); - SetError(err); - } - } - } - -/** Calls CFbsBitmap::SetPalette() by previously created palette */ -void CT_DataFbsBitmap::DoCmdSetPaletteL(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::SetPalette() by previously created palette")); - - // get CPalette object passed as a parameter - CPalette* palette = NULL; - - CT_GraphicsUtil::GetPaletteL(*this, aSection, KPalette(), palette); - - // call SetPalette() - GetFbsBitmap()->SetPalette(palette); - } - -/** Calls CFbsBitmap::SetRomBitmapL() by another bitmap */ -void CT_DataFbsBitmap::DoCmdSetRomBitmapL(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::SetRomBitmapL() by another bitmap")); - - // get fbsBitmap passed as a parameter - CFbsBitmap* otherFbsBitmap=NULL; - - CT_GraphicsUtil::GetFbsBitmapL(*this, aSection, KFbsBitmapName(), otherFbsBitmap); - - // get romPointer. If the bitmap is ROM bitmap then Handle() returns ROM pointer - CBitwiseBitmap* bitmapRomAddress=NULL; - if ( otherFbsBitmap!=NULL ) - { - bitmapRomAddress=REINTERPRET_CAST(CBitwiseBitmap*, otherFbsBitmap->Handle()); - } - - // call SetRomBitmapL() - TInt bitmapSizeInBytes=0; - TRAPD(err, GetFbsBitmap()->SetRomBitmapL(bitmapRomAddress, bitmapSizeInBytes)); - - // check error code - if (err != KErrNone) - { - ERR_PRINTF2(_L("Set ROM bitmap error: %d"), err); - SetError(err); - } - } - -/** Calls CFbsBitmap::SetScanLine() */ -void CT_DataFbsBitmap::DoCmdSetScanLineL(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::SetScanLine()")); - - // get scanline coordinate from parameters - TInt coordinate = 0; - if(!GetIntFromConfig(aSection, KScanLineCoord(), coordinate)) - { - ERR_PRINTF2(_L("No %S"), &KScanLineCoord()); - SetBlockResult(EFail); - } - - // get file name from parameters - TPtrC fileName; - if (!GetStringFromConfig(aSection, KFileName(), fileName)) - { - ERR_PRINTF2(_L("No %S"), &KFileName()); - SetBlockResult(EFail); - } - - // open file - RFile file; - User::LeaveIfError(file.Open(FileServer(), fileName, EFileRead | EFileShareAny)); - CleanupClosePushL(file); - - // get size - TInt size = 0; - User::LeaveIfError(file.Size(size)); - - // read file - HBufC8* fileDataBuff = HBufC8::NewLC(size); - TPtr8 fileData = fileDataBuff->Des(); - - User::LeaveIfError(file.Read(fileData)); - - GetFbsBitmap()->SetScanLine(fileData, coordinate); - - CleanupStack::PopAndDestroy(2, &file); // fileDataBuff, file - } - -/** Calls CFbsBitmap::SetSizeInTwips() by size parameter */ -void CT_DataFbsBitmap::DoCmdSetSizeInTwipsL(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::SetSizeInTwips()")); - - // get if to NULL device pointer flag from parameters - TPtrC device; - if ( GetStringFromConfig(aSection, KDevice(), device) ) - { - CFbsBitmapDevice* bitmapDevice=static_cast(GetDataObjectL(device)); - GetFbsBitmap()->SetSizeInTwips(bitmapDevice); - } - else - { - // get size height from parameters - TInt height; - if(!GetIntFromConfig(aSection, KHeight(), height)) - { - ERR_PRINTF2(_L("No %S"), &KHeight()); - SetBlockResult(EFail); - } - - // get size width from parameters - TInt width; - if(!GetIntFromConfig(aSection, KWidth(), width)) - { - ERR_PRINTF2(_L("No %S"), &KWidth()); - SetBlockResult(EFail); - } - - // call SetSizeInTwips() - GetFbsBitmap()->SetSizeInTwips(TSize(width, height)); - } - } - -/** Calls CFbsBitmap::SizeInPixels() and checks the size */ -void CT_DataFbsBitmap::DoCmdSizeInPixels(const TDesC& aSection) - { - // call SizeInTwips() - TSize actualSize = GetFbsBitmap()->SizeInPixels(); - INFO_PRINTF3(_L("CFbsBitmap::SizeInPixels() height %d, width %d"), actualSize.iHeight, actualSize.iWidth); - - // get size height from parameters - TInt height; - if ( GetIntFromConfig(aSection, KHeight(), height) ) - { - if ( actualSize.iHeight != height ) - { - ERR_PRINTF3(_L("Height mismatch expected: %d, actual: %d"), height, actualSize.iHeight); - SetBlockResult(EFail); - } - } - - // get size width from parameters - TInt width; - if ( GetIntFromConfig(aSection, KWidth(), width) ) - { - // check that value is as expected - if ( actualSize.iWidth != width ) - { - ERR_PRINTF3(_L("Width mismatch expected: %d, actual: %d"), width, actualSize.iWidth); - SetBlockResult(EFail); - } - } - } - -/** Calls CFbsBitmap::SizeInTwips() and compares the result with expected */ -void CT_DataFbsBitmap::DoCmdSizeInTwips(const TDesC& aSection) - { - // call SizeInTwips() - TSize actualSize = GetFbsBitmap()->SizeInTwips(); - INFO_PRINTF3(_L("CFbsBitmap::SizeInTwips() height %d, width %d"), actualSize.iHeight, actualSize.iWidth); - - // get size height from parameters - TInt height; - if ( GetIntFromConfig(aSection, KHeight(), height) ) - { - if ( actualSize.iHeight != height ) - { - ERR_PRINTF3(_L("Height mismatch expected: %d, actual: %d"), height, actualSize.iHeight); - SetBlockResult(EFail); - } - } - - // get size width from parameters - TInt width; - if ( GetIntFromConfig(aSection, KWidth(), width) ) - { - // check that value is as expected - if ( actualSize.iWidth != width ) - { - ERR_PRINTF3(_L("Width mismatch expected: %d, actual: %d"), width, actualSize.iWidth); - SetBlockResult(EFail); - } - } - } - -/** Calls CFbsBitmap::StoreL() */ -void CT_DataFbsBitmap::DoCmdStoreL(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::StoreL()")); - - TInt numberOfFiles = 0; - TInt numberOfBitmapIds = 0; - TPtrC sourceFileName1; - TPtrC sourceFileName2; - TInt sourceBitmapId0 = -1; - TInt sourceBitmapId1 = -1; - TInt sourceBitmapId2 = -1; - - // get file name from parameters - TPtrC fileName; - if (!GetStringFromConfig(aSection, KFileName(), fileName)) - { - ERR_PRINTF2(_L("No %S"), &KFileName()); - SetBlockResult(EFail); - } - - // get flag if use RFile instance in Save() call from parameters - TBool useRFile = EFalse; - if(!GetBoolFromConfig(aSection, KUseRFile(), useRFile)) - { - ERR_PRINTF2(_L("No %S"), &KUseRFile()); - SetBlockResult(EFail); - } - - // get flag if use RFile instance in Load() call from parameters - TBool useClosedRFile = EFalse; - if(GetBoolFromConfig(aSection, KUseClosedRFile(), useClosedRFile)) - { - if (useClosedRFile && !useRFile) - { - ERR_PRINTF3(_L("Cannot use %S parameter if %S is not set to TRUE"), &KUseClosedRFile(), &KUseRFile()); - SetBlockResult(EFail); - } - } - - // get up to 3 source file names from parameters - TPtrC sourceFileName0; - if (GetStringFromConfig(aSection, KSourceFileName0(), sourceFileName0)) - { - numberOfFiles++; - if (GetStringFromConfig(aSection, KSourceFileName1(), sourceFileName1)) - { - numberOfFiles++; - if (GetStringFromConfig(aSection, KSourceFileName2(), sourceFileName2)) - { - numberOfFiles++; - } - } - } - - // get up to 3 source bitmap ids from parameters - if (GetIntFromConfig(aSection, KSourceBitmapId0(), sourceBitmapId0)) - { - numberOfBitmapIds++; - if (GetIntFromConfig(aSection, KSourceBitmapId1(), sourceBitmapId1)) - { - numberOfBitmapIds++; - if (GetIntFromConfig(aSection, KSourceBitmapId2(), sourceBitmapId2)) - { - numberOfBitmapIds++; - } - } - } - - // get number of sources argument from parameters - TInt numberOfSources; - if(!GetIntFromConfig(aSection, KNumberOfSources(), numberOfSources)) - { - ERR_PRINTF2(_L("No %S"), &KNumberOfSources()); - SetBlockResult(EFail); - } - - // create array of file names - TFileName** sourceFiles = new (ELeave) TFileName*[numberOfFiles]; - CleanupStack::PushL(sourceFiles); - if (numberOfFiles > 0) sourceFiles[0] = new (ELeave) TFileName(sourceFileName0); - if (numberOfFiles > 1) sourceFiles[1] = new (ELeave) TFileName(sourceFileName1); - if (numberOfFiles > 2) sourceFiles[2] = new (ELeave) TFileName(sourceFileName2); - - // create array of bitmap ids - TInt32* bitmapIds = new (ELeave) TInt32[numberOfBitmapIds]; - CleanupStack::PushL(bitmapIds); - - if (numberOfBitmapIds > 0) bitmapIds[0] = sourceBitmapId0; - if (numberOfBitmapIds > 1) bitmapIds[1] = sourceBitmapId1; - if (numberOfBitmapIds > 2) bitmapIds[2] = sourceBitmapId2; - - TInt err = KErrNone; - if (useRFile) - { - // required to allow file handle to be adopted by another process - FileServer().ShareProtected(); - - // open rfile - TBool openSuccess = EFalse; - - RFile file; - err = file.Open(FileServer(), fileName, EFileWrite); - - // check if ok, if not fount => try to create new file - if (err == KErrNone) - { - openSuccess = ETrue; - } - else if (err == KErrNotFound) - { - INFO_PRINTF1(_L("File doesn't exist, trying to create it.")); - - err = file.Create(FileServer(), fileName, EFileWrite); - - // check if failed to create file - if (err == KErrNone) - { - openSuccess = ETrue; - } - else - { - ERR_PRINTF2(_L("File create error: %d"), err); - SetBlockResult(EFail); - } - } - else - { - ERR_PRINTF2(_L("File open error: %d"), err); - SetBlockResult(EFail); - } - - // if ok => do store - if (openSuccess) - { - // if we use invalid RFile handle in our test - if (useClosedRFile) - { - file.Close(); - } - - // call StoreL() - TRAP(err, CFbsBitmap::StoreL(file, numberOfSources, (const TDesC**) sourceFiles, bitmapIds)); - - // check error code - if (err != KErrNone) - { - ERR_PRINTF2(_L("Store error: %d"), err); - SetError(err); - } - - // close rfile - file.Close(); - } - } - else - { - // call StoreL() - TRAP(err, CFbsBitmap::StoreL(fileName, numberOfSources, (const TDesC**) sourceFiles, bitmapIds)); - - // check error code - if (err != KErrNone) - { - ERR_PRINTF2(_L("Store error: %d"), err); - SetError(err); - } - } - - // Iterate over the file name pointer array and cleanup - for (TInt i = 0; i < numberOfFiles; ++i) - { - delete sourceFiles[i]; - } - - // Cleanup the arrays allocated on the heap - CleanupStack::PopAndDestroy(2, sourceFiles); - } - -/** Calls CFbsBitmap::SwapWidthAndHeight() */ -void CT_DataFbsBitmap::DoCmdSwapWidthAndHeight() - { - INFO_PRINTF1(_L("Calls CFbsBitmap::SwapWidthAndHeight()")); - - // call SwapWidthAndHeight() - TInt err = GetFbsBitmap()->SwapWidthAndHeight(); - - // check error code - if (err != KErrNone) - { - ERR_PRINTF2(_L("Swap width and height error: %d"), err); - SetError(err); - } - } - -/** Calls static CFbsBitmap destructor */ -void CT_DataFbsBitmap::DoCmdUnlockHeapL(const TDesC& aSection) - { - - CFbsBitmap* bitmap=NULL; - if ( CT_GraphicsUtil::GetFbsBitmapL(*this, aSection, KFbsBitmapName(), bitmap) ) - { - CFbsBitmap::UnlockHeap(bitmap); - } - else - { - TBool always=EFalse; - GetBoolFromConfig(aSection, KAlways(), always); - - GetFbsBitmap()->UnlockHeap(always); - } - - if ( iPopWhenUnlocking ) - { - iPopWhenUnlocking=EFalse; - CleanupStack::Pop(); - } - } - -/** Calls CFbsBitmap::VerticalPixelsToTwips() */ -void CT_DataFbsBitmap::DoCmdVerticalPixelsToTwips(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::VerticalPixelsToTwips()")); - - // get pixels from parameters - TInt pixels; - if(!GetIntFromConfig(aSection, KPixels(), pixels)) - { - ERR_PRINTF2(_L("No %S"), &KPixels()); - SetBlockResult(EFail); - } - - // call VerticalPixelsToTwips() - TInt value = GetFbsBitmap()->VerticalPixelsToTwips(pixels); - INFO_PRINTF2(_L("Twips: %d"), value); - - // validate returned value if needed - TInt expectedValue; - if(GetIntFromConfig(aSection, KExpectedInt(), expectedValue)) - { - if (expectedValue != value) - { - ERR_PRINTF3(_L("The returned value is not as expected, expected: %d, actual: %d"), expectedValue, value); - SetBlockResult(EFail); - } - } - } - -/** Calls CFbsBitmap::VerticalTwipsToPixels() */ -void CT_DataFbsBitmap::DoCmdVerticalTwipsToPixels(const TDesC& aSection) - { - INFO_PRINTF1(_L("Calls CFbsBitmap::VerticalTwipsToPixels()")); - - // get twips from parameters - TInt twips; - if(!GetIntFromConfig(aSection, KTwips(), twips)) - { - ERR_PRINTF2(_L("No %S"), &KTwips()); - SetBlockResult(EFail); - } - - // call VerticalTwipsToPixels() - TInt value = GetFbsBitmap()->VerticalTwipsToPixels(twips); - INFO_PRINTF2(_L("Pixels: %d"), value); - - // validate returned value if needed - TInt expectedValue; - if(GetIntFromConfig(aSection, KExpectedInt(), expectedValue)) - { - if (expectedValue != value) - { - ERR_PRINTF3(_L("The returned value is not as expected, expected: %d, actual: %d"), expectedValue, value); - SetBlockResult(EFail); - } - } - } - -/** Calls CFbsBitmap::ExternalizeL() or CFbsBitmap::ExternalizeRectangleL(). Used by DoCmdExternalize() and DoCmdExternalizeRectangle() methods */ -void CT_DataFbsBitmap::ExternalizeImplL(const TDesC& aSection, const TRect& aRect, TBool aUseRect) - { - // get file name from parameters - TPtrC fileName; - if (!GetStringFromConfig(aSection, KFileName(), fileName)) - { - ERR_PRINTF2(_L("No %S"), &KFileName()); - SetBlockResult(EFail); - } - - // get a flag if to use closed stream from parameters - TBool useClosedStream = EFalse; - if(!GetBoolFromConfig(aSection, KUseClosedStream(), useClosedStream)) - { - ERR_PRINTF2(_L("No %S"), &KUseClosedStream()); - SetBlockResult(EFail); - } - - // create write store - CDirectFileStore* writestore = CDirectFileStore::ReplaceL(FileServer(), fileName, EFileStream | EFileWrite); - CleanupStack::PushL(writestore); - TInt popCount=1; - TUidType uidtype(KDirectFileStoreLayoutUid, KMultiBitmapFileImageUid); - - writestore->SetTypeL(uidtype); - - // create write stream - RStoreWriteStream writestrm; - - // close stream set by parameters - if (!useClosedStream) - { - TStreamId headerid=writestrm.CreateL(*writestore); - CleanupClosePushL(writestrm); - - ++popCount; - writestore->SetRootL(headerid); - } - - if (aUseRect) - { - // call ExternalizeRectangleL() - TRAPD(err, GetFbsBitmap()->ExternalizeRectangleL(writestrm, aRect)); - if (err != KErrNone) - { - ERR_PRINTF2(_L("Externalize rectangle error: %d"), err); - SetError(err); - } - } - else - { - // call ExternalizaL() - TRAPD(err, GetFbsBitmap()->ExternalizeL(writestrm)); - if (err != KErrNone) - { - ERR_PRINTF2(_L("Externalize error: %d"), err); - SetError(err); - } - } - - // cleanup - CleanupStack::PopAndDestroy(popCount, writestore); - } - -/** Calls CFbsBitmap::Load() or CFbsBitmap::LoadAndCompress(). Used by DoCmdLoad() and DoCmdLoadAndCompress() methods */ -void CT_DataFbsBitmap::LoadOrLoadAndCompressL(const TDesC& aSection, TBool aCompress) - { - - // get bitmap id from parameters - TInt bitmapId; - if(!GetIntFromConfig(aSection, KBitmapId(), bitmapId)) - { - ERR_PRINTF2(_L("No %S"), &KBitmapId()); - SetBlockResult(EFail); - } - - // get file name from parameters - TPtrC fileName; - if (!GetStringFromConfig(aSection, KFileName(), fileName)) - { - ERR_PRINTF2(_L("No %S"), &KFileName()); - SetBlockResult(EFail); - } - - // get file offset from parameters - TInt fileOffset; - TBool useOffset = GetIntFromConfig(aSection, KFileOffset(), fileOffset); - - // get share if loaded from parameters - TBool shareIfLoaded = EFalse; - GetBoolFromConfig(aSection, KShareIfLoaded(), shareIfLoaded); - - // get flag if use RFile instance in Load() call from parameters - TBool useRFile = EFalse; - GetBoolFromConfig(aSection, KUseRFile(), useRFile); - - // get flag if use RFile instance in Load() call from parameters - TBool useClosedRFile = EFalse; - GetBoolFromConfig(aSection, KUseClosedRFile(), useClosedRFile); - - if (useClosedRFile && !useRFile) - { - ERR_PRINTF3(_L("Cannot use %S parameter if %S is not set to TRUE"), &KUseClosedRFile(), &KUseRFile()); - SetBlockResult(EFail); - } - - // load bitmap - TInt err = KErrNone; - if (useRFile) - { - // required to allow file handle to be adopted by another process - FileServer().ShareProtected(); - - // open rfile - RFile file; - - // if we use invalid RFile handle in our test - if (!useClosedRFile) - { - User::LeaveIfError(file.Open(FileServer(), fileName, EFileShareReadersOnly)); - CleanupClosePushL(file); - } - - // do load - if (aCompress) - { - if (useOffset) - { - err = GetFbsBitmap()->LoadAndCompress(file, bitmapId, shareIfLoaded, fileOffset); - } - else - { - err = GetFbsBitmap()->LoadAndCompress(file, bitmapId, shareIfLoaded); - } - } - else - { - if (useOffset) - { - err = GetFbsBitmap()->Load(file, bitmapId, shareIfLoaded, fileOffset); - } - else - { - err = GetFbsBitmap()->Load(file, bitmapId, shareIfLoaded); - } - } - - if (!useClosedRFile) - { - CleanupStack::PopAndDestroy(&file); - } - } - else - { - if (aCompress) - { - if (useOffset) - { - err = GetFbsBitmap()->LoadAndCompress(fileName, bitmapId, shareIfLoaded, fileOffset); - } - else - { - err = GetFbsBitmap()->LoadAndCompress(fileName, bitmapId, shareIfLoaded); - } - } - else - { - if (useOffset) - { - err = GetFbsBitmap()->Load(fileName, bitmapId, shareIfLoaded, fileOffset); - } - else - { - err = GetFbsBitmap()->Load(fileName, bitmapId, shareIfLoaded); - } - } - } - - // check error code - if (err != KErrNone) - { - ERR_PRINTF2(_L("Load error: %d"), err); - SetError(err); - } - } - -/** - Virtual RunL - Called on completion of an asynchronous command - @see MTPActiveCallback - @param aActive Active Object that RunL has been called on - @pre N/A - @post N/A - @leave system wide error code -*/ -void CT_DataFbsBitmap::RunL(CActive* aActive, const TInt aIndex) - { - if ( aActive==iActiveCompressInBackground ) - { - RunCompressInBackground(aIndex); - } - else - { - ERR_PRINTF1(_L("Stray signal")); - SetBlockResult(EFail); - } - DecOutstanding(); - } - -/** - Virtual DoCancel - Request to cancel the asynchronous command - @see - MTPActiveCallback - @param aActive Active Object that DoCancel has been called on - @pre - N/A - @post - N/A - @leave system wide error code -*/ -void CT_DataFbsBitmap::DoCancel(CActive* aActive, const TInt aIndex) - { - if ( aActive==iActiveCompressInBackground ) - { - DoCancelCompressInBackground(aIndex); - } - else - { - ERR_PRINTF1(_L("Stray signal")); - SetBlockResult(EFail); - } - DecOutstanding(); - } - -void CT_DataFbsBitmap::RunCompressInBackground(const TInt aIndex) - { - TInt err=iActiveCompressInBackground->iStatus.Int(); - INFO_PRINTF2(_L("RunCompressInBackground %d"), err); - if ( err!=KErrNone ) - { - ERR_PRINTF2(_L("RunL Error %d"), err); - SetAsyncError(aIndex, err); - } - } - -void CT_DataFbsBitmap::DoCancelCompressInBackground(const TInt /*aIndex*/) - { - }