piprofiler/plugins/BUPplugin/src/TouchEventAnimDll.cpp
author hgs
Thu, 13 May 2010 23:59:27 +0300
changeset 20 a71a3e32a2ae
permissions -rw-r--r--
201019
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
20
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#include <e32base.h>
hgs
parents:
diff changeset
    21
#include <e32cons.h>
hgs
parents:
diff changeset
    22
#include <w32std.h>
hgs
parents:
diff changeset
    23
#include <in_sock.h>
hgs
parents:
diff changeset
    24
#include <txtfrmat.h>
hgs
parents:
diff changeset
    25
#include <e32property.h>
hgs
parents:
diff changeset
    26
#include <piprofiler/ProfilerTraces.h>
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
// user includes
hgs
parents:
diff changeset
    29
#include "TouchEventAnimDll.h"
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
// control commands
hgs
parents:
diff changeset
    32
static const TInt KActivate   = 70002;
hgs
parents:
diff changeset
    33
static const TInt KDeactivate = 70003;
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
// touch events
hgs
parents:
diff changeset
    36
static const TInt KTouchEventDown = 69999;
hgs
parents:
diff changeset
    37
static const TInt KTouchEventUp = 70000;
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
static const TInt KUpEventOffset = 70000;
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
_LIT( KTouchEventServer, "PIProfilerTouchEvent server" );
hgs
parents:
diff changeset
    42
enum TAnimationPanics
hgs
parents:
diff changeset
    43
    {
hgs
parents:
diff changeset
    44
    EProfilerTouchEventServerPanic = 100
hgs
parents:
diff changeset
    45
    };
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
const TUid KProfilerKeyEventPropertyCat={0x2001E5AD};
hgs
parents:
diff changeset
    48
enum TProfilerKeyEventPropertyKeys
hgs
parents:
diff changeset
    49
	{
hgs
parents:
diff changeset
    50
	EProfilerKeyEventPropertySample = 7
hgs
parents:
diff changeset
    51
	};
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
/*
hgs
parents:
diff changeset
    54
*
hgs
parents:
diff changeset
    55
* Implementation of CProfilerTouchEventAnim
hgs
parents:
diff changeset
    56
*
hgs
parents:
diff changeset
    57
*/
hgs
parents:
diff changeset
    58
CProfilerTouchEventAnim::CProfilerTouchEventAnim() : iState(EFalse)
hgs
parents:
diff changeset
    59
    {
hgs
parents:
diff changeset
    60
	LOGTEXT(_L("CProfilerTouchEventAnim::CProfilerTouchEventAnim - entry"));
hgs
parents:
diff changeset
    61
    }
hgs
parents:
diff changeset
    62
hgs
parents:
diff changeset
    63
CProfilerTouchEventAnim::~CProfilerTouchEventAnim()
hgs
parents:
diff changeset
    64
    {
hgs
parents:
diff changeset
    65
	LOGTEXT(_L("CProfilerTouchEventAnim::~CProfilerTouchEventAnim - entry"));
hgs
parents:
diff changeset
    66
	//iFunctions->GetRawEvents( EFalse );	// disable capture
hgs
parents:
diff changeset
    67
	LOGTEXT(_L("CProfilerTouchEventAnim::~CProfilerTouchEventAnim - exit"));
hgs
parents:
diff changeset
    68
    }
hgs
parents:
diff changeset
    69
hgs
parents:
diff changeset
    70
