utilityapps/loadgen/ui/hb/src/engine.cpp
author hgs
Mon, 18 Oct 2010 16:30:05 +0300
changeset 55 2d9cac8919d3
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
55
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 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
// INCLUDE FILES
hgs
parents:
diff changeset
    20
#include "engine.h"
hgs
parents:
diff changeset
    21
#include "enginewrapper.h"
hgs
parents:
diff changeset
    22
#include "settingsview.h"
hgs
parents:
diff changeset
    23
#include "loadgen_utils.h"
hgs
parents:
diff changeset
    24
#include "loadgen_cpuload.h"
hgs
parents:
diff changeset
    25
#include "loadgen_memoryeat.h"
hgs
parents:
diff changeset
    26
#include "loadgen_phonecall.h"
hgs
parents:
diff changeset
    27
#include "loadgen_netconn.h"
hgs
parents:
diff changeset
    28
#include "loadgen_keypress.h"
hgs
parents:
diff changeset
    29
#include "loadgen_pointerevent.h"
hgs
parents:
diff changeset
    30
#include "loadgen_messages.h"
hgs
parents:
diff changeset
    31
#include "loadgen_applications.h"
hgs
parents:
diff changeset
    32
#include "loadgen_photocapture.h"
hgs
parents:
diff changeset
    33
#include "loadgen_bluetooth.h"
hgs
parents:
diff changeset
    34
#include "loadgen_traces.h"
hgs
parents:
diff changeset
    35
#include "loadgen_loadattributes.h"
hgs
parents:
diff changeset
    36
#include "loadgen.hrh"
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
//#include "loadgen_editors.h"
hgs
parents:
diff changeset
    39
//#include "loadgen_app.h"
hgs
parents:
diff changeset
    40
//#include "loadgen_settingsviewdlg.h"
hgs
parents:
diff changeset
    41
//#include "loadgen_maincontainer.h"
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
//#include <loadgen.rsg>
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
#include <coeutils.h>
hgs
parents:
diff changeset
    46
#include <bautils.h>
hgs
parents:
diff changeset
    47
#include <eikenv.h>
hgs
parents:
diff changeset
    48
//#include <AknQueryDialog.h>
hgs
parents:
diff changeset
    49
#include <e32math.h> 
hgs
parents:
diff changeset
    50
#include <u32hal.h>
hgs
parents:
diff changeset
    51
#include <hal.h> 
hgs
parents:
diff changeset
    52
#include <hal_data.h>
hgs
parents:
diff changeset
    53
hgs
parents:
diff changeset
    54
#include <ecam.h>
hgs
parents:
diff changeset
    55
//#include <aknnotewrappers.h>
hgs
parents:
diff changeset
    56
#include <featdiscovery.h>
hgs
parents:
diff changeset
    57
hgs
parents:
diff changeset
    58
const TInt KZeroIndex = 0;
hgs
parents:
diff changeset
    59
hgs
parents:
diff changeset
    60
// ===================================== MEMBER FUNCTIONS =====================================
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
CEngine* CEngine::NewL(EngineWrapper *aEngineWrapper)
hgs
parents:
diff changeset
    63
    {
hgs
parents:
diff changeset
    64
    CEngine* self = new(ELeave) CEngine;
hgs
parents:
diff changeset
    65
    CleanupStack::PushL(self);
hgs
parents:
diff changeset
    66
    self->ConstructL(aEngineWrapper);
hgs
parents:
diff changeset
    67
    CleanupStack::Pop();
hgs
parents:
diff changeset
    68
    return self;
hgs
parents:
diff changeset
    69
    }
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    72
hgs
parents:
diff changeset
    73
CEngine::CEngine() : CActive( EPriorityStandard ),
hgs
parents:
diff changeset
    74
		iAsyncRunLoadOperation( CActive::EPriorityStandard )
