mmlibs/mmfw/tsrc/mmfunittest/DevSoundTest/inc/TSU_MMF_DEVSOUND_STEP.h
author hgs
Tue, 02 Nov 2010 12:28:51 +0000
changeset 6 fe9d1bf55678
parent 0 b8ed18f6c07b
permissions -rw-r--r--
2010wk46_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     1
// Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     2
// All rights reserved.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     7
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     8
// Initial Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    10
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    11
// Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    12
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    13
// Description:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    14
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    16
#ifndef TSU_MMF_DEVSOUND_STEP_H
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    17
#define TSU_MMF_DEVSOUND_STEP_H
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    18
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    19
#include <testframework.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
#include <mmf/server/sounddevice.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
#include "TSU_MMF_DEVSOUND_SUITE.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
#include "../TestInterface/TSU_MMF_DEVSOUND_TestInterface_ImplementationUID.hrh"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
#include "../TestInterface1/TSU_MMF_DEVSOUND_TestInterface1_ImplementationUID.hrh"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
#include "../TestInterface/TSU_MMF_DEVSOUND_TestInterface.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
#include "../TestInterface1/TSU_MMF_DEVSOUND_TestInterface1.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
#include <mmf/plugin/mmfdevsoundcustominterface.hrh>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
const TInt KMaxVolume = 0xFFFF;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
const TInt KMaxGain   = 0xFFFF;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
class CTestSuite;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
class CTestSuiteDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
 * CActiveListener provides the asynchronous operation
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
 * of an active object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
 * @lib "TSU_MMF_DEVSOUND_SUITE.lib"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
