perfsrv/piprofiler/plugins/BUPplugin/inc/BupPlugin.h
author hgs
Tue, 26 Oct 2010 16:20:32 +0300
changeset 62 1c2bb2fc7c87
parent 51 98307c651589
permissions -rw-r--r--
201043
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
51
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
#ifndef PIPROFILER_BUPECOM_SAMPLER_H
hgs
parents:
diff changeset
    20
#define PIPROFILER_BUPECOM_SAMPLER_H
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#include <w32std.h>
hgs
parents:
diff changeset
    23
#include <w32std.h>			// RWsSession
hgs
parents:
diff changeset
    24
#include <w32adll.h>		// RAnim DLL
hgs
parents:
diff changeset
    25
#include <e32std.h>
hgs
parents:
diff changeset
    26
#include <e32property.h>	// RProperty
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
#include <piprofiler/ProfilerTraces.h>
hgs
parents:
diff changeset
    29
#include <piprofiler/ProfilerConfig.h>
hgs
parents:
diff changeset
    30
#include <piprofiler/ProfilerVersion.h>
hgs
parents:
diff changeset
    31
#include <piprofiler/SamplerPluginInterface.h>
hgs
parents:
diff changeset
    32
#include <piprofiler/ProfilerGenericClassesUsr.h>
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
#include <data_caging_path_literals.hrh> // for KDC_SHARED_LIB_DIR
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
// Button press&touch event Anim DLL interface
hgs
parents:
diff changeset
    37
#include "TouchEventClientDll.h"
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
// caption definitions
hgs
parents:
diff changeset
    40
_LIT8(KBUPShortName, "bup");
hgs
parents:
diff changeset
    41
_LIT8(KBUPLongName, "Button and touch event capture");
hgs
parents:
diff changeset
    42
_LIT8(KBUPDescription, "Button and touch event sampler\nTracing button and touch screen events\nHW dep: N/A\nSW dep: S60 3.0\n");
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
const TUid KProfilerKeyEventPropertyCat={0x2001E5AD};
hgs
parents:
diff changeset
    45
enum TProfilerKeyEventPropertyKeys
hgs
parents:
diff changeset
    46
	{
hgs
parents:
diff changeset
    47
	EProfilerKeyEventPropertySample = 7
hgs
parents:
diff changeset
    48
	};
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
const TUid KGppPropertyCat={0x20201F70};
hgs
parents:
diff changeset
    51
enum TGppPropertyKeys
hgs
parents:
diff changeset
    52
	{
hgs
parents:
diff changeset
    53
	EGppPropertySyncSampleNumber
hgs
parents:
diff changeset
    54
	};
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
static _LIT_SECURITY_POLICY_PASS(KAllowAllPolicy);
hgs
parents:
diff changeset
    58
static _LIT_SECURITY_POLICY_C1(KCapabilityNone, ECapability_None);
hgs
parents:
diff changeset
    59
hgs
parents:
diff changeset
    60
_LIT(KDllName, "PIProfilerTouchEventAnim.DLL");	// animation server dll	on user disk
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
/*
hgs
parents:
diff changeset
    63
 *	
hgs
parents:
diff changeset
    64
 *	BUP sampler definition
hgs
parents:
diff changeset
    65
 *	
hgs
parents:
diff changeset
    66
 */
hgs
parents:
diff changeset
    67
class CProfilerButtonListener;
hgs
parents:
diff changeset
    68
class CSamplerPluginInterface;
hgs
parents:
diff changeset
    69
hgs
parents:
diff changeset
    70
