os/mm/mmlibs/mmfw/tsrc/mmfintegrationtest/SDevSound/SDSCapTestServer/src/CapTestStepBase.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) 2004-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
//
sl@0
    15
sl@0
    16
#include "CapTestStep.h"
sl@0
    17
sl@0
    18
CDevSoundTestStepBase* CDevSoundTestStepBase::NewL()
sl@0
    19
	{
sl@0
    20
	CDevSoundTestStepBase* self = new (ELeave) CDevSoundTestStepBase;
sl@0
    21
	CleanupStack::PushL(self);
sl@0
    22
sl@0
    23
	self->ConstructL();
sl@0
    24
sl@0
    25
	CleanupStack::Pop();
sl@0
    26
	return self;
sl@0
    27
	}
sl@0
    28
	
sl@0
    29
void CDevSoundTestStepBase::ConstructL()
sl@0
    30
	{
sl@0
    31
	}
sl@0
    32
	
sl@0
    33
CDevSoundTestStepBase::CDevSoundTestStepBase()
sl@0
    34
	{
sl@0
    35
	ResetCallbacks();
sl@0
    36
	}
sl@0
    37
sl@0
    38
CDevSoundTestStepBase::~CDevSoundTestStepBase()
sl@0
    39
	{
sl@0
    40
	delete iMMFDevSound;
sl@0
    41
	}
sl@0
    42
sl@0
    43
void CDevSoundTestStepBase::StartProcessing(TRequestStatus& /*aStatus*/)
sl@0
    44
	{
sl@0
    45
	}
sl@0
    46
sl@0
    47
TVerdict CDevSoundTestStepBase::EndProcessingAndReturnResult(TDes8& aMessage)
sl@0
    48
	{
sl@0
    49
	aMessage.Copy(_L("Done"));
sl@0
    50
sl@0
    51
	return iVerdict;
sl@0
    52
	}
sl@0
    53
	
sl@0
    54
/******************************************************************************
sl@0
    55
 *
sl@0
    56
 * DevSound methods
sl@0
    57
 *
sl@0
    58
 *****************************************************************************/
sl@0
    59
 
sl@0
    60
 TVerdict CDevSoundTestStepBase::ConstructDevSound()
sl@0
    61
	{
sl@0
    62
	TRAPD(err, iMMFDevSound = CMMFDevSound::NewL());
sl@0
    63
	if (err)
sl@0
    64
		{
sl@0
    65
		return EInconclusive;
sl@0
    66
		}
sl@0
    67
	else
sl@0
    68
		{
sl@0
    69
		return EPass;
sl@0
    70
		}
sl@0
    71
	}
sl@0
    72
sl@0
    73
 TVerdict CDevSoundTestStepBase::DoTestStepPreambleL()
sl@0
    74
	{
sl@0
    75
	return( ConstructDevSound() );
sl@0
    76
	}
sl@0
    77
sl@0
    78
/**
sl@0
    79
 *
sl@0
    80
 * T`estInitialize
sl@0
    81
 * @param aMode
sl@0
    82
 * @result TVerdict
sl@0
    83
 *
sl@0
    84
 */
sl@0
    85
sl@0
    86
TVerdict CDevSoundTestStepBase::TestInitialize(TMMFState aMode)
sl@0
    87
	{
sl@0
    88
	iCallbackError = KErrNone;
sl@0
    89
	iExpectedValue = KErrNone;
sl@0
    90
sl@0
    91
	ResetCallbacks();
sl@0
    92
	
sl@0
    93
	// Initialize
sl@0
    94
	TRAPD(err, iMMFDevSound->InitializeL(*this, aMode));
sl@0
    95
	
sl@0
    96
	if (err)
sl@0
    97
		{
sl@0
    98
		return EInconclusive;
sl@0
    99
		}
sl@0
   100
	else
sl@0
   101
		{
sl@0
   102
		CActiveScheduler::Start();
sl@0
   103
		if (iCallbackError != iExpectedValue)
sl@0
   104
			{
sl@0
   105
			return EFail;
sl@0
   106
			}
sl@0
   107
		if (iCallbackArray[EInitComplete] != 1)
sl@0
   108
			{
sl@0
   109
			return EFail;
sl@0
   110
			}
sl@0
   111
		}
sl@0
   112
	return EPass;
sl@0
   113
	}
sl@0
   114