void CProfilerTouchEventAnim::ConstructL(TAny* /*aArgs*/, TBool /*aHasFocus*/)
hgs
parents:
diff changeset
    71
    {
hgs
parents:
diff changeset
    72
	LOGTEXT(_L("CProfilerTouchEventAnim::ConstructL - entry"));
hgs
parents:
diff changeset
    73
    iFunctions->GetRawEvents( ETrue );
hgs
parents:
diff changeset
    74
	LOGTEXT(_L("CProfilerTouchEventAnim::ConstructL - exit"));
hgs
parents:
diff changeset
    75
    }
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
void CProfilerTouchEventAnim::Command(TInt /*aOpcode*/, TAny* /*aArgs*/)
hgs
parents:
diff changeset
    78
    {
hgs
parents:
diff changeset
    79
hgs
parents:
diff changeset
    80
    }
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
TInt CProfilerTouchEventAnim::CommandReplyL(TInt aOpcode, TAny* /*aArgs*/)
hgs
parents:
diff changeset
    83
    {
hgs
parents:
diff changeset
    84
	LOGSTRING2("CProfilerTouchEventAnim::CommandReplyL - entry, aOpcode: %d", aOpcode);
hgs
parents:
diff changeset
    85
	switch(aOpcode)
hgs
parents:
diff changeset
    86
	    {
hgs
parents:
diff changeset
    87
		case KActivate:	// activate
hgs
parents:
diff changeset
    88
			iState = ETrue;
hgs
parents:
diff changeset
    89
			LOGTEXT(_L("CProfilerTouchEventAnim::CommandReplyL - activate"));
hgs
parents:
diff changeset
    90
			break;
hgs
parents:
diff changeset
    91
		case KDeactivate: // deactivate
hgs
parents:
diff changeset
    92
			iState = EFalse;
hgs
parents:
diff changeset
    93
			iFunctions->GetRawEvents( EFalse );	// disable capture
hgs
parents:
diff changeset
    94
			LOGTEXT(_L("CProfilerTouchEventAnim::CommandReplyL - deactivate"));
hgs
parents:
diff changeset
    95
			break;
hgs
parents:
diff changeset
    96
		default:
hgs
parents:
diff changeset
    97
			User::Panic( KTouchEventServer, EProfilerTouchEventServerPanic );
hgs
parents:
diff changeset
    98
			LOGSTRING2("CProfilerTouchEventAnim::CommandReplyL - panic, code %d", EProfilerTouchEventServerPanic);
hgs
parents:
diff changeset
    99
			return EProfilerTouchEventServerPanic;
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
        }
hgs
parents:
diff changeset
   102
	return KErrNone;
hgs
parents:
diff changeset
   103
    }
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
hgs
parents:
diff changeset
   106
TBool CProfilerTouchEventAnim::OfferRawEvent(const TRawEvent& aRawEvent)
hgs
parents:
diff changeset
   107
    {
hgs
parents:
diff changeset
   108
	LOGTEXT(_L("CProfilerTouchEventAnim::OfferRawEvent - entry"));
hgs
parents:
diff changeset
   109
	if(iState == EFalse)
hgs
parents:
diff changeset
   110
		return EFalse; // if not activated yet just pass through
hgs
parents:
diff changeset
   111
	
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
	switch(aRawEvent.Type())
hgs
parents:
diff changeset
   114
	    {
hgs
parents:
diff changeset
   115
        // handle the pointer events here
hgs
parents:
diff changeset
   116
        case TRawEvent::EButton1Down:
hgs
parents:
diff changeset
   117
            {
hgs
parents:
diff changeset
   118
            LOGTEXT(_L("CProfilerTouchEventAnim::OfferRawEvent - pointer down"));
hgs
parents:
diff changeset
   119
            return HandlePointerDown(aRawEvent.Pos());
hgs
parents:
diff changeset
   120
            }
hgs
parents:
diff changeset
   121
        case TRawEvent::EButton1Up:
hgs
parents:
diff changeset
   122
            {
hgs
parents:
diff changeset
   123
            LOGTEXT(_L("CProfilerTouchEventAnim::OfferRawEvent - pointer up"));
hgs
parents:
diff changeset
   124
            return HandlePointerUp(aRawEvent.Pos());
hgs
parents:
diff changeset
   125
            }
hgs
parents:
diff changeset
   126
                
hgs
parents:
diff changeset
   127
            // handle the key events here, replacing the BUP trace functionality
hgs
parents:
diff changeset
   128
        case TRawEvent::EKeyDown:
hgs
parents:
diff changeset
   129
            {
hgs
parents:
diff changeset
   130
            TInt scan = aRawEvent.ScanCode() & 0xFFFF;
hgs
parents:
diff changeset
   131
                    return HandleKeyDown(scan);
hgs
parents:
diff changeset
   132
            }
hgs
parents:
diff changeset
   133
        case TRawEvent::EKeyUp:
hgs
parents:
diff changeset
   134
            {
hgs
parents:
diff changeset
   135
            TInt scan = (aRawEvent.ScanCode() & 0xFFFF)+KUpEventOffset;	// 
hgs
parents:
diff changeset
   136
                    return HandleKeyUp(scan);
hgs
parents:
diff changeset
   137
            }
hgs
parents:
diff changeset
   138
            default:
hgs
parents:
diff changeset
   139
                return EFalse;	// no action
hgs
parents:
diff changeset
   140
        }
hgs
parents:
diff changeset
   141
    }
hgs
parents:
diff changeset
   142
hgs
parents:
diff changeset
   143
