mmlibs/mmfw/tsrc/mmfunittest/aclnt/TSU_MMF_ACLNT_01/TestStepRecorderDestination.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) 2002-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 test steps exercising the Audio recorder
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
// functions: xxxxxxxxDestination[DataType|BitRate|SampleRate|Format]x
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    16
// and xxxxxxNumberOfChannelsx 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    17
// 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    18
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    19
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
// EPOC includes
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
#include <e32base.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
#include <e32test.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
#include <e32keys.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
#include <c32comm.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
#include <f32file.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
#include <etel.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
#include <etelmm.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
#include <testframework.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
#include <mdaaudiosampleeditor.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
// Test system includes
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
#include <testframework.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
// Specific includes for this test suite
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
#include "TestStepUnitMMFAudClient.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
#include "TestSuiteUnitMMFAudClient.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
// Specific includes for these test steps
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
#include "TestStepRecorder.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
#include "MmfAudioController.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
#include "mmfclientaudiorecorder.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
#include <mmf/common/mmffourcc.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
//#include <mmf/common/mmfpaniccodes.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
#include <mmf/plugin/mmfformatimplementationuids.hrh>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
// --------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
 * Static constructor for CTestStepRecorderDestinDataType.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
 * @return	"CTestStepRecorderDestinDataType*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
 *			The constructed CTestStepRecorderDestinDataType
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
CTestStepRecorderDestinDataType* CTestStepRecorderDestinDataType::NewL(const TDesC& aTestName, TBool aIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
	CTestStepRecorderDestinDataType* self = new(ELeave) CTestStepRecorderDestinDataType(aTestName, aIsConverterTest);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
	return self;
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
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
CTestStepRecorderDestinDataType::CTestStepRecorderDestinDataType(const TDesC& aTestName, TBool aIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
: iIsConverterTest(aIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
CTestStepRecorderDestinDataType::~CTestStepRecorderDestinDataType()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    95
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    96
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    97
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    98
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    99
 * Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
enum TVerdict CTestStepRecorderDestinDataType::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   106
	 enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   107
	 // this installs the scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   108
	 verdict = CTestStepUnitMMFAudClient::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   109
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   110
	// Printing to the console and log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   111
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
		INFO_PRINTF1(_L("MM-MMF-ACLNT-U-0264-HP"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
		INFO_PRINTF1(_L("this is a test of CMdaAudioRecorderUtility::xxxDestinationDataTypexx() functions"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
		INFO_PRINTF1(_L("MM-MMF-ACLNT-U-0557-HP"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
		INFO_PRINTF1(_L("this is a test of CMdaAudioConvertUtility::xxxDestinationDataTypexx() functions"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
	if(!(GetStringFromConfig(_L("SectionOne"), _L("AudioPlayFName1"), iFileName) && // wav
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
		 GetStringFromConfig(_L("SectionOne"), _L("AudioFNameToRecord4"), iFileName2) && // wav
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
		 GetStringFromConfig(_L("SectionOne"), _L("AudioFNameToConvert"), iFileName3) // au
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
		)) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   126
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   127
		//INFO_PRINTF2(_L("file name %s not found..."), fileptr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   128
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   129
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   130
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   131
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   132
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
		// create the Recorder utility
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
		if ( (iRecorder = CMMFMdaAudioRecorderUtility::NewL(*this)) == NULL )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
		TRAPD( err, OpenAndStartSchedulerL() );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
		if (iRecorder == NULL ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   139
			err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   140
			iError != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
			iRecorder->State() != CMdaAudioRecorderUtility::EOpen)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
		if ( (iConvert = CMdaAudioConvertUtility::NewL(*this)) == NULL )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
		TRAPD( err, OpenAndStartSchedulerL() );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
		if (iConvert == NULL ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
			err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
			iError != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   153
			iConvert->State() != CMdaAudioConvertUtility::EOpen)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   154
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   155
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   156
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   157
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   158
	return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   159
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   160
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   161
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   162
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   163
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   164
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   165
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   166
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   167
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   168
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   169
enum TVerdict CTestStepRecorderDestinDataType::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   170
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   171
	iFs.Connect();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   172
	iFileMan = CFileMan::NewL(iFs);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   173
	iFileMan->Delete(iFileName2);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   174
	iFileMan->Delete(iFileName3);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   175
	iFs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   176
	delete iFileMan;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   177
	iFileMan = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   178
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   179
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   180
		delete iRecorder;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   181
		iRecorder = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   182
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   183
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   184
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   185
		delete iConvert;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   186
		iConvert = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   187
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   188
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   189
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   190
	return CTestStepUnitMMFAudClient::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   191
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   192
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   193
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   194
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   195
 * Callback Handle.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   196
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   197
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   198
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   199
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   200
void CTestStepRecorderDestinDataType::MoscoStateChangeEvent(CBase* /*aObject*/,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   201
														  TInt /*aPreviousState*/,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   202
														  TInt /*aCurrentState*/,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   203
														  TInt aErrorcCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   204
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   205
	iError = aErrorcCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   206
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   207
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   208
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   209
void CTestStepRecorderDestinDataType::OpenAndStartSchedulerL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   210
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   211
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   212
		iRecorder->OpenFileL( iFileName );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   213
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   214
		iConvert->OpenL( iFileName, iFileName3 );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   215
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   216
	CActiveScheduler::Start(); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   217
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   218
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   219
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   220
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   221
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   222
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   223
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   224
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   225
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   226
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   227
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   228
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   229
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   230
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   231
TVerdict CTestStepRecorderDestinDataType::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   232
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   233
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   234
    TInt err       = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   235
	TFourCC fourCC;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   236
	RArray<TFourCC> supFourCC;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   237
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   238
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   239
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   240
		// check the number of supported audio types
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   241
		// just checking that there are some types available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   242
		// since it's not known how many types are supported each time
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   243
		TRAP(err, iRecorder->GetSupportedDestinationDataTypesL(supFourCC));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   244
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   245
			supFourCC.Count() <= 0 ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   246
			supFourCC.Find(TFourCC(KMMFFourCCCodeALAW)) < 0 ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   247
			supFourCC.Find(TFourCC(KMMFFourCCCodePCM16)) < 0 )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   248
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   249
		// get the type of the openned file of known type
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   250
		// and check if type correct
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   251
		TRAP(err, fourCC = iRecorder->DestinationDataTypeL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   252
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   253
			fourCC != KMMFFourCCCodePCM16)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   254
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   255
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   256
		// close this file and
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   257
		iRecorder->Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   258
		//open a new non-existing file for recording
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   259
		TRAP(err, iRecorder->OpenFileL(iFileName2));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   260
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   261
			iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   262
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   263
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   264
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   265
		// set the destination type to a specific one of our choice
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   266
		TRAP(err, iRecorder->SetDestinationDataTypeL(KMMFFourCCCodeIMAD));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   267
		if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   268
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   269
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   270
		//get the newly set type
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   271
		//and check if it has been set correctly
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   272
		TRAP(err, fourCC = iRecorder->DestinationDataTypeL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   273
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   274
			fourCC != KMMFFourCCCodeIMAD)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   275
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   276
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   277
	else // iIsConverterTest
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   278
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   279
		TRAP(err, iConvert->GetSupportedDestinationDataTypesL(supFourCC));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   280
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   281
			supFourCC.Count() <= 0 ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   282
			supFourCC.Find(TFourCC(KMMFFourCCCodeALAW)) < 0 ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   283
			supFourCC.Find(TFourCC(KMMFFourCCCodePCM8)) < 0 )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   284
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   285
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   286
		//TRAP(err, fourCC = iConvert->DestinationDataTypeL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   287
		//if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   288
		//	fourCC != KMMFFourCCCodePCM16)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   289
		//	return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   290
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   291
		// set the destination type to a specific one of our choice
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   292
		TRAP(err, iConvert->SetDestinationDataTypeL(KMMFFourCCCodePCM8));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   293
		if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   294
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   295
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   296
		//get the newly set type
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   297
		//and check if it has been set correctly
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   298
		TRAP(err, fourCC = iConvert->DestinationDataTypeL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   299
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   300
			fourCC != KMMFFourCCCodePCM8)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   301
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   302
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   303
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   304
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   305
	INFO_PRINTF1(_L("finished with this test step"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   306
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   307
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   308
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   309
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   310
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   311
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   312
// --------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   313
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   314
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   315
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   316
 * Static constructor for CTestStepRecorderBitRate.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   317
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   318
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   319
 * @return	"CTestStepRecorderBitRate*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   320
 *			The constructed CTestStepRecorderBitRate
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   321
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   322
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   323
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   324
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   325
CTestStepRecorderBitRate* CTestStepRecorderBitRate::NewL(const TDesC& aTestName, TBool aIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   326
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   327
	CTestStepRecorderBitRate* self = new(ELeave) CTestStepRecorderBitRate(aTestName, aIsConverterTest);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   328
	return self;
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
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   334
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   335
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   336
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   337
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   338
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   339
CTestStepRecorderBitRate::CTestStepRecorderBitRate(const TDesC& aTestName, TBool aIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   340
: iIsConverterTest(aIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   341
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   342
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   343
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   344
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   345
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   346
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   347
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   348
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   349
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   350
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   351
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   352
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   353
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   354
CTestStepRecorderBitRate::~CTestStepRecorderBitRate()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   355
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   356
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   357
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   358
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   359
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   360
 * Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   361
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   362
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   363
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   364
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   365
enum TVerdict CTestStepRecorderBitRate::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   366
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   367
	 enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   368
	 // this installs the scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   369
	 verdict = CTestStepUnitMMFAudClient::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   370
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   371
	// Printing to the console and log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   372
	INFO_PRINTF1(iTestStepName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   373
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   374
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   375
		INFO_PRINTF1(_L("this is a test of CMdaAudioRecorderUtility::xxxBitRatexx() functions"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   376
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   377
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   378
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   379
		INFO_PRINTF1(_L("this is a test of CMdaAudioConvertUtility::xxxBitRatexx() functions"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   380
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   381
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   382
	if(!(GetStringFromConfig(_L("SectionOne"), _L("AudioPlayFName1"), iFileName) && // wav
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   383
		 GetStringFromConfig(_L("SectionOne"), _L("AudioFNameToRecord4"), iFileName2) && // wav
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   384
		 GetStringFromConfig(_L("SectionOne"), _L("AudioFNameToConvert"), iFileName3) // au
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   385
		)) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   386
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   387
		//INFO_PRINTF2(_L("file name %s not found..."), fileptr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   388
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   389
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   390
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   391
	//delete files that should not be there
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   392
	iFs.Connect();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   393
	iFileMan = CFileMan::NewL(iFs);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   394
	iFileMan->Delete(iFileName2);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   395
	iFileMan->Delete(iFileName3);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   396
	iFs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   397
	delete iFileMan;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   398
	iFileMan = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   399
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   400
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   401
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   402
		// create the Recorder utility
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   403
		if ( (iRecorder = CMMFMdaAudioRecorderUtility::NewL(*this)) == NULL )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   404
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   405
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   406
		TInt err;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   407
		TRAP( err, OpenAndStartSchedulerL() );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   408
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   409
		if (iRecorder == NULL ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   410
			err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   411
			iError != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   412
			iRecorder->State() != CMdaAudioRecorderUtility::EOpen)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   413
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   414
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   415
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   416
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   417
		// create the Converter utility
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   418
		if ( (iConvert = CMdaAudioConvertUtility::NewL(*this)) == NULL )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   419
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   420
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   421
		TInt err;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   422
		TRAP( err, OpenAndStartSchedulerL() );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   423
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   424
		if (iConvert == NULL ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   425
			err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   426
			iError != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   427
			iConvert->State() != CMdaAudioConvertUtility::EOpen)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   428
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   429
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   430
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   431
	return verdict;
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
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   436
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   437
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   438
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   439
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   440
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   441
enum TVerdict CTestStepRecorderBitRate::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   442
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   443
	iFs.Connect();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   444
	iFileMan = CFileMan::NewL(iFs);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   445
	iFileMan->Delete(iFileName2);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   446
	iFileMan->Delete(iFileName3);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   447
	iFs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   448
	delete iFileMan;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   449
	iFileMan = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   450
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   451
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   452
		delete iRecorder;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   453
		iRecorder = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   454
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   455
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   456
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   457
		delete iConvert;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   458
		iConvert = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   459
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   460
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   461
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   462
	return CTestStepUnitMMFAudClient::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   463
	}
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
 * Callback Handle.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   468
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   469
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   470
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   471
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   472
void CTestStepRecorderBitRate::MoscoStateChangeEvent(CBase* /*aObject*/,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   473
														  TInt /*aPreviousState*/,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   474
														  TInt /*aCurrentState*/,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   475
														  TInt aErrorcCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   476
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   477
	iError = aErrorcCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   478
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   479
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   480
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   481
void CTestStepRecorderBitRate::OpenAndStartSchedulerL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   482
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   483
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   484
		iRecorder->OpenFileL( iFileName );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   485
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   486
		iConvert->OpenL( iFileName, iFileName3 );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   487
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   488
	CActiveScheduler::Start(); 
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
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   494
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   495
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   496
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   497
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   498
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   499
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   500
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   501
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   502
TVerdict CTestStepRecorderBitRate::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   503
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   504
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   505
    TInt err       = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   506
	TUint bitrate = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   507
	RArray<TUint> supBitRates;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   508
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   509
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   510
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   511
		// get the type of the openned file of known bitrate
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   512
		// (wav file 8KHz x 16 bit = 128 Kbps) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   513
		// and check if type correct
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   514
		TRAP(err, bitrate = iRecorder->DestinationBitRateL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   515
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   516
			bitrate != 128000)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   517
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   518
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   519
		// close this file and
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   520
		iRecorder->Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   521
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   522
		//open a new non-existing file for recording
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   523
		TRAP(err, iRecorder->OpenFileL(iFileName2));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   524
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   525
			iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   526
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   527
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   528
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   529
		if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   530
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   531
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   532
		// check the number of supported bitrates
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   533
		// just checking that there are some bitrates available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   534
		TRAP(err, iRecorder->GetSupportedBitRatesL(supBitRates));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   535
		if ( err != KErrNotSupported ) // KErrNotSupported expected
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   536
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   537
			if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   538
				supBitRates.Count() <= 0 )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   539
				return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   540
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   541
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   542
		// set the destination bitrate to a specific one of our choice
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   543
		TRAP(err, iRecorder->SetDestinationBitRateL(64000));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   544
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   545
		//NB KErrNotSupported is a valid response, the format used may not support this ability
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   546
		//If it is supported, read the value to confirm it was correctly set.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   547
		if ( err != KErrNotSupported ) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   548
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   549
			if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   550
				return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   551
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   552
			//get the newly set type
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   553
			//and check if it has been set correctly
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   554
			TRAP(err, bitrate = iRecorder->DestinationBitRateL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   555
			if ( err != KErrNotSupported ) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   556
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   557
				if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   558
					bitrate != 64000)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   559
					return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   560
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   561
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   562
		TInt errorSetDestinationBitRate = err;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   563
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   564
		//get the newly set type
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   565
		//and check if it has been set correctly
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   566
		TRAP(err, bitrate = iRecorder->DestinationBitRateL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   567
		if ( err != KErrNotSupported ) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   568
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   569
			if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   570
				(errorSetDestinationBitRate == KErrNone && bitrate != 64000))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   571
				return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   572
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   573
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   574
	else // IsConverterTest == ETrue
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   575
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   576
		// get source file known bitrate
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   577
		// (wav file 8KHz x 16 bit = 128 Kbps) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   578
		// and check if type correct
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   579
		TRAP(err, bitrate = iConvert->SourceBitRateL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   580
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   581
			bitrate != 128000)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   582
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   583
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   584
		// check the number of supported bitrates
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   585
		// just checking that there are some bitrates available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   586
		TRAP(err, iConvert->GetSupportedConversionBitRatesL(supBitRates));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   587
		if ( err != KErrNotSupported ) // KErrNotSupported expected
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   588
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   589
			if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   590
				supBitRates.Count() <= 0 )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   591
				return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   592
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   593
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   594
		// set the destination bitrate to a specific one of our choice
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   595
		TRAP(err, iConvert->SetDestinationBitRateL(64000));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   596
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   597
		//NB KErrNotSupported is a valid response, the format used may not support this ability
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   598
		//If it is supported, read the value to confirm it was correctly set.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   599
		if ( err != KErrNotSupported ) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   600
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   601
			if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   602
				return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   603
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   604
		TInt errSetDestinationBitRate = err;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   605
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   606
		//get the newly set type
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   607
		//and check if it has been set correctly
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   608
		TRAP(err, bitrate = iConvert->DestinationBitRateL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   609
		if ( err != KErrNotSupported ) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   610
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   611
			if ((err == KErrNone && errSetDestinationBitRate == KErrNone && bitrate != 64000) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   612
			||	(err != KErrNone))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   613
				return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   614
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   615
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   616
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   617
	INFO_PRINTF1(_L("finished with this test step"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   618
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   619
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   620
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   621
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   622
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   623
// --------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   624
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   625
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   626
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   627
 * Static constructor for CTestStepRecorderSampleRate.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   628
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   629
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   630
 * @return	"CTestStepRecorderSampleRate*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   631
 *			The constructed CTestStepRecorderSampleRate
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   632
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   633
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   634
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   635
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   636
CTestStepRecorderSampleRate* CTestStepRecorderSampleRate::NewL(const TDesC& aTestName, TBool aIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   637
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   638
	CTestStepRecorderSampleRate* self = new(ELeave) CTestStepRecorderSampleRate(aTestName, aIsConverterTest);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   639
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   640
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   641
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   642
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   643
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   644
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   645
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   646
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   647
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   648
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   649
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   650
CTestStepRecorderSampleRate::CTestStepRecorderSampleRate(const TDesC& aTestName, TBool aIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   651
: iIsConverterTest(aIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   652
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   653
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   654
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   655
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   656
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   657
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   658
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   659
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   660
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   661
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   662
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   663
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   664
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   665
CTestStepRecorderSampleRate::~CTestStepRecorderSampleRate()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   666
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   667
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   668
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   669
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   670
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   671
 * Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   672
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   673
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   674
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   675
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   676
enum TVerdict CTestStepRecorderSampleRate::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   677
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   678
	 enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   679
	 // this installs the scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   680
	 verdict = CTestStepUnitMMFAudClient::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   681
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   682
	// Printing to the console and log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   683
	INFO_PRINTF1(iTestStepName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   684
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   685
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   686
		INFO_PRINTF1(_L("this is a test of CMdaAudioRecorderUtility::xxxSampleRatexx() functions"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   687
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   688
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   689
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   690
		INFO_PRINTF1(_L("this is a test of CMdaAudioConvertUtility::xxxSampleRatexx() functions"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   691
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   692
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   693
	if(!(GetStringFromConfig(_L("SectionOne"), _L("AudioPlayFName1"), iFileName) && // wav
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   694
		 GetStringFromConfig(_L("SectionOne"), _L("AudioFNameToRecord4"), iFileName2) && // wav
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   695
		 GetStringFromConfig(_L("SectionOne"), _L("AudioFNameToConvert"), iFileName3) // au
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   696
		)) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   697
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   698
		//INFO_PRINTF2(_L("file name %s not found..."), fileptr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   699
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   700
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   701
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   702
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   703
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   704
		// create the Recorder utility
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   705
		if ( (iRecorder = CMMFMdaAudioRecorderUtility::NewL(*this)) == NULL )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   706
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   707
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   708
		TInt err;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   709
		TRAP( err, OpenAndStartSchedulerL() );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   710
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   711
		if (iRecorder == NULL ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   712
			err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   713
			iError != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   714
			iRecorder->State() != CMdaAudioRecorderUtility::EOpen)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   715
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   716
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   717
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   718
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   719
		// create the Converter utility
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   720
		if ( (iConvert = CMdaAudioConvertUtility::NewL(*this)) == NULL )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   721
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   722
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   723
		TInt err;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   724
		TRAP( err, OpenAndStartSchedulerL() );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   725
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   726
		if (iConvert == NULL ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   727
			err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   728
			iError != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   729
			iConvert->State() != CMdaAudioConvertUtility::EOpen)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   730
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   731
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   732
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   733
	return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   734
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   735
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   736
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   737
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   738
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   739
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   740
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   741
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   742
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   743
enum TVerdict CTestStepRecorderSampleRate::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   744
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   745
	iFs.Connect();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   746
	iFileMan = CFileMan::NewL(iFs);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   747
	iFileMan->Delete(iFileName2);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   748
	iFileMan->Delete(iFileName3);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   749
	iFs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   750
	delete iFileMan;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   751
	iFileMan = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   752
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   753
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   754
		delete iRecorder;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   755
		iRecorder = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   756
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   757
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   758
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   759
		delete iConvert;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   760
		iConvert = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   761
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   762
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   763
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   764
	return CTestStepUnitMMFAudClient::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   765
	}
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
 * Callback Handle.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   770
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   771
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   772
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   773
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   774
void CTestStepRecorderSampleRate::MoscoStateChangeEvent(CBase* /*aObject*/,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   775
														  TInt /*aPreviousState*/,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   776
														  TInt /*aCurrentState*/,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   777
														  TInt aErrorcCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   778
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   779
	iError = aErrorcCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   780
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   781
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   782
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   783
void CTestStepRecorderSampleRate::OpenAndStartSchedulerL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   784
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   785
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   786
		iRecorder->OpenFileL( iFileName );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   787
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   788
		iConvert->OpenL( iFileName, iFileName3 );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   789
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   790
	CActiveScheduler::Start(); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   791
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   792
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   793
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   794
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   795
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   796
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   797
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   798
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   799
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   800
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   801
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   802
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   803
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   804
TVerdict CTestStepRecorderSampleRate::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   805
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   806
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   807
    TInt err       = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   808
	TUint samplerate = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   809
	RArray<TUint> supSampleRates;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   810
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   811
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   812
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   813
		// get the type of the openned file of known bitrate
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   814
		// (wav file 8KHz) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   815
		// and check if type correct
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   816
		TRAP(err, samplerate = iRecorder->DestinationSampleRateL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   817
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   818
			samplerate != 8000)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   819
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   820
			INFO_PRINTF3(_L("iRecorder->DestinationSampleRateL() test failed (err=%d, samplerate=%d)"),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   821
						 err, samplerate);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   822
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   823
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   824
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   825
		// close this file and
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   826
		iRecorder->Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   827
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   828
		//open a new non-existing file for recording
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   829
		TRAP(err, iRecorder->OpenFileL(iFileName2));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   830
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   831
			iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   832
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   833
			INFO_PRINTF3(_L("iRecorder->OpenFileL() test failed (err=%d, iError=%d)"), err, iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   834
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   835
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   836
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   837
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   838
		// check the number of supported bitrates
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   839
		// just checking that there are some sample rates available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   840
		TRAP(err, iRecorder->GetSupportedSampleRatesL(supSampleRates));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   841
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   842
			supSampleRates.Count() <= 0 )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   843
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   844
			INFO_PRINTF3(_L("iRecorder->GetSupportedSampleRatesL() test failed (err=%d, count=%d)"),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   845
						 err, supSampleRates.Count());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   846
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   847
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   848
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   849
		// set the destination samplerate to a specific one of our choice
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   850
		TRAP(err, iRecorder->SetDestinationSampleRateL(supSampleRates[0]) ); //4000));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   851
		if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   852
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   853
			INFO_PRINTF2(_L("iRecorder->SetDestinationSampleRateL() test failed (err=%d)"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   854
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   855
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   856
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   857
		//get the newly set sample rate
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   858
		//and check if it has been set correctly
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   859
		TRAP(err, samplerate = iRecorder->DestinationSampleRateL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   860
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   861
			samplerate != supSampleRates[0])
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   862
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   863
			INFO_PRINTF3(_L("iRecorder->DestinationSampleRateL() test failed (err=%d, samplerate=%d)"),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   864
						 err, supSampleRates[0]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   865
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   866
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   867
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   868
	else // isConverterTest == ETrue
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   869
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   870
		// get the known sample rate of the source file 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   871
		// (wav file 8KHz) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   872
		// and check if type correct
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   873
		TRAP(err, samplerate = iConvert->SourceSampleRateL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   874
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   875
			samplerate != 8000)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   876
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   877
			INFO_PRINTF3(_L("iConvert->SourceSampleRateL() test failed (err=%d, samplerate=%d)"), err, samplerate);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   878
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   879
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   880
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   881
		// check the number of supported bitrates
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   882
		// just checking that there are some sample rates available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   883
		TRAP(err, iConvert->GetSupportedConversionSampleRatesL(supSampleRates));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   884
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   885
			supSampleRates.Count() <= 0 )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   886
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   887
			INFO_PRINTF3(_L("iConvert->GetSupportedConversionSampleRatesL() test failed (err=%d, count=%d)"),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   888
						 err, supSampleRates.Count());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   889
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   890
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   891
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   892
		// set the destination samplerate to a specific one of our choice
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   893
		TRAP(err, iConvert->SetDestinationSampleRateL(supSampleRates[0]) ); //4000));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   894
		if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   895
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   896
			INFO_PRINTF2(_L("iConvert->SetDestinationSampleRateL() test failed (err=%d)"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   897
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   898
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   899
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   900
		//get the newly set sample rate
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   901
		//and check if it has been set correctly
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   902
		TRAP(err, samplerate = iConvert->DestinationSampleRateL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   903
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   904
			samplerate != supSampleRates[0])
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   905
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   906
			INFO_PRINTF3(_L("iConvert->DestinationSampleRateL() test failed (err=%d, samplerate=%d)"),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   907
						 err, supSampleRates[0]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   908
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   909
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   910
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   911
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   912
	INFO_PRINTF1(_L("finished with this test step"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   913
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   914
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   915
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   916
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   917
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   918
// --------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   919
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   920
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   921
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   922
 * Static constructor for CTestStepRecorderFormat.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   923
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   924
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   925
 * @return	"CTestStepRecorderFormat*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   926
 *			The constructed CTestStepRecorderFormat
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   927
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   928
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   929
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   930
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   931
CTestStepRecorderFormat* CTestStepRecorderFormat::NewL(const TDesC& aTestName, TBool aIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   932
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   933
	CTestStepRecorderFormat* self = new(ELeave) CTestStepRecorderFormat(aTestName, aIsConverterTest);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   934
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   935
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   936
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   937
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   938
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   939
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   940
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   941
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   942
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   943
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   944
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   945
CTestStepRecorderFormat::CTestStepRecorderFormat(const TDesC& aTestName, TBool aIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   946
: iIsConverterTest(aIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   947
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   948
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   949
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   950
	iTestStepName = aTestName;
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
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   955
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   956
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   957
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   958
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   959
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   960
CTestStepRecorderFormat::~CTestStepRecorderFormat()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   961
	{
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
 * Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   967
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   968
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   969
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   970
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   971
enum TVerdict CTestStepRecorderFormat::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   972
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   973
	 enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   974
	 // this installs the scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   975
	 verdict = CTestStepUnitMMFAudClient::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   976
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   977
	// Printing to the console and log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   978
	INFO_PRINTF1(iTestStepName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   979
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   980
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   981
		INFO_PRINTF1(_L("this is a test of CMdaAudioRecorderUtility::xxxFormatxx() functions"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   982
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   983
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   984
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   985
		INFO_PRINTF1(_L("this is a test of CMdaAudioConvertUtility::xxxFormatxx() functions"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   986
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   987
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   988
	if(!(GetStringFromConfig(_L("SectionOne"), _L("AudioPlayFName1"), iFileName) && // wav
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   989
		 GetStringFromConfig(_L("SectionOne"), _L("AudioFNameToRecord5"), iFileName2) && // wav
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   990
		 GetStringFromConfig(_L("SectionOne"), _L("AudioFNameToConvert"), iFileName3) // au
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   991
		)) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   992
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   993
		//INFO_PRINTF2(_L("file name %s not found..."), fileptr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   994
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   995
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   996
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   997
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   998
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   999
		// create the Recorder utility
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1000
		if ( (iRecorder = CMMFMdaAudioRecorderUtility::NewL(*this)) == NULL )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1001
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1002
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1003
		TInt err;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1004
		TRAP( err, OpenAndStartSchedulerL() );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1005
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1006
		if (iRecorder == NULL ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1007
			err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1008
			iError != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1009
			iRecorder->State() != CMdaAudioRecorderUtility::EOpen)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1010
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1011
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1012
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1013
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1014
		// create the Converter utility
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1015
		if ( (iConvert = CMdaAudioConvertUtility::NewL(*this)) == NULL )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1016
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1017
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1018
		TInt err;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1019
		TRAP( err, OpenAndStartSchedulerL() );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1020
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1021
		if (iConvert == NULL ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1022
			err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1023
			iError != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1024
			iConvert->State() != CMdaAudioConvertUtility::EOpen)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1025
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1026
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1027
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1028
	return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1029
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1030
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1031
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1032
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1033
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1034
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1035
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1036
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1037
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1038
enum TVerdict CTestStepRecorderFormat::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1039
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1040
	iFs.Connect();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1041
	iFileMan = CFileMan::NewL(iFs);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1042
	iFileMan->Delete(iFileName2);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1043
	iFileMan->Delete(iFileName3);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1044
	iFs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1045
	delete iFileMan;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1046
	iFileMan = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1047
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1048
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1049
		delete iRecorder;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1050
		iRecorder = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1051
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1052
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1053
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1054
		delete iConvert;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1055
		iConvert = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1056
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1057
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1058
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1059
	return CTestStepUnitMMFAudClient::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1060
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1061
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1062
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1063
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1064
 * Callback Handle.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1065
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1066
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1067
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1068
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1069
void CTestStepRecorderFormat::MoscoStateChangeEvent(CBase* /*aObject*/,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1070
														  TInt /*aPreviousState*/,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1071
														  TInt /*aCurrentState*/,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1072
														  TInt aErrorcCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1073
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1074
	iError = aErrorcCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1075
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1076
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1077
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1078
void CTestStepRecorderFormat::OpenAndStartSchedulerL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1079
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1080
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1081
		iRecorder->OpenFileL( iFileName );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1082
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1083
		iConvert->OpenL( iFileName, iFileName3 );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1084
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1085
	CActiveScheduler::Start(); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1086
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1087
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1088
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1089
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1090
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1091
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1092
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1093
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1094
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1095
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1096
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1097
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1098
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1099
TVerdict CTestStepRecorderFormat::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1100
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1101
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1102
    TInt err       = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1103
	TUid format = TUid::Null();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1104
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1105
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1106
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1107
		// get the format of the openned file of known format
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1108
		// (wav file 8KHz) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1109
		// and check if type correct
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1110
		TRAP(err, format = iRecorder->DestinationFormatL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1111
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1112
			format != TUid::Uid(KMmfUidFormatWAVWrite) )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1113
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1114
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1115
		// close this file and
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1116
		iRecorder->Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1117
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1118
		//open a new non-existing file for recording
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1119
		TRAP(err, iRecorder->OpenFileL(iFileName2));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1120
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1121
			iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1122
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1123
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1124
		// set the destination format to a specific one of our choice
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1125
		TRAP(err, iRecorder->SetDestinationFormatL(TUid::Uid(KMmfUidFormatAUWrite) ) );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1126
		if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1127
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1128
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1129
		//get the newly set format
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1130
		//and check if it has been set correctly
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1131
		TRAP(err, format = iRecorder->DestinationFormatL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1132
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1133
			format != TUid::Uid(KMmfUidFormatAUWrite) )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1134
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1135
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1136
	else // isConverterTest == ETrue
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1137
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1138
		// get the format of the source file of known format
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1139
		// (wav file 8KHz) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1140
		// and check if type correct
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1141
		TRAP(err, format = iConvert->SourceFormatL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1142
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1143
			format != TUid::Uid(KMmfUidFormatWAVRead) )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1144
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1145
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1146
		// set the destination format to a specific one of our choice
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1147
		TRAP(err, iConvert->SetDestinationFormatL(TUid::Uid(KMmfUidFormatAUWrite) ) );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1148
		if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1149
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1150
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1151
		//get the newly set format
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1152
		//and check if it has been set correctly
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1153
		TRAP(err, format = iConvert->DestinationFormatL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1154
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1155
			format != TUid::Uid(KMmfUidFormatAUWrite) )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1156
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1157
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1158
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1159
	INFO_PRINTF1(_L("finished with this test step"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1160
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1161
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1162
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1163
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1164
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1165
// ----------CTestStepRecorderChannels----------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1166
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1167
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1168
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1169
 * Static constructor for CTestStepRecorderChannels.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1170
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1171
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1172
 * @return	"CTestStepRecorderChannels*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1173
 *			The constructed CTestStepRecorderChannels
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1174
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1175
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1176
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1177
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1178
CTestStepRecorderChannels* CTestStepRecorderChannels::NewL(const TDesC& aTestName, TBool aIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1179
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1180
	CTestStepRecorderChannels* self = new(ELeave) CTestStepRecorderChannels(aTestName, aIsConverterTest);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1181
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1182
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1183
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1184
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1185
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1186
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1187
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1188
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1189
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1190
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1191
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1192
CTestStepRecorderChannels::CTestStepRecorderChannels(const TDesC& aTestName, TBool aIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1193
: iIsConverterTest(aIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1194
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1195
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1196
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1197
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1198
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1199
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1200
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1201
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1202
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1203
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1204
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1205
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1206
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1207
CTestStepRecorderChannels::~CTestStepRecorderChannels()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1208
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1209
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1210
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1211
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1212
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1213
 * Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1214
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1215
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1216
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1217
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1218
enum TVerdict CTestStepRecorderChannels::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1219
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1220
	 enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1221
	 // this installs the scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1222
	 verdict = CTestStepUnitMMFAudClient::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1223
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1224
	// Printing to the console and log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1225
	INFO_PRINTF1(iTestStepName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1226
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1227
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1228
		INFO_PRINTF1(_L("this is a test of CMdaAudioRecorderUtility::xxxChannelsx() functions"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1229
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1230
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1231
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1232
		INFO_PRINTF1(_L("this is a test of CMdaAudioConvertUtility::xxxChannelsx() functions"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1233
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1234
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1235
	if(!(GetStringFromConfig(_L("SectionOne"), _L("AudioPlayFName1"), iFileName) && // wav
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1236
		 GetStringFromConfig(_L("SectionOne"), _L("AudioFNameToRecord4"), iFileName2) && // wav
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1237
		 GetStringFromConfig(_L("SectionOne"), _L("AudioFNameToConvert"), iFileName3) // au
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1238
		)) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1239
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1240
		//INFO_PRINTF2(_L("file name %s not found..."), fileptr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1241
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1242
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1243
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1244
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1245
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1246
		// create the Recorder utility
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1247
		if ( (iRecorder = CMMFMdaAudioRecorderUtility::NewL(*this)) == NULL )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1248
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1249
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1250
		TInt err;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1251
		TRAP( err, OpenAndStartSchedulerL() );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1252
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1253
		if (iRecorder == NULL ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1254
			err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1255
			iError != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1256
			iRecorder->State() != CMdaAudioRecorderUtility::EOpen)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1257
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1258
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1259
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1260
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1261
		// create the Converter utility
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1262
		if ( (iConvert = CMdaAudioConvertUtility::NewL(*this)) == NULL )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1263
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1264
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1265
		TInt err;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1266
		TRAP( err, OpenAndStartSchedulerL() );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1267
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1268
		if (iConvert == NULL ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1269
			err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1270
			iError != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1271
			iConvert->State() != CMdaAudioConvertUtility::EOpen)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1272
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1273
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1274
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1275
	return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1276
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1277
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1278
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1279
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1280
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1281
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1282
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1283
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1284
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1285
enum TVerdict CTestStepRecorderChannels::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1286
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1287
	iFs.Connect();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1288
	iFileMan = CFileMan::NewL(iFs);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1289
	iFileMan->Delete(iFileName2);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1290
	iFileMan->Delete(iFileName3);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1291
	iFs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1292
	delete iFileMan;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1293
	iFileMan = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1294
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1295
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1296
		delete iRecorder;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1297
		iRecorder = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1298
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1299
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1300
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1301
		delete iConvert;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1302
		iConvert = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1303
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1304
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1305
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1306
	return CTestStepUnitMMFAudClient::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1307
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1308
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1309
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1310
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1311
 * Callback Handle.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1312
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1313
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1314
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1315
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1316
void CTestStepRecorderChannels::MoscoStateChangeEvent(CBase* /*aObject*/,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1317
														  TInt /*aPreviousState*/,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1318
														  TInt /*aCurrentState*/,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1319
														  TInt aErrorcCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1320
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1321
	iError = aErrorcCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1322
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1323
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1324
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1325
void CTestStepRecorderChannels::OpenAndStartSchedulerL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1326
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1327
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1328
		iRecorder->OpenFileL( iFileName );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1329
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1330
		iConvert->OpenL( iFileName, iFileName3 );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1331
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1332
	CActiveScheduler::Start(); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1333
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1334
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1335
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1336
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1337
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1338
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1339
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1340
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1341
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1342
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1343
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1344
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1345
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1346
TVerdict CTestStepRecorderChannels::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1347
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1348
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1349
	TInt err       = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1350
	TUint channels = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1351
	RArray<TUint> supChannels;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1352
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1353
	if (!iIsConverterTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1354
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1355
		// get the number of channels of the openned file of known channels number
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1356
		// (wav mono file 8KHz) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1357
		// and check if channels correct
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1358
		TRAP(err, channels = iRecorder->DestinationNumberOfChannelsL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1359
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1360
			channels != 1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1361
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1362
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1363
		// close this file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1364
		iRecorder->Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1365
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1366
		//open a new non-existing file for recording
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1367
		TRAP(err, iRecorder->OpenFileL(iFileName2));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1368
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1369
			iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1370
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1371
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1372
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1373
		// get the supported num of channels
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1374
		TRAP(err, iRecorder->GetSupportedNumberOfChannelsL(supChannels));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1375
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1376
			supChannels.Count() <= 0 )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1377
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1378
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1379
		// set the destination number of channels to a specific one of our choice
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1380
		TRAP(err, iRecorder->SetDestinationNumberOfChannelsL(2));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1381
		if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1382
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1383
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1384
		//get the newly set number of channels
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1385
		//and check if it has been set correctly
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1386
		TRAP(err, channels = iRecorder->DestinationNumberOfChannelsL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1387
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1388
			channels != 2)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1389
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1390
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1391
	else // isConverterTest == ETrue
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1392
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1393
		// get the number of channels of the source file of known channels number
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1394
		// (wav mono file 8KHz) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1395
		// and check if channels correct
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1396
		TRAP(err, channels = iConvert->SourceNumberOfChannelsL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1397
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1398
			channels != 1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1399
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1400
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1401
		// get the supported num of channels
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1402
		TRAP(err, iConvert->GetSupportedConversionNumberOfChannelsL(supChannels));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1403
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1404
			supChannels.Count() <= 0 )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1405
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1406
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1407
		// set the destination number of channels to a specific one of our choice
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1408
		TRAP(err, iConvert->SetDestinationNumberOfChannelsL(2));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1409
		if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1410
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1411
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1412
		//get the newly set number of channels
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1413
		//and check if it has been set correctly
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1414
		TRAP(err, channels = iConvert->DestinationNumberOfChannelsL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1415
		if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1416
			channels != 2)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1417
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1418
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1419
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1420
	INFO_PRINTF1(_L("finished with this test step"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1421
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1422
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1423
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1424
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1425