class CBupPlugin : public CSamplerPluginInterface
62
hgs
parents: 51
diff changeset
    71
    {
51
hgs
parents:
diff changeset
    72
public:	
hgs
parents:
diff changeset
    73
	static CBupPlugin* NewL(const TUid aImplementationUid, TAny* aInitParams);
hgs
parents:
diff changeset
    74
			~CBupPlugin();
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
	TInt	ResetAndActivateL(CProfilerSampleStream& aStream);
hgs
parents:
diff changeset
    77
	TInt	StopSampling();
hgs
parents:
diff changeset
    78
    TBool   Enabled() { return iEnabled; }
hgs
parents:
diff changeset
    79
hgs
parents:
diff changeset
    80
	TInt	CreateFirstSample();
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
	// no sub samplers, from CSamplerPluginInterface
hgs
parents:
diff changeset
    83
	TInt 	SubId(TUid /*aId*/) const {return KErrNotFound;}
hgs
parents:
diff changeset
    84
    TInt    GetSamplerType();
hgs
parents:
diff changeset
    85
	
hgs
parents:
diff changeset
    86
	void    GetAttributesL(CArrayFixFlat<TSamplerAttributes>* aAttributes);
hgs
parents:
diff changeset
    87
    TInt    SetAttributesL(TSamplerAttributes& aAttributes);
hgs
parents:
diff changeset
    88
    void    InitiateSamplerAttributesL();
hgs
parents:
diff changeset
    89
	
hgs
parents:
diff changeset
    90
    TInt    ConvertRawSettingsToAttributes(CDesC8ArrayFlat* aSingleSettingArray);
hgs
parents:
diff changeset
    91
    
hgs
parents:
diff changeset
    92
    TInt    DoSetSamplerSettings(CDesC8ArrayFlat* aAllSettings, TDesC8& aSamplerName, TInt aIndex);
hgs
parents:
diff changeset
    93
    void    SaveSettingToAttributes(const TDesC8& aSetting, TInt aIndex);
hgs
parents:
diff changeset
    94
    
hgs
parents:
diff changeset
    95
	TUid  Id(TInt aSubId) const;
hgs
parents:
diff changeset
    96
hgs
parents:
diff changeset
    97
	void FillThisStreamBuffer(TBapBuf* nextFree,TRequestStatus& aStatus); 
hgs
parents:
diff changeset
    98
	
hgs
parents:
diff changeset
    99
private:
hgs
parents:
diff changeset
   100
			CBupPlugin();
hgs
parents:
diff changeset
   101
	void 	ConstructL();
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
private:
hgs
parents:
diff changeset
   104
	TUint8					iVersion[20];
hgs
parents:
diff changeset
   105
	TPtr8					iVersionDescriptor;
hgs
parents:
diff changeset
   106
	
hgs
parents:
diff changeset
   107
	TInt 					iSamplerType;
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
	CProfilerButtonListener* 	iButtonListener;
hgs
parents:
diff changeset
   110
    CArrayFixFlat<TSamplerAttributes>* iSamplerAttributes;
hgs
parents:
diff changeset
   111
public:
hgs
parents:
diff changeset
   112
	TUint32* 				iSampleTime;
62
hgs
parents: 51
diff changeset
   113
    };
51
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
/*
hgs
parents:
diff changeset
   116
*
hgs
parents:
diff changeset
   117
*  Base class for all windows
hgs
parents:
diff changeset
   118
*
hgs
parents:
diff changeset
   119
*/
hgs
parents:
diff changeset
   120
class CWsClient : public CActive
hgs
parents:
diff changeset
   121
	{
hgs
parents:
diff changeset
   122
	protected:
hgs
parents:
diff changeset
   123
		//construct
hgs
parents:
diff changeset
   124
		CWsClient();
hgs
parents:
diff changeset
   125
		CWsScreenDevice* iScreen;
hgs
parents:
diff changeset
   126
		RWsSession iWs;
hgs
parents:
diff changeset
   127
	public:
62
hgs
parents: 51
diff changeset
   128
		void ConstructL(CBupPlugin* aSampler);
51
hgs
parents:
diff changeset
   129
		// destruct
hgs
parents:
diff changeset
   130
		~CWsClient();
hgs
parents:
diff changeset
   131
		// main window
hgs
parents:
diff changeset
   132
		virtual void ConstructMainWindowL();
hgs
parents:
diff changeset
   133
		void Exit();
hgs
parents:
diff changeset
   134
		// active object protocol
hgs
parents:
diff changeset
   135
		void IssueRequest(); // request an event
hgs
parents:
diff changeset
   136
		void DoCancel(); // cancel the request
hgs
parents:
diff changeset
   137
		virtual void RunL() = 0; // handle completed request
hgs
parents:
diff changeset
   138
		virtual void HandleKeyEventL (TKeyEvent& aKeyEvent) = 0;
62
hgs
parents: 51
diff changeset
   139
		virtual void HandleEvent(TInt c) = 0;
51
hgs
parents:
diff changeset
   140
		RWindowGroup Group() {return iGroup;};
62
hgs
parents: 51
diff changeset
   141
		CBupPlugin* GetSampler();
51
hgs
parents:
diff changeset
   142
    private:
62
hgs
parents: 51
diff changeset
   143
		RWindowGroup                    iGroup;
hgs
parents: 51
diff changeset
   144
		CWindowGc*                      iGc;
hgs
parents: 51
diff changeset
   145
		friend class                    CWindow; // needs to get at session
hgs
parents: 51
diff changeset
   146
		RProperty                       iProperty;
hgs
parents: 51
diff changeset
   147
	    CBupPlugin*                     iSampler;
51
hgs
parents:
diff changeset
   148
	};
