diff -r 000000000000 -r 951a5db380a0 videoeditorengine/vedengine/GenManip/inc/DCColorManagement.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoeditorengine/vedengine/GenManip/inc/DCColorManagement.h Fri Jan 29 14:08:33 2010 +0200 @@ -0,0 +1,113 @@ +/* +* 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---- +//************************************************************************* +//DCColorManagement.h +// +//Version 1.00 +// +//Contains: +// CDCCDM +// Simple color management approach consisting +// of 3xLUT + 3x3 Matrix + 3xLUT for compensating +// display specific features. +// +//History: +// 19.08.2003 version 1.00 created using existing IMAAMI algorithms +//************************************************************************* + + +#ifndef __DCColorManagement_H +#define __DCColorManagement_H + +#include // for Fundamental Types +#include // for Fundamental Types +#include //for the calculation of exponents + +//Class definition +class CDCColorManagement : public CBase +{ + +public: + + //Parameter struct definition + struct DCColorManagementParams + { + //Gamma de-correction (linearization) LUTs + //Pointers to actual data + TInt *GammaR; + TInt *GammaG; + TInt *GammaB; + + //3x3 color space modification matrix + //Pointer to actual data + TInt *Matrix; + + //Tone rendering curves = display compensation LUTs + //Pointers to actual data + TInt *TRCR; + TInt *TRCG; + TInt *TRCB; + }; + + //Gamma de-correction (linearization) LUTs + TInt iGammaR[256]; + TInt iGammaG[256]; + TInt iGammaB[256]; + + //3x3 color space modification matrix + TInt iMatrix[9]; + + //Tone rendering curves = display compensation LUTs + TInt iTRCR[256]; + TInt iTRCG[256]; + TInt iTRCB[256]; + + //Standard class member functions + CDCColorManagement(); + static CDCColorManagement* NewL(); + static CDCColorManagement* NewLC(); + ~CDCColorManagement(); + void ConstructL(); + + //Process original image and store result + void ProcessL(CFbsBitmap* aBPtr); + + //Set processing parameters + void SetParameters(DCColorManagementParams* params); + + //Get current processing parameters + void GetParameters(DCColorManagementParams* params); + + //Limit integer value to byte [0,255] + static inline TUint8 Limit255(TInt i) {return (TUint8)(i<0?0:(i>255?255:i));} + +private: + + // Line Buffer and pointer + HBufC8* iScanLine; + + //Processing parameters + DCColorManagementParams iParams; + +}; + +#endif // ifndef __DCColorManagement_H +//----IMAAMI----