os/mm/mmplugins/cameraplugins/source/testcamera/test_advanced_settings.cpp
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
sl@0
     1
// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     2
// All rights reserved.
sl@0
     3
// This component and the accompanying materials are made available
sl@0
     4
// under the terms of "Eclipse Public License v1.0"
sl@0
     5
// which accompanies this distribution, and is available
sl@0
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     7
//
sl@0
     8
// Initial Contributors:
sl@0
     9
// Nokia Corporation - initial contribution.
sl@0
    10
//
sl@0
    11
// Contributors:
sl@0
    12
//
sl@0
    13
// Description:
sl@0
    14
// testadvancedsettings.cpp
sl@0
    15
// 
sl@0
    16
//
sl@0
    17
sl@0
    18
#include "test_advanced_settings.h"
sl@0
    19
#include <ecamerrors.h>
sl@0
    20
#include "ecamversion.h"
sl@0
    21
sl@0
    22
CTestCamAdvSet::CTestCamAdvSet(CTestCamera& aOwner): iOwner(aOwner)
sl@0
    23
	{
sl@0
    24
	Init();
sl@0
    25
	}
sl@0
    26
	
sl@0
    27
CTestCamAdvSet::~CTestCamAdvSet()
sl@0
    28
	{
sl@0
    29
	iSupportedISORates.Close();
sl@0
    30
	iSupportedApertures.Close();
sl@0
    31
	iSupportedShutterSpeeds.Close();
sl@0
    32
	
sl@0
    33
	CDataGlobal* globalData = static_cast <CDataGlobal*> (Dll::Tls());	
sl@0
    34
	if(globalData != NULL)
sl@0
    35
		{
sl@0
    36
		if(!globalData->iTestCamPresets && !globalData->iTestCamSnapshot && !globalData->iTestCamImgProc)
sl@0
    37
			{
sl@0
    38
			delete globalData;
sl@0
    39
			Dll::FreeTls();
sl@0
    40
			}	
sl@0
    41
		else
sl@0
    42
			{
sl@0
    43
			globalData->iTestCamAdvSet = NULL;	
sl@0
    44
			Dll::SetTls(globalData);
sl@0
    45
			}
sl@0
    46
		}
sl@0
    47
	}
sl@0
    48
		
sl@0
    49
CTestCamAdvSet* CTestCamAdvSet::NewL(CTestCamera& aOwner)
sl@0
    50
	{
sl@0
    51
	CDataGlobal* globalData = static_cast <CDataGlobal*> (Dll::Tls());
sl@0
    52
	
sl@0
    53
	if(globalData == NULL)
sl@0
    54
		{
sl@0
    55
		globalData = new (ELeave) CDataGlobal;
sl@0
    56
		CleanupStack::PushL(globalData);
sl@0
    57
		globalData->iAdvSetReferenceCount = 0;
sl@0
    58
		globalData->iTestCamAdvSet = new (ELeave) CTestCamAdvSet(aOwner);
sl@0
    59
		CleanupStack::PushL(globalData->iTestCamAdvSet);
sl@0
    60
		globalData->iTestCamAdvSet->ConstructL();
sl@0
    61
		globalData->iTestCamAdvSet->iRefCount = 1;
sl@0
    62
		User::LeaveIfError(Dll::SetTls(globalData));
sl@0
    63
		CleanupStack::Pop(globalData->iTestCamAdvSet);
sl@0
    64
		CleanupStack::Pop(globalData);
sl@0
    65
		return globalData->iTestCamAdvSet;
sl@0
    66
		}
sl@0
    67
	else
sl@0
    68
		{
sl@0
    69
		if(globalData->iTestCamAdvSet == NULL)
sl@0
    70
			{
sl@0
    71
			globalData->iAdvSetReferenceCount = 0;
sl@0
    72
			globalData->iTestCamAdvSet = new (ELeave) CTestCamAdvSet(aOwner);
sl@0
    73
			CleanupStack::PushL(globalData->iTestCamAdvSet);
sl@0
    74
			globalData->iTestCamAdvSet->ConstructL();
sl@0
    75
			globalData->iTestCamAdvSet->iRefCount = 1;
sl@0
    76
			User::LeaveIfError(Dll::SetTls(globalData));
sl@0
    77
			CleanupStack::Pop(globalData->iTestCamAdvSet);
sl@0
    78
			return globalData->iTestCamAdvSet;
sl@0
    79
			}
sl@0
    80
			
sl@0
    81
		CTestCamAdvSet* self = globalData->iTestCamAdvSet;
sl@0
    82
		
sl@0
    83
		globalData->iAdvSetReferenceCount++;
sl@0
    84
		self->iRefCount = globalData->iAdvSetReferenceCount + 1;
sl@0
    85
		if (globalData->iAdvSetReferenceCount == KNumOfAdvSetExtensions-1 )
sl@0
    86
			{
sl@0
    87
			globalData->iTestCamAdvSet = NULL;
sl@0
    88
			if(!globalData->iTestCamPresets && !globalData->iTestCamSnapshot && !globalData->iTestCamImgProc)
sl@0
    89
				{
sl@0
    90
				delete globalData;
sl@0
    91
				Dll::FreeTls();
sl@0
    92
				}
sl@0
    93
			else
sl@0
    94
				{
sl@0
    95
				User::LeaveIfError(Dll::SetTls(globalData));
sl@0
    96
				}
sl@0
    97
			}
sl@0
    98
		else
sl@0
    99
			{
sl@0
   100
			User::LeaveIfError(Dll::SetTls(globalData));
sl@0
   101
			}
sl@0
   102
		return self;		
sl@0
   103
		}
sl@0
   104
	}
sl@0
   105
sl@0
   106
void CTestCamAdvSet::Release()
sl@0
   107
	{
sl@0
   108
	iRefCount--; 
sl@0
   109
	if(iRefCount == 0)
sl@0
   110
		{
sl@0
   111
		iOwner.iAdvSettingsImpl = NULL;
sl@0
   112
		delete this;
sl@0
   113
		}
sl@0
   114
	}	
sl@0
   115
	
sl@0
   116
void CTestCamAdvSet::Init()
sl@0
   117
	{
sl@0
   118
	for(TUint i=0; i< KNumAvailableCameras; i++)
sl@0
   119
		{
sl@0
   120
		iCameraTypes[i] = CCamera::CCameraAdvancedSettings::ECameraPluggable;
sl@0
   121
		}
sl@0
   122
	
sl@0
   123
	iFocusDistance = KDefaultFocusDistance;
sl@0
   124
	iIsoRate = KDefaultIsoRate;
sl@0
   125
	iISORateType = CCamera::CCameraAdvancedSettings::EISOManual;
sl@0
   126
	iAperture = KDefaultAperture;
sl@0
   127
	iShutterSpeed = KDefaultShutterSpeed;
sl@0
   128
	}
sl@0
   129
	
sl@0
   130
void CTestCamAdvSet::ConstructL()
sl@0
   131
	{
sl@0
   132
	iSupportedISORates.Reset();
sl@0
   133
	iSupportedISORates.AppendL(KDefaultIsoRate);
sl@0
   134
	
sl@0
   135
	iSupportedApertures.Reset();
sl@0
   136
	iSupportedApertures.AppendL(KDefaultAperture);
sl@0
   137
	
sl@0
   138
	iSupportedShutterSpeeds.Reset();
sl@0
   139
	iSupportedShutterSpeeds.AppendL(KDefaultShutterSpeed);
sl@0
   140
	}
sl@0
   141
sl@0
   142
CCamera::CCameraAdvancedSettings::TCameraType CTestCamAdvSet::CameraType() const
sl@0
   143
	{
sl@0
   144
	return CCamera::CCameraAdvancedSettings::ECameraPluggable;	
sl@0
   145
	}
sl@0
   146
sl@0
   147
CCamera::CCameraAdvancedSettings::TCameraType CTestCamAdvSet::CameraType(TInt aCameraIndex) const
sl@0
   148
	{
sl@0
   149
	if (aCameraIndex >= KNumAvailableCameras || aCameraIndex < 0)
sl@0
   150
		{
sl@0
   151
		return CCamera::CCameraAdvancedSettings::ECameraUnknown;	
sl@0
   152
		}
sl@0
   153
	else 
sl@0
   154
		{
sl@0
   155
		return iCameraTypes[aCameraIndex];	
sl@0
   156
		}
sl@0
   157
	}
sl@0
   158
	
sl@0
   159
TBool CTestCamAdvSet::IsCameraPresent() const
sl@0
   160
	{
sl@0
   161
	return ETrue;
sl@0
   162
	}
sl@0
   163
sl@0
   164
TBool CTestCamAdvSet::IsCameraPresent(TInt aCameraIndex) const
sl@0
   165
	{
sl@0
   166
	if (aCameraIndex >= KNumAvailableCameras || aCameraIndex < 0)
sl@0
   167
		{
sl@0
   168
		return EFalse;	
sl@0
   169
		}
sl@0
   170
	else 
sl@0
   171
		{
sl@0
   172
		return ETrue;	
sl@0
   173
		}
sl@0
   174
	}
sl@0
   175
	
sl@0
   176
TInt CTestCamAdvSet::CameraIndex() const
sl@0
   177
	{
sl@0
   178
	return iOwner.iCameraIndex;
sl@0
   179
	}
sl@0
   180
	
sl@0
   181
TInt CTestCamAdvSet::SupportedStabilizationModes() const
sl@0
   182
	{
sl@0
   183
	return KFeatureNotSupported;
sl@0
   184
	}
sl@0
   185
	
sl@0
   186
CCamera::CCameraAdvancedSettings::TStabilizationMode CTestCamAdvSet::StabilizationMode() const
sl@0
   187
	{
sl@0
   188
	return CCamera::CCameraAdvancedSettings::EStabilizationModeOff;
sl@0
   189
	}
sl@0
   190
	
sl@0
   191
void CTestCamAdvSet::SetStabilizationMode(CCamera::CCameraAdvancedSettings::TStabilizationMode aStabilizationMode)
sl@0
   192
	{	
sl@0
   193
	TInt eventError = KErrNotSupported;
sl@0
   194
	if(aStabilizationMode == CCamera::CCameraAdvancedSettings::EStabilizationModeOff)
sl@0
   195
		{
sl@0
   196
		eventError = KErrAlreadyExists;
sl@0
   197
		}
sl@0
   198
		
sl@0
   199
	TECAMEvent ecamevent(KUidECamEventCameraSettingStabilizationMode, eventError);
sl@0
   200
	
sl@0
   201
	iOwner.iECamEvent = ecamevent;
sl@0
   202
	iOwner.iHandleEventAsync.CallBack();
sl@0
   203
	}
sl@0
   204
	
sl@0
   205
TInt CTestCamAdvSet::SupportedFocusModes() const
sl@0
   206
	{
sl@0
   207
	return KFeatureNotSupported;
sl@0
   208
	}
sl@0
   209
	
sl@0
   210