class CActiveListener : public CActive
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
	CActiveListener() : CActive(CActive::EPriorityStandard) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
		{ 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
		CActiveScheduler::Add(this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
	void InitialiseActiveListener()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
		iStatus = KRequestPending; SetActive();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
	~CActiveListener()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
		Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
	// From CActive
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
	virtual void RunL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
		CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
	virtual void DoCancel()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
		CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
		};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    70
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    71
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    72
 * CTestStepDevSound - Test class that enables DevSound tests.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
 * It's a base class for all test steps.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
 * @lib "TSU_MMF_DEVSOUND_SUITE.lib"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
class CTestStepDevSound : public CTestStep, public MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
	CTestStepDevSound();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
	~CTestStepDevSound();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
	static void CleanUp(TAny *aPtr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
	void SetTestSuite(const CTestSuiteDevSound* aTestSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
	virtual TVerdict DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
	virtual TVerdict DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
	// Callback methods from MDevSoundObserver mixin
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
	void InitializeComplete (TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
	void ToneFinished (TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
	void BufferToBeFilled (CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    95
	void PlayError (TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    96
	void BufferToBeEmptied (CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    97
	void RecordError (TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    98
	void ConvertError (TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    99
	void DeviceMessage (TUid aMessageType, const TDesC8& aMsg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
	// Test methods (called by test cases)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
	TVerdict TestInitialize(TMMFState aMode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
	TVerdict TestInitialize(TFourCC& aDataType, TMMFState aMode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
	TVerdict TestInitialize(TUid aHwDeviceUid, TMMFState aMode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
	TVerdict TestCaps();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   106
	TVerdict TestPlayTone(TInt aFreq, TTimeIntervalMicroSeconds aDur);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   107
	TVerdict TestPlayDTMFString(TPtrC aDTMFString);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   108
	void TestSetVolume(TInt aVol);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   109
	void TestSetGain(TInt aGain);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   110
	TVerdict TestSetVolRamp(TInt aVol, TInt aDur);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   111
	TInt TestMaxVolume();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
	TInt TestMaxGain();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
	TInt TestVolume();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
	TInt TestGain();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
	TVerdict TestPlayInit();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
	TVerdict TestPlayData();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
	TVerdict TestRecordInit();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
	TVerdict TestRecordInitCapsNotMatch();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
	TVerdict TestRecordData();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
	TVerdict TestRecordDataCapsNotMatch();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
	// Utility Methods
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
	void ResetCallbacks();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
	TInt GetCallbackTotal();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   126
	TVerdict TestDigitalPlayback(TInt aNumSamples, TDesC& aFilename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   127
	TVerdict TestDigitalRecord(TInt aNumSamples, TDesC& aFilename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   128
	TVerdict TestDigitalPlayback(TInt aNumSamples, TDesC& aFilename, TFourCC& aDataType);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   129
	TVerdict TestDigitalRecord(TInt aNumSamples, TDesC& aFilename, TFourCC& aDataType);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   130
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   131
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   132
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
	typedef enum TCallback 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
		EInitComplete,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
		EToneFinished,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
		EBuffToFill,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
		EPlayError,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   139
		EBuffToEmpty,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   140
		ERecError,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
		EConvertMsg,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
		EDeviceMsg
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
		};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
	TFixedArray<TInt, 7> iCallbackArray;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
	// pointer to suite which owns this test 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
	const CTestSuiteDevSound* iDevSoundTestSuite;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
	CActiveScheduler* iAS;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
	CActiveListener* iAL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
	CMMFDevSound* iMMFDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   153
	TInt iExpectedValue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   154
	TInt iCallbackError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   155
	CMMFBuffer* iBuffer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   156
};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   157
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   158
// DevSound events
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   159
enum TMmfDevSoundEvents
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   160
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   161
    EDevSoundInit = 0,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   162
    EDevSoundPlayInit,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   163
    EDevSoundPlayData,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   164
    EDevSoundEmptyBuffer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   165
    };
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   166
enum TCallback 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   167
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   168
	EInitComplete = 0,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   169
	EToneFinished,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   170
	EBuffToFill,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   171
	EPlayError,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   172
	EBuffToEmpty,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   173
	ERecError,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   174
	EConvertMsg,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   175
	EDeviceMsg
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   176
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   177
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   178
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   179
 * CTestStepDevSoundCustomInterface.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   180
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   181
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   182
 * @lib "TSU_MMF_DEVSOUND_SUITE.lib"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   183
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   184
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   185
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   186
class CTestStepDevSoundCustomInterface : public CTestStep, public MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   187
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   188
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   189
	CTestStepDevSoundCustomInterface();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   190
	~CTestStepDevSoundCustomInterface();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   191
	void SetTestSuite(const CTestSuiteDevSound* aTestSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   192
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   193
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   194
	virtual TVerdict DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   195
	virtual TVerdict DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   196
	virtual TVerdict RunTest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   197
	// Executes events of DevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   198
    void FsmL(TMmfDevSoundEvents aDevSoundEvent);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   199
	// Callback methods from MDevSoundObserver mixin
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   200
	void InitializeComplete(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   201
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   202
	void BufferToBeFilled(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   203
	void PlayError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   204
	void BufferToBeEmptied(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   205
	void RecordError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   206
	void ConvertError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   207
	void DeviceMessage(TUid aMessageType, const TDesC8& aMsg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   208
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   209
	// Utility Methods
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   210
	void ResetCallbacks();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   211
	TInt GetCallbackTotal();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   212
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   213
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   214
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   215
	TFixedArray<TInt, 7> iCallbackArray;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   216
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   217
	// pointer to suite which owns this test 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   218
	const CTestSuiteDevSound* iDevSoundTestSuite;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   219
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   220
	CActiveScheduler* iAS;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   221
	CMMFDevSound* iMMFDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   222
	TInt iExpectedValue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   223
	TInt iCallbackError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   224
	CMMFBuffer* iBuffer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   225
	RFile iFile;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   226
    RFs iFs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   227
    //The sequence of methods called in this test - 1.Initilaize DevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   228
 	// 2.PlayInitL, 3.Play 4.EmptyBuffers .Continue sequence 3 to 4
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   229
 	//This variable is used to count number of buffers in the sequence of call from 3 to 4
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   230
    TInt iBufferCount;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   231
    //To know the last buffer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   232
    TBool iLastBuffer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   233
};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   234
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   235
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   236
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   237
class CTestStepDevSoundInitializePlay : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   238
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   239
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   240
	CTestStepDevSoundInitializePlay();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   241
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   242
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   243
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   244
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   245
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   246
class CTestStepDevSoundInitializeHwDeviceUidPlay : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   247
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   248
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   249
	CTestStepDevSoundInitializeHwDeviceUidPlay();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   250
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   251
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   252
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   253
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   254
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   255
class CTestStepDevSoundInitializeFourCCPlay : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   256
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   257
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   258
	CTestStepDevSoundInitializeFourCCPlay();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   259
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   260
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   261
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   262
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   263
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   264
class CTestStepDevSoundInitializeRecord : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   265
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   266
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   267
	CTestStepDevSoundInitializeRecord();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   268
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   269
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   270
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   271
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   272
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   273
class CTestStepDevSoundInitializeHwDeviceUidRecord : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   274
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   275
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   276
	CTestStepDevSoundInitializeHwDeviceUidRecord();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   277
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   278
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   279
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   280
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   281
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   282
class CTestStepDevSoundInitializeFourCCRecord : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   283
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   284
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   285
	CTestStepDevSoundInitializeFourCCRecord();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   286
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   287
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   288
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   289
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   290
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   291
class CTestStepDevSoundInitializeInvalidFourCC : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   292
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   293
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   294
	CTestStepDevSoundInitializeInvalidFourCC();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   295
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   296
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   297
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   298
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   299
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   300
class CTestStepDevSoundCheckCaps : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   301
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   302
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   303
	CTestStepDevSoundCheckCaps();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   304
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   305
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   306
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   307
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   308
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   309
class CTestStepDevSoundSimpleTone : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   310
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   311
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   312
	CTestStepDevSoundSimpleTone();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   313
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   314
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   315
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   316
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   317
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   318
class CTestStepDevSoundDTMFTones : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   319
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   320
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   321
	CTestStepDevSoundDTMFTones();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   322
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   323
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   324
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   325
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   326
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   327
class CTestStepDevSoundSimpleToneChangeVolume : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   328
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   329
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   330
	CTestStepDevSoundSimpleToneChangeVolume();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   331
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   332
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   333
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   334
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   335
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   336
class CTestStepDevSoundDTMFTonesInvalidStrings : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   337
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   338
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   339
	CTestStepDevSoundDTMFTonesInvalidStrings();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   340
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   341
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   342
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   343
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   344
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   345
class CTestStepDevSoundSimpleToneInvalidFreq : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   346
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   347
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   348
	CTestStepDevSoundSimpleToneInvalidFreq();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   349
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   350
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   351
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   352
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   353
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   354
class CTestStepDevSoundSimpleToneInvalidDuration : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   355
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   356
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   357
	CTestStepDevSoundSimpleToneInvalidDuration();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   358
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   359
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   360
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   361
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   362
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   363
class CTestStepDevSoundPlayInit : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   364
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   365
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   366
	CTestStepDevSoundPlayInit();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   367
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   368
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   369
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   370
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   371
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   372
class CTestStepDevSoundPlay1BufferPCM16 : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   373
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   374
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   375
	CTestStepDevSoundPlay1BufferPCM16();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   376
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   377
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   378
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   379
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   380
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   381
class CTestStepDevSoundPlay5BuffersPCM16 : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   382
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   383
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   384
	CTestStepDevSoundPlay5BuffersPCM16();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   385
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   386
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   387
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   388
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   389
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   390
class CTestStepDevSoundPlayEOFPCM16 : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   391
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   392
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   393
	CTestStepDevSoundPlayEOFPCM16();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   394
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   395
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   396
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   397
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   398
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   399
class CTestStepDevSoundPlay1BufferPCM8 : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   400
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   401
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   402
	CTestStepDevSoundPlay1BufferPCM8();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   403
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   404
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   405
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   406
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   407
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   408
class CTestStepDevSoundPlay5BuffersPCM8 : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   409
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   410
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   411
	CTestStepDevSoundPlay5BuffersPCM8();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   412
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   413
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   414
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   415
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   416
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   417
class CTestStepDevSoundPlayEOFPCM8 : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   418
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   419
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   420
	CTestStepDevSoundPlayEOFPCM8();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   421
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   422
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   423
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   424
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   425
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   426
class CTestStepDevSoundPlayGarbageEOF : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   427
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   428
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   429
	CTestStepDevSoundPlayGarbageEOF();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   430
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   431
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   432
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   433
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   434
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   435
class CTestStepDevSoundMaxGain : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   436
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   437
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   438
	CTestStepDevSoundMaxGain();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   439
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   440
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   441
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   442
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   443
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   444
class CTestStepDevSoundMaxVolume : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   445
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   446
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   447
	CTestStepDevSoundMaxVolume();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   448
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   449
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   450
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   451
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   452
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   453
class CTestStepDevSoundSetGain : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   454
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   455
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   456
	CTestStepDevSoundSetGain();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   457
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   458
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   459
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   460
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   461
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   462
class CTestStepDevSoundSetVolume : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   463
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   464
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   465
	CTestStepDevSoundSetVolume();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   466
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   467
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   468
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   469
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   470
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   471
class CTestStepDevSoundRecord1BufferPCM16 : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   472
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   473
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   474
	CTestStepDevSoundRecord1BufferPCM16();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   475
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   476
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   477
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   478
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   479
class CTestStepDevSoundRecord10BuffersPCM16 : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   480
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   481
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   482
	CTestStepDevSoundRecord10BuffersPCM16();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   483
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   484
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   485
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   486
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   487
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   488
class CTestStepDevSoundRecord1BufferPCM8 : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   489
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   490
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   491
	CTestStepDevSoundRecord1BufferPCM8();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   492
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   493
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   494
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   495
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   496
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   497
class CTestStepDevSoundRecord10BuffersPCM8 : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   498
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   499
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   500
	CTestStepDevSoundRecord10BuffersPCM8();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   501
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   502
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   503
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   504
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   505
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   506
class CTestStepDevSoundRecordInitNoUECap : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   507
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   508
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   509
	CTestStepDevSoundRecordInitNoUECap(TBool aHasMMDDCap);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   510
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   511
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   512
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   513
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   514
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   515
class CTestStepDevSoundRecordInitWithUECap : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   516
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   517
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   518
	CTestStepDevSoundRecordInitWithUECap(TBool aHasAllCaps);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   519
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   520
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   521
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   522
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   523
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   524
class CTestStepDevSoundRecordDataWithUECap : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   525
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   526
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   527
	CTestStepDevSoundRecordDataWithUECap(TBool aHasAllCaps);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   528
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   529
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   530
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   531
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   532
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   533
class CTestStepDevSoundSetConfigStereo : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   534
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   535
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   536
	CTestStepDevSoundSetConfigStereo();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   537
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   538
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   539
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   540
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   541
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   542
class CTestStepDevSoundSetConfigSampleRate : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   543
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   544
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   545
	CTestStepDevSoundSetConfigSampleRate();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   546
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   547
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   548
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   549
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   550
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   551
class CTestStepDevSoundGetSupportedInputDataTypes : public CTestStepDevSound 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   552
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   553
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   554
	CTestStepDevSoundGetSupportedInputDataTypes();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   555
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   556
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   557
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   558
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   559
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   560
class CTestStepDevSoundGetSupportedOutputDataTypes : public CTestStepDevSound 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   561
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   562
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   563
	CTestStepDevSoundGetSupportedOutputDataTypes();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   564
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   565
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   566
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   567
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   568
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   569
class CTestStepDevSoundGetSupportedInputDataTypesOOM : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   570
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   571
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   572
	CTestStepDevSoundGetSupportedInputDataTypesOOM();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   573
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   574
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   575
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   576
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   577
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   578
class CTestStepDevSoundGetSupportedOutputDataTypesOOM : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   579
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   580
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   581
	CTestStepDevSoundGetSupportedOutputDataTypesOOM();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   582
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   583
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   584
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   585
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   586
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   587
class CTestStepDevSoundPlayPauseTone : public RAsyncTestStep, public MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   588
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   589
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   590
	static CTestStepDevSoundPlayPauseTone* NewL(CTestSuite* aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   591
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   592
	void Fsm();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   593
	void FsmL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   594
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   595
	// from RAsyncTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   596
	void KickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   597
	void CloseTest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   598
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   599
	// from MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   600
	void InitializeComplete(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   601
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   602
	void BufferToBeFilled(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   603
	void PlayError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   604
	void BufferToBeEmptied(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   605
	void RecordError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   606
	void ConvertError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   607
	void DeviceMessage(TUid aMessageType, const TDesC8& aMsg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   608
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   609
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   610
	CTestStepDevSoundPlayPauseTone(CTestSuite* aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   611
	void TestPlayToneL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   612
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   613
	CMMFDevSound* iMMFAudioDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   614
	CMMFDevSound* iMMFToneDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   615
	RFs iFs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   616
	RFile iInputFile;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   617
	enum TTestState
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   618
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   619
		EStateInitialiseAudioDevSound,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   620
		EStateInitialiseToneDevSound,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   621
		EStatePlayInit,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   622
		EStatePlayData,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   623
		EStatePlayTone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   624
		};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   625
	TTestState iTestState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   626
	CMMFBuffer* iBuffer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   627
	TInt iBufferCount;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   628
	TBool iTonePlayKickedOff;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   629
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   630
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   631
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   632
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   633
class CTestStepDevSoundPlayPauseTone2 : public RAsyncTestStep, public MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   634
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   635
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   636
	static CTestStepDevSoundPlayPauseTone2* NewL(CTestSuite* aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   637
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   638
	void Fsm();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   639
	void FsmL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   640
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   641
	// from RAsyncTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   642
	void KickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   643
	void CloseTest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   644
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   645
	// from MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   646
	void InitializeComplete(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   647
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   648
	void BufferToBeFilled(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   649
	void PlayError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   650
	void BufferToBeEmptied(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   651
	void RecordError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   652
	void ConvertError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   653
	void DeviceMessage(TUid aMessageType, const TDesC8& aMsg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   654
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   655
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   656
	CTestStepDevSoundPlayPauseTone2(CTestSuite* aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   657
	void TestPlayToneL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   658
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   659
	CMMFDevSound* iMMFAudioDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   660
	CMMFDevSound* iMMFToneDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   661
	RFs iFs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   662
	RFile iInputFile;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   663
	enum TTestState
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   664
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   665
		EStateInitialiseAudioDevSound,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   666
		EStateInitialiseToneDevSound,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   667
		EStatePlayInit,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   668
		EStatePlayData,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   669
		EStatePlayTone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   670
		};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   671
	TTestState iTestState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   672
	CMMFBuffer* iBuffer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   673
	TInt iBufferCount;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   674
	TBool iTonePlayKickedOff;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   675
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   676
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   677
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   678
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   679
class CTestStepDevSoundPlayPauseTone3 : public RAsyncTestStep, public MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   680
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   681
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   682
	static CTestStepDevSoundPlayPauseTone3* NewL(CTestSuite* aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   683
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   684
	void Fsm();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   685
	void FsmL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   686
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   687
	// from RAsyncTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   688
	void KickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   689
	void CloseTest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   690
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   691
	// from MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   692
	void InitializeComplete(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   693
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   694
	void BufferToBeFilled(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   695
	void PlayError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   696
	void BufferToBeEmptied(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   697
	void RecordError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   698
	void ConvertError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   699
	void DeviceMessage(TUid aMessageType, const TDesC8& aMsg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   700
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   701
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   702
	CTestStepDevSoundPlayPauseTone3(CTestSuite* aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   703
	void TestPlayToneL(TBool aLowPriority = ETrue);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   704
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   705
	CMMFDevSound* iMMFAudioDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   706
	CMMFDevSound* iMMFLowPriorityToneDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   707
	CMMFDevSound* iMMFHighPriorityToneDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   708
	RFs iFs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   709
	RFile iInputFile;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   710
	enum TTestState
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   711
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   712
		EStateInitialiseAudioDevSound,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   713
		EStateInitialiseLowPriorityToneDevSound,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   714
		EStateInitialiseHighPriorityToneDevSound,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   715
		EStatePlayInit,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   716
		EStatePlayData,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   717
		EStatePlayTone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   718
		};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   719
	TTestState iTestState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   720
	CMMFBuffer* iBuffer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   721
	TInt iBufferCount;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   722
	TBool iLowPriorityTonePlayKickedOff;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   723
	TBool iHighPriorityTonePlayKickedOff;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   724
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   725
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   726
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   727
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   728
class RTestStepDevSoundToneTone : public RAsyncTestStep, public MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   729
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   730
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   731
	static RTestStepDevSoundToneTone* NewL(CTestSuite* aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   732
	static TInt TimerCallBack(TAny* aPtr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   733
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   734
	void Fsm();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   735
	void FsmL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   736
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   737
	// from RAsyncTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   738
	void KickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   739
	void CloseTest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   740
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   741
	// from MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   742
	void InitializeComplete(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   743
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   744
	void BufferToBeFilled(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   745
	void PlayError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   746
	void BufferToBeEmptied(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   747
	void RecordError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   748
	void ConvertError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   749
	void DeviceMessage(TUid aMessageType, const TDesC8& aMsg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   750
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   751
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   752
	RTestStepDevSoundToneTone(CTestSuite* aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   753
	void TestPlayToneL(TBool aLowPriority = ETrue);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   754
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   755
	CMMFDevSound* iMMFLowPriorityToneDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   756
	CMMFDevSound* iMMFHighPriorityToneDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   757
	enum TTestState
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   758
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   759
		EStateInitialiseLowPriorityToneDevSound,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   760
		EStateInitialiseHighPriorityToneDevSound,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   761
		EStatePlayingHighPriorityTone,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   762
		EStatePlayingLowPriorityTone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   763
		};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   764
	TTestState iTestState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   765
	CPeriodic* iTimer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   766
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   767
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   768
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   769
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   770
class RTestStepDevSoundRecordRecord : public RAsyncTestStep, public MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   771
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   772
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   773
	static RTestStepDevSoundRecordRecord* NewL(CTestSuite* aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   774
	static TInt TimerCallBack(TAny* aPtr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   775
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   776
	void Fsm();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   777
	void FsmL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   778
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   779
	// from RAsyncTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   780
	void KickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   781
	void CloseTest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   782
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   783
	// from MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   784
	void InitializeComplete(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   785
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   786
	void BufferToBeFilled(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   787
	void PlayError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   788
	void BufferToBeEmptied(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   789
	void RecordError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   790
	void ConvertError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   791
	void DeviceMessage(TUid aMessageType, const TDesC8& aMsg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   792
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   793
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   794
	RTestStepDevSoundRecordRecord(CTestSuite* aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   795
	//void TestPlayToneL(TBool aLowPriority = ETrue);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   796
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   797
	CMMFDevSound* iMMFLowPriorityRecordDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   798
	CMMFDevSound* iMMFHighPriorityRecordDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   799
	enum TTestState
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   800
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   801
		EStateInitialiseLowPriorityRecordDevSound,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   802
		EStateInitialiseHighPriorityRecordDevSound,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   803
		EStateRecordingHighPriorityAudio,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   804
		EStateRecordingLowPriorityAudio
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   805
		};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   806
	TTestState iTestState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   807
	CPeriodic* iTimer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   808
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   809
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   810
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   811
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   812
class RTestStepDevSoundToneReplay : public RAsyncTestStep, public MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   813
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   814
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   815
	static RTestStepDevSoundToneReplay* NewL(CTestSuite* aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   816
	static TInt TimerCallBack(TAny* aPtr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   817
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   818
	void Fsm();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   819
	void FsmL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   820
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   821
	// from RAsyncTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   822
	void KickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   823
	void CloseTest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   824
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   825
	// from MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   826
	void InitializeComplete(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   827
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   828
	void BufferToBeFilled(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   829
	void PlayError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   830
	void BufferToBeEmptied(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   831
	void RecordError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   832
	void ConvertError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   833
	void DeviceMessage(TUid aMessageType, const TDesC8& aMsg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   834
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   835
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   836
	RTestStepDevSoundToneReplay(CTestSuite* aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   837
	void TestPlayToneL(TBool aLowPriority = ETrue);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   838
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   839
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   840
	CMMFDevSound* iMMFLowPriorityToneDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   841
	CMMFDevSound* iMMFHighPriorityToneDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   842
	enum TTestState
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   843
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   844
		EStateInitialiseLowPriorityToneDevSound,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   845
		EStateInitialiseHighPriorityToneDevSound,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   846
		EStatePlayingLowPriorityTone,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   847
		EStatePlayingHighPriorityTone,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   848
		EStateReplayingLowPriorityTone,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   849
		EStateWaitingAfterStop,		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   850
		};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   851
	TTestState iTestState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   852
	CPeriodic* iTimer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   853
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   854
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   855
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   856
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   857
class RTestStepDevSoundRecordRerecord : public RAsyncTestStep, public MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   858
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   859
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   860
	static RTestStepDevSoundRecordRerecord* NewL(CTestSuite* aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   861
	static TInt TimerCallBack(TAny* aPtr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   862
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   863
	void Fsm();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   864
	void FsmL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   865
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   866
	// from RAsyncTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   867
	void KickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   868
	void CloseTest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   869
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   870
	// from MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   871
	void InitializeComplete(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   872
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   873
	void BufferToBeFilled(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   874
	void PlayError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   875
	void BufferToBeEmptied(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   876
	void RecordError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   877
	void ConvertError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   878
	void DeviceMessage(TUid aMessageType, const TDesC8& aMsg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   879
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   880
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   881
	RTestStepDevSoundRecordRerecord(CTestSuite* aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   882
	void TestPlayToneL(TBool aLowPriority = ETrue);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   883
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   884
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   885
	CMMFDevSound* iMMFLowPriorityRecordDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   886
	CMMFDevSound* iMMFHighPriorityToneDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   887
	enum TTestState
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   888
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   889
		EStateInitialiseLowPriorityRecordDevSound,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   890
		EStateInitialiseHighPriorityToneDevSound,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   891
		EStateRecordingLowPriority,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   892
		EStatePlayingHighPriorityTone,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   893
		EStateRerecordingLowPriority,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   894
		EStateWaitingAfterStop,		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   895
		};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   896
	TTestState iTestState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   897
	CPeriodic* iTimer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   898
	TInt iBuffersRecordedCount;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   899
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   900
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   901
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   902
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   903
class RTestStepDevSoundPlayReplay : public RAsyncTestStep, public MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   904
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   905
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   906
	static RTestStepDevSoundPlayReplay* NewL(CTestSuite* aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   907
	static TInt TimerCallBack(TAny* aPtr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   908
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   909
	void Fsm();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   910
	void FsmL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   911
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   912
	// from RAsyncTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   913
	void KickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   914
	void CloseTest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   915
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   916
	// from MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   917
	void InitializeComplete(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   918
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   919
	void BufferToBeFilled(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   920
	void PlayError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   921
	void BufferToBeEmptied(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   922
	void RecordError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   923
	void ConvertError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   924
	void DeviceMessage(TUid aMessageType, const TDesC8& aMsg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   925
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   926
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   927
	RTestStepDevSoundPlayReplay(CTestSuite* aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   928
	void TestPlayToneL(TBool aLowPriority = ETrue);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   929
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   930
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   931
	CMMFDevSound* iMMFLowPriorityPlayDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   932
	CMMFDevSound* iMMFHighPriorityToneDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   933
	enum TTestState
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   934
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   935
		EStateInitialiseLowPriorityPlayDevSound,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   936
		EStateInitialiseHighPriorityToneDevSound,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   937
		EStatePlayingLowPriority,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   938
		EStatePlayingHighPriorityTone,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   939
		EStateReplayingLowPriority,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   940
		EStateWaitingAfterStop,		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   941
		};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   942
	TTestState iTestState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   943
	CPeriodic* iTimer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   944
	RFile iInputFile;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   945
	RFs iFs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   946
	TInt iBuffersPlayedCount;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   947
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   948
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   949
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   950
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   951
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   952
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   953
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   954
 * Check that the SampleRate supported for tone play is 8000Hz only. Fix for DEF054803
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   955
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   956
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   957
class CTestStepDevSoundCheckSampleRateforTone : public CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   958
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   959
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   960
	CTestStepDevSoundCheckSampleRateforTone();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   961
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   962
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   963
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   964
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   965
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   966
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   967
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   968
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   969
class RTestStepBasicCustomInterface : public RTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   970
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   971
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   972
	static RTestStepBasicCustomInterface* NewL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   973
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   974
	// from RTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   975
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   976
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   977
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   978
	TVerdict TestCustomInterface(MMMFDevSoundTestCustomInterface* aInterface);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   979
	RTestStepBasicCustomInterface();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   980
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   981
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   982
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   983
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   984
class RTestStepBasicCustomInterfaceAlloc : public RTestStepBasicCustomInterface
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   985
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   986
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   987
	static RTestStepBasicCustomInterfaceAlloc* NewL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   988
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   989
	// from RTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   990
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   991
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   992
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   993
	RTestStepBasicCustomInterfaceAlloc();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   994
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   995
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   996
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   997
class CTestStepDevSoundEmptyBuffersPos : public CTestStepDevSoundCustomInterface
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   998
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   999
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1000
	CTestStepDevSoundEmptyBuffersPos();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1001
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1002
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1003
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1004
class CTestStepDevSoundEmptyBuffersNeg1 : public CTestStepDevSoundCustomInterface
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1005
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1006
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1007
	CTestStepDevSoundEmptyBuffersNeg1();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1008
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1009
	void FsmL(TMmfDevSoundEvents aDevSoundEvent);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1010
	void InitializeComplete(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1011
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1012
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1013
class CTestStepDevSoundEmptyBuffersNeg2 : public CTestStepDevSoundCustomInterface
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1014
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1015
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1016
	CTestStepDevSoundEmptyBuffersNeg2();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1017
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1018
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1019
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1020
class CTestStepDevSoundCITest;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1021
class CFsmHelper : public CActive
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1022
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1023
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1024
	static CFsmHelper* NewL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1025
	~CFsmHelper();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1026
	void Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1027
	TRequestStatus* GetStatus();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1028
	TVerdict GetResult();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1029
	void SetDevSoundPointer(CMMFDevSound* aMMFDevSound);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1030
	void SetDevSoundTestPointer(CTestStepDevSoundCITest* aMMFDevSndTestPointer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1031
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1032
	CFsmHelper();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1033
	void ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1034
private://From CActive
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1035
	void RunL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1036
	void DoCancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1037
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1038
enum TEventStatus
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1039
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1040
	EDevSoundInit1,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1041
	EDevSoundInit2,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1042
	EAddDelayClient2,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1043
	EClient2Idle
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1044
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1045
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1046
	TEventStatus iEventStatus;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1047
	TVerdict iTestResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1048
	TEventStatus iClientStatus;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1049
	TRequestStatus iRequestStatus 	;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1050
	CLog* iLog;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1051
	MMMFDevSoundCustomInterfaceBitRate* iTestInterface;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1052
	CMMFDevSound* iMMFDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1053
	CTestStepDevSoundCITest* iTestPointer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1054
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1055
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1056
class CTestStepDevSoundCITest : public CTestStepDevSoundCustomInterface
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1057
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1058
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1059
	CTestStepDevSoundCITest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1060
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1061
	void InitializeComplete(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1062
	CFsmHelper* iFsmHelper;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1063
	virtual void Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1064
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1065
private:	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1066
	MMMFDevSoundTestCustomInterface* iTestInterface;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1067
	TInt iInitComplete;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1068
	};	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1069
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1070
#ifdef SYMBIAN_MULTIMEDIA_A3FDEVSOUND
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1071
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1072
class CTestStepDevSoundServerSideAlloc : public CTestStepDevSoundCustomInterface
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1073
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1074
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1075
	CTestStepDevSoundServerSideAlloc();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1076
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1077
	void AllocLoopTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1078
	void InitializeComplete(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1079
	TInt MethodToTest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1080
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1081
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1082
#endif
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1083
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1084
//test case for  PDEF117811 Ref DevSound policy updating on error condition is inconsistent 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1085
class CTestDevSoundObserver;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1086
class RDevSoundPolicyUpdateTest : public RAsyncTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1087
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1088
public:	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1089
enum TTestEvent
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1090
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1091
	EDevSoundInitComplete,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1092
	EBTBF,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1093
	EBTBE,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1094
	EPlayError,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1095
	ETonePlayError,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1096
	ERecordError
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1097
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1098
enum TClientId
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1099
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1100
	EObserver1,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1101
	EObserver2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1102
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1103
enum TStage
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1104
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1105
	EPlayData,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1106
	EStartPlay,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1107
	EStartRecord,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1108
	ERecordData,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1109
	EStartPlayTune,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1110
	EStartDualPlayTone,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1111
	EStartPlayDTMFString,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1112
	EStartPlayToneSequence
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1113
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1114
enum TTestState
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1115
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1116
	//different stages are used to cover various functions in CMMFDevSoundSvrImp, where
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1117
	//changes are done as part of fix. Refer in .cpp file for more details about the test.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1118
	//stage1 - test CMMFDevSoundSvrImp::PlayData error
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1119
	E1_InitDevSound1, //initialise DevSound1
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1120
	E1_PlayInitDevSound1, //Play init DevSound1
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1121
	//PlayData on DevSound1; this should result in KErrAbort due to error in 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1122
	//CMMFSwCodecWrapper::ThisHwBufferFilled() 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1123
	E1_Simulate_hw_ThisHwBufferFilled_error,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1124
	E1_InitDevSound2, //initialise DevSound2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1125
	E1_PlayInitDevSound2,  //playData on DevSound2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1126
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1127
	//stage2- test CMMFDevSoundSvrImp::StartPlayL error
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1128
	//stage2_1
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1129
	E2_1_InitDevSound1,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1130
	E2_Simulate_hw_SetConfig_Error,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1131
	E2_1_PlayInitDevSound2,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1132
	//stage2_2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1133
	E2_2_InitDevSound1,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1134
	E2_Simulate_hw_Start_Error,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1135
	E2_2_PlayInitDevSound2,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1136
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1137
	//stage3 - test CMMFDevSoundSvrImp::StartRecord error
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1138
	E3_1_InitDevSound1,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1139
	E3_1_InitDevSound2,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1140
	E3_Simulate_hw_SetConfig_Error,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1141
	E3_1_PlayInitDevSound2,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1142
	E3_2_InitDevSound1,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1143
	E3_Simulate_hw_Start_Error,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1144
	E3_2_PlayInitDevSound1,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1145
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1146
	//stage4 - test CMMFDevSoundSvrImp::RecordData error
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1147
	E4_InitDevSound1,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1148
	E4_RecordInitDevSound1,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1149
	E4_Simulate_hw_ThisHwBufferEmptied_error,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1150
	E4_RecordInitDevSound2,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1151
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1152
	//stage5 - test CMMFDevSoundSvrImp::StartPlayTone; covers error from SetPlayFormat
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1153
	E5_InitDevSound1,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1154
	E5_Simulate_hw_SetConfig_error, //from StartPlayToneL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1155
	E5_InitDevSound2,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1156
	E5_PlayInitDevSound2,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1157
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1158
	//stage6 - test CMMFDevSoundSvrImp::StartDualPlayTone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1159
	E6_InitDevSound1,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1160
	E6_Simulate_hw_SetConfig_error, //from StartDualPlayToneL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1161
	E6_PlayInitDevSound2,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1162
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1163
	//stage7 - test CMMFDevSoundSvrImp::StartPlayDTMFString
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1164
	E7_Simulate_hw_SetConfig_error, //from StartPlayDTMFString
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1165
	E7_PlayInitDevSound2,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1166
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1167
	//stage8- test CMMFDevSoundSvrImp::StartPlayToneSequence
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1168
	E8_Simulate_hw_SetConfig_error,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1169
	E8_PlayInitDevSound2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1170
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1171
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1172
	static RDevSoundPolicyUpdateTest* NewL(const TDesC& aStepName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1173
	// from RAsyncTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1174
	void KickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1175
	void CloseTest();	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1176
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1177
	void Fsm(TClientId aClientId, TTestEvent aTestEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1178
	void FsmL(TClientId aClientId, TTestEvent aTestEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1179
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1180
	//FSM s for different stages of testing. Each stage is to test a function in 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1181
	//Devsound server.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1182
	void PlayData_FsmL(TClientId aClientId, TTestEvent aTestEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1183
	void StartPlay_FsmL(TClientId aClientId, TTestEvent aTestEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1184
	void StartRecord_FsmL(TClientId aClientId, TTestEvent aTestEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1185
	void RecordData_FsmL(TClientId aClientId, TTestEvent aTestEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1186
	void StartPlayTone_FsmL(TClientId aClientId, TTestEvent aTestEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1187
	void StartPlayDualTone_FsmL(TClientId aClientId, TTestEvent aTestEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1188
	void StartPlayDTMFString_FsmL(TClientId aClientId, TTestEvent aTestEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1189
	void StartPlayToneSequence_FsmL(TClientId aClientId, TTestEvent aTestEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1190
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1191
	RDevSoundPolicyUpdateTest(const TDesC& aStepName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1192
	CMMFDevSound* iMMFDevSound1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1193
	CMMFDevSound* iMMFDevSound2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1194
	CTestDevSoundObserver* iDevSoundObserver1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1195
	CTestDevSoundObserver* iDevSoundObserver2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1196
	TInt iTestState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1197
	TStage iStage;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1198
	TUid iTestHwDevice1Uid;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1199
	TUid iTestHwDevice2Uid;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1200
	TUid iTestHwDevice3Uid;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1201
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1202
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1203
class CTestDevSoundObserver : public CBase, public MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1204
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1205
public:	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1206
	static CTestDevSoundObserver* NewL(RDevSoundPolicyUpdateTest* aParent, RDevSoundPolicyUpdateTest::TClientId aClientId);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1207
	// from MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1208
	void InitializeComplete(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1209
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1210
	void BufferToBeFilled(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1211
	void PlayError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1212
	void BufferToBeEmptied(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1213
	void RecordError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1214
	void ConvertError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1215
	void DeviceMessage(TUid aMessageType, const TDesC8& aMsg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1216
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1217
	CTestDevSoundObserver(RDevSoundPolicyUpdateTest* aParent, RDevSoundPolicyUpdateTest::TClientId aClientId);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1218
	RDevSoundPolicyUpdateTest* iParent;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1219
	RDevSoundPolicyUpdateTest::TClientId iSelfId;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1220
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1221
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1222
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1223
const TInt KMaxStringLength = 255;	// Used to define DTMF length
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1224
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1225
class MStoppableTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1226
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1227
	public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1228
		virtual void CallStopTest(TInt aError) = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1229
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1230
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1231
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1232
 Base class for all DevSound Volume ramp tests
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1233
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1234
class RDevSoundTestBase: public RAsyncTestStep, public MDevSoundObserver, public MStoppableTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1235
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1236
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1237
	// DevSound events
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1238
	enum TMmfDevSoundEvent
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1239
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1240
		EEventInitialize = 0,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1241
		EEventInitComplete,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1242
		EEventBTBF,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1243
		EEventBTBE,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1244
		EEventTimerComplete
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1245
		};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1246
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1247
	// DevSound states
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1248
	enum TMmfDevSoundState
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1249
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1250
		EStateInitial = 0,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1251
		EStateCreated,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1252
		EStateInitializing,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1253
		EStatePlaying,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1254
		EStateRecording,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1255
		EStatePause
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1256
		};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1257
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1258
	enum TPanicCodes
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1259
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1260
		EFsmIncorrectErrorPassed = 0,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1261
		EInvalidCallbackCall
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1262
		};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1263
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1264
	// from RAsyncTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1265
	void KickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1266
	void CloseTest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1267
	virtual void CallStopTest(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1268
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1269
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1270
	RDevSoundTestBase(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1271
	virtual void DoKickoffTestL() = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1272
	virtual void DoTimerCallback();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1273
	static TInt TimerCallback(TAny*);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1274
	void StartTimer(TTimeIntervalMicroSeconds32 aWaitTime);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1275
	// from MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1276
	void InitializeComplete(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1277
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1278
	void BufferToBeFilled(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1279
	void PlayError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1280
	void BufferToBeEmptied(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1281
	void RecordError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1282
	void ConvertError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1283
	void DeviceMessage(TUid aMessageType, const TDesC8& aMsg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1284
	void SendEventToClient(const TMMFEvent& aEvent);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1285
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1286
	// Executes events of DevSound using a Finite State Machine
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1287
	virtual void Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1288
	void Panic(TInt aReason);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1289
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1290
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1291
	TMmfDevSoundState iDevSoundState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1292
	CMMFDevSound* iMMFDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1293
	CPeriodic* iTimer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1294
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1295
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1296
class RDevSoundDualToneVolumeRampTest : public RDevSoundTestBase
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1297
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1298
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1299
	static RDevSoundDualToneVolumeRampTest* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1300
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1301
	RDevSoundDualToneVolumeRampTest(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1302
	void Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1303
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1304
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1305
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1306
	TInt iVolumeRamp;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1307
	TInt iDuration;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1308
	TInt iFrequencyTone1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1309
	TInt iFrequencyTone2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1310
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1311
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1312
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1313
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1314
class RDevSoundDTMFStringVolumeRampTest : public RDevSoundTestBase
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1315
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1316
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1317
	static RDevSoundDTMFStringVolumeRampTest* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1318
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1319
	RDevSoundDTMFStringVolumeRampTest(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1320
	void Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1321
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1322
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1323
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1324
	TInt iVolumeRamp;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1325
	TBuf16<KMaxStringLength> iDTMFString;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1326
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1327
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1328
class RDevSoundToneSequenceVolumeRampTest : public RDevSoundTestBase
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1329
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1330
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1331
	static RDevSoundToneSequenceVolumeRampTest* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1332
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1333
	RDevSoundToneSequenceVolumeRampTest(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1334
	void Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1335
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1336
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1337
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1338
	TInt iVolumeRamp;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1339
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1340
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1341
class RDevSoundDualToneSetVolumeRampWhilePlayingTest : public RDevSoundTestBase
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1342
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1343
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1344
	static RDevSoundDualToneSetVolumeRampWhilePlayingTest* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1345
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1346
	RDevSoundDualToneSetVolumeRampWhilePlayingTest(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1347
	void Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1348
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1349
	void DoTimerCallback();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1350
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1351
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1352
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1353
	TInt iVolume;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1354
	TInt iVolumeRamp;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1355
	TInt iDuration; 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1356
	TInt iFrequencyTone1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1357
	TInt iFrequencyTone2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1358
	TBool iTonePlayedTwice;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1359
	TTime iStartTime;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1360
	TTime iEndTime;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1361
	TTimeIntervalMicroSeconds iPlayToneTime;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1362
	TInt iTimesToneFinishedCalled;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1363
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1364
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1365
class RDevSoundDTMFStringSetVolumeRampWhilePlayingTest : public RDevSoundTestBase
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1366
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1367
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1368
	static RDevSoundDTMFStringSetVolumeRampWhilePlayingTest* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1369
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1370
	RDevSoundDTMFStringSetVolumeRampWhilePlayingTest(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1371
	void Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1372
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1373
	void DoTimerCallback();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1374
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1375
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1376
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1377
	TInt iVolume;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1378
	TInt iVolumeRamp;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1379
	TBool iFirstToneFinishedCall;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1380
	TBuf16<KMaxStringLength> iDTMFString;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1381
	TInt iDTMFPauses;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1382
	TInt iDTMFTones;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1383
	TTime iStartTime;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1384
	TTime iEndTime;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1385
	TTimeIntervalMicroSeconds iPlayToneTime;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1386
	TInt iTimesToneFinishedCalled;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1387
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1388
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1389
class RDevSoundToneSequenceSetVolumeRampWhilePlayingTest : public RDevSoundTestBase
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1390
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1391
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1392
	static RDevSoundToneSequenceSetVolumeRampWhilePlayingTest* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1393
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1394
	RDevSoundToneSequenceSetVolumeRampWhilePlayingTest(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1395
	void Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1396
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1397
	void DoTimerCallback();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1398
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1399
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1400
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1401
	TInt iVolume;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1402
	TInt iVolumeRamp;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1403
	TBool iFirstToneFinishedCall;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1404
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1405
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1406
//Test case for PDEF121315  - Cannot update the observer specified with InitializeL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1407
class CMultiInitTestDevSoundObserver;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1408
class RDevSoundMultiInitTest : public RAsyncTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1409
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1410
public:	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1411
enum EMultiInitTestEvent
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1412
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1413
	EDevSoundInitComplete,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1414
	EBTBF
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1415
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1416
enum EClientId
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1417
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1418
	EObserver1,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1419
	EObserver2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1420
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1421
enum ETestState
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1422
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1423
	//states for testing CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TMMFState aMode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1424
	EInit1Observer1, //DevSound initialised with Observer1
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1425
	EInit1Observer2, //DevSound initialised with Observer2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1426
	//states for testing - CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TUid aHWDev, TMMFState aMode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1427
	EInit2Observer1, //DevSound initialised with Observer1
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1428
	EInit2Observer2, //DevSound initialised with Observer2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1429
	//states for testing - CMMFDevSound::InitializeL(MDevSoundObserver& aDevSoundObserver, TFourCC aDesiredFourCC, TMMFState aMode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1430
	EInit3Observer1, //DevSound initialised with Observer1
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1431
	EInit3Observer2  //DevSound initialised with Observer2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1432
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1433
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1434
	static RDevSoundMultiInitTest* NewL(const TDesC& aStepName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1435
	// from RAsyncTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1436
	void KickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1437
	void CloseTest();	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1438
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1439
	void Fsm(EClientId aClientId, EMultiInitTestEvent aTestEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1440
	void FsmL(EClientId aClientId, EMultiInitTestEvent aTestEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1441
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1442
	RDevSoundMultiInitTest(const TDesC& aStepName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1443
	CMMFDevSound* iMMFDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1444
	CMultiInitTestDevSoundObserver* iDevSoundObserver1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1445
	CMultiInitTestDevSoundObserver* iDevSoundObserver2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1446
	TInt iTestState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1447
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1448
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1449
class CMultiInitTestDevSoundObserver : public CBase, public MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1450
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1451
public:	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1452
	static CMultiInitTestDevSoundObserver* NewL(RDevSoundMultiInitTest* aParent, RDevSoundMultiInitTest::EClientId aClientId);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1453
	// from MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1454
	void InitializeComplete(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1455
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1456
	void BufferToBeFilled(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1457
	void PlayError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1458
	void BufferToBeEmptied(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1459
	void RecordError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1460
	void ConvertError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1461
	void DeviceMessage(TUid aMessageType, const TDesC8& aMsg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1462
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1463
	CMultiInitTestDevSoundObserver(RDevSoundMultiInitTest* aParent, RDevSoundMultiInitTest::EClientId aClientId);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1464
	RDevSoundMultiInitTest* iParent;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1465
	RDevSoundMultiInitTest::EClientId iSelfId;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1466
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1467
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1468
/////////////////////////////////////////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1469
/////////////////////////////////////////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1470
////////////							TruePause Devsound									/////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1471
/////////////////////////////////////////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1472
/////////////////////////////////////////////////////////////////////////////////////////////////////////
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1473
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1474
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1475
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1476
 * Constant declarations
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1477
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1478
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1479
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1480
const TInt KSizeBuf = 256;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1481
const TInt KMinimumPriority = -100;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1482
const TInt KMaximumPriority = 100;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1483
const TInt K8Bits = 8;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1484
const TInt KTFourCC = 4;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1485
const TInt KMaxSampleRateStringLength = 21;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1486
const TInt KMaxChannelsStringLength = 10;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1487
const TInt KDTMFTonedefaultToneOn = 250000;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1488
const TInt KDTMFTonedefaultToneOff = 50000;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1489
const TInt KDTMFTonedefaultPauseLength = 250000;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1490
const TInt K25Percent = 4;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1491
const TInt KPanicLength = 16;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1492
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1493
_LIT(KMsgErrorFourccLength,"Error in getting parameter length from INI file %d");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1494
_LIT(KPlayErrorText, "PlayError");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1495
_LIT(KRecordErrorText, "RecordError");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1496
_LIT(KToneFinishedText, "ToneFinished");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1497
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1498
_LIT(KEMMFSampleRate8000Hz,"EMMFSampleRate8000Hz");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1499
_LIT(KEMMFSampleRate11025Hz,"EMMFSampleRate11025Hz");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1500
_LIT(KEMMFSampleRate16000Hz,"EMMFSampleRate16000Hz");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1501
_LIT(KEMMFSampleRate22050Hz,"EMMFSampleRate22050Hz");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1502
_LIT(KEMMFSampleRate32000Hz,"EMMFSampleRate32000Hz");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1503
_LIT(KEMMFSampleRate44100Hz,"EMMFSampleRate44100Hz");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1504
_LIT(KEMMFSampleRate48000Hz,"EMMFSampleRate48000Hz");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1505
_LIT(KEMMFSampleRate88200Hz,"EMMFSampleRate88200Hz");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1506
_LIT(KEMMFSampleRate96000Hz,"EMMFSampleRate96000Hz");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1507
_LIT(KEMMFSampleRate12000Hz,"EMMFSampleRate12000Hz");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1508
_LIT(KEMMFSampleRate24000Hz,"EMMFSampleRate24000Hz");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1509
_LIT(KEMMFSampleRate64000Hz,"EMMFSampleRate64000Hz");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1510
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1511
_LIT(KEMMFMono,"EMMFMono");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1512
_LIT(KEMMFStereo,"EMMFStereo");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1513
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1514
// Section name keys
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1515
_LIT(KSampleRate, "SampleRate");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1516
_LIT(KSampleRate2, "SampleRate2");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1517
_LIT(KChannel, "Channel");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1518
_LIT(KFilename, "Filename");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1519
_LIT(KDurationEvent, "DurationEvent");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1520
_LIT(KOtherFilename, "OtherFilename");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1521
_LIT(KRRecordBalance, "RRecordBalance");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1522
_LIT(KLRecordBalance, "LRecordBalance");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1523
_LIT(KGain, "Gain");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1524
_LIT(KLSpeakerBalance, "LSpeakerBalance");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1525
_LIT(KRSpeakerBalance, "RSpeakerBalance");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1526
_LIT(KInvalidToneSequence,"InvalidToneSequence");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1527
_LIT(KFourccCode, "FourccCode");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1528
_LIT(KRecordDataFollowingResume, "RecordDataFollowingResume");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1529
_LIT(KRecordDataPriorToResume, "RecordDataPriorToResume");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1530
_LIT(KCheckForNoDataAfterResume, "CheckForNoDataAfterResume");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1531
_LIT(KCallResumeAfterResume, "CallResumeAfterResume ");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1532
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1533
enum TPanicCodes
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1534
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1535
	EFsmIncorrectErrorPassed = 0,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1536
	EInvalidCallbackCall
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1537
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1538
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1539
// DevSound events
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1540
enum TMmfDevSoundEvent
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1541
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1542
	EEventInitialize = 0,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1543
	EEventInitComplete,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1544
	EEventBTBF,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1545
	EEventBTBE,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1546
	EEventTimerComplete
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1547
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1548
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1549
// DevSound states
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1550
enum TMmfDevSoundState
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1551
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1552
	EStateInitial = 0,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1553
	EStateCreated,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1554
	EStateInitializing,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1555
	EStatePlaying,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1556
	EStateRecording,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1557
	EStatePause
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1558
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1559
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1560
// User defined "devSound client" error codes
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1561
enum TMmfDevSoundClientErrorCodes
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1562
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1563
	EInvalidClientFSMEvent = 1,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1564
	EInvalidClientFSMState,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1565
	EReadFileErrorInClient,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1566
	EWriteFileErrorInClient
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1567
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1568
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1569
// Panic function
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1570
static void Panic(const TDesC &aCategory, TInt aReason)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1571
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1572
	User::Panic(aCategory, aReason);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1573
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1574
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1575
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1576
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1577
 * Audio play client
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1578
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1579
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1580
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1581
class MA3FDevsoundPlayAudioClientObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1582
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1583
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1584
	virtual void ClientInitializeCompleteCallback(TInt aError) = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1585
	virtual void ClientBufferToBeFilledCallback(TInt aError) = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1586
	virtual void ClientPlayErrorCallback(TInt aError, TBool aLastBuffer) = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1587
	virtual void ClientPlayHandleOpenFileErrorInValidEventOrStateCallBack(TMmfDevSoundClientErrorCodes aError)=0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1588
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1589
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1590
class CA3FDevSoundPlayClient : public CBase, public MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1591
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1592
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1593
	static CA3FDevSoundPlayClient* NewL(MA3FDevsoundPlayAudioClientObserver &aObserver,TFourCC aFourccCode, RFs& aFs, CTestSuite* aSuite = NULL);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1594
	virtual ~CA3FDevSoundPlayClient();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1595
	// New functions
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1596
	void SetPriority(TInt priority);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1597
	TInt PlayInit(const TDesC& aFileName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1598
	TInt PlayAudio();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1599
	void StopPlay();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1600
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1601
	CA3FDevSoundPlayClient(MA3FDevsoundPlayAudioClientObserver &aObserver, TFourCC aFourccCode, RFs& aFs, CTestSuite* aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1602
	void ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1603
	TInt Fsm(TMmfDevSoundEvent aDevSoundEvent);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1604
	// from MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1605
	void BufferToBeFilled(CMMFBuffer *aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1606
	void BufferToBeEmptied(CMMFBuffer *aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1607
	void DeviceMessage(TUid aMessageType, const TDesC8& aMsg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1608
	void ConvertError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1609
	void InitializeComplete(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1610
	void PlayError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1611
	void RecordError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1612
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1613
	void LogExtra(const TText8* aFile, TInt aLine, TInt aSeverity,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1614
			TRefByValue<const TDesC16> aFmt,...);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1615
	TMmfDevSoundState iDevSoundState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1616
	CMMFDevSound* iDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1617
	MA3FDevsoundPlayAudioClientObserver &iObserver;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1618
	CMMFBuffer* iBuffer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1619
	TFileName iFilename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1620
	// Handle to a file server session
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1621
	RFs iFs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1622
	// Handle for the audio file for playing
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1623
	RFile iFile;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1624
	TFourCC iFourccCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1625
	CTestSuite* iSuite;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1626
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1627
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1628
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1629
 * TIntegrationTestLog16OverflowClient
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1630
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1631
class TIntegrationTestLog16OverflowClient :public TDes16Overflow
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1632
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1633
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1634
	// TDes16Overflow pure virtual
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1635
	virtual void Overflow(TDes16& aDes);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1636
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1637
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1638
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1639
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1640
 * Base class for TruePause DevSound test steps in this suite.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1641
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1642
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1643
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1644
class CAsyncWriteBufferToFile;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1645
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1646
class RA3FDevSoundTestBase: public RAsyncTestStep, public MDevSoundObserver, public MStoppableTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1647
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1648
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1649
	// from RAsyncTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1650
	void KickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1651
	void CloseTest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1652
	virtual void CallStopTest(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1653
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1654
	RA3FDevSoundTestBase(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1655
	virtual void DoKickoffTestL() = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1656
	virtual void DoTimerCallback();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1657
	static TInt TimerCallback(TAny*);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1658
	void StartTimer(TTimeIntervalMicroSeconds32 aWaitTime);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1659
	// Executes events of DevSound using a Finite State Machine
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1660
	virtual void Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1661
	// from MDevSoundObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1662
	void InitializeComplete(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1663
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1664
	void BufferToBeFilled(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1665
	void PlayError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1666
	void BufferToBeEmptied(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1667
	void RecordError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1668
	void ConvertError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1669
	void DeviceMessage(TUid aMessageType, const TDesC8& aMsg);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1670
	void SendEventToClient(const TMMFEvent& aEvent);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1671
	void SampleRateFromTIntToTMMFSampleRate(TInt aSampleRate, TMMFSampleRate &aESampleRate);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1672
	void SampleRateFromTUintToString(TUint aSampleRate, TDes& aStringSampleRate);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1673
	void ChannelsFromTUintToString(TUint aChannels, TDes& aStringChannels);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1674
	void EncodingFromStringToTFourCC(const TDesC& aFourCCString);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1675
	void PrintSupportedCapabilities(TUint aSampleRate,TUint aChannel);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1676
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1677
	TBuf<KSizeBuf> iFourCCString;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1678
	TFourCC iFourCCCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1679
	TMmfDevSoundState iDevSoundState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1680
	CMMFDevSound* iMMFDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1681
	CPeriodic* iTimer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1682
	CMMFBuffer* iBuffer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1683
	// Handle for the audio file for playing and recording
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1684
	RFile iFile;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1685
	// Handle to a file server session
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1686
	RFs iFs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1687
	CAsyncWriteBufferToFile* iAsyncWriteBTFAO;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1688
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1689
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1690
class TSampleRateToTMMFSampleRate
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1691
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1692
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1693
	TInt iTIntSampleRate;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1694
	TMMFSampleRate iTMMFSampleRate;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1695
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1696
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1697
class TSampleRateToString
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1698
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1699
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1700
	TUint iTUIntSampleRate;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1701
	TPtrC iTPtrSampleRate;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1702
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1703
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1704
class TChannelsToString
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1705
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1706
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1707
	TUint iTUIntChannels;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1708
	TPtrC iTPtrChannels;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1709
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1710
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1711
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1712
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1713
 * CAsyncWriteBufferToFile
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1714
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1715
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1716
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1717
class CAsyncWriteBufferToFile : public CActive
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1718
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1719
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1720
	static CAsyncWriteBufferToFile* NewL(RFile& aFile, CMMFDevSound* aDevSound, MStoppableTestStep* aTestStep);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1721
	~CAsyncWriteBufferToFile();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1722
	void Start(CMMFDataBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1723
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1724
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1725
	CAsyncWriteBufferToFile(RFile& aFile, CMMFDevSound* aDevSound, MStoppableTestStep* aTestStep);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1726
	void ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1727
	virtual void DoCancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1728
	virtual void RunL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1729
	virtual TInt RunError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1730
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1731
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1732
	RFile& iFile;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1733
	CMMFDevSound* iDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1734
	MStoppableTestStep* iTestStep;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1735
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1736
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1737
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1738
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1739
 * Play base class
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1740
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1741
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1742
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1743
class RA3FDevSoundTestPlay : public RA3FDevSoundTestBase
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1744
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1745
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1746
	RA3FDevSoundTestPlay(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1747
	~RA3FDevSoundTestPlay();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1748
	void Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1749
	void DoTimerCallback();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1750
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1751
	TFileName iFilename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1752
	TFileName iOtherFilename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1753
	TInt iSampleRate;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1754
	TInt iSampleRate2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1755
	TInt iChannels;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1756
	TInt iLSpeakerBalance;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1757
	TInt iRSpeakerBalance;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1758
	TInt iVolume;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1759
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1760
	TBool iClientRejectedClause;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1761
	TBool iClientPreemptedClause;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1762
	TBool iStopClause;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1763
	TBool iVolumeBalanceClause;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1764
	TBool iConfigClause;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1765
	TBool iCompletePlayBack;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1766
	TBool iInitAfterPauseClause;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1767
	TInt iErrExpected;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1768
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1769
	TMMFSampleRate iESampleRate;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1770
	TMMFCapabilities iCapabilitiesSet;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1771
	CA3FDevSoundPlayClient* iDevsoundPlayClient;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1772
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1773
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1774
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1775
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1776
 * Record base class
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1777
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1778
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1779
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1780
class RA3FDevSoundTestRecord : public RA3FDevSoundTestBase
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1781
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1782
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1783
	RA3FDevSoundTestRecord(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1784
	void Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1785
	~RA3FDevSoundTestRecord();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1786
	void Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1787
	void DoTimerCallback();	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1788
	void BufferToBeEmptied(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1789
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1790
	TInt iDuration;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1791
	TInt iSampleRate;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1792
	TInt iSampleRate2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1793
	TInt iLRecordBalance;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1794
	TInt iRRecordBalance;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1795
	TInt iChannels;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1796
	TInt iGain;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1797
	TBool isSecondTimeRecording;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1798
	TBool iNoWaitLastBufferClause;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1799
	TBool iPCMFormatClause;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1800
	TBool iGainBalanceClause;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1801
	TBool iConfigClause;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1802
	TMMFSampleRate iESampleRate;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1803
	TMMFCapabilities iCapabilitiesSet;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1804
	TBool iFollowingResume;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1805
	TBool iRecordDataFollowingResume;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1806
	TBool iRecordDataPriorToResume;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1807
	TBool iCheckForNoDataAfterResume;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1808
	TBool iInitAfterPauseClause;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1809
	TBool iResumeAfterResume;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1810
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1811
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1812
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1813
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1814
 * Tone base class
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1815
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1816
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1817
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1818
class RA3FDevSoundTestTone : public RA3FDevSoundTestBase
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1819
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1820
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1821
	RA3FDevSoundTestTone(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1822
	~RA3FDevSoundTestTone();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1823
	void Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1824
	void DoTimerCallback();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1825
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1826
	enum TPlayToneType
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1827
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1828
		EPlayTone,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1829
		EPlayDualTone,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1830
		EPlayDTMFString,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1831
		EPlayToneSequence
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1832
		};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1833
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1834
	TInt iDuration;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1835
	TInt iDurationEvent;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1836
	TInt iFrequencyTone1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1837
	TInt iFrequencyTone2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1838
	TInt iLSpeakerBalance;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1839
	TInt iRSpeakerBalance;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1840
	TInt iVolume;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1841
	TBool iVolumeBalanceClause;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1842
	TBool iPaused;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1843
	TBuf16<KMaxStringLength> iDTMFString;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1844
	TInt iDTMFPauses;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1845
	TInt iDTMFTones;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1846
	TPlayToneType iPlayToneType;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1847
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1848
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1849
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1850
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1851
 * MM-MMF-DEVSOUND-U-0081-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1852
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1853
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1854
class RA3FDevSoundPauseAndResumePlayingTest : public RA3FDevSoundTestPlay
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1855
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1856
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1857
	static RA3FDevSoundPauseAndResumePlayingTest* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1858
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1859
	RA3FDevSoundPauseAndResumePlayingTest(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1860
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1861
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1862
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1863
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1864
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1865
 * MM-MMF-DEVSOUND-U-0082-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1866
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1867
class RA3FDevSoundPlayRejectionTestWhilePausing : public RA3FDevSoundTestPlay, public MA3FDevsoundPlayAudioClientObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1868
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1869
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1870
	static RA3FDevSoundPlayRejectionTestWhilePausing* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1871
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1872
	RA3FDevSoundPlayRejectionTestWhilePausing(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1873
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1874
	void PlayError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1875
	void ClientInitializeCompleteCallback(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1876
	void ClientBufferToBeFilledCallback(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1877
	void ClientPlayErrorCallback(TInt aError, TBool aLastBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1878
	void ClientPlayHandleOpenFileErrorInValidEventOrStateCallBack(TMmfDevSoundClientErrorCodes aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1879
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1880
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1881
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1882
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1883
 * MM-MMF-DEVSOUND-U-0083-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1884
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1885
class RA3FDevSoundPlayPreemptionTestWhilePausing : public RA3FDevSoundTestPlay, public MA3FDevsoundPlayAudioClientObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1886
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1887
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1888
	static RA3FDevSoundPlayPreemptionTestWhilePausing* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1889
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1890
	RA3FDevSoundPlayPreemptionTestWhilePausing(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1891
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1892
	void PlayError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1893
	void ClientInitializeCompleteCallback(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1894
	void ClientBufferToBeFilledCallback(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1895
	void ClientPlayErrorCallback(TInt aError, TBool aLastBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1896
	void ClientPlayHandleOpenFileErrorInValidEventOrStateCallBack(TMmfDevSoundClientErrorCodes aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1897
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1898
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1899
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1900
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1901
 * MM-MMF-DEVSOUND-U-0084-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1902
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1903
class RA3FDevSoundPlayPauseAndStopPlayingTest : public RA3FDevSoundTestPlay
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1904
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1905
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1906
	static RA3FDevSoundPlayPauseAndStopPlayingTest* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1907
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1908
	RA3FDevSoundPlayPauseAndStopPlayingTest(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1909
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1910
	void BufferToBeFilled(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1911
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1912
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1913
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1914
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1915
 * MM-MMF-DEVSOUND-U-0085-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1916
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1917
class RA3FDevSoundPauseSetVolumeBalanceAndResumePlayingTest : public RA3FDevSoundTestPlay
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1918
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1919
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1920
	static RA3FDevSoundPauseSetVolumeBalanceAndResumePlayingTest* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1921
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1922
	RA3FDevSoundPauseSetVolumeBalanceAndResumePlayingTest(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1923
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1924
	void BufferToBeFilled(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1925
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1926
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1927
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1928
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1929
 * MM-MMF-DEVSOUND-U-0086-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1930
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1931
class RA3FDevSoundPauseSetConfigAndResumePlayingTest : public RA3FDevSoundTestPlay
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1932
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1933
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1934
	static RA3FDevSoundPauseSetConfigAndResumePlayingTest* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1935
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1936
	RA3FDevSoundPauseSetConfigAndResumePlayingTest(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1937
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1938
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1939
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1940
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1941
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1942
 * MM-MMF-DEVSOUND-U-0087-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1943
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1944
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1945
class RNonA3FDevSoundPauseAndResumePlayingTest : public RA3FDevSoundTestPlay
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1946
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1947
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1948
	static RNonA3FDevSoundPauseAndResumePlayingTest* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1949
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1950
	RNonA3FDevSoundPauseAndResumePlayingTest(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1951
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1952
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1953
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1954
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1955
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1956
 * MM-MMF-DEVSOUND-U-0088-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1957
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1958
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1959
class RA3FDevSoundPauseAndResumeRecordingPCMTest : public RA3FDevSoundTestRecord
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1960
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1961
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1962
	static RA3FDevSoundPauseAndResumeRecordingPCMTest* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1963
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1964
	RA3FDevSoundPauseAndResumeRecordingPCMTest(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1965
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1966
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1967
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1968
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1969
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1970
 * MM-MMF-DEVSOUND-U-0089-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1971
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1972
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1973
class RA3FDevSoundPauseAndResumeRecordingPCMDoNotWaitForLastBufferTest : public RA3FDevSoundTestRecord
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1974
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1975
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1976
	static RA3FDevSoundPauseAndResumeRecordingPCMDoNotWaitForLastBufferTest* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1977
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1978
	RA3FDevSoundPauseAndResumeRecordingPCMDoNotWaitForLastBufferTest(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1979
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1980
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1981
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1982
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1983
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1984
 * MM-MMF-DEVSOUND-U-0090-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1985
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1986
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1987
class RA3FDevSoundPauseAndResumeRecordingNonPCMTest : public RA3FDevSoundTestRecord
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1988
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1989
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1990
	static RA3FDevSoundPauseAndResumeRecordingNonPCMTest* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1991
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1992
	RA3FDevSoundPauseAndResumeRecordingNonPCMTest(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1993
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1994
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1995
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1996
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1997
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1998
 * MM-MMF-DEVSOUND-U-0091-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1999
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2000
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2001
class RA3FDevSoundPauseSetGainBalanceAndResumeRecordingPCMTest : public RA3FDevSoundTestRecord
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2002
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2003
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2004
	static RA3FDevSoundPauseSetGainBalanceAndResumeRecordingPCMTest* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2005
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2006
	RA3FDevSoundPauseSetGainBalanceAndResumeRecordingPCMTest(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2007
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2008
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2009
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2010
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2011
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2012
 * MM-MMF-DEVSOUND-U-0092-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2013
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2014
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2015
class RA3FDevSoundPauseSetConfigAndResumeRecordingPCMTest : public RA3FDevSoundTestRecord
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2016
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2017
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2018
	static RA3FDevSoundPauseSetConfigAndResumeRecordingPCMTest* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2019
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2020
	RA3FDevSoundPauseSetConfigAndResumeRecordingPCMTest(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2021
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2022
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2023
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2024
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2025
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2026
 * MM-MMF-DEVSOUND-U-0093-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2027
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2028
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2029
class RA3FDevSoundTonePlayTonePauseAndResume : public RA3FDevSoundTestTone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2030
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2031
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2032
	static RA3FDevSoundTonePlayTonePauseAndResume* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2033
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2034
	RA3FDevSoundTonePlayTonePauseAndResume(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2035
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2036
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2037
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2038
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2039
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2040
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2041
 * MM-MMF-DEVSOUND-U-0094-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2042
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2043
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2044
class RA3FDevSoundTonePlayDualTonePauseAndResume : public RA3FDevSoundTestTone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2045
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2046
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2047
	static RA3FDevSoundTonePlayDualTonePauseAndResume* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2048
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2049
	RA3FDevSoundTonePlayDualTonePauseAndResume(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2050
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2051
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2052
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2053
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2054
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2055
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2056
 * MM-MMF-DEVSOUND-U-0095-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2057
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2058
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2059
class RA3FDevSoundTonePlayDTMFStringPauseAndResume : public RA3FDevSoundTestTone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2060
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2061
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2062
	static RA3FDevSoundTonePlayDTMFStringPauseAndResume* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2063
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2064
	RA3FDevSoundTonePlayDTMFStringPauseAndResume(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2065
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2066
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2067
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2068
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2069
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2070
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2071
 * MM-MMF-DEVSOUND-U-0096-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2072
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2073
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2074
class RA3FDevSoundTonePlayToneSequencePauseAndResume : public RA3FDevSoundTestTone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2075
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2076
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2077
	static RA3FDevSoundTonePlayToneSequencePauseAndResume* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2078
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2079
	RA3FDevSoundTonePlayToneSequencePauseAndResume(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2080
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2081
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2082
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2083
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2084
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2085
 * MM-MMF-DEVSOUND-U-0097-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2086
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2087
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2088
class RA3FDevSoundTonePlayToneSetVolumeBalancePauseAndResume : public RA3FDevSoundTestTone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2089
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2090
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2091
	static RA3FDevSoundTonePlayToneSetVolumeBalancePauseAndResume* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2092
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2093
	RA3FDevSoundTonePlayToneSetVolumeBalancePauseAndResume(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2094
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2095
	void ToneFinished(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2096
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2097
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2098
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2099
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2100
 * MM-MMF-DEVSOUND-U-0098-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2101
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2102
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2103
class RA3FDevSoundTonePlayToneSequenceSetVolumeBalancePauseAndResume : public RA3FDevSoundTestTone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2104
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2105
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2106
	static RA3FDevSoundTonePlayToneSequenceSetVolumeBalancePauseAndResume* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2107
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2108
	RA3FDevSoundTonePlayToneSequenceSetVolumeBalancePauseAndResume(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2109
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2110
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2111
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2112
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2113
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2114
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2115
 * MM-MMF-DEVSOUND-U-0099-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2116
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2117
class RA3FDevSoundPlayPauseFlushResumeTest : public RA3FDevSoundTestBase
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2118
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2119
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2120
	static RA3FDevSoundPlayPauseFlushResumeTest* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2121
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2122
	RA3FDevSoundPlayPauseFlushResumeTest(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2123
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2124
	//from RA3FDevSoundTestBase
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2125
	virtual void DoKickoffTestL();	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2126
	virtual void DoTimerCallback();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2127
	virtual void Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2128
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2129
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2130
	TFileName iFileName;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2131
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2132
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2133
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2134
const TInt KTimerCallBackFinished = 0x12345;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2135
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2136
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2137
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2138
 * MM-MMF-DEVSOUND-U-0103-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2139
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2140
 	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2141
// For testing SMP SAFE condition for Custom Interface
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2142
class RTestStepMultipleCustomInterface : public RTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2143
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2144
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2145
	static RTestStepMultipleCustomInterface* NewL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2146
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2147
	// from RTestStep
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2148
	TVerdict DoTestStepL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2149
	TVerdict DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2150
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2151
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2152
	TVerdict TestCustomInterfaceL(MMMFDevSoundTestCustomInterface* aInterface1, MMMFDevSoundTestCustomInterface* aInterface2);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2153
	RTestStepMultipleCustomInterface();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2154
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2155
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2156
	TInt iTimerFlag;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2157
	TInt iAsyncCompleteFlag;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2158
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2159
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2160
    CPeriodic* iPeriodic;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2161
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2162
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2163
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2164
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2165
 * MM-MMF-DEVSOUND-U-0104-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2166
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2167
 	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2168
// Test that overflows during recording are ignored by the framework
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2169
class RTestStepRecordOverflow : public RDevSoundTestBase
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2170
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2171
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2172
	static RTestStepRecordOverflow* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2173
	~RTestStepRecordOverflow();	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2174
	void Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2175
	void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2176
	virtual void BufferToBeEmptied(CMMFBuffer* aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2177
	void HandleCallbackTimeout();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2178
	static TInt TimerCallBack(TAny* aPtr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2179
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2180
	RTestStepRecordOverflow(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2181
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2182
	TInt iBuffersReceived;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2183
	RFs iFs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2184
	RFile iFile;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2185
	CAsyncWriteBufferToFile* iAsyncWriteBTFAO;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2186
	CPeriodic* iSimulateOverflowTimer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2187
	TInt iLastSamplesRecorded;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2188
	};	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2189
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2190
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2191
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2192
 * MM-MMF-DEVSOUND-U-0105-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2193
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2194
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2195
class RA3FDevSoundPauseAndInitRecordingPCMTest : public RA3FDevSoundTestRecord
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2196
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2197
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2198
    static RA3FDevSoundPauseAndInitRecordingPCMTest* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2199
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2200
    RA3FDevSoundPauseAndInitRecordingPCMTest(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2201
    void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2202
    };
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2203
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2204
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2205
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2206
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2207
 * MM-MMF-DEVSOUND-U-0199-HP
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2208
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2209
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2210
class RA3FDevSoundPauseAndResumeAndInitPlayingTest : public RA3FDevSoundTestPlay
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2211
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2212
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2213
    static RA3FDevSoundPauseAndResumeAndInitPlayingTest* NewL(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2214
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2215
    RA3FDevSoundPauseAndResumeAndInitPlayingTest(const TDesC& aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2216
    void DoKickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2217
    };
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2218
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2219
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2220
 *========================================================================================================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2221
  */
6
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2222
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2223
//
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2224
// MM-MMF-DEVSOUND-U-0300-HP
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2225
//
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2226
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2227
// these delarations should be the same as in tsu_mmf_devsound_starttest.h
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2228
_LIT(KStartToolTestSvrName, "!StartToolSvr");
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2229
const TInt KStartToolTestCaseErrorCode = -999;
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2230
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2231
class RA3FDevSoundSvrStartToolTest : public RAsyncTestStep
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2232
    {
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2233
public:
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2234
    static RA3FDevSoundSvrStartToolTest* NewL(const TDesC& aTestName);
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2235
private:
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2236
    RA3FDevSoundSvrStartToolTest(const TDesC& aTestName);
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2237
    // from RAsyncTestStep
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2238
    void KickoffTestL();
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2239
    void CloseTest();
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2240
    };
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2241
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2242
class RSrvStartTestSession : public RSessionBase
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2243
// virtually dummy client session, try to connect to server which is expected to fail
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2244
    {
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2245
public:
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2246
    TInt CreateSession();
fe9d1bf55678 2010wk46_02
hgs
parents: 0
diff changeset
  2247
    };
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2248
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2249
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2250
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2251
 * CMultipleAsyncListener provides the asynchronous operation
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2252
 * of an active object. Used for ensuring that only when two async calls 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2253
 * are complete, only then CActiveScheduler::Stop is called.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2254
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2255
 * @lib "TSU_MMF_DEVSOUND_SUITE.lib"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2256
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2257
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2258
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2259
class CMultipleAsyncListener : public CActive
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2260
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2261
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2262
	CMultipleAsyncListener(RTestStepMultipleCustomInterface* aMultipleCustomInterface) : CActive(CActive::EPriorityStandard),iMultipleCustomInterface(aMultipleCustomInterface) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2263
		{ 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2264
		CActiveScheduler::Add(this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2265
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2266
	void InitialiseActiveListener()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2267
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2268
		iStatus = KRequestPending; SetActive();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2269
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2270
	~CMultipleAsyncListener()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2271
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2272
		Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2273
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2274
	// From CActive
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2275
	virtual void RunL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2276
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2277
		iMultipleCustomInterface->iAsyncCompleteFlag++;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2278
		if(iMultipleCustomInterface->iAsyncCompleteFlag == 2)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2279
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2280
			CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2281
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2282
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2283
	virtual void DoCancel()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2284
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2285
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2286
		};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2287
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2288
	public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2289
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2290
	RTestStepMultipleCustomInterface* iMultipleCustomInterface;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2291
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2292
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2293
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2294
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2295
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2296
#endif// __TSU_MMF_DEVSOUND_STEP_H__
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2297