sl@0
   115
/**
sl@0
   116
 *
sl@0
   117
 * TestSetVolume
sl@0
   118
 * @param aVol
sl@0
   119
 *
sl@0
   120
 */
sl@0
   121
void CDevSoundTestStepBase::TestSetVolume(TInt aVol)
sl@0
   122
	{
sl@0
   123
	iMMFDevSound->SetVolume(aVol);
sl@0
   124
	}
sl@0
   125
sl@0
   126
/**
sl@0
   127
 *
sl@0
   128
 * TestSetPriority
sl@0
   129
 * @param aPriority
sl@0
   130
 *
sl@0
   131
 */
sl@0
   132
void CDevSoundTestStepBase::TestSetPriority(TInt aPriority)
sl@0
   133
	{
sl@0
   134
	TMMFPrioritySettings	prioritySettings;
sl@0
   135
sl@0
   136
	prioritySettings.iPref = EMdaPriorityPreferenceNone;
sl@0
   137
	prioritySettings.iPriority = aPriority;
sl@0
   138
sl@0
   139
	iMMFDevSound->SetPrioritySettings( prioritySettings );
sl@0
   140
	}
sl@0
   141
sl@0
   142
/**
sl@0
   143
 *
sl@0
   144
 * TestSetGain
sl@0
   145
 * @param aGain
sl@0
   146
 *
sl@0
   147
 */
sl@0
   148
void CDevSoundTestStepBase::TestSetGain(TInt aGain)
sl@0
   149
	{
sl@0
   150
	iMMFDevSound->SetGain(aGain);
sl@0
   151
	}
sl@0
   152
sl@0
   153
/**
sl@0
   154
 *
sl@0
   155
 * TestPlayTone
sl@0
   156
 * @param aFreq
sl@0
   157
 * @param aDur
sl@0
   158
 * @result TVerdict
sl@0
   159
 *
sl@0
   160
 */
sl@0
   161
TVerdict CDevSoundTestStepBase::TestPlayTone(TInt aFreq, TTimeIntervalMicroSeconds aDur)
sl@0
   162
	{
sl@0
   163
	iCallbackError = KErrNone;
sl@0
   164
sl@0
   165
	ResetCallbacks();
sl@0
   166
sl@0
   167
	TRAPD(err, iMMFDevSound->PlayToneL(aFreq, aDur));
sl@0
   168
	if (err)
sl@0
   169
		{
sl@0
   170
		iCallbackError = err;
sl@0
   171
		return EFail;
sl@0
   172
		}
sl@0
   173
	else
sl@0
   174
		{
sl@0
   175
		// Start the active scheduler and catch the callback
sl@0
   176
 		CActiveScheduler::Start();
sl@0
   177
		if (iCallbackError != iExpectedValue)
sl@0
   178
			{
sl@0
   179
			return EFail;
sl@0
   180
			}
sl@0
   181
		if (iCallbackArray[EToneFinished] != 1)
sl@0
   182
			{
sl@0
   183
			return EFail;
sl@0
   184
			}
sl@0
   185
		TInt tot = GetCallbackTotal();
sl@0
   186
		if (tot > 1)
sl@0
   187
			{
sl@0
   188
			return EFail;
sl@0
   189
			}
sl@0
   190
		}
sl@0
   191
	return EPass;
sl@0
   192
	}
sl@0
   193
sl@0
   194
/**
sl@0
   195
 *
sl@0
   196
 * ResetCallbacks
sl@0
   197
 *
sl@0
   198
 */
sl@0
   199
void CDevSoundTestStepBase::ResetCallbacks()
sl@0
   200
	{
sl@0
   201
	//Initialize callback array
sl@0
   202
	iCallbackArray.Reset();
sl@0
   203
	}
sl@0
   204
sl@0
   205
/**
sl@0
   206
 *
sl@0
   207
 * GetCallbackTotal
sl@0
   208
 * @result TInt
sl@0
   209
 *
sl@0
   210
 */
sl@0
   211
TInt CDevSoundTestStepBase::GetCallbackTotal()
sl@0
   212
	{
sl@0
   213
	TInt total = 0;
sl@0
   214
	for (TInt i = EInitComplete; i < EDeviceMsg; i++)
sl@0
   215
		{
sl@0
   216
		total += iCallbackArray[i];
sl@0
   217
		}
sl@0
   218
	return total;
sl@0
   219
	}