TBool CProfilerTouchEventAnim::HandlePointerDown( TPoint /*aPoint*/ )
hgs
parents:
diff changeset
   144
    {
hgs
parents:
diff changeset
   145
	RProperty::Set(KProfilerKeyEventPropertyCat,EProfilerKeyEventPropertySample, KTouchEventDown);
hgs
parents:
diff changeset
   146
	return EFalse;
hgs
parents:
diff changeset
   147
    }
hgs
parents:
diff changeset
   148
hgs
parents:
diff changeset
   149
TBool CProfilerTouchEventAnim::HandlePointerUp( TPoint /*aPoint*/ )
hgs
parents:
diff changeset
   150
    {
hgs
parents:
diff changeset
   151
	RProperty::Set(KProfilerKeyEventPropertyCat,EProfilerKeyEventPropertySample, KTouchEventUp);
hgs
parents:
diff changeset
   152
	return EFalse;
hgs
parents:
diff changeset
   153
    }
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
TBool CProfilerTouchEventAnim::HandleKeyDown( TInt aScanCode )
hgs
parents:
diff changeset
   156
    {
hgs
parents:
diff changeset
   157
	LOGSTRING2("CProfilerTouchEventAnim::HandleKeyDown - scancode = %d", aScanCode);
hgs
parents:
diff changeset
   158
	RProperty::Set(KProfilerKeyEventPropertyCat,EProfilerKeyEventPropertySample, aScanCode);
hgs
parents:
diff changeset
   159
	return EFalse;
hgs
parents:
diff changeset
   160
    }
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
TBool CProfilerTouchEventAnim::HandleKeyUp( TInt aScanCode )
hgs
parents:
diff changeset
   163
    {
hgs
parents:
diff changeset
   164
	LOGSTRING2("CProfilerTouchEventAnim::HandleKeyUp - scancode = %d", aScanCode);
hgs
parents:
diff changeset
   165
	RProperty::Set(KProfilerKeyEventPropertyCat,EProfilerKeyEventPropertySample, aScanCode);
hgs
parents:
diff changeset
   166
	return EFalse;
hgs
parents:
diff changeset
   167
    }
hgs
parents:
diff changeset
   168
hgs
parents:
diff changeset
   169
hgs
parents:
diff changeset
   170
void CProfilerTouchEventAnim::Animate(TDateTime* /*aDateTime*/)
hgs
parents:
diff changeset
   171
    {
hgs
parents:
diff changeset
   172
    }
hgs
parents:
diff changeset
   173
hgs
parents:
diff changeset
   174
void CProfilerTouchEventAnim::Redraw()
hgs
parents:
diff changeset
   175
    {
hgs
parents:
diff changeset
   176
    }
hgs
parents:
diff changeset
   177
hgs
parents:
diff changeset
   178
void CProfilerTouchEventAnim::FocusChanged(TBool /*aState*/)
hgs
parents:
diff changeset
   179
    {
hgs
parents:
diff changeset
   180
    }
hgs
parents:
diff changeset
   181
hgs
parents:
diff changeset
   182
hgs
parents:
diff changeset
   183
/*
hgs
parents:
diff changeset
   184
*
hgs
parents:
diff changeset
   185
* Implementation of CProfilerTouchEventAnimDll
hgs
parents:
diff changeset
   186
*
hgs
parents:
diff changeset
   187
*/
hgs
parents:
diff changeset
   188
CProfilerTouchEventAnimDll::CProfilerTouchEventAnimDll() : CAnimDll()
hgs
parents:
diff changeset
   189
    {
hgs
parents:
diff changeset
   190
    }
hgs
parents:
diff changeset
   191
hgs
parents:
diff changeset
   192
CAnim* CProfilerTouchEventAnimDll::CreateInstanceL(TInt /*aType*/)
hgs
parents:
diff changeset
   193
    {
hgs
parents:
diff changeset
   194
	LOGTEXT(_L("CProfilerTouchEventAnimDll::CreateInstanceL - entry"));
hgs
parents:
diff changeset
   195
	return (new (ELeave) CProfilerTouchEventAnim());
hgs
parents:
diff changeset
   196
    }
hgs
parents:
diff changeset
   197
hgs
parents:
diff changeset
   198
hgs
parents:
diff changeset
   199
// DLL entry
hgs
parents:
diff changeset
   200
EXPORT_C CAnimDll* CreateCAnimDllL()
hgs
parents:
diff changeset
   201
    {
hgs
parents:
diff changeset
   202
	return (new (ELeave) CProfilerTouchEventAnimDll);
hgs
parents:
diff changeset
   203
    }
hgs
parents:
diff changeset
   204
hgs
parents:
diff changeset
   205