mmlibs/mmfw/tsrc/mmfunittest/aclnt/TSU_MMF_ACLNT_01/TestStepPlaybackAfterRecording.cpp
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) 2004-2009 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
// This file contains an example Test step implementation 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
// This demonstrates the various functions provided
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    16
// by the CTestStep base class which are available within
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    17
// a test step 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    18
// 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    19
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
// EPOC includes
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
#include <f32file.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
#include <testframework.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
#include <mdaaudiosampleeditor.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
// Specific includes for this test suite
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
#include "TestStepUnitMMFAudClient.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
#include "TestSuiteUnitMMFAudClient.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
// Specific includes for these test steps
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
#include "TestStepRecorder.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
#include "mmfclientaudiorecorder.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
NONSHARABLE_CLASS( CRecPlayMuteTest ): public CActive, public MMdaObjectStateChangeObserver {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
static	CRecPlayMuteTest*	NewL(const TDesC& aFile);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
		~CRecPlayMuteTest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
			CRecPlayMuteTest():CActive(EPriorityIdle)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
			CActiveScheduler::Add(this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
	void MoscoStateChangeEvent(CBase* aObject, TInt aPreviousState, TInt aCurrentState, TInt aErrorCode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
	void OpenClipL(const TDesC& aFile);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
	void RecordL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
	void PlayL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
// CActive //
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
	TInt RunError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
	void RunL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
	void DoCancel() 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
		iTimer.Cancel(); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
		iStatus=KErrCancel;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
	void RunAfter(TInt aMilisec);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
	void RunAgain()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
		SetActive();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
		TRequestStatus* p=&iStatus;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
		User::RequestComplete(p, KErrNone);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
	TInt	iError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    70
	enum {KSubjectVolume=1, KSubjectBalance=2};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    71
	CMdaAudioRecorderUtility*	iRecorderUtility;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    72
	TFileName					iFileName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
	RTimer						iTimer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
	enum TState {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
			eOpen, eResponse, eRecord, eRecStop, ePlay, eCheckVolume, eTerminate
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
		}						iState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
// --------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
 * Static constructor for CTestStepRecorderPlayAfterRecording.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
 * INC047838 Voice Recorder: sound is played on the newly recorded clip while mute was
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
 * @return	"CTestStepRecorderPlayAfterRecording*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
 *			The constructed CTestStepRecorderPlayAfterRecording
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
CTestStepRecorderPlayAfterRecording* CTestStepRecorderPlayAfterRecording::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    95
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    96
	CTestStepRecorderPlayAfterRecording* self = new(ELeave) CTestStepRecorderPlayAfterRecording;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    97
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    98
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    99
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   106
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   107
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   108
CTestStepRecorderPlayAfterRecording::CTestStepRecorderPlayAfterRecording()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   109
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   110
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   111
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
	iTestStepName = _L("MM-MMF-ACLNT-U-0855-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
CTestStepRecorderPlayAfterRecording::~CTestStepRecorderPlayAfterRecording()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   126
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   127
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   128
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   129
 * Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   130
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   131
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   132
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
 enum TVerdict CTestStepRecorderPlayAfterRecording::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
	 enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
	 // this installs the scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
	 verdict = CTestStepUnitMMFAudClient::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   139
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   140
	// Printing to the console and log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
	 INFO_PRINTF1(_L("MM-MMF-ACLNT-U-0855-HP"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
	 INFO_PRINTF1(_L("To test the INC047838: Voice Recorder: sound is played on the newly recorded clip while mute was"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
	 iError = KErrNone; 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
	 _LIT(KFileName, "AudioPlayRecName");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
	 if(!GetStringFromConfig(_L("SectionOne"), KFileName, iFileName) )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
		 INFO_PRINTF2(_L("file name %s not found..."), KFileName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
		 return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   153
	iTestObject = CRecPlayMuteTest::NewL(iFileName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   154
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   155
	 return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   156
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   157
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   158
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   159
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   160
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   161
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   162
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   163
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   164
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   165
enum TVerdict CTestStepRecorderPlayAfterRecording::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   166
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   167
	delete iTestObject;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   168
	iTestObject = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   169
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   170
	return CTestStepUnitMMFAudClient::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   171
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   172
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   173
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   174
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   175
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   176
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   177
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   178
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   179
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   180
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   181
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   182
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   183
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   184
TVerdict CTestStepRecorderPlayAfterRecording::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   185
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   186
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   187
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   188
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   189
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   190
	INFO_PRINTF2(_L("finished with this test step err=%d"), iTestObject->iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   191
	if (KErrNone != iTestObject->iError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   192
		iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   193
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   194
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   195
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   196
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   197
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   198
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   199
/*static*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   200
CRecPlayMuteTest* CRecPlayMuteTest::NewL(const TDesC& aFile)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   201
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   202
	CRecPlayMuteTest* self= new (ELeave) CRecPlayMuteTest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   203
	CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   204
	self->iFileName.Copy(aFile);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   205
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   206
	self->iRecorderUtility = CMdaAudioRecorderUtility::NewL(*self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   207
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   208
	User::LeaveIfError( self->iTimer.CreateLocal() );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   209
	CleanupStack::Pop(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   210
	self->RunAgain();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   211
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   212
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   213
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   214
CRecPlayMuteTest::~CRecPlayMuteTest()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   215
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   216
	iTimer.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   217
	delete iRecorderUtility;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   218
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   219
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   220
void CRecPlayMuteTest::MoscoStateChangeEvent(CBase* /*aObject*/, TInt /*aPreviousState*/, TInt /*aState*/, TInt aErrorCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   221
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   222
	if (aErrorCode!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   223
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   224
		iError = aErrorCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   225
		iState = eTerminate;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   226
		RunAgain();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   227
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   228
	else 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   229
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   230
		if (iState == eResponse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   231
			RunAgain();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   232
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   233
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   234
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   235
void CRecPlayMuteTest::RunAfter(TInt aMilisec)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   236
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   237
	iTimer.After(iStatus, TTimeIntervalMicroSeconds32(aMilisec));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   238
	SetActive();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   239
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   240
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   241
void CRecPlayMuteTest::OpenClipL(const TDesC& aFile)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   242
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   243
	iRecorderUtility->OpenFileL(aFile) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   244
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   245
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   246
void CRecPlayMuteTest::RecordL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   247
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   248
	User::LeaveIfError(iRecorderUtility->SetVolume(KSubjectVolume));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   249
	iRecorderUtility->SetGain(iRecorderUtility->MaxGain());  //sets the current gain
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   250
    iRecorderUtility->RecordL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   251
	iState=TState(iState+1);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   252
	RunAfter(1500000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   253
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   254
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   255
void CRecPlayMuteTest::PlayL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   256
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   257
	iRecorderUtility->SetPosition(TTimeIntervalMicroSeconds(0));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   258
	User::LeaveIfError(iRecorderUtility->SetVolume(KSubjectVolume));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   259
	iRecorderUtility->SetVolumeRamp(TTimeIntervalMicroSeconds(3));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   260
	iRecorderUtility->SetPlaybackBalance(KSubjectBalance);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   261
    iRecorderUtility->PlayL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   262
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   263
	RunAfter(1500000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   264
	iState=TState(iState+1);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   265
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   266
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   267
TInt CRecPlayMuteTest::RunError(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   268
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   269
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   270
	iState=eTerminate;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   271
	RunAgain();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   272
	return KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   273
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   274
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   275
void CRecPlayMuteTest::RunL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   276
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   277
	iTimer.Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   278
	switch (iState)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   279
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   280
		case eOpen:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   281
			OpenClipL(iFileName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   282
			iState=TState(iState+1);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   283
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   284
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   285
		case eResponse:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   286
			iState=TState(iState+1);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   287
			RunAgain();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   288
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   289
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   290
		case eRecord:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   291
			RecordL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   292
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   293
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   294
		case eRecStop:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   295
			iRecorderUtility->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   296
			iState=TState(iState+1);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   297
			RunAgain();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   298
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   299
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   300
		case ePlay:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   301
			PlayL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   302
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   303
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   304
		case eCheckVolume:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   305
			TInt volume; 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   306
			User::LeaveIfError( iRecorderUtility->GetVolume(volume) );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   307
			if (volume != KSubjectVolume )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   308
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   309
				User::Leave(KErrAbort);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   310
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   311
			TInt balance;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   312
			User::LeaveIfError( iRecorderUtility->GetPlaybackBalance(balance) );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   313
			if (balance!=KSubjectBalance)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   314
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   315
				User::Leave(KErrAbort);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   316
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   317
			RunAfter(500000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   318
			iState=TState(iState+1);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   319
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   320
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   321
		case eTerminate:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   322
			iRecorderUtility->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   323
			CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   324
			return;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   325
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   326
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   327
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   328
// --------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   329
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   330
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   331
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   332
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   333
 * INC060658  CMdaAudioRecorderUtility::OpenDesL fails with KErrNotFound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   334
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   335
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   336
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   337
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   338
class CRecUtilDesOpenTest: public CActive, public MMdaObjectStateChangeObserver {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   339
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   340
static	CRecUtilDesOpenTest*	NewL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   341
		~CRecUtilDesOpenTest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   342
protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   343
			CRecUtilDesOpenTest():CActive(EPriorityIdle)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   344
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   345
			CActiveScheduler::Add(this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   346
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   347
	void ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   348
	void MoscoStateChangeEvent(CBase* aObject, TInt aPreviousState, TInt aCurrentState, TInt aErrorCode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   349
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   350
// CActive //
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   351
	TInt RunError(TInt aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   352
	void RunL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   353
	void DoCancel() 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   354
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   355
		iStatus=KErrCancel;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   356
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   357
	void RunAgain()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   358
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   359
		SetActive();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   360
		TRequestStatus* p=&iStatus;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   361
		User::RequestComplete(p, KErrNone);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   362
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   363
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   364
	TInt	iError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   365
private:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   366
	TBool iControllerTested;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   367
	CMdaAudioRecorderUtility*	iRecorderUtility;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   368
	RMMFControllerImplInfoArray iControllers;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   369
	TInt iControllerIdx;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   370
	TBuf8<256>	iDummyBuf;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   371
	enum TState 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   372
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   373
		EOpen=0, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   374
		EResponse, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   375
		ETerminate
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   376
		}						iState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   377
};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   378
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   379
CRecUtilDesOpenTest* CRecUtilDesOpenTest::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   380
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   381
	CRecUtilDesOpenTest* self= new (ELeave) CRecUtilDesOpenTest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   382
	CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   383
	self->ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   384
	CleanupStack::Pop(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   385
	self->RunAgain();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   386
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   387
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   388
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   389
_LIT(KWavExt, "wav");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   390
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   391
void CRecUtilDesOpenTest::ConstructL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   392
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   393
	iRecorderUtility = CMdaAudioRecorderUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   394
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   395
	CMMFControllerPluginSelectionParameters* controllerSelection = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   396
	CMMFFormatSelectionParameters* formatSelect = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   397
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   398
	controllerSelection = CMMFControllerPluginSelectionParameters::NewLC();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   399
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   400
	RArray<TUid> mediaIds; //Array to hold media types we wish to support
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   401
	CleanupClosePushL(mediaIds);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   402
	mediaIds.AppendL(KUidMediaTypeAudio);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   403
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   404
	controllerSelection->SetMediaIdsL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   405
		mediaIds, CMMFPluginSelectionParameters::EAllowOnlySuppliedMediaIds);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   406
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   407
	formatSelect = CMMFFormatSelectionParameters::NewLC();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   408
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   409
	formatSelect->SetMatchToFileNameL(KWavExt);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   410
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   411
	controllerSelection->SetRequiredRecordFormatSupportL(*formatSelect);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   412
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   413
	controllerSelection->ListImplementationsL(iControllers);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   414
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   415
	CleanupStack::PopAndDestroy(3, controllerSelection);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   416
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   417
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   418
CRecUtilDesOpenTest::~CRecUtilDesOpenTest()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   419
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   420
	delete iRecorderUtility;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   421
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   422
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   423
void CRecUtilDesOpenTest::RunL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   424
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   425
	switch (iState)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   426
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   427
		case EOpen:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   428
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   429
			CMMFControllerImplementationInformation* impl=iControllers[iControllerIdx];
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   430
			const RMMFFormatImplInfoArray& formats=impl->RecordFormats();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   431
			TInt i;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   432
			CMMFFormatImplementationInformation* fmt=NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   433
			for (i=0; i<formats.Count(); ++i)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   434
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   435
				fmt=formats[i];
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   436
				if (fmt->SupportsFileExtension(_L8(".wav")))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   437
					{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   438
					break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   439
					}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   440
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   441
			if (i==formats.Count())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   442
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   443
				iState = ++iControllerIdx < iControllers.Count() ? EOpen : ETerminate;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   444
				RunAgain();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   445
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   446
			else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   447
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   448
				iRecorderUtility->OpenDesL(iDummyBuf,impl->Uid(), KNullUid, fmt->Uid());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   449
				iControllerTested=ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   450
				iState = EResponse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   451
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   452
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   453
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   454
		case ETerminate:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   455
			if (!iControllerTested)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   456
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   457
				iError = KErrGeneral;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   458
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   459
			iRecorderUtility->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   460
			CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   461
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   462
		default:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   463
			ASSERT(EFalse);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   464
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   465
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   466
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   467
TInt CRecUtilDesOpenTest::RunError(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   468
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   469
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   470
	iRecorderUtility->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   471
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   472
	return KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   473
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   474
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   475
void CRecUtilDesOpenTest::MoscoStateChangeEvent(CBase* /*aObject*/, TInt /*aPreviousState*/, TInt /*aState*/, TInt aErrorCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   476
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   477
	if (aErrorCode!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   478
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   479
		iError = aErrorCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   480
		iState = ETerminate;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   481
		RunAgain();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   482
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   483
	else 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   484
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   485
		if (iState == EResponse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   486
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   487
			iState = ++iControllerIdx < iControllers.Count() ? EOpen : ETerminate;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   488
			RunAgain();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   489
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   490
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   491
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   492
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   493
CTestStepRecUtilOpenDesByUid* CTestStepRecUtilOpenDesByUid::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   494
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   495
	return new(ELeave) CTestStepRecUtilOpenDesByUid();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   496
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   497
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   498
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   499
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   500
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   501
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   502
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   503
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   504
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   505
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   506
CTestStepRecUtilOpenDesByUid::CTestStepRecUtilOpenDesByUid()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   507
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   508
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   509
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   510
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   511
	iTestStepName = _L("MM-MMF-ACLNT-U-0950-HP");
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
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   516
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   517
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   518
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   519
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   520
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   521
CTestStepRecUtilOpenDesByUid::~CTestStepRecUtilOpenDesByUid()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   522
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   523
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   524
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   525
enum TVerdict CTestStepRecUtilOpenDesByUid::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   526
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   527
	enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   528
	 // this installs the scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   529
	verdict = CTestStepUnitMMFAudClient::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   530
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   531
	// Printing to the console and log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   532
	INFO_PRINTF1(_L("MM-MMF-ACLNT-U-0950-HP"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   533
	INFO_PRINTF1(_L("To test the INC060658  CMdaAudioRecorderUtility::OpenDesL fails with KErrNotFound "));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   534
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   535
	iError = KErrNone; 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   536
	iTestObject = CRecUtilDesOpenTest::NewL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   537
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   538
	return verdict;
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
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   543
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   544
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   545
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   546
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   547
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   548
enum TVerdict CTestStepRecUtilOpenDesByUid::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   549
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   550
	delete iTestObject;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   551
	iTestObject = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   552
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   553
	return CTestStepUnitMMFAudClient::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   554
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   555
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   556
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   557
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   558
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   559
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   560
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   561
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   562
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   563
TVerdict CTestStepRecUtilOpenDesByUid::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   564
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   565
	iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   566
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   567
	INFO_PRINTF2(_L("finished with this test step err=%d"), iTestObject->iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   568
	if (KErrNone == iTestObject->iError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   569
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   570
		iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   571
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   572
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   573
	return iTestStepResult;
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
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   579
 * DEF061942  KERN-EXEC:15 in the AudioPolicy server
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   580
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   581
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   582
/*static*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   583
CTestStepRecorderNotifyCheck* CTestStepRecorderNotifyCheck::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   584
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   585
	return new (ELeave) CTestStepRecorderNotifyCheck();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   586
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   587
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   588
CTestStepRecorderNotifyCheck::~CTestStepRecorderNotifyCheck()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   589
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   590
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   591
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   592
CTestStepRecorderNotifyCheck::CTestStepRecorderNotifyCheck()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   593
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   594
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   595
	iTestStepName = _L("MM-MMF-ACLNT-U-0951-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   596
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   597
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   598
TVerdict CTestStepRecorderNotifyCheck::DoTestStepPreambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   599
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   600
	TVerdict verdict=EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   601
	 // this installs the scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   602
	if (EPass != (verdict = CTestStepUnitMMFAudClient::DoTestStepPreambleL()))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   603
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   604
		return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   605
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   606
	iRecorderUtility = CMdaAudioRecorderUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   607
	_LIT(KFileName, "AudioPlayRecName");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   608
	if(!GetStringFromConfig(_L("SectionOne"), KFileName, iFileName) )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   609
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   610
		INFO_PRINTF2(_L("file name %s not found..."), KFileName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   611
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   612
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   613
	return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   614
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   615
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   616
TVerdict CTestStepRecorderNotifyCheck::DoTestStepPostambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   617
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   618
	delete iRecorderUtility; iRecorderUtility = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   619
	return CTestStepUnitMMFAudClient::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   620
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   621
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   622
TVerdict CTestStepRecorderNotifyCheck::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   623
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   624
	iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   625
	INFO_PRINTF1(iTestStepName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   626
	iRecorderUtility->OpenFileL(iFileName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   627
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   628
	User::LeaveIfError(iRecorderUtility->RegisterAudioResourceNotification(*this, KMMFEventCategoryAudioResourceAvailable));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   629
	iRecorderUtility->PlayL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   630
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   631
	iRecorderUtility->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   632
	iRecorderUtility->PlayL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   633
	CActiveScheduler::Start();	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   634
	return (iTestStepResult=(iError==KErrNone? EPass : EFail));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   635
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   636
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   637
// from MMdaObjectStateChangeObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   638
void CTestStepRecorderNotifyCheck::MoscoStateChangeEvent(CBase* /*aObject*/, TInt /*aPreviousState*/, TInt /*aCurrentState*/, TInt aErrorcCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   639
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   640
	if (aErrorcCode != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   641
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   642
		iError = aErrorcCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   643
		iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   644
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   645
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   646
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   647
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   648
void CTestStepRecorderNotifyCheck::MarncResourceAvailable(TUid /*aNotificationEventId*/, const TDesC8& /*aNotificationData*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   649
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   650
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   651
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   652
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   653
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   654
 * DEF061821  - CMdaAudioRecorderUtility::PlayL() fail case when registered for notification 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   655
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   656
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   657
/*static*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   658
CTestStepNotifyRegister* CTestStepNotifyRegister::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   659
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   660
	return new (ELeave) CTestStepNotifyRegister();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   661
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   662
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   663
CTestStepNotifyRegister::~CTestStepNotifyRegister()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   664
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   665
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   666
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   667
CTestStepNotifyRegister::CTestStepNotifyRegister()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   668
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   669
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   670
	iTestStepName 	= _L("MM-MMF-ACLNT-U-0952-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   671
	iHeapSize 		= 1024*512;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   672
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   673
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   674
TVerdict CTestStepNotifyRegister::DoTestStepPreambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   675
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   676
	TVerdict verdict=EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   677
	 // this installs the scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   678
	if (EPass != (verdict = CTestStepUnitMMFAudClient::DoTestStepPreambleL()))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   679
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   680
		return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   681
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   682
	_LIT(KFileName, "AudioPlayRecName");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   683
	if(!GetStringFromConfig(_L("SectionOne"), KFileName, iFileName) )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   684
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   685
		INFO_PRINTF2(_L("file name %s not found..."), KFileName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   686
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   687
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   688
	return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   689
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   690
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   691
TVerdict CTestStepNotifyRegister::DoTestStepPostambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   692
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   693
	delete iPlayUtility;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   694
	iPlayUtility=NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   695
	return CTestStepUnitMMFAudClient::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   696
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   697
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   698
TVerdict CTestStepNotifyRegister::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   699
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   700
	INFO_PRINTF1(iTestStepName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   701
	iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   702
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   703
	if (DoClipUtilStepL()!=EPass)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   704
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   705
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   706
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   707
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   708
	if (DoStreamUtilStepL()!=EPass)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   709
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   710
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   711
		}		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   712
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   713
	return (iTestStepResult = EPass );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   714
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   715
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   716
TVerdict CTestStepNotifyRegister::DoStreamUtilStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   717
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   718
	CMdaAudioOutputStream* stream=CMdaAudioOutputStream::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   719
	iPlayUtility = stream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   720
	User::LeaveIfError( stream->RegisterAudioResourceNotification(*this, KMMFEventCategoryAudioResourceAvailable));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   721
	HBufC8* buf=HBufC8::NewMaxLC(1024*64);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   722
	TPtr8 bf(buf->Des());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   723
	for (TInt i=bf.Length();--i;)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   724
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   725
		bf[i]=TText8(i & 0xff);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   726
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   727
	stream->Open(NULL);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   728
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   729
	stream->WriteL(bf);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   730
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   731
	stream->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   732
	stream->WriteL(bf);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   733
	CActiveScheduler::Start();	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   734
	CleanupStack::PopAndDestroy(buf);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   735
	delete iPlayUtility;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   736
	iPlayUtility = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   737
	return iError==KErrNone? EPass : EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   738
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   739
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   740
TVerdict CTestStepNotifyRegister::DoClipUtilStepL()	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   741
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   742
	CMdaAudioRecorderUtility* rec=CMdaAudioRecorderUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   743
	iPlayUtility = rec;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   744
	User::LeaveIfError(rec->RegisterAudioResourceNotification(*this, KMMFEventCategoryAudioResourceAvailable));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   745
	rec->OpenFileL(iFileName);	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   746
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   747
	rec->PlayL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   748
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   749
	rec->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   750
	rec->PlayL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   751
	CActiveScheduler::Start();	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   752
	delete iPlayUtility;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   753
	iPlayUtility = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   754
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   755
	if (iError!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   756
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   757
		INFO_PRINTF2(_L("CMdaAudioRecorderUtility test failed err=%d"),iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   758
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   759
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   760
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   761
	CMdaAudioPlayerUtility* play=CMdaAudioPlayerUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   762
	iPlayUtility = play;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   763
	User::LeaveIfError(play->RegisterAudioResourceNotification(*this, KMMFEventCategoryAudioResourceAvailable));		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   764
	play->OpenFileL(iFileName);	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   765
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   766
	play->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   767
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   768
	play->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   769
	play->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   770
	CActiveScheduler::Start();	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   771
	delete iPlayUtility;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   772
	iPlayUtility = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   773
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   774
	if (iError!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   775
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   776
		INFO_PRINTF2(_L("CMdaAudioPlayerUtility test failed err=%d"),iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   777
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   778
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   779
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   780
	return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   781
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   782
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   783
// from MMdaObjectStateChangeObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   784
void CTestStepNotifyRegister::MoscoStateChangeEvent(CBase* /*aObject*/, TInt /*aPreviousState*/, TInt /*aCurrentState*/, TInt aErrorcCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   785
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   786
	if (aErrorcCode != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   787
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   788
		iError = aErrorcCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   789
		iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   790
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   791
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   792
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   793
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   794
void CTestStepNotifyRegister::MarncResourceAvailable(TUid /*aNotificationEventId*/, const TDesC8& /*aNotificationData*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   795
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   796
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   797
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   798
void CTestStepNotifyRegister::MaoscOpenComplete(TInt aErrorcCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   799
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   800
	if (aErrorcCode != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   801
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   802
		iError = aErrorcCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   803
		iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   804
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   805
	CActiveScheduler::Stop();	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   806
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   807
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   808
void CTestStepNotifyRegister::MaoscBufferCopied(TInt aErrorcCode, const TDesC8& /*aBuffer*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   809
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   810
	if (aErrorcCode != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   811
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   812
		iError = aErrorcCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   813
		iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   814
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   815
	CActiveScheduler::Stop();	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   816
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   817
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   818
void CTestStepNotifyRegister::MaoscPlayComplete(TInt aErrorcCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   819
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   820
	if (aErrorcCode!=KErrCancel)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   821
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   822
		if (aErrorcCode != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   823
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   824
			iError = aErrorcCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   825
			iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   826
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   827
		CActiveScheduler::Stop();	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   828
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   829
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   830
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   831
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   832
void CTestStepNotifyRegister::MapcInitComplete(TInt aErrorcCode, const TTimeIntervalMicroSeconds& /*aDuration*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   833
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   834
	if (aErrorcCode != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   835
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   836
		iError = aErrorcCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   837
		iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   838
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   839
	CActiveScheduler::Stop();	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   840
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   841
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   842
void CTestStepNotifyRegister::MapcPlayComplete(TInt aErrorcCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   843
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   844
	if (aErrorcCode != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   845
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   846
		iError = aErrorcCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   847
		iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   848
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   849
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   850
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   851