CCamera::CCameraAdvancedSettings::TFocusMode CTestCamAdvSet::FocusMode() const
sl@0
   211
	{
sl@0
   212
	return CCamera::CCameraAdvancedSettings::EFocusModeAuto;	
sl@0
   213
	}
sl@0
   214
	
sl@0
   215
void CTestCamAdvSet::SetFocusMode(CCamera::CCameraAdvancedSettings::TFocusMode aFocusMode)
sl@0
   216
	{
sl@0
   217
	TInt eventError = KErrNotSupported;
sl@0
   218
	if(aFocusMode == CCamera::CCameraAdvancedSettings::EFocusModeAuto)
sl@0
   219
		{
sl@0
   220
		eventError = KErrAlreadyExists;
sl@0
   221
		}
sl@0
   222
		
sl@0
   223
	TECAMEvent ecamevent(KUidECamEventCameraSettingFocusMode, eventError);
sl@0
   224
	
sl@0
   225
	iOwner.iECamEvent = ecamevent;
sl@0
   226
	iOwner.iHandleEventAsync.CallBack();
sl@0
   227
	}
sl@0
   228
	
sl@0
   229
TInt CTestCamAdvSet::SupportedFocusRanges() const
sl@0
   230
	{
sl@0
   231
	return KFeatureNotSupported;
sl@0
   232
	}
sl@0
   233
	
sl@0
   234
CCamera::CCameraAdvancedSettings::TFocusRange CTestCamAdvSet::FocusRange() const
sl@0
   235
	{
sl@0
   236
	return CCamera::CCameraAdvancedSettings::EFocusRangeAuto;
sl@0
   237
	}
sl@0
   238
	
sl@0
   239
void CTestCamAdvSet::SetFocusRange(CCamera::CCameraAdvancedSettings::TFocusRange aFocusRange)
sl@0
   240
	{
sl@0
   241
	TInt eventError = KErrNotSupported;
sl@0
   242
	if(aFocusRange == CCamera::CCameraAdvancedSettings::EFocusRangeAuto)
sl@0
   243
		{
sl@0
   244
		eventError = KErrAlreadyExists;
sl@0
   245
		}
sl@0
   246
		
sl@0
   247
	TECAMEvent ecamevent1(KUidECamEventCameraSettingFocusRange2, eventError);
sl@0
   248
	TECAMEvent ecamevent2(KUidECamEventCameraSettingFocusRange, eventError);
sl@0
   249
	
sl@0
   250
	iOwner.iECamEvent = ecamevent1;
sl@0
   251
	iOwner.iHandleEventAsync.CallBack();
sl@0
   252
	
sl@0
   253
	iOwner.iECamEvent = ecamevent2;
sl@0
   254
	iOwner.iHandleEventAsync.CallBack();
sl@0
   255
	}
sl@0
   256
	
sl@0
   257
TInt CTestCamAdvSet::SupportedAutoFocusTypes() const
sl@0
   258
	{
sl@0
   259
	return KFeatureNotSupported;
sl@0
   260
	}
sl@0
   261
	
sl@0
   262
CCamera::CCameraAdvancedSettings::TAutoFocusType CTestCamAdvSet::AutoFocusType() const
sl@0
   263
	{
sl@0
   264
    return CCamera::CCameraAdvancedSettings::EAutoFocusTypeOff;
sl@0
   265
	}
sl@0
   266
	
sl@0
   267
void CTestCamAdvSet::SetAutoFocusType(CCamera::CCameraAdvancedSettings::TAutoFocusType aAutoFocusType)
sl@0
   268
	{
sl@0
   269
	TInt eventError = KErrNotSupported;
sl@0
   270
	if(aAutoFocusType == CCamera::CCameraAdvancedSettings::EAutoFocusTypeOff)
sl@0
   271
		{
sl@0
   272
		eventError = KErrAlreadyExists;
sl@0
   273
		}
sl@0
   274
		
sl@0
   275
	TECAMEvent ecamevent1(KUidECamEventCameraSettingAutoFocusType2, eventError);
sl@0
   276
	TECAMEvent ecamevent2(KUidECamEventCameraSettingAutoFocusType, eventError);
sl@0
   277
	
sl@0
   278
	iOwner.iECamEvent = ecamevent1;
sl@0
   279
	iOwner.iHandleEventAsync.CallBack();
sl@0
   280
	
sl@0
   281
	iOwner.iECamEvent = ecamevent2;
sl@0
   282
	iOwner.iHandleEventAsync.CallBack();
sl@0
   283
	}
sl@0
   284
	
sl@0
   285
TInt CTestCamAdvSet::SupportedAutoFocusAreas() const
sl@0
   286
	{
sl@0
   287
	return KFeatureNotSupported;
sl@0
   288
	}
sl@0
   289
	
sl@0
   290
CCamera::CCameraAdvancedSettings::TAutoFocusArea CTestCamAdvSet::AutoFocusArea() const
sl@0
   291
	{
sl@0
   292
	return CCamera::CCameraAdvancedSettings::EAutoFocusTypeAuto;
sl@0
   293
	}
sl@0
   294
	
sl@0
   295
void CTestCamAdvSet::SetAutoFocusArea(CCamera::CCameraAdvancedSettings::TAutoFocusArea aAutoFocusArea)
sl@0
   296
	{
sl@0
   297
	TInt eventError = KErrNotSupported;
sl@0
   298
	if(aAutoFocusArea == CCamera::CCameraAdvancedSettings::EAutoFocusTypeAuto)
sl@0
   299
		{
sl@0
   300
		eventError = KErrAlreadyExists;
sl@0
   301
		}
sl@0
   302
		
sl@0
   303
	TECAMEvent ecamevent(KUidECamEventCameraSettingAutoFocusArea, eventError);
sl@0
   304
	
sl@0
   305
	iOwner.iECamEvent = ecamevent;
sl@0
   306
	iOwner.iHandleEventAsync.CallBack();
sl@0
   307
	}
sl@0
   308
	
sl@0
   309
TInt CTestCamAdvSet::FocusDistance() const
sl@0
   310
	{
sl@0
   311
	return iFocusDistance;
sl@0
   312
	}
sl@0
   313
	
sl@0
   314
void CTestCamAdvSet::SetFocusDistance(TInt aDistance) 
sl@0
   315
	{
sl@0
   316
	TInt eventError = KErrNone;
sl@0
   317
	if(aDistance < 0)
sl@0
   318
		{
sl@0
   319
		eventError = KErrNotSupported;
sl@0
   320
		}
sl@0
   321
	else
sl@0
   322
		{
sl@0
   323
		iFocusDistance = aDistance;
sl@0
   324
		}
sl@0
   325
		
sl@0
   326
	TECAMEvent ecamevent(KUidECamEventCameraSettingFocusDistance, eventError);
sl@0
   327
	
sl@0
   328
	iOwner.iECamEvent = ecamevent;
sl@0
   329
	iOwner.iHandleEventAsync.CallBack();
sl@0
   330
	}
sl@0
   331
	
sl@0
   332
TInt CTestCamAdvSet::GetMinFocalLength() const
sl@0
   333
	{
sl@0
   334
	return KErrNotSupported;
sl@0
   335
	}
sl@0
   336
	
sl@0
   337
void CTestCamAdvSet::GetSupportedIsoRatesL(RArray<TInt>& aSupportedIsoRates) const
sl@0
   338
	{
sl@0
   339
	if(iSupportedISORates.Count() == 0)
sl@0
   340
		{
sl@0
   341
		User::Leave(KErrNotSupported);
sl@0
   342
		}
sl@0
   343
	
sl@0
   344
	for(TInt index=0; index < iSupportedISORates.Count(); index++)
sl@0
   345
		{
sl@0
   346
		aSupportedIsoRates.AppendL(iSupportedISORates[index]);
sl@0
   347
		}
sl@0
   348
	}
sl@0
   349
	
sl@0
   350
TInt CTestCamAdvSet::IsoRate() const
sl@0
   351
	{
sl@0
   352
	return iIsoRate; 
sl@0
   353
	}
sl@0
   354
sl@0
   355
void CTestCamAdvSet::SetIsoRate(TInt aRate)
sl@0
   356
	{
sl@0
   357
	TInt eventError = KErrNone;
sl@0
   358
	if(iSupportedISORates.Find(aRate) == KErrNotFound)
sl@0
   359
		{
sl@0
   360
		eventError = KErrECamParameterNotInRange;
sl@0
   361
		}
sl@0
   362
	else 
sl@0
   363
		{
sl@0
   364
		//set the ISO type to Manual
sl@0
   365
		iISORateType = CCamera::CCameraAdvancedSettings::EISOManual;			
sl@0
   366
		iIsoRate = aRate;
sl@0
   367
		}
sl@0
   368
		
sl@0
   369
	TECAMEvent ecamevent(KUidECamEventCameraSettingIsoRate, eventError);
sl@0
   370
	
sl@0
   371
	iOwner.iECamEvent = ecamevent;
sl@0
   372
	iOwner.iHandleEventAsync.CallBack();
sl@0
   373
	}
sl@0
   374
sl@0
   375
void CTestCamAdvSet::GetSupportedISORateTypeL(TInt& aSupportedISORateTypes) const
sl@0
   376
	{
sl@0
   377
	aSupportedISORateTypes = KSupportedISORateTypes;	
sl@0
   378
	}
sl@0
   379
		
sl@0
   380
void CTestCamAdvSet::SetISORate(CCamera::CCameraAdvancedSettings::TISORateType aISORateType, TInt aParam)
sl@0
   381
	{
sl@0
   382
	TInt eventError = KErrNone;
sl@0
   383
	
sl@0
   384
	if(!(aISORateType & KSupportedISORateTypes) || iSupportedISORates.Count() == 0)
sl@0
   385
		{
sl@0
   386
		eventError = KErrNotSupported;
sl@0
   387
		}
sl@0
   388
	else
sl@0
   389
		{
sl@0
   390
		switch(aISORateType)
sl@0
   391
			{
sl@0
   392
			case CCamera::CCameraAdvancedSettings::EISOManual:
sl@0
   393
				{
sl@0
   394
				if(iSupportedISORates.Find(aParam) == KErrNotFound)
sl@0
   395
					{
sl@0
   396
					eventError = KErrECamParameterNotInRange;
sl@0
   397
					}
sl@0
   398
				else
sl@0
   399
					{
sl@0
   400
					iISORateType = aISORateType;
sl@0
   401
					if(aParam == iIsoRate)
sl@0
   402
						{
sl@0
   403
						eventError = KErrAlreadyExists;
sl@0
   404
						}
sl@0
   405
					else
sl@0
   406
						{
sl@0
   407
						iIsoRate = aParam;
sl@0
   408
						}
sl@0
   409
					}
sl@0
   410
				break;
sl@0
   411
				}
sl@0
   412
			case CCamera::CCameraAdvancedSettings::EISOAutoUnPrioritised:
sl@0
   413
				{
sl@0
   414
				eventError = KErrNotSupported;
sl@0
   415
				break;	
sl@0
   416
				}
sl@0
   417
			case CCamera::CCameraAdvancedSettings::EISOAutoISOPrioritised:
sl@0
   418
				{
sl@0
   419
				eventError = KErrNotSupported;
sl@0
   420
				break;
sl@0
   421
				}
sl@0
   422
			case CCamera::CCameraAdvancedSettings::EISOAutoShutterSpeedPrioritised:
sl@0
   423
				{
sl@0
   424
				eventError = KErrNotSupported;
sl@0
   425
				break;	
sl@0
   426
				}
sl@0
   427
			case CCamera::CCameraAdvancedSettings::EISOAutoAperturePrioritised:
sl@0
   428
				{
sl@0
   429
				eventError = KErrNotSupported;
sl@0
   430
				break;	
sl@0
   431
				}
sl@0
   432
			default:
sl@0
   433
				eventError = KErrNotSupported;
sl@0
   434
			}
sl@0
   435
		}
sl@0
   436
			
sl@0
   437
	TECAMEvent ecamevent(KUidECamEventCameraSettingIsoRateType, eventError);
sl@0
   438
	
sl@0
   439
	iOwner.iECamEvent = ecamevent;
sl@0
   440
	iOwner.iHandleEventAsync.CallBack();
sl@0
   441
	}
