videoeditorengine/vedengine/GenManip/inc/DisplayChain.h
changeset 0 951a5db380a0
--- /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 <e32std.h> // for Fundamental Types
+#include <e32base.h> // for Fundamental Types
+#include <e32math.h> //for the calculation of exponents
+#include <stdio.h>
+
+#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----