hgs
parents:
diff changeset
   149
hgs
parents:
diff changeset
   150
/*
hgs
parents:
diff changeset
   151
*
hgs
parents:
diff changeset
   152
*  CWindow declaration
hgs
parents:
diff changeset
   153
*
hgs
parents:
diff changeset
   154
*/
hgs
parents:
diff changeset
   155
class CWindow : public CBase
hgs
parents:
diff changeset
   156
	{
62
hgs
parents: 51
diff changeset
   157
protected:
hgs
parents: 51
diff changeset
   158
    RWindow iWindow; 	// window server window
hgs
parents: 51
diff changeset
   159
    TRect iRect; 		// rectangle re owning window
hgs
parents: 51
diff changeset
   160
public:
hgs
parents: 51
diff changeset
   161
    CWindow(CWsClient* aClient);
hgs
parents: 51
diff changeset
   162
    void ConstructL (const TRect& aRect, CWindow* aParent=0);
hgs
parents: 51
diff changeset
   163
    ~CWindow();
hgs
parents: 51
diff changeset
   164
    // access
hgs
parents: 51
diff changeset
   165
    RWindow& Window(); // our own window
hgs
parents: 51
diff changeset
   166
    CWindowGc* SystemGc(); // system graphics context
hgs
parents: 51
diff changeset
   167
    // empty drawing functions
hgs
parents: 51
diff changeset
   168
    virtual void Draw(const TRect& aRect) = 0;
hgs
parents: 51
diff changeset
   169
    virtual void HandlePointerEvent (TPointerEvent& aPointerEvent) = 0;
hgs
parents: 51
diff changeset
   170
    
hgs
parents: 51
diff changeset
   171
    CWsClient* Client() {return iClient;};
hgs
parents: 51
diff changeset
   172
private:
hgs
parents: 51
diff changeset
   173
    CWsClient*      iClient; // client including session and group
51
hgs
parents:
diff changeset
   174
	};
hgs
parents:
diff changeset
   175
62
hgs
parents: 51
diff changeset
   176
class CMainWindow : public CWindow
hgs
parents: 51
diff changeset
   177
    {
hgs
parents: 51
diff changeset
   178
public:
hgs
parents: 51
diff changeset
   179
    CMainWindow (CWsClient* aClient);
hgs
parents: 51
diff changeset
   180
    void Draw (const TRect& aRect);
hgs
parents: 51
diff changeset
   181
    ~CMainWindow ();
hgs
parents: 51
diff changeset
   182
    void HandlePointerEvent (TPointerEvent& aPointerEvent);
hgs
parents: 51
diff changeset
   183
    void ConstructL (const TRect& aRect, CWindow* aParent=0);
hgs
parents: 51
diff changeset
   184
    };
hgs
parents: 51
diff changeset
   185
hgs
parents: 51
diff changeset
   186
class CProfilerButtonListener : public CWsClient 
hgs
parents: 51
diff changeset
   187
    {
hgs
parents: 51
diff changeset
   188
public:
hgs
parents: 51
diff changeset
   189
    CProfilerButtonListener();
hgs
parents: 51
diff changeset
   190
    void    ConstructMainWindowL();
hgs
parents: 51
diff changeset
   191
    ~CProfilerButtonListener();
hgs
parents: 51
diff changeset
   192
    void    RunL();
hgs
parents: 51
diff changeset
   193
    void    DoCancel();
hgs
parents: 51
diff changeset
   194
    void    HandleKeyEventL (TKeyEvent& aKeyEvent);
hgs
parents: 51
diff changeset
   195
    void    HandleEvent(TInt c);
hgs
parents: 51
diff changeset
   196
private:
hgs
parents: 51
diff changeset
   197
    CMainWindow*     iMainWindow;    // main window
hgs
parents: 51
diff changeset
   198
    TInt             iSampleStartTime;
hgs
parents: 51
diff changeset
   199
    TUint8                          iSample[8];
hgs
parents: 51
diff changeset
   200
    RProfilerTouchEventAnim*        iAnim;
hgs
parents: 51
diff changeset
   201
    RAnimDll*                       iAnimDll;    
hgs
parents: 51
diff changeset
   202
    };
51
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
#endif