sl@0
   442
sl@0
   443
void CTestCamAdvSet::GetISORateL(CCamera::CCameraAdvancedSettings::TISORateType& aISORateType, TInt& /*aParam*/, TInt& aISORate) const
sl@0
   444
	{
sl@0
   445
	//If camera has no ISO rate supported, then leave
sl@0
   446
	if(iSupportedISORates.Count() == 0)	
sl@0
   447
		{
sl@0
   448
		User::Leave(KErrNotSupported);
sl@0
   449
		}
sl@0
   450
		
sl@0
   451
	aISORateType = iISORateType;
sl@0
   452
	aISORate = iIsoRate;
sl@0
   453
//	aParam is redundant for manual ISO.
sl@0
   454
	}
sl@0
   455
	
sl@0
   456
void CTestCamAdvSet::GetAperturesL(RArray<TInt>& aFStops, TValueInfo& aInfo) const
sl@0
   457
	{
sl@0
   458
	if(iSupportedApertures.Count() == 0)
sl@0
   459
		{
sl@0
   460
		aFStops.Reset();
sl@0
   461
		aInfo = ENotActive;
sl@0
   462
		}
sl@0
   463
	
sl@0
   464
	for(TInt index=0; index < iSupportedApertures.Count(); index++)
sl@0
   465
		{
sl@0
   466
		aFStops.AppendL(iSupportedApertures[index]);
sl@0
   467
		}
sl@0
   468
		
sl@0
   469
	aInfo = EDiscreteSteps;
sl@0
   470
	}
sl@0
   471
	
sl@0
   472
TInt CTestCamAdvSet::Aperture() const
sl@0
   473
	{
sl@0
   474
	return iAperture;
sl@0
   475
	}
sl@0
   476
sl@0
   477
void CTestCamAdvSet::SetAperture(TInt aFStop)
sl@0
   478
	{	
sl@0
   479
	TInt eventError = KErrNone;
sl@0
   480
	if(iSupportedApertures.Find(aFStop) == KErrNotFound)
sl@0
   481
		{
sl@0
   482
		eventError = KErrECamParameterNotInRange;
sl@0
   483
		}
sl@0
   484
	else 
sl@0
   485
		{
sl@0
   486
		iAperture = aFStop;
sl@0
   487
		}
sl@0
   488
		
sl@0
   489
	TECAMEvent ecamevent(KUidECamEventCameraSettingAperture, eventError);
sl@0
   490
	
sl@0
   491
	iOwner.iECamEvent = ecamevent;
sl@0
   492
	iOwner.iHandleEventAsync.CallBack();
sl@0
   493
	}	
sl@0
   494
	
sl@0
   495
void CTestCamAdvSet::GetShutterSpeedsL(RArray<TInt>& aShutterSpeeds, TValueInfo& aInfo) const
sl@0
   496
	{
sl@0
   497
	if(iSupportedShutterSpeeds.Count() == 0)
sl@0
   498
		{
sl@0
   499
		aShutterSpeeds.Reset();
sl@0
   500
		aInfo = ENotActive;
sl@0
   501
		}
sl@0
   502
	
sl@0
   503
	for(TInt index=0; index < iSupportedShutterSpeeds.Count(); index++)
sl@0
   504
		{
sl@0
   505
		aShutterSpeeds.AppendL(iSupportedShutterSpeeds[index]);
sl@0
   506
		aInfo = EDiscreteSteps;
sl@0
   507
		}
sl@0
   508
	}
sl@0
   509
	
sl@0
   510
TInt CTestCamAdvSet::ShutterSpeed() const
sl@0
   511
	{
sl@0
   512
	return iShutterSpeed;
sl@0
   513
	}
sl@0
   514
	
sl@0
   515
void CTestCamAdvSet::SetShutterSpeed(TInt aShutterSpeed)
sl@0
   516
	{
sl@0
   517
	TInt eventError = KErrNone;
sl@0
   518
	if(iSupportedShutterSpeeds.Find(aShutterSpeed) == KErrNotFound)
sl@0
   519
		{
sl@0
   520
		eventError = KErrECamParameterNotInRange;
sl@0
   521
		}
sl@0
   522
	else 
sl@0
   523
		{
sl@0
   524
		iShutterSpeed = aShutterSpeed;
sl@0
   525
		}
sl@0
   526
		
sl@0
   527
	TECAMEvent ecamevent(KUidECamEventCameraSettingShutterSpeed, eventError);
sl@0
   528
	
sl@0
   529
	iOwner.iECamEvent = ecamevent;
sl@0
   530
	iOwner.iHandleEventAsync.CallBack();
sl@0
   531
	}
sl@0
   532
	
sl@0
   533
TInt CTestCamAdvSet::SupportedMeteringModes() const
sl@0
   534
	{
sl@0
   535
	return KFeatureNotSupported;
sl@0
   536
	}
sl@0
   537
	
sl@0
   538
CCamera::CCameraAdvancedSettings::TMeteringMode CTestCamAdvSet::MeteringMode() const
sl@0
   539
	{
sl@0
   540
	return CCamera::CCameraAdvancedSettings::EMeteringModeAuto;
sl@0
   541
	}
sl@0
   542
	
sl@0
   543
void CTestCamAdvSet::SetMeteringMode(CCamera::CCameraAdvancedSettings::TMeteringMode aMeteringMode)
sl@0
   544
	{
sl@0
   545
	TInt eventError = KErrNotSupported;
sl@0
   546
	if(aMeteringMode == CCamera::CCameraAdvancedSettings::EMeteringModeAuto)
sl@0
   547
		{
sl@0
   548
		eventError = KErrAlreadyExists;
sl@0
   549
		}
sl@0
   550
		
sl@0
   551
	TECAMEvent ecamevent(KUidECamEventCameraSettingMeteringMode, eventError);
sl@0
   552
	
sl@0
   553
	iOwner.iECamEvent = ecamevent;
sl@0
   554
	iOwner.iHandleEventAsync.CallBack();
sl@0
   555
	}
sl@0
   556
	
sl@0
   557
TInt CTestCamAdvSet::SupportedDriveModes() const
sl@0
   558
	{
sl@0
   559
	return KSupportedDriveModes;
sl@0
   560
	}
sl@0
   561
	
sl@0
   562
CCamera::CCameraAdvancedSettings::TDriveMode CTestCamAdvSet::DriveMode() const
sl@0
   563
	{
sl@0
   564
	return iOwner.iDriveMode;
sl@0
   565
	}
sl@0
   566
	
sl@0
   567
void CTestCamAdvSet::SetDriveMode(CCamera::CCameraAdvancedSettings::TDriveMode aDriveMode)
sl@0
   568
	{
sl@0
   569
	TInt eventError = KErrNone;
sl@0
   570
	if(iOwner.iVideoCaptureActive || iOwner.iImageCaptureActive)
sl@0
   571
		{
sl@0
   572
		eventError = KErrNotReady;
sl@0
   573
		}
sl@0
   574
	else
sl@0
   575
		{
sl@0
   576
		if(!(aDriveMode & KSupportedDriveModes))
sl@0
   577
			{
sl@0
   578
			eventError = KErrNotSupported;
sl@0
   579
			}	
sl@0
   580
		else
sl@0
   581
			{
sl@0
   582
			if(eventError == KErrNone)
sl@0
   583
				{
sl@0
   584
				iOwner.iDriveMode = aDriveMode;
sl@0
   585
				}	
sl@0
   586
			}
sl@0
   587
		}
sl@0
   588
	
sl@0
   589
	TECAMEvent ecamevent(KUidECamEventCameraSettingDriveMode, eventError);
sl@0
   590
	
sl@0
   591
	iOwner.iECamEvent = ecamevent;
sl@0
   592
	iOwner.iHandleEventAsync.CallBack();
sl@0
   593
	}
sl@0
   594
	
sl@0
   595
TInt CTestCamAdvSet::SupportedBracketModes() const
sl@0
   596
	{
sl@0
   597
	return KFeatureNotSupported;
sl@0
   598
	}
sl@0
   599
	
sl@0
   600
CCamera::CCameraAdvancedSettings::TBracketMode CTestCamAdvSet::BracketMode() const
sl@0
   601
	{
sl@0
   602
	return CCamera::CCameraAdvancedSettings::EBracketModeOff;
sl@0
   603
	}
sl@0
   604
	
sl@0
   605
void CTestCamAdvSet::SetBracketMode(CCamera::CCameraAdvancedSettings::TBracketMode aBracketMode)
sl@0
   606
	{
sl@0
   607
	TInt eventError = KErrNotSupported;
sl@0
   608
	if(aBracketMode == CCamera::CCameraAdvancedSettings::EBracketModeOff)
sl@0
   609
		{
sl@0
   610
		eventError = KErrAlreadyExists;
sl@0
   611
		}
sl@0
   612
		
sl@0
   613
	TECAMEvent ecamevent(KUidECamEventCameraSettingBracketMode, eventError);
sl@0
   614
	
sl@0
   615
	iOwner.iECamEvent = ecamevent;
sl@0
   616
	iOwner.iHandleEventAsync.CallBack();
sl@0
   617
	}
sl@0
   618
	
sl@0
   619
TInt CTestCamAdvSet::SupportedBracketParameters() const
sl@0
   620
	{
sl@0
   621
	return KFeatureNotSupported;
sl@0
   622
	}
sl@0
   623
	
sl@0
   624
CCamera::CCameraAdvancedSettings::TBracketParameter CTestCamAdvSet::BracketParameter() const
sl@0
   625
	{
sl@0
   626
	return CCamera::CCameraAdvancedSettings::EBracketParameterNone;
sl@0
   627
	}
