mmlibs/mmfw/tsrc/mmfunittest/aclnt/TSU_MMF_ACLNT_01/TestStepRecorderOpen.cpp
author hgs
Thu, 07 Oct 2010 22:34:12 +0100
changeset 0 b8ed18f6c07b
permissions -rw-r--r--
2010wk40
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 an example Test step implementation 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
// This demonstrates the various functions provided
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    16
// by the CTestStep base class which are available within
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    17
// a test step 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    18
// 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    19
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
// EPOC includes
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
#include <e32base.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
#include <e32test.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
#include <e32keys.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
#include <c32comm.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
#include <f32file.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
#include <etel.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
#include <etelmm.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
#include <testframework.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
//#include <MdaAudioSamplePlayer.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
#include <mdaaudiosampleeditor.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
//#include <MdaAudioTonePlayer.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
// Test system includes
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
#include <testframework.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
// Specific includes for this test suite
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
#include "TestStepUnitMMFAudClient.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
#include "TestSuiteUnitMMFAudClient.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
// Specific includes for these test steps
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
#include "TestStepRecorder.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
#include "MmfAudioController.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
#include "mmfclientaudiorecorder.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
//#include "MmfClientAudioPlayer.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
//#include <mmffourcc.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
//#include <mmfpaniccodes.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
//#include <mmfFormatImplementationUIDs.hrh>
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
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
 * Static constructor for CTestStepRecorderOpen.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
 * @return	"CTestStepRecorderOpen*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
 *			The constructed CTestStepRecorderOpen
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
CTestStepRecorderOpen* CTestStepRecorderOpen::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
	CTestStepRecorderOpen* self = new(ELeave) CTestStepRecorderOpen;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
	return self;
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
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
CTestStepRecorderOpen::CTestStepRecorderOpen()
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 = _L("MM-MMF-ACLNT-U-0205-CP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
	iHeapSize = 120000;
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
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
CTestStepRecorderOpen::~CTestStepRecorderOpen()
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
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
 * Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
enum TVerdict CTestStepRecorderOpen::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   106
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   107
	 enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   108
	 // this installs the scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   109
	 verdict = CTestStepUnitMMFAudClient::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   110
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   111
	// Printing to the console and log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
	INFO_PRINTF1(_L("MM-MMF-ACLNT-U-0205-CP"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
	INFO_PRINTF1(_L("this is a test of CMdaAudioRecorderUtility::OpenL(<location>)"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
	if(!GetStringFromConfig(_L("SectionOne"), _L("AudioPlayFName7"), iFileName)) // wav file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
		//INFO_PRINTF2(_L("file name %s not found..."), fileptr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
	if(!GetStringFromConfig(_L("SectionOne"), _L("AudioPlayFName3"), iFileName2)) // au file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
		//INFO_PRINTF2(_L("file name %s not found..."), fileptr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
	if(!GetStringFromConfig(_L("SectionOne"), _L("AudioPlayFName4"), iFileName3)) // raw file
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
	// load the contents of an audio file to a Descriptor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   132
	TInt fSize;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
	iFs.Connect();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
	if ( iFile.Open(iFs, iFileName, EFileRead) != KErrNone )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
	iFile.Size(fSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
	// load the sound from the file to a Descriptor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   139
	iBuf = HBufC8::NewL( fSize );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   140
	TPtr8 buf = iBuf->Des();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
	iFile.Read(buf);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
	iFile.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
	iFs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
	// create the Recorder utility
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
	if ( (iRecorder = CMMFMdaAudioRecorderUtility::NewL(*this)) == NULL )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
		verdict = EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
	iClipLocation = new TMdaFileClipLocation(iFileName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
	iFormat = new TMdaWavClipFormat();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   153
	return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   154
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
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   159
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   160
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   161
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   162
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   163
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   164
enum TVerdict CTestStepRecorderOpen::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   165
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   166
	delete iRecorder;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   167
	iRecorder = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   168
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   169
	return CTestStepUnitMMFAudClient::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   170
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   171
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   172
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   173
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   174
 * Callback Handle.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   175
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   176
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   177
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   178
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   179
void CTestStepRecorderOpen::MoscoStateChangeEvent(CBase* /*aObject*/,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   180
														  TInt /*aPreviousState*/,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   181
														  TInt /*aCurrentState*/,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   182
														  TInt aErrorcCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   183
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   184
	iError = aErrorcCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   185
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   186
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   187
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   188
void CTestStepRecorderOpen::OpenAndStartSchedulerL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   189
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   190
	iRecorder->OpenL( iClipLocation, iFormat );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   191
	CActiveScheduler::Start(); 
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
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   196
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   197
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   198
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   199
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   200
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   201
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   202
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   203
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   204
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   205
TVerdict CTestStepRecorderOpen::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   206
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   207
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   208
    TInt err       = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   209
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   210
	// location: WAV file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   211
	TRAP( err, OpenAndStartSchedulerL() );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   212
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   213
	if (iRecorder == NULL ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   214
		err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   215
		iError != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   216
		iRecorder->State() != CMdaAudioRecorderUtility::EOpen )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   217
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   218
		INFO_PRINTF1(_L("WAV test failed"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   219
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   220
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   221
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   222
	delete iRecorder;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   223
	iRecorder = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   224
	delete iClipLocation;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   225
	iClipLocation = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   226
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   227
	// location: Descriptor containg wav sound format
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   228
	if ( (iRecorder = CMMFMdaAudioRecorderUtility::NewL(*this)) == NULL )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   229
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   230
	TPtr8 buf = iBuf->Des();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   231
	iClipLocation = new TMdaDesClipLocation(buf);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   232
	TRAP( err, OpenAndStartSchedulerL() );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   233
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   234
	if (iRecorder == NULL ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   235
		err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   236
		iError != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   237
		iRecorder->State() != CMdaAudioRecorderUtility::EOpen )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   238
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   239
		INFO_PRINTF1(_L("Descriptor test failed"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   240
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   241
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   242
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   243
	delete iRecorder;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   244
	iRecorder = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   245
	delete iClipLocation;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   246
	iClipLocation = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   247
	delete iFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   248
	iFormat = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   249
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   250
	// location: File containg au sound format
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   251
	if ( (iRecorder = CMMFMdaAudioRecorderUtility::NewL(*this)) == NULL )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   252
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   253
	iClipLocation = new TMdaFileClipLocation(iFileName2);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   254
	iFormat = new TMdaAuClipFormat();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   255
	TRAP( err, OpenAndStartSchedulerL() );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   256
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   257
	if (iRecorder == NULL ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   258
		err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   259
		iError != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   260
		iRecorder->State() != CMdaAudioRecorderUtility::EOpen )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   261
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   262
		INFO_PRINTF1(_L("AU test failed"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   263
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   264
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   265
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   266
	delete iRecorder;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   267
	iRecorder = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   268
	delete iClipLocation;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   269
	iClipLocation = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   270
	delete iFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   271
	iFormat = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   272
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   273
	// location: File containg raw sound format
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   274
	if ( (iRecorder = CMMFMdaAudioRecorderUtility::NewL(*this)) == NULL )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   275
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   276
	iClipLocation = new TMdaFileClipLocation(iFileName3);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   277
	iFormat = new TMdaRawAudioClipFormat();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   278
	TRAP( err, OpenAndStartSchedulerL() );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   279
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   280
	if (iRecorder == NULL ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   281
		err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   282
		iError != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   283
		iRecorder->State() != CMdaAudioRecorderUtility::EOpen )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   284
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   285
		INFO_PRINTF1(_L("RAW test failed"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   286
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   287
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   288
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   289
	delete iRecorder;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   290
	iRecorder = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   291
	delete iClipLocation;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   292
	iClipLocation = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   293
	delete iFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   294
	iFormat = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   295
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   296
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   297
	INFO_PRINTF1(_L("finished with this test step"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   298
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   299
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   300
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   301
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   302
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   303
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   304
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   305
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   306
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   307
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   308
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   309
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   310
CTestMmfAclntRecFileInvDesForm::CTestMmfAclntRecFileInvDesForm()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   311
	{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   312
	iTestStepName = _L("MM-MMF-ACLNT-U-0969-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   313
	iHeapSize = 200000;		// playback part of test loads whole sound file into buffer, so need large heap
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   314
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   315
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   316
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   317
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   318
 * Static constructor for CTestMmfAclntRecFileInvDesForm.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   319
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   320
 * @return	"CTestMmfAclntRecFileInvDesForm*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   321
 *			The constructed CTestMmfAclntRecFileInvDesForm
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   322
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   323
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   324
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   325
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   326
CTestMmfAclntRecFileInvDesForm* CTestMmfAclntRecFileInvDesForm::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   327
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   328
	CTestMmfAclntRecFileInvDesForm* self = new (ELeave) CTestMmfAclntRecFileInvDesForm();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   329
	return self;
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
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   334
 * Test step Preamble.
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
TVerdict CTestMmfAclntRecFileInvDesForm::DoTestStepPreambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   340
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   341
	iTestStepResult = CTestStepUnitMMFAudClient::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   342
	if(iTestStepResult != EPass)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   343
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   344
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   345
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   346
	if( !GetStringFromConfig(_L("SectionOne"), _L("AudioPlayFName4"), iFileName) )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   347
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   348
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   349
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   350
	if( (iRecUtil = CMdaAudioRecorderUtility::NewL(*this)) == NULL )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   351
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   352
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   353
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   354
	return EPass;
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
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   360
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   361
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   362
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   363
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   364
TVerdict CTestMmfAclntRecFileInvDesForm::DoTestStepPostambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   365
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   366
	delete iRecUtil;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   367
	iRecUtil = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   368
	return CTestStepUnitMMFAudClient::DoTestStepPostambleL();	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   369
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   370
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   371
void CTestMmfAclntRecFileInvDesForm::MoscoStateChangeEvent(CBase* /*aObject*/, TInt aPreviousState, TInt aCurrentState, TInt aErrorCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   372
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   373
	iError = aErrorCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   374
	INFO_PRINTF4( _L("MMdaObjectStateChangeObserver: previous state: %d current state: %d error: %d"),aPreviousState, aCurrentState, aErrorCode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   375
    CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   376
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   377
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   378
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   379
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   380
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   381
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   382
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   383
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   384
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   385
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   386
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   387
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   388
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   389
TVerdict CTestMmfAclntRecFileInvDesForm::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   390
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   391
	INFO_PRINTF1( _L("Test the SetDestinationFormatL API with passing wrong UID, so that it should return KErrNotSupported"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   392
	INFO_PRINTF2(_L("CMdaAudioRecorderUtility->OpenFileL(%S)"), &iFileName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   393
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   394
	iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   395
	iRecUtil->OpenFileL(iFileName);		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   396
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   397
	if ( iError == KErrNone )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   398
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   399
		// Get current format		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   400
		TUid currentFormat = KNullUid;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   401
		TRAPD(err, currentFormat = iRecUtil->DestinationFormatL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   402
		if ( err != KErrNone )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   403
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   404
			ERR_PRINTF2(_L("CMdaAudioRecorderUtility::DestinationFormatL failed with error %d."), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   405
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   406
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   407
		else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   408
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   409
			INFO_PRINTF2(_L("Current format %x."), currentFormat);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   410
			}			
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   411
		// Set invalid format
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   412
		TUid newFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   413
		newFormat.iUid = KMmfUidFormatRAWRead;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   414
		TRAP(err, iRecUtil->SetDestinationFormatL(newFormat));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   415
		if ( err != KErrNotSupported )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   416
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   417
			ERR_PRINTF2(_L("CMdaAudioRecorderUtility::SetDestinationFormatL failed with unexpected error %d."), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   418
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   419
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   420
		else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   421
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   422
			INFO_PRINTF2(_L("CMdaAudioRecorderUtility::SetDestinationFormatL failed with expected error %d."), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   423
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   424
		// Get current format
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   425
		TRAP(err, currentFormat = iRecUtil->DestinationFormatL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   426
		if ( err != KErrNotSupported )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   427
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   428
			ERR_PRINTF2(_L("Current format %x."), currentFormat);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   429
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   430
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   431
		else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   432
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   433
			INFO_PRINTF2(_L("CMdaAudioRecorderUtility::DestinationFormatL failed with expected error %d."), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   434
			iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   435
			}	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   436
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   437
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   438
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   439