diff -r 000000000000 -r 951a5db380a0 videoeditorengine/vedengine/GenManip/inc/DisplayChain.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoeditorengine/vedengine/GenManip/inc/DisplayChain.h Fri Jan 29 14:08:33 2010 +0200 @@ -0,0 +1,115 @@ +/* +* Copyright (c) 2010 Ixonos Plc. +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the "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: +* Ixonos Plc +* +* Description: +* +*/ + + +//----IMAAMI---- +//************************************************************************* +//DisplayChain.cpp +// +//Version 1.00 +// +//Contains: +// CDisplayChain +// Image processing class implementing +// display specific image processing: +// - Scaling to display size with pan support +// - IETD - display specific color contrast enhancement +// - Sharpening +// - Display feature compensation by simple color management +// - Dithering +// +//History: +// 30.10.2003 version 1.00 created using existing IMAAMI algorithms +//************************************************************************* + +#ifndef __DisplayChain_H +#define __DisplayChain_H + +#include // for Fundamental Types +#include // for Fundamental Types +#include //for the calculation of exponents +#include + +#include "DCDigitalZoom.h" +#include "DCSharpening.h" +#include "DCIetd.h" +#include "DCDithering.h" +#include "DCColorManagement.h" +#include "DCDefines.h" +#include "DCInit.h" + + +//Class definition +class CDisplayChain : public CBase +{ +public: + + //Standard functions + CDisplayChain(); + static CDisplayChain* NewL(); + static CDisplayChain* NewLC(); + ~CDisplayChain(); + + // Second Phase contructor (may leave) + void ConstructL(); + + //Process original image and store result + void ProcessL(const CFbsBitmap* InBitmap, CFbsBitmap* aTargetBitmap); + + //Processing parameters + struct DisplayChainParams + { + TBool FirstOpening; + + TBool IetdON; //IETD ON/OFF + TBool SharpeningON; //Sharpening ON/OFF + TBool ColorManagementON; //Color Management ON/OFF + TBool DitheringON; //Dithering ON/OFF + TBool DigitalZoomON; //Scaling ON/OFF + + //Parameters for each processing algorithm + //See processing algorithm classes for details. + CDCIetd::DCIetdParameters IETDParameters; + DCSharpening::DCSharpeningParams SharpeningParameters; + CDCColorManagement::DCColorManagementParams ColorManagementParameters; + CDCDigitalZoom::DCDigitalZoomParams DZParameters; + }; + + //Parameter excange + void SetParameters(DisplayChainParams* Parameters); + void GetParameters(DisplayChainParams* Parameters); + + //Limit integer value to byte [0,255] + static inline TUint8 Limit255(TInt i) {return (TUint8)(i<0?0:(i>255?255:i));} + +private: + + + //PArameters + DisplayChainParams Parameters; + + //Processing objects + CDCIetd* IetdPtr; + DCSharpening* SharpeningPtr; + CDCColorManagement* ColorManagementPtr; + CDCDithering* DitheringPtr; + CDCDigitalZoom* DigitalZoomPtr; +}; + +#endif // ifndef __DisplayChain_H +//----IMAAMI----