sl@0
   628
	
sl@0
   629
void CTestCamAdvSet::SetBracketParameter(CCamera::CCameraAdvancedSettings::TBracketParameter aBracketParameter)
sl@0
   630
	{
sl@0
   631
	TInt eventError = KErrNotSupported;
sl@0
   632
	if(aBracketParameter == CCamera::CCameraAdvancedSettings::EBracketParameterNone)
sl@0
   633
		{
sl@0
   634
		eventError = KErrAlreadyExists;
sl@0
   635
		}
sl@0
   636
		
sl@0
   637
	TECAMEvent ecamevent(KUidECamEventCameraSettingBracketParameter, eventError);
sl@0
   638
	
sl@0
   639
	iOwner.iECamEvent = ecamevent;
sl@0
   640
	iOwner.iHandleEventAsync.CallBack();
sl@0
   641
	}
sl@0
   642
	
sl@0
   643
TInt CTestCamAdvSet::SupportedBracketSteps() const
sl@0
   644
	{
sl@0
   645
	return KFeatureNotSupported;
sl@0
   646
	}
sl@0
   647
	
sl@0
   648
CCamera::CCameraAdvancedSettings::TBracketStep CTestCamAdvSet::BracketStep() const
sl@0
   649
	{
sl@0
   650
	return CCamera::CCameraAdvancedSettings::EBracketStepNonConfig;
sl@0
   651
	}
sl@0
   652
	
sl@0
   653
void CTestCamAdvSet::SetBracketStep(CCamera::CCameraAdvancedSettings::TBracketStep aBracketStep)
sl@0
   654
	{
sl@0
   655
	TInt eventError = KErrNotSupported;
sl@0
   656
	if(aBracketStep == CCamera::CCameraAdvancedSettings::EBracketStepNonConfig)
sl@0
   657
		{
sl@0
   658
		eventError = KErrAlreadyExists;
sl@0
   659
		}
sl@0
   660
		
sl@0
   661
	TECAMEvent ecamevent(KUidECamEventCameraSettingBracketStep, eventError);
sl@0
   662
	
sl@0
   663
	iOwner.iECamEvent = ecamevent;
sl@0
   664
	iOwner.iHandleEventAsync.CallBack();
sl@0
   665
	}
sl@0
   666
	
sl@0
   667
void CTestCamAdvSet::GetBracketMerge(TInt& aStartIndex, TInt& aFrames) const
sl@0
   668
	{
sl@0
   669
	aStartIndex = KFeatureNotSupported;
sl@0
   670
	aFrames     = KFeatureNotSupported;
sl@0
   671
	}
sl@0
   672
	
sl@0
   673
void CTestCamAdvSet::SetBracketMerge(TInt /*aStartIndex*/ , TInt /*aFrames*/)
sl@0
   674
	{
sl@0
   675
	TECAMEvent ecamevent(KUidECamEventBracketMerge, KErrNotSupported);
sl@0
   676
	
sl@0
   677
	iOwner.iECamEvent = ecamevent;
sl@0
   678
	iOwner.iHandleEventAsync.CallBack();
sl@0
   679
	}
sl@0
   680
	
sl@0
   681
TInt CTestCamAdvSet::SupportedFlashModes() const
sl@0
   682
	{
sl@0
   683
	return KFeatureNotSupported;
sl@0
   684
	}
sl@0
   685
	
sl@0
   686
CCamera::TFlash CTestCamAdvSet::FlashMode() const
sl@0
   687
	{
sl@0
   688
	return CCamera::EFlashNone;
sl@0
   689
	}
sl@0
   690
	
sl@0
   691
void CTestCamAdvSet::SetFlashMode(CCamera::TFlash /*aMode*/)
sl@0
   692
	{
sl@0
   693
    TECAMEvent ecamevent(KUidECamEventCameraSettingFlashMode, KErrNotSupported);
sl@0
   694
	
sl@0
   695
	iOwner.iECamEvent = ecamevent;
sl@0
   696
	iOwner.iHandleEventAsync.CallBack();
sl@0
   697
	}
sl@0
   698
	
sl@0
   699
TBool CTestCamAdvSet::RedEyeReduceOn() const
sl@0
   700
	{
sl@0
   701
	return KDefaultRedEyeReduce;
sl@0
   702
	}
sl@0
   703
	
sl@0
   704
void CTestCamAdvSet::SetRedEyeReduceOn(TBool /*aState*/)
sl@0
   705
	{
sl@0
   706
	TECAMEvent ecamevent(KUidECamEventCameraSettingFlashRedEyeReduce, KErrNotSupported);
sl@0
   707
						 
sl@0
   708
	iOwner.iECamEvent = ecamevent;
sl@0
   709
	iOwner.iHandleEventAsync.CallBack();
sl@0
   710
	}
sl@0
   711
	
sl@0
   712
void CTestCamAdvSet::GetFlashCompensationStepsL(RArray<TInt>& aFlashCompensationSteps, TValueInfo& aInfo) const
sl@0
   713
	{
sl@0
   714
	aFlashCompensationSteps.Reset();
sl@0
   715
	aInfo = ENotActive;
sl@0
   716
	}
sl@0
   717
	
sl@0
   718
TInt CTestCamAdvSet::FlashCompensationStep() const
sl@0
   719
	{
sl@0
   720
	return KFlashCompensationStep;
sl@0
   721
	}
sl@0
   722
sl@0
   723
TInt CTestCamAdvSet::GetFlashCompensationStep(TInt& aFlashCompensationStep) const
sl@0
   724
	{
sl@0
   725
	aFlashCompensationStep = KFlashCompensationStep;
sl@0
   726
	return KErrNone;
sl@0
   727
	}
sl@0
   728
	
sl@0
   729
void CTestCamAdvSet::GetFlashCompensationRangeInSteps(TInt& aNegativeCompensation, TInt& aPositiveCompensation) const
sl@0
   730
	{
sl@0
   731
	aNegativeCompensation = KFlashCompensationStep;
sl@0
   732
	aPositiveCompensation = KFlashCompensationStep;
sl@0
   733
	}
sl@0
   734
	
sl@0
   735
void CTestCamAdvSet::SetFlashCompensationStep(TInt /*aFlashCompensationStep*/)
sl@0
   736
	{
sl@0
   737
	TECAMEvent ecamevent(KUidECamEventCameraSettingFlashCompensationStep, KErrNotSupported);
sl@0
   738
	
sl@0
   739
	iOwner.iECamEvent = ecamevent;
sl@0
   740
	iOwner.iHandleEventAsync.CallBack();
sl@0
   741
	}
sl@0
   742
	
sl@0
   743
TInt CTestCamAdvSet::FlashCompensation() const
sl@0
   744
	{
sl@0
   745
	return KFlashCompensationStep;
sl@0
   746
	}
sl@0
   747
	
sl@0
   748
TInt CTestCamAdvSet::GetFlashCompensation(TInt& aFlashCompensation) const
sl@0
   749
	{
sl@0
   750
	aFlashCompensation = KFlashCompensationStep;
sl@0
   751
	return KErrNone;
sl@0
   752
	}
sl@0
   753
	
sl@0
   754
void CTestCamAdvSet::SetFlashCompensation(TInt /*aFlashCompensation*/)
sl@0
   755
	{
sl@0
   756
	TECAMEvent ecamevent(KUidECamEventCameraSettingFlashCompensation, KErrNotSupported);
sl@0
   757
	
sl@0
   758
	iOwner.iECamEvent = ecamevent;
sl@0
   759
	iOwner.iHandleEventAsync.CallBack();
sl@0
   760
	}
sl@0
   761
	
sl@0
   762
TBool CTestCamAdvSet::IsExternalFlashPresent() const
sl@0
   763
	{
sl@0
   764
	return KExternalFlashPresentState;
sl@0
   765
	}
sl@0
   766
	
sl@0
   767
void CTestCamAdvSet::GetManualFlashPowerLevelsL(RArray<TInt>& aManualFlashPowerLevels, TValueInfo& aInfo) const
sl@0
   768
	{
sl@0
   769
	aManualFlashPowerLevels.Reset();
sl@0
   770
	aInfo = ENotActive;
sl@0
   771
	}
sl@0
   772
	
sl@0
   773
TInt CTestCamAdvSet::ManualFlashPowerLevel() const
sl@0
   774
	{
sl@0
   775
	return KErrNotSupported;
sl@0
   776
	}
sl@0
   777
	
sl@0
   778
void CTestCamAdvSet::SetManualFlashPowerLevel(TInt /*aManualFlashPowerLevel*/)
sl@0
   779
	{
sl@0
   780
	TECAMEvent ecamevent(KUidECamEventCameraSettingFlashManualPower, KErrNotSupported);
sl@0
   781
	
sl@0
   782
	iOwner.iECamEvent = ecamevent;
sl@0
   783
	iOwner.iHandleEventAsync.CallBack();
sl@0
   784
	}
sl@0
   785
	
sl@0
   786
TInt CTestCamAdvSet::SupportedExposureModes() const
sl@0
   787
	{
sl@0
   788
	return CCamera::EExposureAuto;
sl@0
   789
	}
sl@0
   790
	
sl@0
   791
CCamera::TExposure CTestCamAdvSet::ExposureMode() const
sl@0
   792
	{
sl@0
   793
	return CCamera::EExposureAuto;
sl@0
   794
	}
sl@0
   795
	
sl@0
   796
void CTestCamAdvSet::SetExposureMode(CCamera::TExposure aExposureMode)
sl@0
   797
	{
sl@0
   798
	TInt eventError = KErrNotSupported;
sl@0
   799
	if(aExposureMode == CCamera::EExposureAuto)
sl@0
   800
		{
sl@0
   801
		eventError = KErrAlreadyExists;
sl@0
   802
		}
sl@0
   803
		
sl@0
   804
	TECAMEvent ecamevent(KUidECamEventCameraSettingExposureMode, eventError);
sl@0
   805
	
sl@0
   806
	iOwner.iECamEvent = ecamevent;
sl@0
   807
	iOwner.iHandleEventAsync.CallBack();
sl@0
   808
	}
sl@0
   809
	
sl@0
   810
void CTestCamAdvSet::GetExposureCompensationStepsL(RArray<TInt>& aExposureCompensationSteps, TValueInfo& aInfo) const
sl@0
   811
	{
sl@0
   812
	aExposureCompensationSteps.Reset();
sl@0
   813
	aInfo = ENotActive;
sl@0
   814
	}
sl@0
   815
sl@0
   816
void CTestCamAdvSet::GetExposureCompensationRangeInSteps(TInt& aNegativeCompensation, TInt& aPositiveCompensation) const
sl@0
   817
	{
sl@0
   818
	aNegativeCompensation = KExposureCompensationStep;
sl@0
   819
	aPositiveCompensation = KExposureCompensationStep;
sl@0
   820
	}
sl@0
   821
	
sl@0
   822
