--- /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 <e32std.h> // for Fundamental Types
+#include <e32base.h> // for Fundamental Types
+#include <e32math.h> //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----