fep/frontendprocessor/test/feps/tfep2be.h
changeset 0 eb1f2e154e89
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fep/frontendprocessor/test/feps/tfep2be.h	Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,127 @@
+// Copyright (c) 1997-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:
+//
+
+#if !defined(__TFEP2BE_H__)
+#define __TFEP2BE_H__
+
+#if !defined(__E32STD_H__)
+#include <e32std.h>
+#endif
+
+#if !defined(__E32BASE_H__)
+#include <e32base.h>
+#endif
+
+#if !defined(__W32ADLL_H__)
+#include <w32adll.h>
+#endif
+
+#if !defined(__TFEP2COM_H__)
+#include "tfep2com.h"
+#endif
+
+class TRawEvent;
+class CFbsBitmapDevice;
+class CFbsBitGc;
+
+class CTstHandWritingRecognizer : public CSpriteAnim
+	{
+public:
+	CTstHandWritingRecognizer();
+	~CTstHandWritingRecognizer();
+	void HandleTimeOut();
+private:
+	typedef CArrayFix<TPoint> CPolyLine;
+	enum
+		{
+		EPenWidthForMainBitmap=4,
+		EPenWidthForMaskBitmap=6
+		};
+	enum
+		{
+		EFlagReferenceCountIncremented	=0x00000001,
+		EFlagPointerIsDown				=0x00000002,
+		EFlagUpperCase					=0x00000004
+		};
+	struct SBitmapHandlesWithReferenceCount
+		{
+		STstBitmapHandles iBitmapHandles;
+		TInt iReferenceCount;
+		};
+	class RFlatArrayOfCharacters
+		{
+	public:
+		RFlatArrayOfCharacters(TInt aGranularity);
+		void ConstructL();
+		void Close();
+		void AppendL(TUint aCharacter);
+		TInt Count() const;
+		TPtrC8 DescriptorFromStart(TInt aNumberOfCharacters) const;
+		void RemoveFromStart(TInt aNumberOfCharacters);
+		void Reset();
+	private:
+		const TInt iGranularity;
+		HBufC8* iDescriptor;
+		};
+	class CTimeOutTimer : public CTimer
+		{
+	public:
+		static CTimeOutTimer* NewL(CTstHandWritingRecognizer& aHandWritingRecognizer);
+		virtual ~CTimeOutTimer();
+	private:
+		CTimeOutTimer(CTstHandWritingRecognizer& aHandWritingRecognizer);
+		virtual void RunL();
+	private:
+		CTstHandWritingRecognizer& iHandWritingRecognizer;
+		};
+private:
+	void ConstructLP(TAny* aParameters);
+	TInt CommandReplyLP(TInt aOpcode, TAny* aParameters);
+	TBool OfferRawEventLP(const TRawEvent& aRawEvent);
+	void DoRecognitionL();
+	void MovePendingCharactersToClientBufferL();
+	void CompleteRequestForCharacters(TInt aErrorCode);
+	void ClearBitmap(CFbsBitmapDevice& aBitmap);
+	void DrawLine(CFbsBitmapDevice& aBitmap, TRect& aRectangleDrawnTo, TInt aPenSize, const TPoint& aPoint1, const TPoint& aPoint2);
+	void Plot(CFbsBitmapDevice& aBitmap, TRect& aRectangleDrawnTo, TInt aPenSize, const TPoint& aPoint);
+	// from CSpriteAnim
+	virtual void ConstructL(TAny* aParameters);
+	// from CAnim
+	virtual TInt CommandReplyL(TInt aOpcode, TAny* aParameters);
+	virtual void Command(TInt aOpcode, TAny* aParameters);
+	virtual void Animate(TDateTime* aDateTime);
+	// from MEventHandler (indirectly, via CAnim)
+	virtual TBool OfferRawEvent(const TRawEvent& aRawEvent);
+private:
+	TUint iFlags;
+	RPointerArray<CPolyLine> iArrayOfPolyLines;
+	RFlatArrayOfCharacters iArrayOfCharactersPending;
+	CTimeOutTimer* iTimeOutTimer;
+	RMessagePtr2 iMessage_RequestForNotificationOfStartOfTransaction;
+	RMessagePtr2 iMessage_RequestForCharacters;
+	TInt iMaximumLengthOfClientSideCharacterBuffer; // effectively the MaxLength of the descriptor in the client-side address-space
+	CFbsBitmapDevice* iMainBitmap;
+	CFbsBitmapDevice* iMaskBitmap;
+	CFbsBitGc* iGraphicsContext;
+	};
+
+class CTstDll : public CAnimDll
+	{
+public:
+	CAnim* CreateInstanceL(TInt aType);
+	};
+
+#endif
+