TInt CTestCamAdvSet::ExposureCompensationStep() const
sl@0
   823
	{
sl@0
   824
	return KExposureCompensationStep;
sl@0
   825
	}
sl@0
   826
	
sl@0
   827
TInt CTestCamAdvSet::GetExposureCompensationStep(TInt& aExposureCompensationStep) const
sl@0
   828
	{
sl@0
   829
	aExposureCompensationStep = KExposureCompensationStep;
sl@0
   830
	return KErrNone;
sl@0
   831
	}
sl@0
   832
	
sl@0
   833
void CTestCamAdvSet::SetExposureCompensationStep(TInt /*aExposureCompensationStep*/)
sl@0
   834
	{
sl@0
   835
	TECAMEvent ecamevent(KUidECamEventCameraSettingExposureCompensationStep, KErrNotSupported);
sl@0
   836
	
sl@0
   837
	iOwner.iECamEvent = ecamevent;
sl@0
   838
	iOwner.iHandleEventAsync.CallBack();
sl@0
   839
	}
sl@0
   840
	
sl@0
   841
TInt CTestCamAdvSet::ExposureCompensation() const
sl@0
   842
	{
sl@0
   843
	return KExposureCompensationStep;
sl@0
   844
	}
sl@0
   845
	
sl@0
   846
TInt CTestCamAdvSet::GetExposureCompensation(TInt& aExposureCompensation) const
sl@0
   847
	{
sl@0
   848
	aExposureCompensation = KExposureCompensationStep;
sl@0
   849
	return KErrNone;
sl@0
   850
	}
sl@0
   851
	
sl@0
   852
void CTestCamAdvSet::SetExposureCompensation(TInt /*aExposureCompensation*/)
sl@0
   853
	{
sl@0
   854
	TECAMEvent ecamevent(KUidECamEventCameraSettingExposureCompensation, KErrNotSupported);
sl@0
   855
	
sl@0
   856
	iOwner.iECamEvent = ecamevent;
sl@0
   857
	iOwner.iHandleEventAsync.CallBack();
sl@0
   858
	}
sl@0
   859
	
sl@0
   860
TInt CTestCamAdvSet::SupportedWhiteBalanceModes() const
sl@0
   861
	{
sl@0
   862
	return KFeatureNotSupported;
sl@0
   863
	}
sl@0
   864
	
sl@0
   865
CCamera::TWhiteBalance CTestCamAdvSet::WhiteBalanceMode() const
sl@0
   866
	{
sl@0
   867
	return CCamera::EWBAuto;
sl@0
   868
	}
sl@0
   869
	
sl@0
   870
void CTestCamAdvSet::SetWhiteBalanceMode(CCamera::TWhiteBalance aWhiteBalanceMode)
sl@0
   871
	{
sl@0
   872
	TInt eventError = KErrNotSupported;
sl@0
   873
	if(aWhiteBalanceMode == CCamera::EWBAuto)
sl@0
   874
		{
sl@0
   875
		eventError = KErrAlreadyExists;
sl@0
   876
		}
sl@0
   877
		
sl@0
   878
	TECAMEvent ecamevent(KUidECamEventCameraSettingWhiteBalanceMode, eventError);
sl@0
   879
	
sl@0
   880
	iOwner.iECamEvent = ecamevent;
sl@0
   881
	iOwner.iHandleEventAsync.CallBack();
sl@0
   882
	}
sl@0
   883
	
sl@0
   884
TBool CTestCamAdvSet::ApertureExposureLockOn() const
sl@0
   885
	{
sl@0
   886
	return KApertureExposureLockOn;
sl@0
   887
	}
sl@0
   888
	
sl@0
   889
void CTestCamAdvSet::SetApertureExposureLockOn(TBool /*aAELock*/)
sl@0
   890
	{
sl@0
   891
	TECAMEvent ecamevent(KUidECamEventAELock, KErrNotSupported);
sl@0
   892
	
sl@0
   893
	iOwner.iECamEvent = ecamevent;
sl@0
   894
	iOwner.iHandleEventAsync.CallBack();
sl@0
   895
	}
sl@0
   896
	
sl@0
   897
TBool CTestCamAdvSet::ShootClickOn() const
sl@0
   898
	{
sl@0
   899
	return KShootClickOn;
sl@0
   900
	}
sl@0
   901
	
sl@0
   902
void CTestCamAdvSet::SetShootClickOn(TBool /*aShootClickOn*/)
sl@0
   903
	{
sl@0
   904
	TECAMEvent ecamevent(KUidECamEventSoundClick, KErrNotSupported);
sl@0
   905
	
sl@0
   906
	iOwner.iECamEvent = ecamevent;
sl@0
   907
	iOwner.iHandleEventAsync.CallBack();
sl@0
   908
	}
sl@0
   909
	
sl@0
   910
void CTestCamAdvSet::GetTimerIntervalsL(RArray<TInt>& aTimerIntervals, TValueInfo& aInfo) const
sl@0
   911
	{
sl@0
   912
	aTimerIntervals.Reset();
sl@0
   913
	aInfo = ENotActive;
sl@0
   914
	}
sl@0
   915
sl@0
   916
TInt CTestCamAdvSet::TimerInterval() const
sl@0
   917
	{
sl@0
   918
	return KErrNotSupported;
sl@0
   919
	}
sl@0
   920
	
sl@0
   921
void CTestCamAdvSet::SetTimerInterval(TInt /*aTimerInterval*/)
sl@0
   922
	{
sl@0
   923
	TECAMEvent ecamevent(KUidECamEventCameraSettingTimerInterval, KErrNotSupported);
sl@0
   924
	
sl@0
   925
	iOwner.iECamEvent = ecamevent;
sl@0
   926
	iOwner.iHandleEventAsync.CallBack();
sl@0
   927
	}
sl@0
   928
	
sl@0
   929
void CTestCamAdvSet::GetTimeLapsePeriodRange(TTime& aTimeLapseMin, TTime& aTimeLapseMax) const
sl@0
   930
	{
sl@0
   931
	TTime timeLapse(KTimeLapse);
sl@0
   932
	aTimeLapseMin = aTimeLapseMax = timeLapse;
sl@0
   933
	}
sl@0
   934
	
sl@0
   935
void CTestCamAdvSet::GetTimeLapse(TTime& aStart, TTime& aEnd, TTime& aInterval) const
sl@0
   936
	{
sl@0
   937
	TTime timeLapse(KTimeLapse);
sl@0
   938
	aStart = aEnd = aInterval = timeLapse;
sl@0
   939
	}
sl@0
   940
	
sl@0
   941
void CTestCamAdvSet::SetTimeLapse(const TTime& /*aStart*/, const TTime& /*aEnd*/, const TTime& /*aInterval*/)
sl@0
   942
	{
sl@0
   943
	TECAMEvent ecamevent(KUidECamEventCameraSettingTimeLapse, KErrNotSupported);
sl@0
   944
	
sl@0
   945
	iOwner.iECamEvent = ecamevent;
sl@0
   946
	iOwner.iHandleEventAsync.CallBack();
sl@0
   947
	}
sl@0
   948
	
sl@0
   949
CCamera::CCameraAdvancedSettings::TPictureOrientation CTestCamAdvSet::PictureOrientation() const
sl@0
   950
	{
sl@0
   951
	return CCamera::CCameraAdvancedSettings::EPictureOrientationUnknown;
sl@0
   952
	}
sl@0
   953
	
sl@0
   954
void CTestCamAdvSet::SetPictureOrientation(CCamera::CCameraAdvancedSettings::TPictureOrientation aOrientation)
sl@0
   955
	{
sl@0
   956
	TInt eventError = KErrNotSupported;
sl@0
   957
	
sl@0
   958
	if(iOwner.iVideoCaptureActive || iOwner.iImageCaptureActive)
sl@0
   959
		{
sl@0
   960
		eventError = KErrNotReady;
sl@0
   961
		}
sl@0
   962
	else
sl@0
   963
		{
sl@0
   964
		if(aOrientation == CCamera::CCameraAdvancedSettings::EPictureOrientationUnknown)
sl@0
   965
			{
sl@0
   966
			eventError = KErrAlreadyExists;
sl@0
   967
			}	
sl@0
   968
		}
sl@0
   969
		
sl@0
   970
	TECAMEvent ecamevent(KUidECamEventCameraSettingPictureOrientation, eventError);
sl@0
   971
	
sl@0
   972
	iOwner.iECamEvent = ecamevent;
sl@0
   973
	iOwner.iHandleEventAsync.CallBack();
sl@0
   974
	}
sl@0
   975
	
sl@0
   976
TInt CTestCamAdvSet::SupportedPixelAspectRatios() const
sl@0
   977
	{
sl@0
   978
	return KSupportedPixelAspectRatio;
sl@0
   979
	}
sl@0
   980
	
sl@0
   981
CCamera::CCameraAdvancedSettings::TPixelAspectRatio CTestCamAdvSet::PixelAspectRatio() const
sl@0
   982
	{
sl@0
   983
	return CCamera::CCameraAdvancedSettings::EPixelAspectUnknown;
sl@0
   984
	}
sl@0
   985
	
sl@0
   986
void CTestCamAdvSet::SetPixelAspectRatio(CCamera::CCameraAdvancedSettings::TPixelAspectRatio aPixelAspectRatio)
sl@0
   987
	{
sl@0
   988
	TInt eventError = KErrNotSupported;
sl@0
   989
	
sl@0
   990
	if(aPixelAspectRatio == CCamera::CCameraAdvancedSettings::EPixelAspectUnknown)
sl@0
   991
		{
sl@0
   992
		eventError = KErrAlreadyExists;
sl@0
   993
		}	
sl@0
   994
		
sl@0
   995
	TECAMEvent ecamevent(KUidECamEventPixelAspectRatio, eventError);
sl@0
   996
	
sl@0
   997
	iOwner.iECamEvent = ecamevent;
sl@0
   998
	iOwner.iHandleEventAsync.CallBack();
sl@0
   999
	}
sl@0
  1000
	
sl@0
  1001
TInt CTestCamAdvSet::SupportedYuvRanges() const
sl@0
  1002
	{
sl@0
  1003
	return KSupportedYuvRange;
sl@0
  1004
	}
sl@0
  1005
	
sl@0
  1006
CCamera::CCameraAdvancedSettings::TYuvRange CTestCamAdvSet::YuvRange() const
sl@0
  1007
	{
sl@0
  1008
	return CCamera::CCameraAdvancedSettings::EYuvRangeUnknown;
sl@0
  1009
	}
sl@0
  1010
	
sl@0
  1011
void CTestCamAdvSet::SetYuvRange(CCamera::CCameraAdvancedSettings::TYuvRange aYuvRange)
sl@0
  1012
	{
sl@0
  1013
	TInt eventError = KErrNotSupported;
sl@0
  1014
	
sl@0
  1015
	if(aYuvRange == CCamera::CCameraAdvancedSettings::EYuvRangeUnknown)
sl@0
  1016
		{
sl@0
  1017
		eventError = KErrAlreadyExists;
sl@0
  1018
		}	
sl@0
  1019
		
sl@0
  1020
	TECAMEvent ecamevent(KUidECamEventYuvRange, eventError);
sl@0
  1021
	
sl@0
  1022
	iOwner.iECamEvent = ecamevent;
sl@0
  1023
	iOwner.iHandleEventAsync.CallBack();
sl@0
  1024
	}
