void CMyAppView::ConstructL(const TRect& aRect)
{
iAccelerometer = CRDAccelerometer::NewL(*this);
iLeft = iRight = iUp = iDown = false;
}
void CMyAppView::HandleAccelerationL(TInt aX, TInt aY, TInt aZ)
{
TRawEvent keyX;
keyX.Set(TRawEvent::ENone);
if(aX < KThresholdRight - KPadding && aX > KThresholdLeft + KPadding)
{
if(iRight)
keyX.Set(TRawEvent::EKeyUp, EStdKeyRightArrow);
else if(iLeft)
keyX.Set(TRawEvent::EKeyUp, EStdKeyLeftArrow);
iRight = iLeft = false;
}
else
{
if(!iRight && aX > KThresholdRight + KPadding)
{
keyX.Set(TRawEvent::EKeyDown, EStdKeyRightArrow);
iRight = true;
}
else if(!iLeft && aX < KThresholdLeft - KPadding)
{
keyX.Set(TRawEvent::EKeyDown, EStdKeyLeftArrow);
iLeft = true;
}
}
UserSvr::AddEvent(keyX);
TRawEvent keyY;
keyY.Set(TRawEvent::ENone);
if(aY < KThresholdDown - KPadding && aY > KThresholdUp + KPadding)
{
if(iDown)
keyY.Set(TRawEvent::EKeyUp, EStdKeyDownArrow);
else if(iUp)
keyY.Set(TRawEvent::EKeyUp, EStdKeyUpArrow);
iDown = iUp = false;
}
else
{
if(!iDown && aY > KThresholdDown + KPadding)
{
keyY.Set(TRawEvent::EKeyDown, EStdKeyDownArrow);
iDown = true;
}
else if(!iUp && aY < KThresholdUp - KPadding)
{
keyY.Set(TRawEvent::EKeyDown, EStdKeyUpArrow);
iUp = true;
}
}
UserSvr::AddEvent(keyY);
}