diff -r 000000000000 -r 96e5fb8b040d kernel/eka/euser/us_evnt.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kernel/eka/euser/us_evnt.cpp Thu Dec 17 09:24:54 2009 +0200 @@ -0,0 +1,324 @@ +// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "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: +// e32\euser\us_evnt.cpp +// +// + + +#include "us_std.h" + + + +/** +Gets the mouse or digitiser X-Y position. + +@return The position. +*/ +EXPORT_C TPoint TRawEvent::Pos() const + { + + __ASSERT_DEBUG(iType==EPointerMove || + iType==EPointerSwitchOn || + iType==EButton1Down || + iType==EButton1Up || + iType==EButton2Down || + iType==EButton2Up || + iType==EButton3Down || + iType==EButton3Up + ,Panic(ETEventNotMoveType)); + return(TPoint(iU.pos.x,iU.pos.y)); + } + +/** +Gets the 3D pointing device Cartesian coordinates. + +@return The position. +*/ +EXPORT_C TPoint3D TRawEvent::Pos3D() const + { + + __ASSERT_DEBUG(iType==EPointerMove || + iType==EPointer3DTiltAndMove || + iType==EPointerSwitchOn || + iType==EButton1Down || + iType==EButton1Up || + iType==EButton2Down || + iType==EButton2Up || + iType==EButton3Down || + iType==EButton3Up + ,Panic(ETEventNotMoveType)); + TPoint3D p; + p.iX=iU.pos.x; + p.iY=iU.pos.y; + p.iZ=iU.pos3D.z; + return p; + } + +/** Gets the 3D pointing device polar coordinates and rotation. + + @return The polar coordinates and rotation. + */ +EXPORT_C TAngle3D TRawEvent::Tilt() const + { + __ASSERT_DEBUG(iType==EPointer3DTilt || + iType==EPointer3DTiltAndMove + ,Panic(ETEventNotMoveType)); + TAngle3D p; + p.iPhi=iU.pos3D.phi; + p.iTheta=iU.pos3D.theta; + return p; + } + +/** Gets the rotation angle of 3D pointing device. + + @return The rotation angle of the 3D pointing device. + */ +EXPORT_C TInt TRawEvent::Rotation() const + { + __ASSERT_DEBUG(iType==EPointer3DRotation || + iType==EPointer3DTiltAndMove + ,Panic(ETEventNotMoveType)); + return (iU.pos3D.alpha); + } + +/** +Gets the scancode. + +@return The scancode. +*/ +EXPORT_C TInt TRawEvent::ScanCode() const + { + + __ASSERT_DEBUG(iType==EKeyDown || iType==EKeyUp || iType==EKeyRepeat,Panic(ETEventNotKeyType)); + return(iU.key.scanCode); + } + + + + +/** +Gets the repeat count. + +@return The repeat count. +*/ +EXPORT_C TInt TRawEvent::Repeats() const + { + __ASSERT_DEBUG(iType==EKeyRepeat,Panic(ETEventNotKeyRepeatType)); + return(iU.key.repeats); + } + + + + +/** +Gets the modifiers. + +@return The modifiers. + +@panic EUSER 34 If the event does not represent a modifier key being pressed, + i.e. if the event type is not TRawEvent::EUpdateModifiers + +@see TRawEvent::EUpdateModifiers +*/ +EXPORT_C TInt TRawEvent::Modifiers() const + { + + __ASSERT_DEBUG(iType==EUpdateModifiers,Panic(ETEventNotUpdateModifiersType)); + return(iU.modifiers); + } + + + + +/** +Sets the event up as a scancode event. + +@param aType The event type. +@param aScanCode The scancode. +*/ +EXPORT_C void TRawEvent::Set(TType aType,TInt aScanCode) + { + + iType=(TUint8)aType; + iU.key.scanCode=aScanCode; + iU.key.repeats=0; + BTraceContext8(BTrace::ERawEvent, BTrace::ESetEvent ,(TUint32)aType, (TUint32)aScanCode); + iTicks=User::TickCount(); + } + + +/** +Sets the event up as a repeating scancode event. + +@param aType The event type. +@param aScanCode The scancode. +@param aRepeats The repeat count. +*/ +EXPORT_C void TRawEvent::SetRepeat(TType aType,TInt aScanCode,TInt aRepeats) + { + + iType=(TUint8)aType; + iU.key.scanCode=aScanCode; + iU.key.repeats=aRepeats; + BTraceContext12(BTrace::ERawEvent, BTrace::ESetEvent ,(TUint32)aType, (TUint32)aScanCode, (TUint32)aRepeats); + iTicks=User::TickCount(); + } + + +/** +Sets the event up as a mouse/pen event. + +@param aType The event type. +@param aX The X position. +@param aY The Y position. +*/ +EXPORT_C void TRawEvent::Set(TType aType,TInt aX,TInt aY) + { + + iType=(TUint8)aType; + iU.pos.x=aX; + iU.pos.y=aY; + BTraceContext12(BTrace::ERawEvent, BTrace::ESetEvent ,(TUint32)aType, (TUint32)aX,(TUint32)aY); + iTicks=User::TickCount(); + } + + +/** +Sets the event up as a 3D pointer linear move event. + +@param aType The event type. +@param aX The X position. +@param aY The Y position. +@param aZ The Z position (defaults to 0 on 2D detection devices) . +*/ +EXPORT_C void TRawEvent::Set(TType aType,TInt aX,TInt aY,TInt aZ) + { + + iType=(TUint8)aType; + iU.pos.x=aX; + iU.pos.y=aY; + iU.pos3D.z=aZ; + //Form the Trace Data + TUint32 traceData[2]; + traceData[0] =aY; + traceData[1] =aZ; + BTraceContextN(BTrace::ERawEvent, BTrace::ESetEvent ,(TUint32)aType, (TUint32)aX,traceData, sizeof(traceData)); + iTicks=User::TickCount(); + } + + +/** +Sets up an event without specific parameters. + +@param aType The event type. +*/ +EXPORT_C void TRawEvent::Set(TType aType) + { + + iType=(TUint8)aType; + BTraceContext4(BTrace::ERawEvent, BTrace::ESetEvent ,(TUint32)aType); + iTicks=User::TickCount(); + } + +/** +Sets the event up as a 3D pointer linear move and tilt and rotation change event. + +@param aType The event type. +@param aX The X position (or TPhi polar coordinate). +@param aY The Y position (or Theta polar coordinate). +@param aZ The Z position (or rotation). +@param aPhi The Phi polar coordinate. +@param aTheta The Theta polar coordinate. +@param aAlpha The rotation angle. + */ +EXPORT_C void TRawEvent::Set(TType aType,TInt aX,TInt aY,TInt aZ,TInt aPhi,TInt aTheta,TInt aAlpha) + { + + iType=(TUint8)aType; + iU.pos.x=aX; + iU.pos.y=aY; + iU.pos3D.z=aZ; + iU.pos3D.phi=aPhi; + iU.pos3D.theta=aTheta; + iU.pos3D.alpha=aAlpha; + //Form the Trace Data + TUint32 traceData[5]; + traceData[0] =aY; + traceData[1] =aZ; + traceData[2] =aPhi; + traceData[3] =aTheta; + traceData[4] =aAlpha; + BTraceContextN(BTrace::ERawEvent, BTrace::ESetEvent ,(TUint32)aType, (TUint32)aX,traceData, sizeof(traceData)); + iTicks=User::TickCount(); + } + +/** +Sets the event up as 3D pointer tilt change event. + +@param aType The event type. +@param aPhi The Phi coordinate. +@param aTheta The Theta coordinate. +*/ +EXPORT_C void TRawEvent::SetTilt(TType aType,TInt aPhi,TInt aTheta) + { + + iType=(TUint8)aType; + iU.pos3D.phi=aPhi; + iU.pos3D.theta=aTheta; + BTraceContext12(BTrace::ERawEvent, BTrace::ESetTiltEvent,(TUint32)aType, (TUint32)aPhi,(TUint32)aTheta); + iTicks=User::TickCount(); + } + +/** +Sets the event up as 3D pointer rotation event. + +@param aType The event type. +@param aAlpha The rotation angle. +*/ +EXPORT_C void TRawEvent::SetRotation(TType aType,TInt aAlpha) + { + + iType=(TUint8)aType; + iU.pos3D.alpha=aAlpha; + BTraceContext8(BTrace::ERawEvent, BTrace::ESetRotationtEvent,(TUint32)aType, (TUint32)aAlpha); + iTicks=User::TickCount(); + } + + +/** +Sets the event up as a 3D pointer linear move event with pointer number +@param aType The event type. +@param aX The X position. +@param aY The Y position. +@param aZ The Z position . +@param aPointerNumber The pointer number for the event +*/ + +EXPORT_C void TRawEvent::Set (TType aType, TInt aX, TInt aY, TInt aZ, TUint8 aPointerNumber) + { + + iType=(TUint8)aType; + iU.pos3D.x=aX; + iU.pos3D.y=aY; + iU.pos3D.z=aZ; + iPointerNumber=aPointerNumber; + //Form the Trace Data + TUint32 traceData[3]; + traceData[0] =aY; + traceData[1] =aZ; + traceData[2] =aPointerNumber; + BTraceContextN(BTrace::ERawEvent, BTrace::ESetEvent ,(TUint32)aType, (TUint32)aX,traceData, sizeof(traceData)); + iTicks=User::TickCount(); + } +