sl@0
  1025
	
sl@0
  1026
TInt CTestCamAdvSet::BurstImages() const
sl@0
  1027
	{
sl@0
  1028
	return iOwner.iBurstImages;
sl@0
  1029
	}
sl@0
  1030
	
sl@0
  1031
void CTestCamAdvSet::SetBurstImages(TInt aImages)
sl@0
  1032
	{
sl@0
  1033
	TInt eventError = iOwner.CheckReserveAndPower();
sl@0
  1034
	
sl@0
  1035
	if(eventError == KErrNone)
sl@0
  1036
		{
sl@0
  1037
		if(aImages == iOwner.iBurstImages)
sl@0
  1038
			{
sl@0
  1039
			eventError = KErrAlreadyExists;
sl@0
  1040
			}
sl@0
  1041
		else
sl@0
  1042
			{
sl@0
  1043
			if(aImages<1)
sl@0
  1044
				{
sl@0
  1045
				eventError = KErrArgument;
sl@0
  1046
				}
sl@0
  1047
			}
sl@0
  1048
		}
sl@0
  1049
		
sl@0
  1050
	if(eventError != KErrNone)
sl@0
  1051
		{
sl@0
  1052
		TECAMEvent ecamevent(KUidECamEventBurstImages, eventError);
sl@0
  1053
	
sl@0
  1054
		iOwner.iECamEvent = ecamevent;
sl@0
  1055
		iOwner.iHandleEventAsync.CallBack();
sl@0
  1056
		return;
sl@0
  1057
		}
sl@0
  1058
		
sl@0
  1059
	if(aImages > KMaxBurstImages)
sl@0
  1060
		{
sl@0
  1061
		iOwner.iBurstImages = KMaxBurstImages;
sl@0
  1062
		}
sl@0
  1063
	else
sl@0
  1064
		{
sl@0
  1065
		iOwner.iBurstImages = aImages;
sl@0
  1066
		}
sl@0
  1067
			
sl@0
  1068
	TECAMEvent ecamevent(KUidECamEventBurstImages, eventError);
sl@0
  1069
	
sl@0
  1070
	iOwner.iECamEvent = ecamevent;
sl@0
  1071
	iOwner.iHandleEventAsync.CallBack();
sl@0
  1072
	}
sl@0
  1073
	
sl@0
  1074
void CTestCamAdvSet::GetOpticalZoomStepsL(RArray<TInt>& aOpticalZoomSteps, TValueInfo& aInfo)  const
sl@0
  1075
	{	
sl@0
  1076
	aOpticalZoomSteps.Reset();
sl@0
  1077
	aOpticalZoomSteps.AppendL(KECamFineResolutionFactor);
sl@0
  1078
	aInfo = EDiscreteSteps;
sl@0
  1079
	}
sl@0
  1080
	
sl@0
  1081
TInt CTestCamAdvSet::OpticalZoom() const
sl@0
  1082
	{
sl@0
  1083
	return KECamFineResolutionFactor;
sl@0
  1084
	}
sl@0
  1085
	
sl@0
  1086
void CTestCamAdvSet::SetOpticalZoom(TInt aOpticalZoom)
sl@0
  1087
	{
sl@0
  1088
	TInt eventError = KErrNotSupported;
sl@0
  1089
	
sl@0
  1090
	if(aOpticalZoom == KECamFineResolutionFactor)
sl@0
  1091
		{
sl@0
  1092
		eventError = KErrAlreadyExists;
sl@0
  1093
		}
sl@0
  1094
		
sl@0
  1095
	TECAMEvent ecamevent(KUidECamEventCameraSettingOpticalZoom, eventError);
sl@0
  1096
	
sl@0
  1097
	iOwner.iECamEvent = ecamevent;
sl@0
  1098
	iOwner.iHandleEventAsync.CallBack();
sl@0
  1099
	}
sl@0
  1100
	
sl@0
  1101
void CTestCamAdvSet::GetDigitalZoomStepsL(RArray<TInt>& aDigitalZoomSteps,
sl@0
  1102
								 TValueInfo& aInfo) const
sl@0
  1103
	{
sl@0
  1104
	aDigitalZoomSteps.Reset();
sl@0
  1105
	aDigitalZoomSteps.AppendL(KECamFineResolutionFactor);
sl@0
  1106
	aInfo = EDiscreteSteps;
sl@0
  1107
	}
sl@0
  1108
	
sl@0
  1109
void CTestCamAdvSet::GetDigitalZoomStepsForStillL(RArray<TInt>& aDigitalZoomSteps, TValueInfo& aInfo, TInt /*aSizeIndex*/,
sl@0
  1110
								 CCamera::TFormat /*aFormat*/, TBool& /*aIsInfluencePossible*/) const
sl@0
  1111
	{
sl@0
  1112
	aDigitalZoomSteps.Reset();
sl@0
  1113
	aDigitalZoomSteps.AppendL(KECamFineResolutionFactor);
sl@0
  1114
	aInfo = EDiscreteSteps;
sl@0
  1115
	}
sl@0
  1116
sl@0
  1117
void CTestCamAdvSet::GetDigitalZoomStepsForVideoL(RArray<TInt>& aDigitalZoomSteps, TValueInfo& aInfo, TInt /*aFrameRateIndex*/,
sl@0
  1118
								 TInt /*aSizeIndex*/, CCamera::TFormat /*aFormat*/, TBool& /*aIsInfluencePossible*/, CCamera::TExposure /*aExposure*/) const
sl@0
  1119
	{
sl@0
  1120
	aDigitalZoomSteps.Reset();
sl@0
  1121
	aDigitalZoomSteps.AppendL(KECamFineResolutionFactor);
sl@0
  1122
	aInfo = EDiscreteSteps;
sl@0
  1123
	}
sl@0
  1124
sl@0
  1125
TInt CTestCamAdvSet::DigitalZoom() const
sl@0
  1126
	{
sl@0
  1127
	return KECamFineResolutionFactor;
sl@0
  1128
	}
sl@0
  1129
sl@0
  1130
void CTestCamAdvSet::SetDigitalZoom(TInt aDigitalZoom)
sl@0
  1131
	{
sl@0
  1132
	TInt eventError = KErrNotSupported;
sl@0
  1133
	
sl@0
  1134
	if(aDigitalZoom == KECamFineResolutionFactor)
sl@0
  1135
		{
sl@0
  1136
		eventError = KErrAlreadyExists;
sl@0
  1137
		}
sl@0
  1138
		
sl@0
  1139
	TECAMEvent ecamevent(KUidECamEventCameraSettingDigitalZoom, eventError);
sl@0
  1140
	
sl@0
  1141
	iOwner.iECamEvent = ecamevent;
sl@0
  1142
	iOwner.iHandleEventAsync.CallBack();
sl@0
  1143
	}
sl@0
  1144
	
sl@0
  1145
TBool CTestCamAdvSet::ExposureLockOn() const
sl@0
  1146
	{
sl@0
  1147
	return KExposureLockOn;		
sl@0
  1148
	}
sl@0
  1149
sl@0
  1150
void CTestCamAdvSet::SetExposureLockOn(TBool aState)
sl@0
  1151
	{
sl@0
  1152
	TInt eventError = KErrNotSupported;
sl@0
  1153
	
sl@0
  1154
	if(aState == KExposureLockOn)
sl@0
  1155
		{
sl@0
  1156
		eventError = KErrAlreadyExists;
sl@0
  1157
		}
sl@0
  1158
		
sl@0
  1159
	TECAMEvent ecamevent(KUidECamEventCameraSettingExposureLock, eventError);
sl@0
  1160
	
sl@0
  1161
	iOwner.iECamEvent = ecamevent;
sl@0
  1162
	iOwner.iHandleEventAsync.CallBack();	
sl@0
  1163
	}
sl@0
  1164
		
sl@0
  1165
TBool CTestCamAdvSet::AutoFocusLockOn() const
sl@0
  1166
	{
sl@0
  1167
	return KAutoFocusLockOn;
sl@0
  1168
	}
sl@0
  1169
sl@0
  1170
void CTestCamAdvSet::SetAutoFocusLockOn(TBool aState)
sl@0
  1171
	{	
sl@0
  1172
	TInt eventError = KErrNotSupported;
sl@0
  1173
	
sl@0
  1174
	if(aState == KAutoFocusLockOn)
sl@0
  1175
		{
sl@0
  1176
		eventError = KErrAlreadyExists;
sl@0
  1177
		}
sl@0
  1178
		
sl@0
  1179
	TECAMEvent ecamevent(KUidECamEventCameraSettingAutoFocusLock, eventError);
sl@0
  1180
	
sl@0
  1181
	iOwner.iECamEvent = ecamevent;
sl@0
  1182
	iOwner.iHandleEventAsync.CallBack();
sl@0
  1183
	}
sl@0
  1184
sl@0
  1185
void CTestCamAdvSet::GetSupportedSettingsL(RArray<TUid>& aSettings) const
sl@0
  1186
	{
sl@0
  1187
	aSettings.Reset();
sl@0
  1188
	User::Leave(KErrNotSupported);
sl@0
  1189
	}
sl@0
  1190
    
sl@0
  1191
void CTestCamAdvSet::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const
sl@0
  1192
	{
sl@0
  1193
	aActiveSettings.Reset();
sl@0
  1194
	User::Leave(KErrNotSupported);
sl@0
  1195
	}
sl@0
  1196
 
sl@0
  1197
void CTestCamAdvSet::GetDisabledSettingsL(RArray<TUid>& aDisbledSettings) const
sl@0
  1198
	{
sl@0
  1199
	aDisbledSettings.Reset();
sl@0
  1200
	User::Leave(KErrNotSupported);
sl@0
  1201
	}
sl@0
  1202
	    
sl@0
  1203
void CTestCamAdvSet::SetAutomaticSizeSelectionChangeOn(TBool aSetOn)
sl@0
  1204
	{
sl@0
  1205
	TInt eventError = KErrNotSupported;
sl@0
  1206
	
sl@0
  1207
	if(aSetOn == KAutomaticSizeSelectionChangeOn)
sl@0
  1208
		{
sl@0
  1209
		eventError = KErrAlreadyExists;
sl@0
  1210
		}
sl@0
  1211
		
sl@0
  1212
	TECAMEvent ecamevent(KUidECamEventCameraSettingAutomaticSizeSelection, eventError);
sl@0
  1213
	
sl@0
  1214
	iOwner.iECamEvent = ecamevent;
sl@0
  1215
	iOwner.iHandleEventAsync.CallBack();
sl@0
  1216
	}
sl@0
  1217
	