hgs
parents:
diff changeset
    75
    {
hgs
parents:
diff changeset
    76
	TCallBack asyncRunSuspRes( AsyncRunLoadOperation, this );
hgs
parents:
diff changeset
    77
	iAsyncRunLoadOperation.Set(asyncRunSuspRes);
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
void CEngine::ConstructL(EngineWrapper *aEngineWrapper)
hgs
parents:
diff changeset
    83
    {
hgs
parents:
diff changeset
    84
	iEngineWrapper = aEngineWrapper;
hgs
parents:
diff changeset
    85
hgs
parents:
diff changeset
    86
    iReferenceNumber = 0;
hgs
parents:
diff changeset
    87
	iCurrentItemIndex = 0;
hgs
parents:
diff changeset
    88
	iEditExistingLoad = EFalse;
hgs
parents:
diff changeset
    89
    
hgs
parents:
diff changeset
    90
    iEnv = CEikonEnv::Static();
hgs
parents:
diff changeset
    91
    User::LeaveIfError(iLs.Connect());
hgs
parents:
diff changeset
    92
    
hgs
parents:
diff changeset
    93
    iLoadItemList = new(ELeave) CLoadItemList(64);
hgs
parents:
diff changeset
    94
hgs
parents:
diff changeset
    95
    User::LeaveIfError(iTimer.CreateLocal());
hgs
parents:
diff changeset
    96
    CActiveScheduler::Add(this);
hgs
parents:
diff changeset
    97
  
hgs
parents:
diff changeset
    98
  }
hgs
parents:
diff changeset
    99
hgs
parents:
diff changeset
   100
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   101
TInt CEngine::AsyncRunLoadOperation( TAny* aObject )
hgs
parents:
diff changeset
   102
	{
hgs
parents:
diff changeset
   103
	TRAPD( err, static_cast<CEngine*>( aObject )->AsyncRunLoadOperationL() );
hgs
parents:
diff changeset
   104
	return err;
hgs
parents:
diff changeset
   105
	}
hgs
parents:
diff changeset
   106
hgs
parents:
diff changeset
   107
void CEngine::AsyncRunLoadOperationL()
hgs
parents:
diff changeset
   108
	{
hgs
parents:
diff changeset
   109
	switch(iLoadOperation)
hgs
parents:
diff changeset
   110
		{
hgs
parents:
diff changeset
   111
		case EEditLoad:
hgs
parents:
diff changeset
   112
			break;
hgs
parents:
diff changeset
   113
		case ESuspResLoad:
hgs
parents:
diff changeset
   114
			SuspendOrResumeSelectedOrHighlightedItemsL();
hgs
parents:
diff changeset
   115
			break;
hgs
parents:
diff changeset
   116
		case EStopLoad:
hgs
parents:
diff changeset
   117
			if(iSelectionIndexes)
hgs
parents:
diff changeset
   118
				{
hgs
parents:
diff changeset
   119
				StopSelectedOrHighlightedItemsL(iSelectionIndexes);
hgs
parents:
diff changeset
   120
				}
hgs
parents:
diff changeset
   121
			break;
hgs
parents:
diff changeset
   122
		}
hgs
parents:
diff changeset
   123
	}
hgs
parents:
diff changeset
   124
void CEngine::AsyncSuspRes()
hgs
parents:
diff changeset
   125
	{
hgs
parents:
diff changeset
   126
	iLoadOperation = ESuspResLoad;
hgs
parents:
diff changeset
   127
	iAsyncRunLoadOperation.CallBack();
hgs
parents:
diff changeset
   128
	}
hgs
parents:
diff changeset
   129
void CEngine::AsyncStopLoad( const CArrayFix<TInt>* aSelectionIndexes )
hgs
parents:
diff changeset
   130
	{
hgs
parents:
diff changeset
   131
	iSelectionIndexes = aSelectionIndexes;
hgs
parents:
diff changeset
   132
	iLoadOperation = EStopLoad;
hgs
parents:
diff changeset
   133
	iAsyncRunLoadOperation.CallBack();
hgs
parents:
diff changeset
   134
	}
hgs
parents:
diff changeset
   135
void CEngine::AsyncEditLoad()
hgs
parents:
diff changeset
   136
	{
hgs
parents:
diff changeset
   137
	iLoadOperation = EEditLoad;
hgs
parents:
diff changeset
   138
	iAsyncRunLoadOperation.CallBack();
hgs
parents:
diff changeset
   139
	}
hgs
parents:
diff changeset
   140
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   141
void CEngine::ActivateEngineL()
hgs
parents:
diff changeset
   142
    {
hgs
parents:
diff changeset
   143
    // load settings
hgs
parents:
diff changeset
   144
    //TRAP_IGNORE(LoadSettingsL());
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
	// RAM
hgs
parents:
diff changeset
   147
	TMemoryInfoV1Buf ramMemory;
hgs
parents:
diff changeset
   148
	UserHal::MemoryInfo(ramMemory);
hgs
parents:
diff changeset
   149
	                
hgs
parents:
diff changeset
   150
	TInt freeRam = ramMemory().iFreeRamInBytes;
hgs
parents:
diff changeset
   151
hgs
parents:
diff changeset
   152
	
hgs
parents:
diff changeset
   153
    // set defaults to attributes
hgs
parents:
diff changeset
   154
    iCpuLoadAttributes.iId = 0;
hgs
parents:
diff changeset
   155
    iCpuLoadAttributes.iPriority = EThreadPriorityTypeNormal;
hgs
parents:
diff changeset
   156
    iCpuLoadAttributes.iMode = ECpuLoadModeYielding;
hgs
parents:
diff changeset
   157
    iCpuLoadAttributes.iType = ECpuLoadTypePeriodic;
hgs
parents:
diff changeset
   158
    iCpuLoadAttributes.iLength = 4000;
hgs
parents:
diff changeset
   159
    iCpuLoadAttributes.iIdle = 2000;
hgs
parents:
diff changeset
   160
    iCpuLoadAttributes.iRandomVariance = 0;
hgs
parents:
diff changeset
   161
    iCpuLoadAttributes.iCpu = KCPUSelection_FreeScheduling; // set CPU as "undefined" (can be >= 0 only in SMP environments)
hgs
parents:
diff changeset
   162
    iCpuLoadAttributes.iCpuCount = UserSvr::HalFunction(EHalGroupKernel, KHalFunction_EKernelHalNumLogicalCpus, 0, 0);
hgs
parents:
diff changeset
   163
    if( iCpuLoadAttributes.iCpuCount < 1 || iCpuLoadAttributes.iCpuCount > KMaxCPUs )
hgs
parents:
diff changeset
   164
        {
hgs
parents:
diff changeset
   165
        // HAL may not support this function, so let's use CPU count 1:
hgs
parents:
diff changeset
   166
        iCpuLoadAttributes.iCpuCount = 1;
hgs
parents:
diff changeset
   167
        }
hgs
parents:
diff changeset
   168
    iMemoryEatAttributes.iId = 0;
hgs
parents:
diff changeset
   169
    iMemoryEatAttributes.iPriority = EThreadPriorityTypeNormal;
hgs
parents:
diff changeset
   170
    iMemoryEatAttributes.iSource = 0;
hgs
parents:
diff changeset
   171
    iMemoryEatAttributes.iType = EMemoryEatTypeMemoryToBeLeft;
hgs
parents:
diff changeset
   172
    iMemoryEatAttributes.iBuffer = 16*1024;
hgs
parents:
diff changeset
   173
    iMemoryEatAttributes.iIdle = 0;
hgs
parents:
diff changeset
   174
    iMemoryEatAttributes.iAmount = freeRam;//0;
hgs
parents:
diff changeset
   175
    iMemoryEatAttributes.iRandomMin = 1000000;
hgs
parents:
diff changeset
   176
    iMemoryEatAttributes.iRandomMax = 1500000;
hgs
parents:
diff changeset
   177
    iMemoryEatAttributes.iAmountDes.Copy(KNullDesC);
hgs
parents:
diff changeset
   178
    iMemoryEatAttributes.iRandomMinDes.Copy(KNullDesC);
hgs
parents:
diff changeset
   179
    iMemoryEatAttributes.iRandomMaxDes.Copy(KNullDesC);
hgs
parents:
diff changeset
   180
    iMemoryEatAttributes.iRandomVariance = 0;
hgs
parents:
diff changeset
   181
hgs
parents:
diff changeset
   182
    iPhoneCallAttributes.iId = 0;
hgs
parents:
diff changeset
   183
    iPhoneCallAttributes.iPriority = EThreadPriorityTypeNormal;
hgs
parents:
diff changeset
   184
    iPhoneCallAttributes.iDestination.Copy(_L("+358"));
hgs
parents:
diff changeset
   185
    iPhoneCallAttributes.iLength = 60000;
hgs
parents:
diff changeset
   186
    iPhoneCallAttributes.iIdle = 10000;
hgs
parents:
diff changeset
   187
    iPhoneCallAttributes.iRandomVariance = 0;
hgs
parents:
diff changeset
   188
hgs
parents:
diff changeset
   189
    iNetConnAttributes.iId = 0;
hgs
parents:
diff changeset
   190
    iNetConnAttributes.iPriority = EThreadPriorityTypeNormal;
hgs
parents:
diff changeset
   191
    iNetConnAttributes.iDestination.Copy(_L("http://www.nokia.com"));
hgs
parents:
diff changeset
   192
    iNetConnAttributes.iIdle = 10000;
hgs
parents:
diff changeset
   193
    iNetConnAttributes.iRandomVariance = 0;
hgs
parents:
diff changeset
   194
hgs
parents:
diff changeset
   195
    iKeyPressAttributes.iId = 0;
hgs
parents:
diff changeset
   196
    iKeyPressAttributes.iPriority = EThreadPriorityTypeNormal;
hgs
parents:
diff changeset
   197
    iKeyPressAttributes.iHeartBeat = 100;
hgs
parents:
diff changeset
   198
    iKeyPressAttributes.iRandomVariance = 0;
hgs
parents:
diff changeset
   199
    
hgs
parents:
diff changeset
   200
    iPointerEventAttributes.iId = 0;
hgs
parents:
diff changeset
   201
    iPointerEventAttributes.iPriority = EThreadPriorityTypeNormal;
hgs
parents:
diff changeset
   202
    iPointerEventAttributes.iHeartBeat = 1000;
hgs
parents:
diff changeset
   203
    iPointerEventAttributes.iRandomVariance = 0;
hgs
parents:
diff changeset
   204
hgs
parents:
diff changeset
   205
    iMessageAttributes.iId = 0;
hgs
parents:
diff changeset
   206
    iMessageAttributes.iPriority = EThreadPriorityTypeNormal;
hgs
parents:
diff changeset
   207
    iMessageAttributes.iMessageType = EMessageTypeSMS;
hgs
parents:
diff changeset
   208
    iMessageAttributes.iDestination.Copy(_L("+358"));
hgs
parents:
diff changeset
   209
    iMessageAttributes.iAmount = 5;
hgs
parents:
diff changeset
   210
    iMessageAttributes.iLength = 160;
hgs
parents:
diff changeset
   211
    iMessageAttributes.iIdle = 15000;
hgs
parents:
diff changeset
   212
    iMessageAttributes.iRandomVariance = 0;
hgs
parents:
diff changeset
   213
    
hgs
parents:
diff changeset
   214
    iApplicationsAttributes.iId = 0;
hgs
parents:
diff changeset
   215
    iApplicationsAttributes.iLaunchingInterval = 2000;
hgs
parents:
diff changeset
   216
    iApplicationsAttributes.iPriority = EThreadPriorityTypeNormal;
hgs
parents:
diff changeset
   217
    iApplicationsAttributes.iKeyPressType = EApplicationsKeyPressTypeNone;
hgs
parents:
diff changeset
   218
    iApplicationsAttributes.iMaxOpen = 20;
hgs
parents:
diff changeset
   219
    iApplicationsAttributes.iHeartBeat = 50;
hgs
parents:
diff changeset
   220
    iApplicationsAttributes.iRandomVariance = 0;
hgs
parents:
diff changeset
   221
    
hgs
parents:
diff changeset
   222
    iPhotoCaptureAttributes.iId = 0;
hgs
parents:
diff changeset
   223
    iPhotoCaptureAttributes.iPriority = EThreadPriorityTypeNormal;
hgs
parents:
diff changeset
   224
    iPhotoCaptureAttributes.iIdle = 10000;
hgs
parents:
diff changeset
   225
    iPhotoCaptureAttributes.iRandomVariance = 0;        
hgs
parents:
diff changeset
   226
    iPhotoCaptureAttributes.iCameraCount = CCamera::CamerasAvailable();
hgs
parents:
diff changeset
   227
    if(iPhotoCaptureAttributes.iCameraCount > 0)
hgs
parents:
diff changeset
   228
        {
hgs
parents:
diff changeset
   229
        iPhotoCaptureAttributes.iCamera = 0; // Main camera
hgs
parents:
diff changeset
   230
        }
hgs
parents:
diff changeset
   231
    else
hgs
parents:
diff changeset
   232
        {
hgs
parents:
diff changeset
   233
        iPhotoCaptureAttributes.iCamera = -1;
hgs
parents:
diff changeset
   234
        }
hgs
parents:
diff changeset
   235
    
hgs
parents:
diff changeset
   236
    iBluetoothAttributes.iId = 0;
hgs
parents:
diff changeset
   237
    iBluetoothAttributes.iPriority = EThreadPriorityTypeNormal;
hgs
parents:
diff changeset
   238
    iBluetoothAttributes.iIdle = 10000;
hgs
parents:
diff changeset
   239
    iBluetoothAttributes.iRandomVariance = 0;
hgs
parents:
diff changeset
   240
    iBluetoothAttributes.iBluetoothSupported = CFeatureDiscovery::IsFeatureSupportedL(KFeatureIdBt);
hgs
parents:
diff changeset
   241
    }
hgs
parents:
diff changeset
   242
hgs
parents:
diff changeset
   243
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   244
hgs
parents:
diff changeset
   245
void CEngine::DeActivateEngineL()
hgs
parents:
diff changeset
   246
    {
hgs
parents:
diff changeset
   247
    Cancel();
hgs
parents:
diff changeset
   248
    
hgs
parents:
diff changeset
   249
    // for a faster exit, send the application to background
hgs
parents:
diff changeset
   250
    TApaTask selfTask(iEnv->WsSession());
hgs
parents:
diff changeset
   251
    selfTask.SetWgId(iEnv->RootWin().Identifier());
hgs
parents:
diff changeset
   252
    selfTask.SendToBackground();
hgs
parents:
diff changeset
   253
    }
hgs
parents:
diff changeset
   254
    
hgs
parents:
diff changeset
   255
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   256
hgs
parents:
diff changeset
   257
CEngine::~CEngine()
hgs
parents:
diff changeset
   258
    {
hgs
parents:
diff changeset
   259
    if (iLoadItemList)
hgs
parents:
diff changeset
   260
        {
hgs
parents:
diff changeset
   261
        DeleteAllLoadItems();
hgs
parents:
diff changeset
   262
        delete iLoadItemList;
hgs
parents:
diff changeset
   263
        }
hgs
parents:
diff changeset
   264
    if ( iApplicationsAttributes.iAppsArray )
hgs
parents:
diff changeset
   265
        {
hgs
parents:
diff changeset
   266
        delete iApplicationsAttributes.iAppsArray;
hgs
parents:
diff changeset
   267
        }
hgs
parents:
diff changeset
   268
    iTimer.Close();
hgs
parents:
diff changeset
   269
    iLs.Close();
hgs
parents:
diff changeset
   270
    }
hgs
parents:
diff changeset
   271
hgs
parents:
diff changeset
   272
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   273
hgs
parents:
diff changeset
   274
void CEngine::DoCancel()
hgs
parents:
diff changeset
   275
    {
hgs
parents:
diff changeset
   276
    iTimer.Cancel();
hgs
parents:
diff changeset
   277
    }
hgs
parents:
diff changeset
   278
hgs
parents:
diff changeset
   279
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   280
hgs
parents:
diff changeset
   281
void CEngine::RunL()
hgs
parents:
diff changeset
   282
    {
hgs
parents:
diff changeset
   283
    // continue    
hgs
parents:
diff changeset
   284
    //iTimer.After(iStatus, 400000);
hgs
parents:
diff changeset
   285
    //SetActive();
hgs
parents:
diff changeset
   286
    }
hgs
parents:
diff changeset
   287
    
hgs
parents:
diff changeset
   288
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   289
hgs
parents:
diff changeset
   290
void CEngine::StartNewLoadL(TInt aCommand)
hgs
parents:
diff changeset
   291
    {
hgs
parents:
diff changeset
   292
    // show new load query
hgs
parents:
diff changeset
   293
	//CLoadGenLoadTypeEditorBase* dlg = NULL;
hgs
parents:
diff changeset
   294
	
hgs
parents:
diff changeset
   295
	if(aCommand == ELoadGenCmdNewLoadPhotoCaptures && 
hgs
parents:
diff changeset
   296
	   iPhotoCaptureAttributes.iCameraCount == 0)
hgs
parents:
diff changeset
   297
		{
hgs
parents:
diff changeset
   298
		_LIT(message, "Cameras not available");
hgs
parents:
diff changeset
   299
		iEngineWrapper->ShowNote(message);
hgs
parents:
diff changeset
   300
		return;
hgs
parents:
diff changeset
   301
		}
hgs
parents:
diff changeset
   302
	if(aCommand == ELoadGenCmdNewLoadBluetooth &&
hgs
parents:
diff changeset
   303
	   iBluetoothAttributes.iBluetoothSupported == EFalse)
hgs
parents:
diff changeset
   304
		{
hgs
parents:
diff changeset
   305
		_LIT(message, "Bluetooth device not available");
hgs
parents:
diff changeset
   306
		iEngineWrapper->ShowNote(message); 
hgs
parents:
diff changeset
   307
		return;
hgs
parents:
diff changeset
   308
		}
hgs
parents:
diff changeset
   309
	/*
hgs
parents:
diff changeset
   310
    switch ( aCommand )
hgs
parents:
diff changeset
   311
        {
hgs
parents:
diff changeset
   312
        case ELoadGenCmdNewLoadCPULoad:
hgs
parents:
diff changeset
   313
            {
hgs
parents:
diff changeset
   314
            //dlg = CLoadGenCPULoadEditor::NewL(iCpuLoadAttributes);
hgs
parents:
diff changeset
   315
            break;
hgs
parents:
diff changeset
   316
            }
hgs
parents:
diff changeset
   317
        case ELoadGenCmdNewLoadEatMemory:
hgs
parents:
diff changeset
   318
            {
hgs
parents:
diff changeset
   319
            //dlg = CLoadGenMemoryEatEditor::NewL(iMemoryEatAttributes);
hgs
parents:
diff changeset
   320
            break;
hgs
parents:
diff changeset
   321
            }
hgs
parents:
diff changeset
   322
        case ELoadGenCmdNewLoadPhoneCall:
hgs
parents:
diff changeset
   323
            {
hgs
parents:
diff changeset
   324
            //dlg = CLoadGenPhoneCallEditor::NewL(iPhoneCallAttributes);
hgs
parents:
diff changeset
   325
            break;
hgs
parents:
diff changeset
   326
            }
hgs
parents:
diff changeset
   327
        case ELoadGenCmdNewLoadNetConn:
hgs
parents:
diff changeset
   328
            {
hgs
parents:
diff changeset
   329
            //dlg = CLoadGenNetConnEditor::NewL(iNetConnAttributes);
hgs
parents:
diff changeset
   330
            break;
hgs
parents:
diff changeset
   331
            }
hgs
parents:
diff changeset
   332
        case ELoadGenCmdNewLoadKeyPress:
hgs
parents:
diff changeset
   333
            {
hgs
parents:
diff changeset
   334
            //dlg = CLoadGenKeyPressEditor::NewL(iKeyPressAttributes);
hgs
parents:
diff changeset
   335
            break;
hgs
parents:
diff changeset
   336
            }               
hgs
parents:
diff changeset
   337
        case ELoadGenCmdNewLoadMessages:
hgs
parents:
diff changeset
   338
            {
hgs
parents:
diff changeset
   339
            //dlg = CLoadGenMessagesEditor::NewL( iMessageAttributes );
hgs
parents:
diff changeset
   340
            break;
hgs
parents:
diff changeset
   341
            }
hgs
parents:
diff changeset
   342
        case ELoadGenCmdNewLoadApplications:
hgs
parents:
diff changeset
   343
            {
hgs
parents:
diff changeset
   344
            //dlg = CLoadGenApplicationsEditor::NewL( iApplicationsAttributes );
hgs
parents:
diff changeset
   345
            break;
hgs
parents:
diff changeset
   346
            }
hgs
parents:
diff changeset
   347
        case ELoadGenCmdNewLoadPhotoCaptures:
hgs
parents:
diff changeset
   348
            {
hgs
parents:
diff changeset
   349
            if( iPhotoCaptureAttributes.iCameraCount > 0 )
hgs
parents:
diff changeset
   350
                {
hgs
parents:
diff changeset
   351
                //dlg = CLoadGenPhotoCaptureEditor::NewL( iPhotoCaptureAttributes );
hgs
parents:
diff changeset
   352
                }
hgs
parents:
diff changeset
   353
            else
hgs
parents:
diff changeset
   354
                {
hgs
parents:
diff changeset
   355
                _LIT(message, "Cameras not available");
hgs
parents:
diff changeset
   356
				iEngineWrapper->ShowNote(message); 
hgs
parents:
diff changeset
   357
                //CAknErrorNote* errorNote = new(ELeave) CAknErrorNote;
hgs
parents:
diff changeset
   358
                //errorNote->ExecuteLD(message);
hgs
parents:
diff changeset
   359
				return;
hgs
parents:
diff changeset
   360
                }
hgs
parents:
diff changeset
   361
            break;
hgs
parents:
diff changeset
   362
            }
hgs
parents:
diff changeset
   363
        case ELoadGenCmdNewLoadBluetooth:
hgs
parents:
diff changeset
   364
            {
hgs
parents:
diff changeset
   365
            if( iBluetoothAttributes.iBluetoothSupported )
hgs
parents:
diff changeset
   366
                {
hgs
parents:
diff changeset
   367
                //dlg = CLoadGenBluetoothEditor::NewL(iBluetoothAttributes);                
hgs
parents:
diff changeset
   368
                }
hgs
parents:
diff changeset
   369
            else
hgs
parents:
diff changeset
   370
                {
hgs
parents:
diff changeset
   371
                _LIT(message, "Bluetooth device not available");
hgs
parents:
diff changeset
   372
				iEngineWrapper->ShowNote(message); 
hgs
parents:
diff changeset
   373
                //CAknErrorNote* errorNote = new(ELeave) CAknErrorNote;
hgs
parents:
diff changeset
   374
                //errorNote->ExecuteLD(message);
hgs
parents:
diff changeset
   375
                return;
hgs
parents:
diff changeset
   376
                }
hgs
parents:
diff changeset
   377
            break;
hgs
parents:
diff changeset
   378
            }
hgs
parents:
diff changeset
   379
        case ELoadGenCmdNewLoadPointerEvent:
hgs
parents:
diff changeset
   380
            {
hgs
parents:
diff changeset
   381
            //dlg = CLoadGenPointerEventEditor::NewL(iPointerEventAttributes);
hgs
parents:
diff changeset
   382
            break;
hgs
parents:
diff changeset
   383
            } 
hgs
parents:
diff changeset
   384
hgs
parents:
diff changeset
   385
        default:
hgs
parents:
diff changeset
   386
            {
hgs
parents:
diff changeset
   387
            User::Panic(_L("Wrong new load"), 111);
hgs
parents:
diff changeset
   388
            break;
hgs
parents:
diff changeset
   389
            }
hgs
parents:
diff changeset
   390
        }
hgs
parents:
diff changeset
   391
	*/
hgs
parents:
diff changeset
   392
	iEditExistingLoad = EFalse;
hgs
parents:
diff changeset
   393
    iEngineWrapper->OpenLoadSettings(aCommand, EFalse); // = dlg->RunQueryLD();
hgs
parents:
diff changeset
   394
hgs
parents:
diff changeset
   395
    // set back title
hgs
parents:
diff changeset
   396
    
hgs
parents:
diff changeset
   397
	//if (iMainContainer) 
hgs
parents:
diff changeset
   398
    //    iMainContainer->SetDefaultTitlePaneTextL();
hgs
parents:
diff changeset
   399
hgs
parents:
diff changeset
   400
    // start creating new load if dialog accepted
hgs
parents:
diff changeset
   401
    //if (dlgResult)
hgs
parents:
diff changeset
   402
    //    {
hgs
parents:
diff changeset
   403
    //    DoStartNewLoadL(aCommand);
hgs
parents:
diff changeset
   404
    //    }
hgs
parents:
diff changeset
   405
	// DoStartNewLoadL() called from engine wrapper slot function newLoadAdded() after
hgs
parents:
diff changeset
   406
	// load settings closed by user select: ok.
hgs
parents:
diff changeset
   407
    }
hgs
parents:
diff changeset
   408
hgs
parents:
diff changeset
   409
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   410
hgs
parents:
diff changeset
   411
void CEngine::EditLoadL(TInt aIndex)
hgs
parents:
diff changeset
   412
    {
hgs
parents:
diff changeset
   413
	CLoadBase* aItem = iLoadItemList->At(aIndex);
hgs
parents:
diff changeset
   414
	iCurrentItemIndex = aIndex;
hgs
parents:
diff changeset
   415
	iEditExistingLoad = ETrue;
hgs
parents:
diff changeset
   416
    // suspend current
hgs
parents:
diff changeset
   417
	if (aItem->State() == CLoadBase::ELoadStateRunning)
hgs
parents:
diff changeset
   418
		{
hgs
parents:
diff changeset
   419
		iLoadStatusBeforeEdit = CLoadBase::ELoadStateRunning;
hgs
parents:
diff changeset
   420
		aItem->Suspend();
hgs
parents:
diff changeset
   421
		}
hgs
parents:
diff changeset
   422
    
hgs
parents:
diff changeset
   423
    // show new load query
hgs
parents:
diff changeset
   424
hgs
parents:
diff changeset
   425
	/* CLoadGenLoadTypeEditorBase* dlg = NULL;
hgs
parents:
diff changeset
   426
	
hgs
parents:
diff changeset
   427
hgs
parents:
diff changeset
   428
    switch ( aItem->Type() )
hgs
parents:
diff changeset
   429
        {
hgs
parents:
diff changeset
   430
        case ELoadGenCmdNewLoadCPULoad:
hgs
parents:
diff changeset
   431
            {
hgs
parents:
diff changeset
   432
            //dlg = CLoadGenCPULoadEditor::NewL(static_cast<CCPULoad*>(aItem)->Attributes(), ETrue);
hgs
parents:
diff changeset
   433
            break;
hgs
parents:
diff changeset
   434
            }
hgs
parents:
diff changeset
   435
        case ELoadGenCmdNewLoadEatMemory:
hgs
parents:
diff changeset
   436
            {
hgs
parents:
diff changeset
   437
            //dlg = CLoadGenMemoryEatEditor::NewL(static_cast<CMemoryEat*>(aItem)->Attributes(), ETrue);
hgs
parents:
diff changeset
   438
            break;
hgs
parents:
diff changeset
   439
            }
hgs
parents:
diff changeset
   440
        case ELoadGenCmdNewLoadPhoneCall:
hgs
parents:
diff changeset
   441
            {
hgs
parents:
diff changeset
   442
            //dlg = CLoadGenPhoneCallEditor::NewL(static_cast<CPhoneCall*>(aItem)->Attributes(), ETrue);
hgs
parents:
diff changeset
   443
            break;
hgs
parents:
diff changeset
   444
            }
hgs
parents:
diff changeset
   445
        case ELoadGenCmdNewLoadNetConn:
hgs
parents:
diff changeset
   446
            {
hgs
parents:
diff changeset
   447
            //dlg = CLoadGenNetConnEditor::NewL(static_cast<CNetConn*>(aItem)->Attributes(), ETrue);
hgs
parents:
diff changeset
   448
            break;
hgs
parents:
diff changeset
   449
            }
hgs
parents:
diff changeset
   450
        case ELoadGenCmdNewLoadKeyPress:
hgs
parents:
diff changeset
   451
            {
hgs
parents:
diff changeset
   452
            //dlg = CLoadGenKeyPressEditor::NewL(static_cast<CKeyPress*>(aItem)->Attributes(), ETrue);
hgs
parents:
diff changeset
   453
            break;
hgs
parents:
diff changeset
   454
            }       
hgs
parents:
diff changeset
   455
        case ELoadGenCmdNewLoadMessages:
hgs
parents:
diff changeset
   456
            {
hgs
parents:
diff changeset
   457
            //dlg = CLoadGenMessagesEditor::NewL(static_cast<CMessages*>(aItem)->Attributes(), ETrue);
hgs
parents:
diff changeset
   458
            break;
hgs
parents:
diff changeset
   459
            }
hgs
parents:
diff changeset
   460
        case ELoadGenCmdNewLoadApplications:
hgs
parents:
diff changeset
   461
            {
hgs
parents:
diff changeset
   462
            //dlg = CLoadGenApplicationsEditor::NewL( static_cast<CAppLauncher*>(aItem)->Attributes(), ETrue );
hgs
parents:
diff changeset
   463
            break;
hgs
parents:
diff changeset
   464
            }
hgs
parents:
diff changeset
   465
        case ELoadGenCmdNewLoadPhotoCaptures:
hgs
parents:
diff changeset
   466
            {
hgs
parents:
diff changeset
   467
            //dlg = CLoadGenPhotoCaptureEditor::NewL( static_cast<CPhotoCapture*>(aItem)->Attributes(), ETrue );
hgs
parents:
diff changeset
   468
            break;
hgs
parents:
diff changeset
   469
            }
hgs
parents:
diff changeset
   470
        case ELoadGenCmdNewLoadBluetooth:
hgs
parents:
diff changeset
   471
            {
hgs
parents:
diff changeset
   472
            //dlg = CLoadGenBluetoothEditor::NewL( static_cast<CBluetooth*>(aItem)->Attributes(), ETrue );
hgs
parents:
diff changeset
   473
            break;
hgs
parents:
diff changeset
   474
            }
hgs
parents:
diff changeset
   475
        case ELoadGenCmdNewLoadPointerEvent:
hgs
parents:
diff changeset
   476
            {
hgs
parents:
diff changeset
   477
            //dlg = CLoadGenPointerEventEditor::NewL(static_cast<CPointerEvent*>(aItem)->Attributes(), ETrue);
hgs
parents:
diff changeset
   478
            break;
hgs
parents:
diff changeset
   479
            }
hgs
parents:
diff changeset
   480
        default:
hgs
parents:
diff changeset
   481
            {
hgs
parents:
diff changeset
   482
            User::Panic(_L("Wrong edit load"), 114);
hgs
parents:
diff changeset
   483
            break;
hgs
parents:
diff changeset
   484
            }
hgs
parents:
diff changeset
   485
        }
hgs
parents:
diff changeset
   486
		*/
hgs
parents:
diff changeset
   487
	iEngineWrapper->OpenLoadSettings(aItem->Type(), iEditExistingLoad);
hgs
parents:
diff changeset
   488
    // ExistingLoadEditedL method called from engine wrapper when load settings view close signal received.
hgs
parents:
diff changeset
   489
    
hgs
parents:
diff changeset
   490
	//TBool dlgResult = ETrue; //dlg->RunQueryLD();
hgs
parents:
diff changeset
   491
hgs
parents:
diff changeset
   492
    // set back title
hgs
parents:
diff changeset
   493
	// TODO: check this.
hgs
parents:
diff changeset
   494
    //if (iMainContainer)
hgs
parents:
diff changeset
   495
    //    iMainContainer->SetDefaultTitlePaneTextL();
hgs
parents:
diff changeset
   496
    
hgs
parents:
diff changeset
   497
    // change priority of the load item
hgs
parents:
diff changeset
   498
    //aItem->SetPriority();
hgs
parents:
diff changeset
   499
hgs
parents:
diff changeset
   500
    // resume execution the item
hgs
parents:
diff changeset
   501
    //aItem->Resume();
hgs
parents:
diff changeset
   502
    
hgs
parents:
diff changeset
   503
    //if (dlgResult)
hgs
parents:
diff changeset
   504
    //    RefreshViewL(EFalse);
hgs
parents:
diff changeset
   505
    }
hgs
parents:
diff changeset
   506
hgs
parents:
diff changeset
   507
// --------------------------------------------------------------------------------------------    
hgs
parents:
diff changeset
   508
	
hgs
parents:
diff changeset
   509
void CEngine::ExistingLoadEditedL()
hgs
parents:
diff changeset
   510
	{
hgs
parents:
diff changeset
   511
	CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
   512
	// change priority of the load item
hgs
parents:
diff changeset
   513
    aItem->SetPriority();
hgs
parents:
diff changeset
   514
	if (iLoadStatusBeforeEdit == CLoadBase::ELoadStateRunning)
hgs
parents:
diff changeset
   515
		{
hgs
parents:
diff changeset
   516
		// resume execution the item
hgs
parents:
diff changeset
   517
		aItem->Resume();
hgs
parents:
diff changeset
   518
		RefreshViewL(EFalse);
hgs
parents:
diff changeset
   519
		}
hgs
parents:
diff changeset
   520
	// cancel:
hgs
parents:
diff changeset
   521
	
hgs
parents:
diff changeset
   522
	}
hgs
parents:
diff changeset
   523
	
hgs
parents:
diff changeset
   524
// --------------------------------------------------------------------------------------------    
hgs
parents:
diff changeset
   525
	
hgs
parents:
diff changeset
   526
void CEngine::ExistingLoadEditCancelled()
hgs
parents:
diff changeset
   527
	{
hgs
parents:
diff changeset
   528
	if (iLoadStatusBeforeEdit == CLoadBase::ELoadStateRunning)
hgs
parents:
diff changeset
   529
		{
hgs
parents:
diff changeset
   530
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
   531
		// resume execution due to suspend action before edit started:
hgs
parents:
diff changeset
   532
		aItem->Resume();
hgs
parents:
diff changeset
   533
		}	
hgs
parents:
diff changeset
   534
	RefreshViewL(EFalse);
hgs
parents:
diff changeset
   535
	}
hgs
parents:
diff changeset
   536
	
hgs
parents:
diff changeset
   537
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   538
hgs
parents:
diff changeset
   539
void CEngine::DoStartNewLoadL(TInt aCommand)
hgs
parents:
diff changeset
   540
    {
hgs
parents:
diff changeset
   541
    CLoadBase* item = NULL;
hgs
parents:
diff changeset
   542
    
hgs
parents:
diff changeset
   543
    switch ( aCommand )
hgs
parents:
diff changeset
   544
        {
hgs
parents:
diff changeset
   545
        case ELoadGenCmdNewLoadCPULoad:
hgs
parents:
diff changeset
   546
            {
hgs
parents:
diff changeset
   547
            if( iCpuLoadAttributes.iCpu == KCPUSelection_AllCPUs )
hgs
parents:
diff changeset
   548
                {
hgs
parents:
diff changeset
   549
                // Call this function recursively for all CPUs:
hgs
parents:
diff changeset
   550
                for( TUint i = 0; i < iCpuLoadAttributes.iCpuCount; ++i )
hgs
parents:
diff changeset
   551
                    {                    
hgs
parents:
diff changeset
   552
                    iCpuLoadAttributes.iCpu = i;
hgs
parents:
diff changeset
   553
                    DoStartNewLoadL(aCommand);
hgs
parents:
diff changeset
   554
                    }
hgs
parents:
diff changeset
   555
                // And finally set user selection back to "All CPUs"
hgs
parents:
diff changeset
   556
                iCpuLoadAttributes.iCpu = KCPUSelection_AllCPUs;
hgs
parents:
diff changeset
   557
                return;
hgs
parents:
diff changeset
   558
                }
hgs
parents:
diff changeset
   559
            else
hgs
parents:
diff changeset
   560
                {
hgs
parents:
diff changeset
   561
                item = CCPULoad::NewL(iCpuLoadAttributes, iReferenceNumber);
hgs
parents:
diff changeset
   562
                }
hgs
parents:
diff changeset
   563
            break;
hgs
parents:
diff changeset
   564
            }
hgs
parents:
diff changeset
   565
        case ELoadGenCmdNewLoadEatMemory:
hgs
parents:
diff changeset
   566
            {
hgs
parents:
diff changeset
   567
            item = CMemoryEat::NewL(iMemoryEatAttributes, iReferenceNumber);
hgs
parents:
diff changeset
   568
            break;
hgs
parents:
diff changeset
   569
            }
hgs
parents:
diff changeset
   570
        case ELoadGenCmdNewLoadPhoneCall:
hgs
parents:
diff changeset
   571
            {
hgs
parents:
diff changeset
   572
            item = CPhoneCall::NewL(iPhoneCallAttributes, iReferenceNumber);
hgs
parents:
diff changeset
   573
            break;
hgs
parents:
diff changeset
   574
            }
hgs
parents:
diff changeset
   575
        case ELoadGenCmdNewLoadNetConn:
hgs
parents:
diff changeset
   576
            {
hgs
parents:
diff changeset
   577
            item = CNetConn::NewL(iNetConnAttributes, iReferenceNumber);
hgs
parents:
diff changeset
   578
            break;
hgs
parents:
diff changeset
   579
            }
hgs
parents:
diff changeset
   580
            
hgs
parents:
diff changeset
   581
        case ELoadGenCmdNewLoadKeyPress:
hgs
parents:
diff changeset
   582
            {
hgs
parents:
diff changeset
   583
            item = CKeyPress::NewL(iKeyPressAttributes, iReferenceNumber);
hgs
parents:
diff changeset
   584
            break;
hgs
parents:
diff changeset
   585
            }        
hgs
parents:
diff changeset
   586
        case ELoadGenCmdNewLoadMessages:
hgs
parents:
diff changeset
   587
            {
hgs
parents:
diff changeset
   588
            item = CMessages::NewL( iMessageAttributes, iReferenceNumber );
hgs
parents:
diff changeset
   589
            break;
hgs
parents:
diff changeset
   590
            }
hgs
parents:
diff changeset
   591
        case ELoadGenCmdNewLoadApplications:
hgs
parents:
diff changeset
   592
            {
hgs
parents:
diff changeset
   593
            iApplicationsAttributes.iAppsArray = ListOfAllAppsL();
hgs
parents:
diff changeset
   594
            item = CAppLauncher::NewL( iApplicationsAttributes, iReferenceNumber );            
hgs
parents:
diff changeset
   595
            break;
hgs
parents:
diff changeset
   596
            }
hgs
parents:
diff changeset
   597
        case ELoadGenCmdNewLoadPhotoCaptures:
hgs
parents:
diff changeset
   598
            {
hgs
parents:
diff changeset
   599
            item = CPhotoCapture::NewL( iPhotoCaptureAttributes, iReferenceNumber);
hgs
parents:
diff changeset
   600
            break;
hgs
parents:
diff changeset
   601
            }
hgs
parents:
diff changeset
   602
        case ELoadGenCmdNewLoadBluetooth:
hgs
parents:
diff changeset
   603
            {
hgs
parents:
diff changeset
   604
            item = CBluetooth::NewL( iBluetoothAttributes, iReferenceNumber);            
hgs
parents:
diff changeset
   605
            break;
hgs
parents:
diff changeset
   606
            }
hgs
parents:
diff changeset
   607
        case ELoadGenCmdNewLoadPointerEvent:
hgs
parents:
diff changeset
   608
            {
hgs
parents:
diff changeset
   609
            item = CPointerEvent::NewL(iPointerEventAttributes, iReferenceNumber);
hgs
parents:
diff changeset
   610
            break;
hgs
parents:
diff changeset
   611
            }
hgs
parents:
diff changeset
   612
            
hgs
parents:
diff changeset
   613
        default:
hgs
parents:
diff changeset
   614
            {
hgs
parents:
diff changeset
   615
            User::Panic(_L("Wrong new load"), 112);
hgs
parents:
diff changeset
   616
            break;
hgs
parents:
diff changeset
   617
            }
hgs
parents:
diff changeset
   618
        }
hgs
parents:
diff changeset
   619
    
hgs
parents:
diff changeset
   620
    iReferenceNumber++;
hgs
parents:
diff changeset
   621
hgs
parents:
diff changeset
   622
    // add item to the array
hgs
parents:
diff changeset
   623
    AppendToLoadItemListL(item);
hgs
parents:
diff changeset
   624
hgs
parents:
diff changeset
   625
    // update the listbox
hgs
parents:
diff changeset
   626
    RefreshViewL(EFalse);
hgs
parents:
diff changeset
   627
hgs
parents:
diff changeset
   628
    // set item index to the end
hgs
parents:
diff changeset
   629
	// Check this feature to be done in Orbit UI.
hgs
parents:
diff changeset
   630
    // iMainContainer->ListBox()->SetCurrentItemIndexAndDraw( iMainContainer->ListBox()->Model()->NumberOfItems()-1 );
hgs
parents:
diff changeset
   631
hgs
parents:
diff changeset
   632
    // start the load
hgs
parents:
diff changeset
   633
    item->Resume();
hgs
parents:
diff changeset
   634
        
hgs
parents:
diff changeset
   635
    // refresh again
hgs
parents:
diff changeset
   636
    RefreshViewL(EFalse);    
hgs
parents:
diff changeset
   637
    }
hgs
parents:
diff changeset
   638
hgs
parents:
diff changeset
   639
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   640
hgs
parents:
diff changeset
   641
hgs
parents:
diff changeset
   642
void CEngine::StopAllLoadItemsL()
hgs
parents:
diff changeset
   643
    {
hgs
parents:
diff changeset
   644
    DeleteAllLoadItems();
hgs
parents:
diff changeset
   645
    
hgs
parents:
diff changeset
   646
    RefreshViewL();
hgs
parents:
diff changeset
   647
    }
hgs
parents:
diff changeset
   648
    
hgs
parents:
diff changeset
   649
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   650
hgs
parents:
diff changeset
   651
void CEngine::SuspendAllLoadItemsL()
hgs
parents:
diff changeset
   652
    {
hgs
parents:
diff changeset
   653
    for (TInt i=0; i<LoadItemCount(); i++)
hgs
parents:
diff changeset
   654
        {
hgs
parents:
diff changeset
   655
        if ( iLoadItemList->At(i) )
hgs
parents:
diff changeset
   656
            {
hgs
parents:
diff changeset
   657
            iLoadItemList->At(i)->Suspend();
hgs
parents:
diff changeset
   658
            }
hgs
parents:
diff changeset
   659
        }
hgs
parents:
diff changeset
   660
        
hgs
parents:
diff changeset
   661
    RefreshViewL();    
hgs
parents:
diff changeset
   662
    }
hgs
parents:
diff changeset
   663
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   664
hgs
parents:
diff changeset
   665
void CEngine::ResumeAllLoadItemsL()
hgs
parents:
diff changeset
   666
    {
hgs
parents:
diff changeset
   667
    for (TInt i=0; i<LoadItemCount(); i++)
hgs
parents:
diff changeset
   668
        {
hgs
parents:
diff changeset
   669
        if ( iLoadItemList->At(i) )
hgs
parents:
diff changeset
   670
            {
hgs
parents:
diff changeset
   671
            iLoadItemList->At(i)->Resume();
hgs
parents:
diff changeset
   672
            }
hgs
parents:
diff changeset
   673
        }
hgs
parents:
diff changeset
   674
hgs
parents:
diff changeset
   675
    RefreshViewL();    
hgs
parents:
diff changeset
   676
    }    
hgs
parents:
diff changeset
   677
    
hgs
parents:
diff changeset
   678
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   679
hgs
parents:
diff changeset
   680
void CEngine::RefreshViewL(TBool aClearSelection)
hgs
parents:
diff changeset
   681
    {
hgs
parents:
diff changeset
   682
	// clear selections if any
hgs
parents:
diff changeset
   683
	iEngineWrapper->ClearSelection();
hgs
parents:
diff changeset
   684
	if (aClearSelection) 
hgs
parents:
diff changeset
   685
		{
hgs
parents:
diff changeset
   686
		iEngineWrapper->SetCurrentItemIndex(KZeroIndex);
hgs
parents:
diff changeset
   687
		}
hgs
parents:
diff changeset
   688
	iEngineWrapper->ReFreshView(GenerateListBoxItemTextArrayL());
hgs
parents:
diff changeset
   689
    }
hgs
parents:
diff changeset
   690
hgs
parents:
diff changeset
   691
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   692
hgs
parents:
diff changeset
   693
CDesCArray* CEngine::GenerateListBoxItemTextArrayL()
hgs
parents:
diff changeset
   694
    {
hgs
parents:
diff changeset
   695
    CDesCArray* textArray = new(ELeave) CDesCArrayFlat(64);
hgs
parents:
diff changeset
   696
    CleanupStack::PushL(textArray);
hgs
parents:
diff changeset
   697
hgs
parents:
diff changeset
   698
    _LIT(KEntryTemplateRedIcon,   "1\t%S\t\t");
hgs
parents:
diff changeset
   699
    _LIT(KEntryTemplateGreenIcon, "2\t%S\t\t");
hgs
parents:
diff changeset
   700
    TInt cnt = LoadItemCount();
hgs
parents:
diff changeset
   701
    for (TInt i=0; i< cnt; i++)
hgs
parents:
diff changeset
   702
        {
hgs
parents:
diff changeset
   703
        // add description from each entry
hgs
parents:
diff changeset
   704
        TBuf<256> textEntry;
hgs
parents:
diff changeset
   705
        TBuf<256> description = iLoadItemList->At(i)->Description();
hgs
parents:
diff changeset
   706
        
hgs
parents:
diff changeset
   707
        if (iLoadItemList->At(i)->State() == CLoadBase::ELoadStateRunning)
hgs
parents:
diff changeset
   708
            textEntry.Format(KEntryTemplateGreenIcon, &description);
hgs
parents:
diff changeset
   709
        else
hgs
parents:
diff changeset
   710
            textEntry.Format(KEntryTemplateRedIcon, &description);
hgs
parents:
diff changeset
   711
        
hgs
parents:
diff changeset
   712
        textArray->AppendL(textEntry);
hgs
parents:
diff changeset
   713
        }    
hgs
parents:
diff changeset
   714
    
hgs
parents:
diff changeset
   715
    CleanupStack::Pop(); //textArray
hgs
parents:
diff changeset
   716
    return textArray;
hgs
parents:
diff changeset
   717
    }
hgs
parents:
diff changeset
   718
	
hgs
parents:
diff changeset
   719
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   720
hgs
parents:
diff changeset
   721
void CEngine::AppendToLoadItemListL(CLoadBase* aItem)
hgs
parents:
diff changeset
   722
    {
hgs
parents:
diff changeset
   723
    if (iLoadItemList)
hgs
parents:
diff changeset
   724
        iLoadItemList->AppendL( aItem );
hgs
parents:
diff changeset
   725
    else
hgs
parents:
diff changeset
   726
        User::Leave(KErrNotReady);
hgs
parents:
diff changeset
   727
    }
hgs
parents:
diff changeset
   728
hgs
parents:
diff changeset
   729
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   730
hgs
parents:
diff changeset
   731
void CEngine::DeleteFromLoadItemListL(TInt aIndex)
hgs
parents:
diff changeset
   732
    {
hgs
parents:
diff changeset
   733
    if (iLoadItemList)
hgs
parents:
diff changeset
   734
        {
hgs
parents:
diff changeset
   735
        if (iLoadItemList->Count() > aIndex && aIndex >= 0)
hgs
parents:
diff changeset
   736
            {
hgs
parents:
diff changeset
   737
            // first call delete on the item
hgs
parents:
diff changeset
   738
            if (iLoadItemList->At(aIndex))
hgs
parents:
diff changeset
   739
                {                                
hgs
parents:
diff changeset
   740
                delete iLoadItemList->At(aIndex);
hgs
parents:
diff changeset
   741
                iLoadItemList->At(aIndex) = NULL;
hgs
parents:
diff changeset
   742
                }
hgs
parents:
diff changeset
   743
            
hgs
parents:
diff changeset
   744
            // and them remove the array entry
hgs
parents:
diff changeset
   745
            iLoadItemList->Delete(aIndex);
hgs
parents:
diff changeset
   746
            iLoadItemList->Compress();
hgs
parents:
diff changeset
   747
            }
hgs
parents:
diff changeset
   748
        else
hgs
parents:
diff changeset
   749
            User::Leave(KErrNotFound);
hgs
parents:
diff changeset
   750
        }
hgs
parents:
diff changeset
   751
    else
hgs
parents:
diff changeset
   752
        User::Leave(KErrNotReady);
hgs
parents:
diff changeset
   753
    }
hgs
parents:
diff changeset
   754
hgs
parents:
diff changeset
   755
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   756
hgs
parents:
diff changeset
   757
void CEngine::SuspendOrResumeFromLoadItemListL(TInt aIndex)
hgs
parents:
diff changeset
   758
    {
hgs
parents:
diff changeset
   759
    if (iLoadItemList)
hgs
parents:
diff changeset
   760
        {
hgs
parents:
diff changeset
   761
        if (iLoadItemList->Count() > aIndex && aIndex >= 0)
hgs
parents:
diff changeset
   762
            {
hgs
parents:
diff changeset
   763
            if (iLoadItemList->At(aIndex))
hgs
parents:
diff changeset
   764
                {
hgs
parents:
diff changeset
   765
                if (iLoadItemList->At(aIndex)->State() == CLoadBase::ELoadStateRunning)
hgs
parents:
diff changeset
   766
                    {
hgs
parents:
diff changeset
   767
                    iLoadItemList->At(aIndex)->Suspend();
hgs
parents:
diff changeset
   768
                    }
hgs
parents:
diff changeset
   769
                else if (iLoadItemList->At(aIndex)->State() == CLoadBase::ELoadStateSuspended)
hgs
parents:
diff changeset
   770
                    {
hgs
parents:
diff changeset
   771
                    iLoadItemList->At(aIndex)->Resume();
hgs
parents:
diff changeset
   772
                    }
hgs
parents:
diff changeset
   773
                }
hgs
parents:
diff changeset
   774
            }
hgs
parents:
diff changeset
   775
        else
hgs
parents:
diff changeset
   776
            User::Leave(KErrNotFound);
hgs
parents:
diff changeset
   777
        }
hgs
parents:
diff changeset
   778
    else
hgs
parents:
diff changeset
   779
        User::Leave(KErrNotReady);
hgs
parents:
diff changeset
   780
    }
hgs
parents:
diff changeset
   781
            
hgs
parents:
diff changeset
   782
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   783
hgs
parents:
diff changeset
   784
TInt CEngine::LoadItemCount() const
hgs
parents:
diff changeset
   785
    {
hgs
parents:
diff changeset
   786
    TInt count(0);
hgs
parents:
diff changeset
   787
    
hgs
parents:
diff changeset
   788
    if (iLoadItemList)
hgs
parents:
diff changeset
   789
        count = iLoadItemList->Count();
hgs
parents:
diff changeset
   790
    
hgs
parents:
diff changeset
   791
    return count;
hgs
parents:
diff changeset
   792
    }
hgs
parents:
diff changeset
   793
    
hgs
parents:
diff changeset
   794
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   795
hgs
parents:
diff changeset
   796
void CEngine::DeleteAllLoadItems()
hgs
parents:
diff changeset
   797
    {
hgs
parents:
diff changeset
   798
    // call delete for each entry and free memory allocated for the array
hgs
parents:
diff changeset
   799
    for (TInt i=0; i<LoadItemCount(); i++)
hgs
parents:
diff changeset
   800
        {
hgs
parents:
diff changeset
   801
        if ( iLoadItemList->At(i) )
hgs
parents:
diff changeset
   802
            {            
hgs
parents:
diff changeset
   803
            delete iLoadItemList->At(i);
hgs
parents:
diff changeset
   804
            iLoadItemList->At(i) = NULL;
hgs
parents:
diff changeset
   805
            }
hgs
parents:
diff changeset
   806
        }
hgs
parents:
diff changeset
   807
        
hgs
parents:
diff changeset
   808
    iLoadItemList->Reset();    
hgs
parents:
diff changeset
   809
    }  
hgs
parents:
diff changeset
   810
          
hgs
parents:
diff changeset
   811
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   812
hgs
parents:
diff changeset
   813
void CEngine::StopSelectedOrHighlightedItemsL(const CArrayFix<TInt>* aSelectionIndexes)
hgs
parents:
diff changeset
   814
    {
hgs
parents:
diff changeset
   815
    TInt err(KErrNone);
hgs
parents:
diff changeset
   816
hgs
parents:
diff changeset
   817
    // by default use selected items
hgs
parents:
diff changeset
   818
    if (aSelectionIndexes && aSelectionIndexes->Count() > 0)
hgs
parents:
diff changeset
   819
        {
hgs
parents:
diff changeset
   820
        TInt deleteIndexCounter(0);
hgs
parents:
diff changeset
   821
        TInt ref(0);
hgs
parents:
diff changeset
   822
        TKeyArrayFix key(0, ECmpTUint16);
hgs
parents:
diff changeset
   823
        TInt index(0);
hgs
parents:
diff changeset
   824
        
hgs
parents:
diff changeset
   825
        TInt loadCount = LoadItemCount();
hgs
parents:
diff changeset
   826
hgs
parents:
diff changeset
   827
        for (TInt i=0; i<loadCount; i++)
hgs
parents:
diff changeset
   828
            {
hgs
parents:
diff changeset
   829
            ref = i;
hgs
parents:
diff changeset
   830
hgs
parents:
diff changeset
   831
            if (aSelectionIndexes->Find(ref, key, index) == 0)  
hgs
parents:
diff changeset
   832
                {
hgs
parents:
diff changeset
   833
                TRAP(err, DeleteFromLoadItemListL(i-deleteIndexCounter));
hgs
parents:
diff changeset
   834
                deleteIndexCounter++; // amount of indexes decreases after each delete
hgs
parents:
diff changeset
   835
                }
hgs
parents:
diff changeset
   836
            }
hgs
parents:
diff changeset
   837
            
hgs
parents:
diff changeset
   838
            RefreshViewL();
hgs
parents:
diff changeset
   839
            User::LeaveIfError(err);
hgs
parents:
diff changeset
   840
        }
hgs
parents:
diff changeset
   841
    }
hgs
parents:
diff changeset
   842
hgs
parents:
diff changeset
   843
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   844
hgs
parents:
diff changeset
   845
void CEngine::SuspendOrResumeSelectedOrHighlightedItemsL()
hgs
parents:
diff changeset
   846
    {
hgs
parents:
diff changeset
   847
    const CArrayFix<TInt>* selectionIndexes = iEngineWrapper->QueryListSelectedIndexesOrCurrentItemL(); //iMainContainer->ListBoxSelectionIndexes();
hgs
parents:
diff changeset
   848
hgs
parents:
diff changeset
   849
    // by default use selected items
hgs
parents:
diff changeset
   850
    if (selectionIndexes && selectionIndexes->Count() > 0)
hgs
parents:
diff changeset
   851
        {
hgs
parents:
diff changeset
   852
        TInt ref(0);
hgs
parents:
diff changeset
   853
        TKeyArrayFix key(0, ECmpTUint16);
hgs
parents:
diff changeset
   854
        TInt index(0);
hgs
parents:
diff changeset
   855
hgs
parents:
diff changeset
   856
        for (TInt i=0; i<LoadItemCount(); i++)
hgs
parents:
diff changeset
   857
            {
hgs
parents:
diff changeset
   858
            ref = i;
hgs
parents:
diff changeset
   859
hgs
parents:
diff changeset
   860
            if (selectionIndexes->Find(ref, key, index) == 0)  
hgs
parents:
diff changeset
   861
                {
hgs
parents:
diff changeset
   862
                SuspendOrResumeFromLoadItemListL(i);
hgs
parents:
diff changeset
   863
                }
hgs
parents:
diff changeset
   864
            }
hgs
parents:
diff changeset
   865
        
hgs
parents:
diff changeset
   866
        RefreshViewL(EFalse);
hgs
parents:
diff changeset
   867
        }  
hgs
parents:
diff changeset
   868
    }                                
hgs
parents:
diff changeset
   869
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   870
hgs
parents:
diff changeset
   871
void CEngine::LoadSettingsL()
hgs
parents:
diff changeset
   872
    {
hgs
parents:
diff changeset
   873
    }
hgs
parents:
diff changeset
   874
hgs
parents:
diff changeset
   875
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   876
hgs
parents:
diff changeset
   877
void CEngine::SaveSettingsL()
hgs
parents:
diff changeset
   878
    {
hgs
parents:
diff changeset
   879
    }
hgs
parents:
diff changeset
   880
        
hgs
parents:
diff changeset
   881
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   882
hgs
parents:
diff changeset
   883
TInt CEngine::LaunchSettingsDialogL()
hgs
parents:
diff changeset
   884
    {
hgs
parents:
diff changeset
   885
    return 0;
hgs
parents:
diff changeset
   886
    }
hgs
parents:
diff changeset
   887
    
hgs
parents:
diff changeset
   888
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   889
CDesCArray* CEngine::ListOfAllAppsL()
hgs
parents:
diff changeset
   890
    {
hgs
parents:
diff changeset
   891
    const TInt KMaxAppsArraySize=250;
hgs
parents:
diff changeset
   892
    RApaLsSession ls;
hgs
parents:
diff changeset
   893
    CleanupClosePushL(ls);
hgs
parents:
diff changeset
   894
hgs
parents:
diff changeset
   895
    User::LeaveIfError( ls.Connect() );
hgs
parents:
diff changeset
   896
    CDesCArray* allAppsArray = new(ELeave) CDesCArrayFlat( KMaxAppsArraySize );
hgs
parents:
diff changeset
   897
    CleanupStack::PushL( allAppsArray );
hgs
parents:
diff changeset
   898
    // reset the apps list
hgs
parents:
diff changeset
   899
    allAppsArray->Reset();
hgs
parents:
diff changeset
   900
hgs
parents:
diff changeset
   901
    // search all apps
hgs
parents:
diff changeset
   902
    TApaAppInfo appInfo;
hgs
parents:
diff changeset
   903
    User::LeaveIfError(ls.GetAllApps());
hgs
parents:
diff changeset
   904
hgs
parents:
diff changeset
   905
hgs
parents:
diff changeset
   906
    while ( ls.GetNextApp( appInfo ) == KErrNone )
hgs
parents:
diff changeset
   907
        {
hgs
parents:
diff changeset
   908
        allAppsArray->AppendL( appInfo.iFullName );      
hgs
parents:
diff changeset
   909
        }
hgs
parents:
diff changeset
   910
    CleanupStack::Pop( allAppsArray );
hgs
parents:
diff changeset
   911
    CleanupStack::PopAndDestroy( &ls );
hgs
parents:
diff changeset
   912
   
hgs
parents:
diff changeset
   913
hgs
parents:
diff changeset
   914
    // remove loadgen.* from the list
hgs
parents:
diff changeset
   915
    for ( TInt i = 0; i < allAppsArray->MdcaCount(); i++ )
hgs
parents:
diff changeset
   916
        {
hgs
parents:
diff changeset
   917
        if ( allAppsArray->MdcaPoint(i).FindF( _L("\\loadgen.") ) != KErrNotFound )
hgs
parents:
diff changeset
   918
            {
hgs
parents:
diff changeset
   919
            allAppsArray->Delete(i);
hgs
parents:
diff changeset
   920
            allAppsArray->Compress();
hgs
parents:
diff changeset
   921
            break;
hgs
parents:
diff changeset
   922
            }
hgs
parents:
diff changeset
   923
        }
hgs
parents:
diff changeset
   924
hgs
parents:
diff changeset
   925
    // sort the elements
hgs
parents:
diff changeset
   926
    allAppsArray->Sort();
hgs
parents:
diff changeset
   927
hgs
parents:
diff changeset
   928
    return allAppsArray; // ownership transferred
hgs
parents:
diff changeset
   929
    }
hgs
parents:
diff changeset
   930
hgs
parents:
diff changeset
   931
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   932
hgs
parents:
diff changeset
   933
void CEngine::LaunchPerfMonL()
hgs
parents:
diff changeset
   934
	{
hgs
parents:
diff changeset
   935
	// launch Performance Monitor
hgs
parents:
diff changeset
   936
	const TUid KUidPerfMon = { 0x20011385 };
hgs
parents:
diff changeset
   937
	
hgs
parents:
diff changeset
   938
	RWsSession ws;
hgs
parents:
diff changeset
   939
	User::LeaveIfError( ws.Connect() );
hgs
parents:
diff changeset
   940
	CleanupClosePushL(ws);
hgs
parents:
diff changeset
   941
	
hgs
parents:
diff changeset
   942
	RApaLsSession ls;
hgs
parents:
diff changeset
   943
	User::LeaveIfError( ls.Connect() );
hgs
parents:
diff changeset
   944
	CleanupClosePushL(ls);
hgs
parents:
diff changeset
   945
	
hgs
parents:
diff changeset
   946
	
hgs
parents:
diff changeset
   947
	// try to find the task of PerfMon
hgs
parents:
diff changeset
   948
	TApaTaskList tasklist(ws);
hgs
parents:
diff changeset
   949
	TApaTask task = tasklist.FindApp(KUidPerfMon);
hgs
parents:
diff changeset
   950
hgs
parents:
diff changeset
   951
	if (task.Exists())
hgs
parents:
diff changeset
   952
		{
hgs
parents:
diff changeset
   953
		// task exists, bring it to foreground
hgs
parents:
diff changeset
   954
		task.BringToForeground();
hgs
parents:
diff changeset
   955
		}
hgs
parents:
diff changeset
   956
	else
hgs
parents:
diff changeset
   957
		{
hgs
parents:
diff changeset
   958
		TApaAppInfo appInfo;
hgs
parents:
diff changeset
   959
		User::LeaveIfError(ls.GetAppInfo(appInfo, KUidPerfMon));
hgs
parents:
diff changeset
   960
		
hgs
parents:
diff changeset
   961
		CApaCommandLine* cmdLine = CApaCommandLine::NewLC();
hgs
parents:
diff changeset
   962
		cmdLine->SetExecutableNameL(appInfo.iFullName);
hgs
parents:
diff changeset
   963
		cmdLine->SetCommandL(EApaCommandBackground);
hgs
parents:
diff changeset
   964
hgs
parents:
diff changeset
   965
		// start the app
hgs
parents:
diff changeset
   966
		User::LeaveIfError(ls.StartApp(*cmdLine));
hgs
parents:
diff changeset
   967
		
hgs
parents:
diff changeset
   968
		CleanupStack::PopAndDestroy(); //cmdLine                
hgs
parents:
diff changeset
   969
		}
hgs
parents:
diff changeset
   970
	
hgs
parents:
diff changeset
   971
	CleanupStack::PopAndDestroy(2); //ws,ls
hgs
parents:
diff changeset
   972
	}
hgs
parents:
diff changeset
   973
hgs
parents:
diff changeset
   974
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   975
	
hgs
parents:
diff changeset
   976
TCPULoadAttributes CEngine::GetCPULoadAttributes()
hgs
parents:
diff changeset
   977
	{
hgs
parents:
diff changeset
   978
	if (iEditExistingLoad == EFalse) 
hgs
parents:
diff changeset
   979
		{
hgs
parents:
diff changeset
   980
		return iCpuLoadAttributes;
hgs
parents:
diff changeset
   981
		}
hgs
parents:
diff changeset
   982
	else 
hgs
parents:
diff changeset
   983
		{
hgs
parents:
diff changeset
   984
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
   985
		return (static_cast<CCPULoad*>(aItem)->Attributes());
hgs
parents:
diff changeset
   986
		}
hgs
parents:
diff changeset
   987
	}
hgs
parents:
diff changeset
   988
hgs
parents:
diff changeset
   989
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   990
hgs
parents:
diff changeset
   991
void CEngine::ChangeCPULoadAttributes(const TCPULoadAttributes& aAttributes) 
hgs
parents:
diff changeset
   992
	{ 
hgs
parents:
diff changeset
   993
	if (iEditExistingLoad == EFalse) 
hgs
parents:
diff changeset
   994
		{
hgs
parents:
diff changeset
   995
		iCpuLoadAttributes = aAttributes; 
hgs
parents:
diff changeset
   996
		}
hgs
parents:
diff changeset
   997
	else 
hgs
parents:
diff changeset
   998
		{
hgs
parents:
diff changeset
   999
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
  1000
		static_cast<CCPULoad*>(aItem)->SetAttributes(aAttributes);
hgs
parents:
diff changeset
  1001
		}
hgs
parents:
diff changeset
  1002
	}
hgs
parents:
diff changeset
  1003
hgs
parents:
diff changeset
  1004
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
  1005
hgs
parents:
diff changeset
  1006
TMemoryEatAttributes CEngine::GetMemoryEatAttributes()
hgs
parents:
diff changeset
  1007
	{ 
hgs
parents:
diff changeset
  1008
	if (iEditExistingLoad == EFalse)
hgs
parents:
diff changeset
  1009
		{	
hgs
parents:
diff changeset
  1010
		return iMemoryEatAttributes; 
hgs
parents:
diff changeset
  1011
		}
hgs
parents:
diff changeset
  1012
	else 
hgs
parents:
diff changeset
  1013
		{
hgs
parents:
diff changeset
  1014
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
  1015
		return (static_cast<CMemoryEat*>(aItem)->Attributes());
hgs
parents:
diff changeset
  1016
		}
hgs
parents:
diff changeset
  1017
	}
hgs
parents:
diff changeset
  1018
hgs
parents:
diff changeset
  1019
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
  1020
hgs
parents:
diff changeset
  1021
void CEngine::ChangeMemoryEatAttributes(const TMemoryEatAttributes& aAttributes) 
hgs
parents:
diff changeset
  1022
	{ 
hgs
parents:
diff changeset
  1023
	if (iEditExistingLoad == EFalse) 
hgs
parents:
diff changeset
  1024
		{
hgs
parents:
diff changeset
  1025
		iMemoryEatAttributes = aAttributes; 
hgs
parents:
diff changeset
  1026
		}
hgs
parents:
diff changeset
  1027
	else 
hgs
parents:
diff changeset
  1028
		{
hgs
parents:
diff changeset
  1029
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
  1030
		static_cast<CMemoryEat*>(aItem)->SetAttributes(aAttributes);
hgs
parents:
diff changeset
  1031
		}
hgs
parents:
diff changeset
  1032
	}	
hgs
parents:
diff changeset
  1033
	
hgs
parents:
diff changeset
  1034
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
  1035
hgs
parents:
diff changeset
  1036
TPhoneCallAttributes CEngine::GetPhoneCallAttributes()
hgs
parents:
diff changeset
  1037
	{ 
hgs
parents:
diff changeset
  1038
	if (iEditExistingLoad == EFalse)
hgs
parents:
diff changeset
  1039
		{	
hgs
parents:
diff changeset
  1040
		return iPhoneCallAttributes; 
hgs
parents:
diff changeset
  1041
		}
hgs
parents:
diff changeset
  1042
	else 
hgs
parents:
diff changeset
  1043
		{
hgs
parents:
diff changeset
  1044
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
  1045
		return (static_cast<CPhoneCall*>(aItem)->Attributes());
hgs
parents:
diff changeset
  1046
		}
hgs
parents:
diff changeset
  1047
	}
hgs
parents:
diff changeset
  1048
hgs
parents:
diff changeset
  1049
// --------------------------------------------------------------------------------------------	
hgs
parents:
diff changeset
  1050
hgs
parents:
diff changeset
  1051
void CEngine::ChangePhoneCallAttributes(const TPhoneCallAttributes& aAttributes)
hgs
parents:
diff changeset
  1052
	{
hgs
parents:
diff changeset
  1053
	if (iEditExistingLoad == EFalse) 
hgs
parents:
diff changeset
  1054
		{
hgs
parents:
diff changeset
  1055
		iPhoneCallAttributes = aAttributes; 
hgs
parents:
diff changeset
  1056
		}
hgs
parents:
diff changeset
  1057
	else 
hgs
parents:
diff changeset
  1058
		{
hgs
parents:
diff changeset
  1059
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
  1060
		static_cast<CPhoneCall*>(aItem)->SetAttributes(aAttributes);
hgs
parents:
diff changeset
  1061
		}	
hgs
parents:
diff changeset
  1062
	}
hgs
parents:
diff changeset
  1063
	
hgs
parents:
diff changeset
  1064
// --------------------------------------------------------------------------------------------	
hgs
parents:
diff changeset
  1065
hgs
parents:
diff changeset
  1066
TNetConnAttributes CEngine::GetNetConnAttributes()
hgs
parents:
diff changeset
  1067
	{ 
hgs
parents:
diff changeset
  1068
  
hgs
parents:
diff changeset
  1069
	if (iEditExistingLoad == EFalse)
hgs
parents:
diff changeset
  1070
		{	
hgs
parents:
diff changeset
  1071
		return iNetConnAttributes; 
hgs
parents:
diff changeset
  1072
		}
hgs
parents:
diff changeset
  1073
	else 
hgs
parents:
diff changeset
  1074
		{
hgs
parents:
diff changeset
  1075
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
  1076
		return (static_cast<CNetConn*>(aItem)->Attributes());
hgs
parents:
diff changeset
  1077
		}
hgs
parents:
diff changeset
  1078
	
hgs
parents:
diff changeset
  1079
	}
hgs
parents:
diff changeset
  1080
hgs
parents:
diff changeset
  1081
// --------------------------------------------------------------------------------------------		
hgs
parents:
diff changeset
  1082
	
hgs
parents:
diff changeset
  1083
void CEngine::ChangeNetConnAttributes(const TNetConnAttributes& aAttributes)
hgs
parents:
diff changeset
  1084
	{
hgs
parents:
diff changeset
  1085
    
hgs
parents:
diff changeset
  1086
	if (iEditExistingLoad == EFalse) 
hgs
parents:
diff changeset
  1087
		{
hgs
parents:
diff changeset
  1088
		iNetConnAttributes = aAttributes; 
hgs
parents:
diff changeset
  1089
		}
hgs
parents:
diff changeset
  1090
	else 
hgs
parents:
diff changeset
  1091
		{
hgs
parents:
diff changeset
  1092
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
  1093
		static_cast<CNetConn*>(aItem)->SetAttributes(aAttributes);
hgs
parents:
diff changeset
  1094
		}
hgs
parents:
diff changeset
  1095
			
hgs
parents:
diff changeset
  1096
	}
hgs
parents:
diff changeset
  1097
	
hgs
parents:
diff changeset
  1098
// --------------------------------------------------------------------------------------------	
hgs
parents:
diff changeset
  1099
hgs
parents:
diff changeset
  1100
TKeyPressAttributes CEngine::GetKeyPressAttributes()
hgs
parents:
diff changeset
  1101
	{ 
hgs
parents:
diff changeset
  1102
	if (iEditExistingLoad == EFalse)
hgs
parents:
diff changeset
  1103
		{	
hgs
parents:
diff changeset
  1104
		return iKeyPressAttributes; 
hgs
parents:
diff changeset
  1105
		}
hgs
parents:
diff changeset
  1106
	else 
hgs
parents:
diff changeset
  1107
		{
hgs
parents:
diff changeset
  1108
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
  1109
		return (static_cast<CKeyPress*>(aItem)->Attributes());
hgs
parents:
diff changeset
  1110
		}
hgs
parents:
diff changeset
  1111
	}	
hgs
parents:
diff changeset
  1112
hgs
parents:
diff changeset
  1113
	
hgs
parents:
diff changeset
  1114
// --------------------------------------------------------------------------------------------		
hgs
parents:
diff changeset
  1115
	
hgs
parents:
diff changeset
  1116
void CEngine::ChangeKeyPressAttributes(const TKeyPressAttributes& aAttributes)
hgs
parents:
diff changeset
  1117
	{
hgs
parents:
diff changeset
  1118
	if (iEditExistingLoad == EFalse) 
hgs
parents:
diff changeset
  1119
		{
hgs
parents:
diff changeset
  1120
		iKeyPressAttributes = aAttributes; 
hgs
parents:
diff changeset
  1121
		}
hgs
parents:
diff changeset
  1122
	else 
hgs
parents:
diff changeset
  1123
		{
hgs
parents:
diff changeset
  1124
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
  1125
		static_cast<CKeyPress*>(aItem)->SetAttributes(aAttributes);
hgs
parents:
diff changeset
  1126
		}	
hgs
parents:
diff changeset
  1127
	}	
hgs
parents:
diff changeset
  1128
	
hgs
parents:
diff changeset
  1129
// --------------------------------------------------------------------------------------------	
hgs
parents:
diff changeset
  1130
hgs
parents:
diff changeset
  1131
TMessageAttributes CEngine::GetMessageAttributes()
hgs
parents:
diff changeset
  1132
	{ 
hgs
parents:
diff changeset
  1133
	if (iEditExistingLoad == EFalse)
hgs
parents:
diff changeset
  1134
		{	
hgs
parents:
diff changeset
  1135
		return iMessageAttributes; 
hgs
parents:
diff changeset
  1136
		}
hgs
parents:
diff changeset
  1137
	else 
hgs
parents:
diff changeset
  1138
		{
hgs
parents:
diff changeset
  1139
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
  1140
		return (static_cast<CMessages*>(aItem)->Attributes());
hgs
parents:
diff changeset
  1141
		}
hgs
parents:
diff changeset
  1142
	}	
hgs
parents:
diff changeset
  1143
	
hgs
parents:
diff changeset
  1144
// --------------------------------------------------------------------------------------------		
hgs
parents:
diff changeset
  1145
	
hgs
parents:
diff changeset
  1146
void CEngine::ChangeMessageAttributes(const TMessageAttributes& aAttributes)
hgs
parents:
diff changeset
  1147
	{
hgs
parents:
diff changeset
  1148
	if (iEditExistingLoad == EFalse) 
hgs
parents:
diff changeset
  1149
		{
hgs
parents:
diff changeset
  1150
		iMessageAttributes = aAttributes; 
hgs
parents:
diff changeset
  1151
		}
hgs
parents:
diff changeset
  1152
	else 
hgs
parents:
diff changeset
  1153
		{
hgs
parents:
diff changeset
  1154
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
  1155
		static_cast<CMessages*>(aItem)->SetAttributes(aAttributes);
hgs
parents:
diff changeset
  1156
		}	
hgs
parents:
diff changeset
  1157
	}
hgs
parents:
diff changeset
  1158
hgs
parents:
diff changeset
  1159
// --------------------------------------------------------------------------------------------	
hgs
parents:
diff changeset
  1160
hgs
parents:
diff changeset
  1161
TApplicationsAttributes CEngine::GetApplicationsAttributes()
hgs
parents:
diff changeset
  1162
	{ 
hgs
parents:
diff changeset
  1163
	if (iEditExistingLoad == EFalse)
hgs
parents:
diff changeset
  1164
		{	
hgs
parents:
diff changeset
  1165
		return iApplicationsAttributes; 
hgs
parents:
diff changeset
  1166
		}
hgs
parents:
diff changeset
  1167
	else 
hgs
parents:
diff changeset
  1168
		{
hgs
parents:
diff changeset
  1169
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
  1170
		return (static_cast<CAppLauncher*>(aItem)->Attributes());
hgs
parents:
diff changeset
  1171
		}
hgs
parents:
diff changeset
  1172
	}	
hgs
parents:
diff changeset
  1173
hgs
parents:
diff changeset
  1174
// --------------------------------------------------------------------------------------------		
hgs
parents:
diff changeset
  1175
	
hgs
parents:
diff changeset
  1176
void CEngine::ChangeApplicationsAttributes(const TApplicationsAttributes& aAttributes)
hgs
parents:
diff changeset
  1177
	{
hgs
parents:
diff changeset
  1178
	if (iEditExistingLoad == EFalse) 
hgs
parents:
diff changeset
  1179
		{
hgs
parents:
diff changeset
  1180
		iApplicationsAttributes = aAttributes; 
hgs
parents:
diff changeset
  1181
		}
hgs
parents:
diff changeset
  1182
	else 
hgs
parents:
diff changeset
  1183
		{
hgs
parents:
diff changeset
  1184
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
  1185
		static_cast<CAppLauncher*>(aItem)->SetAttributes(aAttributes);
hgs
parents:
diff changeset
  1186
		}	
hgs
parents:
diff changeset
  1187
	}
hgs
parents:
diff changeset
  1188
	
hgs
parents:
diff changeset
  1189
// --------------------------------------------------------------------------------------------	
hgs
parents:
diff changeset
  1190
hgs
parents:
diff changeset
  1191
TPhotoCaptureAttributes CEngine::GetPhotoCaptureAttributes()
hgs
parents:
diff changeset
  1192
	{ 
hgs
parents:
diff changeset
  1193
	if (iEditExistingLoad == EFalse)
hgs
parents:
diff changeset
  1194
		{	
hgs
parents:
diff changeset
  1195
		return iPhotoCaptureAttributes; 
hgs
parents:
diff changeset
  1196
		}
hgs
parents:
diff changeset
  1197
	else 
hgs
parents:
diff changeset
  1198
		{
hgs
parents:
diff changeset
  1199
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
  1200
		return (static_cast<CPhotoCapture*>(aItem)->Attributes());
hgs
parents:
diff changeset
  1201
		}
hgs
parents:
diff changeset
  1202
	}	
hgs
parents:
diff changeset
  1203
hgs
parents:
diff changeset
  1204
// --------------------------------------------------------------------------------------------		
hgs
parents:
diff changeset
  1205
	
hgs
parents:
diff changeset
  1206
void CEngine::ChangePhotoCaptureAttributes(const TPhotoCaptureAttributes& aAttributes)
hgs
parents:
diff changeset
  1207
	{
hgs
parents:
diff changeset
  1208
	if (iEditExistingLoad == EFalse) 
hgs
parents:
diff changeset
  1209
		{
hgs
parents:
diff changeset
  1210
		iPhotoCaptureAttributes = aAttributes; 
hgs
parents:
diff changeset
  1211
		}
hgs
parents:
diff changeset
  1212
	else 
hgs
parents:
diff changeset
  1213
		{
hgs
parents:
diff changeset
  1214
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
  1215
		static_cast<CPhotoCapture*>(aItem)->SetAttributes(aAttributes);
hgs
parents:
diff changeset
  1216
		}	
hgs
parents:
diff changeset
  1217
	}	
hgs
parents:
diff changeset
  1218
	
hgs
parents:
diff changeset
  1219
// --------------------------------------------------------------------------------------------	
hgs
parents:
diff changeset
  1220
	
hgs
parents:
diff changeset
  1221
TBluetoothAttributes CEngine::GetBluetoothAttributes()
hgs
parents:
diff changeset
  1222
	{ 
hgs
parents:
diff changeset
  1223
	if (iEditExistingLoad == EFalse)
hgs
parents:
diff changeset
  1224
		{	
hgs
parents:
diff changeset
  1225
		return iBluetoothAttributes; 
hgs
parents:
diff changeset
  1226
		}
hgs
parents:
diff changeset
  1227
	else 
hgs
parents:
diff changeset
  1228
		{
hgs
parents:
diff changeset
  1229
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
  1230
		return (static_cast<CBluetooth*>(aItem)->Attributes());
hgs
parents:
diff changeset
  1231
		}
hgs
parents:
diff changeset
  1232
	}		
hgs
parents:
diff changeset
  1233
hgs
parents:
diff changeset
  1234
	
hgs
parents:
diff changeset
  1235
// --------------------------------------------------------------------------------------------		
hgs
parents:
diff changeset
  1236
	
hgs
parents:
diff changeset
  1237
void CEngine::ChangeBluetoothAttributes(const TBluetoothAttributes& aAttributes)
hgs
parents:
diff changeset
  1238
	{
hgs
parents:
diff changeset
  1239
	if (iEditExistingLoad == EFalse) 
hgs
parents:
diff changeset
  1240
		{
hgs
parents:
diff changeset
  1241
		iBluetoothAttributes = aAttributes; 
hgs
parents:
diff changeset
  1242
		}
hgs
parents:
diff changeset
  1243
	else 
hgs
parents:
diff changeset
  1244
		{
hgs
parents:
diff changeset
  1245
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
  1246
		static_cast<CBluetooth*>(aItem)->SetAttributes(aAttributes);
hgs
parents:
diff changeset
  1247
		}	
hgs
parents:
diff changeset
  1248
	} 	
hgs
parents:
diff changeset
  1249
	
hgs
parents:
diff changeset
  1250
// --------------------------------------------------------------------------------------------	
hgs
parents:
diff changeset
  1251
	
hgs
parents:
diff changeset
  1252
TPointerEventAttributes CEngine::GetPointerEventAttributes()
hgs
parents:
diff changeset
  1253
	{
hgs
parents:
diff changeset
  1254
	if (iEditExistingLoad == EFalse)
hgs
parents:
diff changeset
  1255
		{	
hgs
parents:
diff changeset
  1256
		return iPointerEventAttributes; 
hgs
parents:
diff changeset
  1257
		}
hgs
parents:
diff changeset
  1258
	else 
hgs
parents:
diff changeset
  1259
		{
hgs
parents:
diff changeset
  1260
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
  1261
		return (static_cast<CPointerEvent*>(aItem)->Attributes());
hgs
parents:
diff changeset
  1262
		}
hgs
parents:
diff changeset
  1263
	}
hgs
parents:
diff changeset
  1264
hgs
parents:
diff changeset
  1265
// --------------------------------------------------------------------------------------------		
hgs
parents:
diff changeset
  1266
	
hgs
parents:
diff changeset
  1267
void CEngine::ChangePointerEventAttributes(const TPointerEventAttributes& aAttributes)
hgs
parents:
diff changeset
  1268
	{
hgs
parents:
diff changeset
  1269
	if (iEditExistingLoad == EFalse) 
hgs
parents:
diff changeset
  1270
		{
hgs
parents:
diff changeset
  1271
		iPointerEventAttributes = aAttributes; 
hgs
parents:
diff changeset
  1272
		}
hgs
parents:
diff changeset
  1273
	else 
hgs
parents:
diff changeset
  1274
		{
hgs
parents:
diff changeset
  1275
		CLoadBase* aItem = iLoadItemList->At(iCurrentItemIndex);
hgs
parents:
diff changeset
  1276
		static_cast<CPointerEvent*>(aItem)->SetAttributes(aAttributes);
hgs
parents:
diff changeset
  1277
		}	
hgs
parents:
diff changeset
  1278
	} 
hgs
parents:
diff changeset
  1279
	
hgs
parents:
diff changeset
  1280
// --------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
  1281
	
hgs
parents:
diff changeset
  1282
// End of File