--- a/htiui/HtiServicePlugins/HtiKeyEventServicePlugin/src/MultiTouchPointerEvent.cpp Fri Sep 03 07:53:25 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,257 +0,0 @@
-/*
-* Copyright (c) 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: Functional implementation of one touch(pointer sequence) event service.
-*
-*/
-
-// INCLUDE FILES
-#include "HtiKeyEventServicePlugin.h"
-#include "MultiTouchPointerEvent.h"
-#include "MultiTouchPointerEventHandler.h"
-
-#include <HtiLogging.h>
-
-
-// CONSTANTS
-_LIT8( KErrorInternalFailure, "Internal pointer command failure" );
-_LIT (KPrintInfoString, "PrintInfo event id=%d time=%d type=%d X=%d Y=%d Z=%d");
-
-// ----------------------------------------------------------------------------
-// CMultiTouchPointerUnit::NewL()
-// ----------------------------------------------------------------------------
-CMultiTouchPointerEvent* CMultiTouchPointerEvent::NewL(TUint8 aTouchNumber,
- CMultiTouchPointerEventHandler* aEventHandler)
- {
- HTI_LOG_FUNC_IN( "CMultiTouchPointerEvent::NewL" );
- CMultiTouchPointerEvent* self = new (ELeave) CMultiTouchPointerEvent(aTouchNumber, aEventHandler);
- CleanupStack::PushL ( self );
- self->ConstructL();
- CleanupStack::Pop();
- HTI_LOG_FUNC_OUT( "CMultiTouchPointerEvent::NewL" );
- return self;
- }
-
-// ----------------------------------------------------------------------------
-// CMultiTouchPointerEvent::CMultiTouchPointerEvent()
-// ----------------------------------------------------------------------------
-CMultiTouchPointerEvent::CMultiTouchPointerEvent(TUint8 aTouchNumber,
- CMultiTouchPointerEventHandler *aEventHandler)
- : CActive(CActive::EPriorityStandard),
- iEventHandler(aEventHandler),
- iTouchNumber(aTouchNumber)
- {
- HTI_LOG_TEXT( "CMultiTouchPointerEvent constructor" );
- }
-
-// ----------------------------------------------------------------------------
-// CMultiTouchPointerEvent::~CMultiTouchPointerEvent()
-// ----------------------------------------------------------------------------
-CMultiTouchPointerEvent::~CMultiTouchPointerEvent()
- {
- HTI_LOG_TEXT( "CMultiTouchPointerEvent destructor" );
- Cancel();
- iTimer.Close();
-
- iTimeArray.ResetAndDestroy();
- iAdvPointerArray.ResetAndDestroy();
- }
-
-// ----------------------------------------------------------------------------
-// CMultiTouchPointerEvent::ConstructL()
-// ----------------------------------------------------------------------------
-void CMultiTouchPointerEvent::ConstructL()
- {
- HTI_LOG_TEXT( "CMultiTouchPointerEvent::ConstructL" );
- iTimeArray.Reset();
-
- User::LeaveIfError( iTimer.CreateLocal() );
- CActiveScheduler::Add( this );
- }
-
-
-// ----------------------------------------------------------------------------
-// CMultiTouchPointerEvent::StartTouch()
-// ----------------------------------------------------------------------------
-void CMultiTouchPointerEvent::StartTouch()
- {
- HTI_LOG_FUNC_IN( "CMultiTouchPointerEvent::StartTouch" );
- TBool bcontinue=ETrue;
- while (iTimeArray.Count()>0 && bcontinue)
- {
- TTimeIntervalMicroSeconds32* time=iTimeArray[0];
- iTimeArray.Remove(0);
- HTI_LOG_FORMAT( "Event time=%d ", time->Int() );
- if (time->Int()==0)
- {
- // execute immediately
- SimulatePointerEvent();
- }
- else
- {
- // wait for specified time
- iTimer.After( iStatus, *time );
- SetActive();
- bcontinue=EFalse;
- }
- delete time;
- }
-
- if (iTimeArray.Count()==0)
- {
- HTI_LOG_FORMAT( "Notify touch %d complete", iTouchNumber );
- iEventHandler->NotifyTouchComplete(iTouchNumber);
- }
- HTI_LOG_FUNC_OUT( "CMultiTouchPointerEvent::StartTouch" );
- }
-
-// ----------------------------------------------------------------------------
-// void CMultiTouchPointerEvent::InsertPointArrayL()
-// ----------------------------------------------------------------------------
-void CMultiTouchPointerEvent::InsertPointArrayL(TInt aX,TInt aY,TInt aZ,TRawEvent::TType aEventType)
- {
-
- TAdvancedPointer* point = new (ELeave) TAdvancedPointer;
- CleanupStack::PushL(point);
- iAdvPointerArray.AppendL(point);
- CleanupStack::Pop();
-
- point->X=aX;
- point->Y=aY;
- point->Z=aZ;
- point->EventType=aEventType;
-
- }
-
-// ----------------------------------------------------------------------------
-// void CMultiTouchPointerEvent::InsertTimeArrayL()
-// ----------------------------------------------------------------------------
-void CMultiTouchPointerEvent::InsertTimeArrayL(TTimeIntervalMicroSeconds32 aDelayTime)
- {
-
- TTimeIntervalMicroSeconds32* time=new (ELeave) TTimeIntervalMicroSeconds32(aDelayTime);
- iTimeArray.AppendL(time);
-
- }
-
-// ----------------------------------------------------------------------------
-// CMultiTouchPointerEvent::InterpolatePointL()
-// ----------------------------------------------------------------------------
-void CMultiTouchPointerEvent::InterpolatePointL(TInt aX1,TInt aY1, TInt aZ1,
- TInt aX2,TInt aY2, TInt aZ2, TTimeIntervalMicroSeconds32 aDragTime, TInt aStepCount)
- {
- HTI_LOG_FUNC_IN( "CMultiTouchPointerEvent::InterpolatePointL" );
- TInt dx = (aX2-aX1)/aStepCount;
- TInt dy = (aY2-aY1)/aStepCount;
-
- TTimeIntervalMicroSeconds32 dt = aDragTime.Int()/aStepCount;
- TInt X,Y,Z;
- for (TInt i=1;i<=aStepCount;i++)
- {
- if (i<aStepCount)
- {
- X=aX1+i*dx;
- Y=aY1+i*dy;
- Z=aZ1;
- }
- else
- {
- X=aX2;
- Y=aY2;
- Z=aZ2;
- }
- AddPointL(dt,X,Y,Z,TRawEvent::EPointerMove);
- }
-
- HTI_LOG_FUNC_OUT( "CMultiTouchPointerEvent::InterpolatePointL" );
- }
-// ----------------------------------------------------------------------------
-// CMultiTouchPointerEvent::RunL()
-// ----------------------------------------------------------------------------
-void CMultiTouchPointerEvent::RunL()
- {
- HTI_LOG_FUNC_IN( "CMultiTouchPointerEvent::RunL" );
- SimulatePointerEvent();
- StartTouch();
- HTI_LOG_FUNC_OUT( "CMultiTouchPointerEvent::RunL" );
- }
-
-// ----------------------------------------------------------------------------
-// CMultiTouchPointerEvent::RunError()
-// ----------------------------------------------------------------------------
-TInt CMultiTouchPointerEvent::RunError( TInt aError )
- {
- HTI_LOG_FORMAT( "CMultiTouchPointerEvent::RunError %d", aError );
-
- return KErrNone;
- }
-
-// ----------------------------------------------------------------------------
-// CMultiTouchPointerEvent::DoCancel()
-// ----------------------------------------------------------------------------
-void CMultiTouchPointerEvent::DoCancel()
- {
- HTI_LOG_FUNC_IN( "CMultiTouchPointerEvent::DoCancel" );
- iTimer.Cancel();
- HTI_LOG_FUNC_OUT( "CMultiTouchPointerEvent::DoCancel" );
- }
-
-void CMultiTouchPointerEvent::PrintInfo()
- {
-#ifdef __ENABLE_LOGGING__
- HTI_LOG_FUNC_IN( "CMultiTouchPointerEvent::PrintInfo" );
-
- HTI_LOG_FORMAT( "PrintInfo touch number=%d ", iTouchNumber );
-
- TInt size=iTimeArray.Count();
- HTI_LOG_FORMAT( "PrintInfo event array=%d ", size );
-
- TBuf<255> buf;
-
- for (TInt i=0;i<size;i++)
- {
- buf.Format(KPrintInfoString,
- i, iTimeArray[i]->Int(),iAdvPointerArray[i]->EventType ,
- iAdvPointerArray[i]->X ,iAdvPointerArray[i]->Y, iAdvPointerArray[i]->Z );
- HTI_LOG_DES(buf);
- }
- HTI_LOG_FUNC_OUT( "CMultiTouchPointerEvent::PrintInfo" );
-#endif
- }
-// ----------------------------------------------------------------------------
-// CMultiTouchPointerEvent::SimulatePointerEvent()
-// Sends the pointer event as a raw event.
-// ----------------------------------------------------------------------------
-void CMultiTouchPointerEvent::SimulatePointerEvent()
- {
- HTI_LOG_FUNC_IN( "CMultiTouchPointerEvent::SimulatePointerEvent" );
-
- if (iAdvPointerArray.Count()>0)
- {
- TAdvancedPointer* pointer = iAdvPointerArray[0];
- iAdvPointerArray.Remove(0);
-
- iEventHandler->SimulateEvent(iTouchNumber, pointer->X, pointer->Y, pointer->Z,pointer->EventType);
- delete pointer;
- }
-
- HTI_LOG_FUNC_OUT( "CMultiTouchPointerEvent::SimulatePointerEvent" );
-
- }
-void CMultiTouchPointerEvent::AddPointL(TTimeIntervalMicroSeconds32 aTime,
- TInt aX, TInt aY, TInt aZ, TRawEvent::TType aEventType)
- {
- InsertPointArrayL( aX, aY, aZ,aEventType);
- InsertTimeArrayL(aTime);
- }
-// End of file