sl@0
  1218
TBool CTestCamAdvSet::AutomaticSizeSelectionChangeOn() const
sl@0
  1219
	{
sl@0
  1220
	return KAutomaticSizeSelectionChangeOn;
sl@0
  1221
	}
sl@0
  1222
sl@0
  1223
void CTestCamAdvSet::GetSupportedContinuousAutoFocusTimeoutsL(RArray<TInt>& aTimeouts, TValueInfo& aInfo) const
sl@0
  1224
	{
sl@0
  1225
	aTimeouts.Reset();
sl@0
  1226
	aInfo = ENotActive;
sl@0
  1227
	}
sl@0
  1228
	
sl@0
  1229
void CTestCamAdvSet::SetContinuousAutoFocusTimeout(TInt /*aTimeout*/)
sl@0
  1230
	{
sl@0
  1231
	TECAMEvent ecamevent(KUidECamEventCameraSettingsContinuousAutoFocusTimeout, KErrNotSupported);
sl@0
  1232
	
sl@0
  1233
	iOwner.iECamEvent = ecamevent;
sl@0
  1234
	iOwner.iHandleEventAsync.CallBack();
sl@0
  1235
	}
sl@0
  1236
	
sl@0
  1237
void CTestCamAdvSet::SetStabilizationEffect(CCamera::CCameraAdvancedSettings::TStabilizationEffect aEffect)
sl@0
  1238
	{
sl@0
  1239
	TInt eventError = KErrNotSupported;
sl@0
  1240
	
sl@0
  1241
	if(aEffect == KStabilizationEffect)
sl@0
  1242
		{
sl@0
  1243
		eventError = KErrAlreadyExists;
sl@0
  1244
		}
sl@0
  1245
		
sl@0
  1246
	TECAMEvent ecamevent(KUidECamEventCameraSettingsStabilizationEffect, eventError);
sl@0
  1247
	
sl@0
  1248
	iOwner.iECamEvent = ecamevent;
sl@0
  1249
	iOwner.iHandleEventAsync.CallBack();
sl@0
  1250
	}
sl@0
  1251
	
sl@0
  1252
CCamera::CCameraAdvancedSettings::TStabilizationEffect CTestCamAdvSet::StabilizationEffect() const
sl@0
  1253
	{
sl@0
  1254
	return KStabilizationEffect;
sl@0
  1255
	}
sl@0
  1256
sl@0
  1257
TInt CTestCamAdvSet::SupportedStabilizationEffects() const
sl@0
  1258
	{
sl@0
  1259
	return KStabilizationEffect;
sl@0
  1260
	}
sl@0
  1261
sl@0
  1262
TInt CTestCamAdvSet::SupportedStabilizationComplexityValues() const
sl@0
  1263
	{
sl@0
  1264
	return KStabilizationComplexity; 
sl@0
  1265
	}
sl@0
  1266
	
sl@0
  1267
CCamera::CCameraAdvancedSettings::TStabilizationAlgorithmComplexity CTestCamAdvSet::StabilizationComplexity() const
sl@0
  1268
	{
sl@0
  1269
	return KStabilizationComplexity;
sl@0
  1270
	}
sl@0
  1271
	
sl@0
  1272
void CTestCamAdvSet::SetStabilizationComplexity(CCamera::CCameraAdvancedSettings::TStabilizationAlgorithmComplexity aComplexity)
sl@0
  1273
	{
sl@0
  1274
	TInt eventError = KErrNotSupported;
sl@0
  1275
	
sl@0
  1276
	if(aComplexity == KStabilizationComplexity)
sl@0
  1277
		{
sl@0
  1278
		eventError = KErrAlreadyExists;
sl@0
  1279
		}
sl@0
  1280
		
sl@0
  1281
	TECAMEvent ecamevent(KUidECamEventSettingsStabilizationAlgorithmComplexity, eventError);
sl@0
  1282
	
sl@0
  1283
	iOwner.iECamEvent = ecamevent;
sl@0
  1284
	iOwner.iHandleEventAsync.CallBack();
sl@0
  1285
	}
sl@0
  1286
	
sl@0
  1287
CCamera::CCameraAdvancedSettings::TWBUnits CTestCamAdvSet::SupportedWBUnits() const
sl@0
  1288
	{
sl@0
  1289
	return KSupportedWBUnits;
sl@0
  1290
	}
sl@0
  1291
	
sl@0
  1292
void CTestCamAdvSet::SetWBRgbValue(const TRgb& /*aValue*/)
sl@0
  1293
	{
sl@0
  1294
	TECAMEvent ecamevent(KUidECamEventCameraSettingsWBValue, KErrNotSupported);
sl@0
  1295
	
sl@0
  1296
	iOwner.iECamEvent = ecamevent;
sl@0
  1297
	iOwner.iHandleEventAsync.CallBack();
sl@0
  1298
	}
sl@0
  1299
	
sl@0
  1300
void CTestCamAdvSet::GetWBRgbValue(TRgb& aValue) const
sl@0
  1301
	{
sl@0
  1302
	aValue = KRgbWhite;
sl@0
  1303
	}
sl@0
  1304
	
sl@0
  1305
void CTestCamAdvSet::GetWBSupportedColorTemperaturesL(RArray<TInt>& aWBColorTemperatures, TValueInfo& aInfo) const
sl@0
  1306
	{
sl@0
  1307
	aWBColorTemperatures.Reset();
sl@0
  1308
	aInfo = ENotActive;
sl@0
  1309
	}
sl@0
  1310
	
sl@0
  1311
void CTestCamAdvSet::SetWBColorTemperature(TInt /*aColorTemperature*/)
sl@0
  1312
	{
sl@0
  1313
	TECAMEvent ecamevent(KUidECamEventCameraSettingsWBValue, KErrNotSupported);
sl@0
  1314
	
sl@0
  1315
	iOwner.iECamEvent = ecamevent;
sl@0
  1316
	iOwner.iHandleEventAsync.CallBack();
sl@0
  1317
	}
sl@0
  1318
sl@0
  1319
TInt CTestCamAdvSet::WBColorTemperature() const
sl@0
  1320
	{
sl@0
  1321
	return KErrNotSupported;
sl@0
  1322
	}
sl@0
  1323
sl@0
  1324
TInt CTestCamAdvSet::ContinuousAutoFocusTimeout() const
sl@0
  1325
	{
sl@0
  1326
	return KErrNotSupported;
sl@0
  1327
	}
sl@0
  1328
sl@0
  1329
TInt CTestCamAdvSet::IsFlashReady(TBool& aReady) const
sl@0
  1330
	{
sl@0
  1331
	aReady = KFlashReadyState;
sl@0
  1332
	return KErrNone;
sl@0
  1333
	}
sl@0
  1334
sl@0
  1335
void CTestCamAdvSet::GetCurrentFocusModeStepsL(RArray<TInt>& aFocusModeSteps, TValueInfo& aInfo) const
sl@0
  1336
	{
sl@0
  1337
	aFocusModeSteps.Reset();
sl@0
  1338
	aInfo = ENotActive;
sl@0
  1339
	}
sl@0
  1340
	
sl@0
  1341
void CTestCamAdvSet::SetReferenceScreen(CWsScreenDevice& /*aScreenDevice*/)
sl@0
  1342
	{
sl@0
  1343
	TECAMEvent ecamevent(KUidECamEventCameraSettingReferenceScreen, KErrNotSupported);
sl@0
  1344
	
sl@0
  1345
	iOwner.iECamEvent = ecamevent;
sl@0
  1346
	iOwner.iHandleEventAsync.CallBack();
sl@0
  1347
	}
sl@0
  1348
	
sl@0
  1349
void CTestCamAdvSet::GetPreCaptureWarningSupportedL(CCamera::CCameraAdvancedSettings::TCameraMode /*aCameraMode*/, TInt& aPreCaptureWarningSupported) const
sl@0
  1350
	{
sl@0
  1351
	aPreCaptureWarningSupported = KPreCaptureWarning; 
sl@0
  1352
	}
sl@0
  1353
sl@0
  1354
void CTestCamAdvSet::SubscribeToPreCaptureWarningL(TInt /*aPreCaptureWarning*/)
sl@0
  1355
	{
sl@0
  1356
	User::Leave(KErrNotSupported);
sl@0
  1357
	}
sl@0
  1358
	
sl@0
  1359
void CTestCamAdvSet::UnSubscribePreCaptureWarningL()
sl@0
  1360
	{
sl@0
  1361
	User::Leave(KErrNotSupported);
sl@0
  1362
	}
sl@0
  1363
	
sl@0
  1364
void CTestCamAdvSet::GetPreCaptureWarningL(TInt& /*aPreCaptureWarning*/) const
sl@0
  1365
	{
sl@0
  1366
	User::Leave(KErrNotSupported);
sl@0
  1367
	}
sl@0
  1368
	
sl@0
  1369
void CTestCamAdvSet::GetSupportedAFAssistantLightL(TInt& aSupportedAFAssistantLight) const
sl@0
  1370
	{
sl@0
  1371
	aSupportedAFAssistantLight = KAFAssisstantLight;
sl@0
  1372
	}
sl@0
  1373
sl@0
  1374
void CTestCamAdvSet::GetAFAssistantLightL(CCamera::CCameraAdvancedSettings::TAFAssistantLight& /*aAFAssistantLight*/) const
sl@0
  1375
	{
sl@0
  1376
	User::Leave(KErrNotSupported);
sl@0
  1377
	}
sl@0
  1378
sl@0
  1379
void CTestCamAdvSet::SetAFAssistantLight(CCamera::CCameraAdvancedSettings::TAFAssistantLight aAFAssistantLight)
sl@0
  1380
	{
sl@0
  1381
	TInt eventError = KErrNotSupported;
sl@0
  1382
	
sl@0
  1383
	if(aAFAssistantLight == KAFAssisstantLight)
sl@0
  1384
		{
sl@0
  1385
		eventError = KErrAlreadyExists;
sl@0
  1386
		}
sl@0
  1387
		
sl@0
  1388
	TECAMEvent ecamevent(KUidECamEventCameraSettingAFAssistantLight, eventError);
sl@0
  1389
	
sl@0
  1390
	iOwner.iECamEvent = ecamevent;
sl@0
  1391
	iOwner.iHandleEventAsync.CallBack();
sl@0
  1392
	}
sl@0
  1393
	
sl@0
  1394
/**********************************************************************************************************/
sl@0
  1395
/* 											CTestCamPresets  											  */
sl@0
  1396
/**********************************************************************************************************/
sl@0
  1397
sl@0
  1398
CTestCamPresets::CTestCamPresets(CTestCamera& aOwner): iOwner(aOwner),iCurrentPreset(KNullUid)
sl@0
  1399
	{}
sl@0
  1400
	
sl@0
  1401