sl@0
   220
sl@0
   221
/******************************************************************************
sl@0
   222
 *
sl@0
   223
 * DevSound mixin methods
sl@0
   224
 *
sl@0
   225
 *****************************************************************************/
sl@0
   226
 
sl@0
   227
/**
sl@0
   228
 *
sl@0
   229
 * InitializeComplete
sl@0
   230
 * @param aError
sl@0
   231
 *
sl@0
   232
 */
sl@0
   233
void CDevSoundTestStepBase::InitializeComplete (TInt aError)
sl@0
   234
	{
sl@0
   235
	iCallbackArray[EInitComplete] ++;
sl@0
   236
	iCallbackError = aError;
sl@0
   237
	CActiveScheduler::Stop();
sl@0
   238
	}
sl@0
   239
sl@0
   240
/**
sl@0
   241
 *
sl@0
   242
 * ToneFinished
sl@0
   243
 * @param aError
sl@0
   244
 *
sl@0
   245
 */
sl@0
   246
void CDevSoundTestStepBase::ToneFinished (TInt aError)
sl@0
   247
	{
sl@0
   248
	iCallbackArray[EToneFinished] ++;
sl@0
   249
	iCallbackError = aError;
sl@0
   250
	}
sl@0
   251
sl@0
   252
/**
sl@0
   253
 *
sl@0
   254
 * BufferToBeFilled
sl@0
   255
 * @param aBuffer
sl@0
   256
 *
sl@0
   257
 */
sl@0
   258
void CDevSoundTestStepBase::BufferToBeFilled (CMMFBuffer* aBuffer)
sl@0
   259
	{
sl@0
   260
	iBuffer = aBuffer;
sl@0
   261
	if (aBuffer != NULL) 
sl@0
   262
		{
sl@0
   263
		iCallbackError = KErrNone;
sl@0
   264
		}
sl@0
   265
	else 
sl@0
   266
		{
sl@0
   267
		iCallbackError = KErrNotFound;
sl@0
   268
		}
sl@0
   269
	iCallbackArray[EBuffToFill] ++;
sl@0
   270
	CActiveScheduler::Stop();
sl@0
   271
	}
sl@0
   272
sl@0
   273
/**
sl@0
   274
 *
sl@0
   275
 * PlayError
sl@0
   276
 * @param aError
sl@0
   277
 *
sl@0
   278
 */
sl@0
   279
void CDevSoundTestStepBase::PlayError (TInt aError)
sl@0
   280
	{
sl@0
   281
	iCallbackError = aError;
sl@0
   282
	iCallbackArray[EPlayError] ++;
sl@0
   283
	CActiveScheduler::Stop();
sl@0
   284
	}
sl@0
   285
sl@0
   286
/**
sl@0
   287
 * 
sl@0
   288
 * BufferToBeEmptied
sl@0
   289
 * @param aBuffer
sl@0
   290
 *
sl@0
   291
 */
sl@0
   292
void CDevSoundTestStepBase::BufferToBeEmptied (CMMFBuffer* /*aBuffer*/)
sl@0
   293
	{
sl@0
   294
	iCallbackArray[EBuffToEmpty] ++;
sl@0
   295
	}
sl@0
   296
sl@0
   297
/**
sl@0
   298
 *
sl@0
   299
 * RecordError
sl@0
   300
 * @param aError
sl@0
   301
 *
sl@0
   302
 */
sl@0
   303
void CDevSoundTestStepBase::RecordError (TInt aError)
sl@0
   304
	{
sl@0
   305
	iCallbackError = aError;
sl@0
   306
	iCallbackArray[ERecError] ++;
sl@0
   307
	}
sl@0
   308
sl@0
   309
/**
sl@0
   310
 *
sl@0
   311
 * ConvertError
sl@0
   312
 *
sl@0
   313
 */
sl@0
   314
void CDevSoundTestStepBase::ConvertError (TInt /*aError*/)
sl@0
   315
	{}
sl@0
   316
sl@0
   317
/**
sl@0
   318
 *
sl@0
   319
 * DeviceMessage
sl@0
   320
 *
sl@0
   321
 */
sl@0
   322
void CDevSoundTestStepBase::DeviceMessage (TUid, const TDesC8& /*aMsg*/)
sl@0
   323
	{}