CTestCamPresets::~CTestCamPresets()
sl@0
  1402
	{
sl@0
  1403
	iSupportedPresets.Close();
sl@0
  1404
	iFactoryPresetAffectSettings.Close();
sl@0
  1405
	
sl@0
  1406
	CDataGlobal* globalData = static_cast <CDataGlobal*> (Dll::Tls());	
sl@0
  1407
	if(globalData != NULL)
sl@0
  1408
		{
sl@0
  1409
		if(!globalData->iTestCamAdvSet && !globalData->iTestCamSnapshot && !globalData->iTestCamImgProc)
sl@0
  1410
			{
sl@0
  1411
			delete globalData;
sl@0
  1412
			Dll::FreeTls();
sl@0
  1413
			}
sl@0
  1414
		else
sl@0
  1415
			{
sl@0
  1416
			globalData->iTestCamPresets = NULL;
sl@0
  1417
			Dll::SetTls(globalData);	
sl@0
  1418
			}
sl@0
  1419
		}
sl@0
  1420
	}
sl@0
  1421
		
sl@0
  1422
CTestCamPresets* CTestCamPresets::NewL(CTestCamera& aOwner)
sl@0
  1423
	{
sl@0
  1424
	CDataGlobal* globalData = static_cast <CDataGlobal*> (Dll::Tls());
sl@0
  1425
	
sl@0
  1426
	if(globalData == NULL)
sl@0
  1427
		{
sl@0
  1428
		globalData = new (ELeave) CDataGlobal;
sl@0
  1429
		CleanupStack::PushL(globalData);
sl@0
  1430
		globalData->iPresetsReferenceCount = 0;
sl@0
  1431
		globalData->iTestCamPresets = new (ELeave) CTestCamPresets(aOwner);
sl@0
  1432
		globalData->iTestCamPresets->ConstructL();
sl@0
  1433
		globalData->iTestCamPresets->iRefCount = 1;
sl@0
  1434
		User::LeaveIfError(Dll::SetTls(globalData));
sl@0
  1435
		CleanupStack::Pop(globalData);
sl@0
  1436
		return globalData->iTestCamPresets;
sl@0
  1437
		}
sl@0
  1438
	else
sl@0
  1439
		{
sl@0
  1440
		if(globalData->iTestCamPresets == NULL)
sl@0
  1441
			{
sl@0
  1442
			globalData->iPresetsReferenceCount = 0;
sl@0
  1443
			globalData->iTestCamPresets = new (ELeave) CTestCamPresets(aOwner);
sl@0
  1444
			CleanupStack::PushL(globalData->iTestCamPresets);
sl@0
  1445
			globalData->iTestCamPresets->ConstructL();
sl@0
  1446
			globalData->iTestCamPresets->iRefCount = 1;
sl@0
  1447
			User::LeaveIfError(Dll::SetTls(globalData));
sl@0
  1448
			CleanupStack::Pop(globalData->iTestCamPresets);
sl@0
  1449
			return globalData->iTestCamPresets;
sl@0
  1450
			}
sl@0
  1451
			
sl@0
  1452
		CTestCamPresets* self = globalData->iTestCamPresets;
sl@0
  1453
		
sl@0
  1454
		globalData->iPresetsReferenceCount++;
sl@0
  1455
		self->iRefCount = globalData->iPresetsReferenceCount + 1;
sl@0
  1456
		if (globalData->iPresetsReferenceCount == KNumOfPresetExtensions-1 )
sl@0
  1457
			{
sl@0
  1458
			globalData->iTestCamPresets = NULL;
sl@0
  1459
			if(!globalData->iTestCamAdvSet && !globalData->iTestCamSnapshot && !globalData->iTestCamImgProc)
sl@0
  1460
				{
sl@0
  1461
				delete globalData;
sl@0
  1462
				Dll::FreeTls();
sl@0
  1463
				}
sl@0
  1464
			else
sl@0
  1465
				{
sl@0
  1466
				User::LeaveIfError(Dll::SetTls(globalData));	
sl@0
  1467
				}
sl@0
  1468
			}
sl@0
  1469
		else
sl@0
  1470
			{
sl@0
  1471
			User::LeaveIfError(Dll::SetTls(globalData));
sl@0
  1472
			}
sl@0
  1473
		return self;		
sl@0
  1474
		}
sl@0
  1475
	}
sl@0
  1476
sl@0
  1477
void CTestCamPresets::Release()
sl@0
  1478
	{
sl@0
  1479
	iRefCount--; 
sl@0
  1480
	if(iRefCount == 0)
sl@0
  1481
		{
sl@0
  1482
		delete this;
sl@0
  1483
		}
sl@0
  1484
	}	
sl@0
  1485
	
sl@0
  1486
void CTestCamPresets::ConstructL()
sl@0
  1487
	{
sl@0
  1488
	iSupportedPresets.Reset();
sl@0
  1489
	iSupportedPresets.AppendL(KUidECamPresetFactoryDefault);
sl@0
  1490
	
sl@0
  1491
	iFactoryPresetAffectSettings.Reset();
sl@0
  1492
	iFactoryPresetAffectSettings.AppendL(KUidECamEventCameraSettingDriveMode);
sl@0
  1493
	iFactoryPresetAffectSettings.AppendL(KUidECamEventBurstImages);	
sl@0
  1494
	}
sl@0
  1495
sl@0
  1496
void CTestCamPresets::GetSupportedPresetsL(RArray<TUid>& aPresets) const
sl@0
  1497
	{
sl@0
  1498
	aPresets.Reset();
sl@0
  1499
	for	(TInt index=0; index < iSupportedPresets.Count(); index++)
sl@0
  1500
		{
sl@0
  1501
		User::LeaveIfError(aPresets.Append(iSupportedPresets[index]));
sl@0
  1502
		}
sl@0
  1503
	}
sl@0
  1504
sl@0
  1505
void CTestCamPresets::SetPreset(TUid aPreset)
sl@0
  1506
	{
sl@0
  1507
	TInt eventError = iOwner.CheckReserveAndPower();
sl@0
  1508
	if(eventError == KErrNone)
sl@0
  1509
		{
sl@0
  1510
		if(aPreset == iSupportedPresets[0])
sl@0
  1511
			{
sl@0
  1512
			//ResetBrightness, Contrast, Drivemode, No. of burst mode images
sl@0
  1513
			iOwner.iBrightness = 0;
sl@0
  1514
			iOwner.iContrast = 0;
sl@0
  1515
			iOwner.iImgProcBrightness = 0;
sl@0
  1516
			iOwner.iImgProcContrast = 0;
sl@0
  1517
			iOwner.iDriveMode = KDefaultDriveMode;
sl@0
  1518
			iOwner.iBurstImages = KBurstImages;
sl@0
  1519
			}
sl@0
  1520
		else
sl@0
  1521
			{
sl@0
  1522
			eventError = KErrNotSupported;	
sl@0
  1523
			}
sl@0
  1524
		}
sl@0
  1525
	
sl@0
  1526
	TECAMEvent ecamevent(aPreset, eventError);
sl@0
  1527
	
sl@0
  1528
	iOwner.iECamEvent = ecamevent;
sl@0
  1529
	iOwner.iHandleEventAsync.CallBack();	
sl@0
  1530
	}
sl@0
  1531
	
sl@0
  1532
TUid CTestCamPresets::Preset() const
sl@0
  1533
	{
sl@0
  1534
	return iCurrentPreset;	
sl@0
  1535
	}
sl@0
  1536
	
sl@0
  1537
void CTestCamPresets::GetAffectedSettingsL(RArray<TUid>& aSettings) const
sl@0
  1538
	{
sl@0
  1539
	aSettings.Reset();
sl@0
  1540
	
sl@0
  1541
	if(iCurrentPreset == iSupportedPresets[0])
sl@0
  1542
		{	
sl@0
  1543
		for	(TInt index=0; index < iFactoryPresetAffectSettings.Count(); index++)
sl@0
  1544
			{
sl@0
  1545
			User::LeaveIfError(aSettings.Append(iFactoryPresetAffectSettings[index]));
sl@0
  1546
			}
sl@0
  1547
		}
sl@0
  1548
	}
sl@0
  1549
	
sl@0
  1550
void CTestCamPresets::GetAssociatedSettingsL(TUid aPreset, RArray<TUid>& aSettings) const
sl@0
  1551
	{
sl@0
  1552
	switch(aPreset.iUid)
sl@0
  1553
		{
sl@0
  1554
		case KUidECamPresetFactoryDefaultUidValue:
sl@0
  1555
			{
sl@0
  1556
			aSettings.Reset();
sl@0
  1557
			for	(TInt index=0; index < iFactoryPresetAffectSettings.Count(); index++)
sl@0
  1558
				{
sl@0
  1559
				User::LeaveIfError(aSettings.Append(iFactoryPresetAffectSettings[index]));
sl@0
  1560
				}
sl@0
  1561
			break;	
sl@0
  1562
			}
sl@0
  1563
		
sl@0
  1564
		//fall through	
sl@0
  1565
		case KUidECamPresetOutdoorUidValue:
sl@0
  1566
		case KUidECamPresetOutdoorSportUidValue:
sl@0
  1567
		case KUidECamPresetSnowUidValue:
sl@0
  1568
		case KUidECamPresetBeachUidValue:
sl@0
  1569
		case KUidECamPresetNightPortraitUidValue:
sl@0
  1570
		case KUidECamPresetNightFireworksUidValue:
sl@0
  1571
		case KUidECamPresetFogUidValue:
sl@0
  1572
		case KUidECamPresetIndoorUidValue:
sl@0
  1573
		case KUidECamPresetIndoorSportUidValue:
sl@0
  1574
			{
sl@0
  1575
			User::Leave(KErrNotSupported);	
sl@0
  1576
			}
sl@0
  1577
		//fall through			
sl@0
  1578
		case KUidECamPresetNightPartyIndoorUidValue:
sl@0
  1579
		case KUidECamPresetNightCloseUpUidValue:
sl@0
  1580
		case KUidECamPresetNightMacroUidValue:
sl@0
  1581
		case KUidECamPresetTextDocumentUidValue:
sl@0
  1582
		case KUidECamPresetBarcodeUidValue:
sl@0
  1583
		case KUidECamPresetAutoUidValue:
sl@0
  1584
		case KUidECamPresetPortraitUidValue:
sl@0
  1585
		case KUidECamPresetLandscapeUidValue:
sl@0
  1586
		case KUidECamPresetAmbienceMoodUidValue:
sl@0
  1587
			{
sl@0
  1588
			if(iOwner.CameraVersion() == KCameraDefaultVersion)	
sl@0
  1589
				{
sl@0
  1590
				User::Leave(KErrArgument);
sl@0
  1591
				}
sl@0
  1592
			else
sl@0
  1593
				{
sl@0
  1594
				User::Leave(KErrNotSupported);
sl@0
  1595
				}
sl@0
  1596
			}
sl@0
  1597
						
sl@0
  1598
		default:
sl@0
  1599
			User::Leave(KErrArgument);
sl@0
  1600
			
sl@0
  1601
		}
sl@0
  1602
	}