mmlibs/mmfw/tsrc/mmfunittest/aclnt/TSU_MMF_ACLNT_01/TestStepAudInStream.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 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
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
// Test system includes
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
#include <testframework.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
// Specific includes for this test suite
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
#include "TestStepUnitMMFAudClient.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
#include "TestSuiteUnitMMFAudClient.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
// Specific includes for these test steps
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
#include "TestStepAudInStream.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
#include "mmfclientaudioinputstream.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
#include <mda/common/audio.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
// --------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
// base class for some audio Input stream tests
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
//_LIT(KStreamRawFile,"c:\\mm\\mmf\\testfiles\\aclnt\\test.raw");	// EABI warning removal
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
//_LIT(KStreamIMADFile,"c:\\mm\\mmf\\testfiles\\aclnt\\test.raw");	// EABI warning removal
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
_LIT(KRecordStreamRawFile,"c:\\mm\\mmf\\testfiles\\aclnt\\streamrecorded.raw");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
const TInt KMicroSecsInOneSec = 1000000;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
//const TInt KBitsPerSample = 16;	// EABI warning removal
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
const TInt KBytesPerSample = 2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
const TInt KSampleRate = 8000;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
// constant table of parameters for tests
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
const TStreamInConvParameters KTestParameters[] =
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
	// straight encode test
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
	{ _S("MM-MMF-ACLNT-U-0740-CP"), KMMFFourCCCodePCMU8},
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
	{ _S("MM-MMF-ACLNT-U-0741-CP"), KMMFFourCCCodePCM16},
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
	{ _S("MM-MMF-ACLNT-U-0742-CP"), KMMFFourCCCodeALAW},
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
	{ _S("MM-MMF-ACLNT-U-0743-CP"), KMMFFourCCCodeMuLAW},
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
	{ _S("MM-MMF-ACLNT-U-0744-CP"), KMMFFourCCCodeIMAD},
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
	{ _S("MM-MMF-ACLNT-U-0745-CP"), KMMFFourCCCodePCM16B},
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
	{ _S("MM-MMF-ACLNT-U-0746-CP"), KMMFFourCCCodeGSM610}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
CTestStepAudInStream* CTestStepAudInStream::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    70
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    71
	CTestStepAudInStream* s = new(ELeave) CTestStepAudInStream();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    72
	CleanupStack::PushL(s);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
	s->ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
	CleanupStack::Pop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
	return s;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
CTestStepAudInStream::CTestStepAudInStream() : iError(KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
	iTestStepName = _L("MM-MMF-ACLNT-U-0999-CP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
void CTestStepAudInStream::ConstructL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
	// reset the buffer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
	for(TInt i=0; i<KRecNumBuffer; i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
		iBufferList[i] = KNullDesC8;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
	iStartBuf=iEndBuf=0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
CTestStepAudInStream::~CTestStepAudInStream()
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
void CTestStepAudInStream::MaiscOpenComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    98
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    99
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
void CTestStepAudInStream::MaiscRecordComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   106
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   107
	iWriteBufferActive->Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   108
	TInt filePosition=0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   109
	iFile.Seek(ESeekStart, filePosition);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   110
	iFile.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   111
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
void CTestStepAudInStream::MaiscBufferCopied(TInt aError, const TDesC8& /*aBuffer*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
	if(aError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
		return;   
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
	// Assume aBuffer == iBufferList[iEndBuf]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
	// Increment iEndBuf
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
	if(iEndBuf==KRecNumBuffer-1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
		iEndBuf = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   126
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   127
		iEndBuf++;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   128
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   129
	// Starting writing out the buffers if we're not already
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   130
	if(!iWriteBufferActive->IsActive())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   131
		iWriteBufferActive->Write(iBufferList[iStartBuf]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   132
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
void CTestStepAudInStream::StartReadL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
	// Issue reads on all available buffers
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
	for (TInt ii=0; ii<KRecNumBuffer; ii++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
	    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   139
		iAudInStream->ReadL(iBufferList[ii]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   140
	    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
CTestStepAudInStream::CWriteBufferActive::CWriteBufferActive() : CActive(0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
	CActiveScheduler::Add(this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
CTestStepAudInStream::CWriteBufferActive::~CWriteBufferActive()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
	Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   153
void CTestStepAudInStream::CWriteBufferActive::RunL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   154
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   155
	//ASSERT it wrote OK
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   156
	iParent->ProcessDataL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   157
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   158
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   159
void CTestStepAudInStream::CWriteBufferActive::DoCancel()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   160
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   161
	// do nothing
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   162
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   163
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   164
void CTestStepAudInStream::CWriteBufferActive::Write(const TDesC8& aBuffer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   165
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   166
	iParent->iFile.Write(aBuffer, iStatus);      // read the 1st data trunk
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   167
	SetActive();		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   168
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   169
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   170
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   171
void CTestStepAudInStream::ProcessDataL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   172
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   173
	// Set the next buffer to handle
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   174
	iBufferList[iStartBuf] = KNullDesC8; // done with that one
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   175
	// Issue another read to input stream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   176
	iAudInStream->ReadL(iBufferList[iStartBuf]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   177
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   178
	// Increment iStartBuf
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   179
	if(iStartBuf==KRecNumBuffer-1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   180
		iStartBuf=0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   181
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   182
		iStartBuf++;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   183
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   184
	if (iBufferList[iStartBuf] != KNullDesC8)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   185
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   186
		// Still more to write
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   187
		iWriteBufferActive->Write(iBufferList[iStartBuf]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   188
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   189
	// else just wait for more recorded data to come through
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   190
	}
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
 * Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   195
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   196
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   197
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   198
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   199
 enum TVerdict CTestStepAudInStream::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   200
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   201
	 enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   202
	 // this installs the scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   203
	 verdict = CTestStepUnitMMFAudClient::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   204
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   205
	// create the active object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   206
	iWriteBufferActive = new(ELeave) CWriteBufferActive();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   207
	iWriteBufferActive->iParent = this;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   208
	iFs.Connect();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   209
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   210
	TRAPD(err, iAudInStream = CMMFMdaAudioInputStream::NewL(*this) );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   211
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   212
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   213
	if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   214
		iAudInStream == NULL )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   215
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   216
	 	 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   217
	 return verdict;
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
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   223
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   224
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   225
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   226
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   227
enum TVerdict CTestStepAudInStream::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   228
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   229
	iFs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   230
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   231
	delete iAudInStream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   232
	iAudInStream = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   233
	delete iWriteBufferActive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   234
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   235
	return CTestStepUnitMMFAudClient::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   236
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   237
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   238
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   239
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   240
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   241
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   242
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   243
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   244
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   245
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   246
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   247
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   248
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   249
TVerdict CTestStepAudInStream::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   250
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   251
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   252
	TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   253
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   254
	if (iError != KErrNone )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   255
		 return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   256
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   257
	err = iFile.Replace( iFs, KRecordStreamRawFile, EFileWrite ) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   258
	if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   259
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   260
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   261
	StartReadL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   262
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   263
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   264
	iFile.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   265
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   266
	INFO_PRINTF1(_L("finished with this test step"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   267
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   268
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   269
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   270
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   271
// --------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   272
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   273
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   274
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   275
 * Static constructor for CTestStepAudInStreamNew.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   276
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   277
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   278
 * @return	"CTestStepAudInStreamNew*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   279
 *			The constructed CTestStepAudInStreamNew
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   280
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   281
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   282
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   283
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   284
CTestStepAudInStreamNew* CTestStepAudInStreamNew::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   285
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   286
	CTestStepAudInStreamNew* self = new(ELeave) CTestStepAudInStreamNew;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   287
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   288
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   289
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   290
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   291
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   292
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   293
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   294
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   295
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   296
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   297
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   298
CTestStepAudInStreamNew::CTestStepAudInStreamNew()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   299
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   300
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   301
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   302
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   303
	iTestStepName = _L("MM-MMF-ACLNT-U-0700-CP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   304
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   305
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   306
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   307
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   308
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   309
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   310
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   311
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   312
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   313
CTestStepAudInStreamNew::~CTestStepAudInStreamNew()
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
 * Implementation of the MMdaAudioOuputStreamCallback interface functions
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   319
 **/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   320
void CTestStepAudInStreamNew::MaiscOpenComplete(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   321
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   322
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   323
void CTestStepAudInStreamNew::MaiscBufferCopied(TInt /*aError*/, const TDesC8& /*aBuffer*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   324
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   325
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   326
void CTestStepAudInStreamNew::MaiscRecordComplete(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   327
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   328
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   329
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   330
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   331
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   332
 * Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   333
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   334
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   335
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   336
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   337
 enum TVerdict CTestStepAudInStreamNew::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   338
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   339
	 enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   340
	 // this installs the scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   341
	 verdict = CTestStepUnitMMFAudClient::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   342
	 return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   343
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   344
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   345
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   346
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   347
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   348
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   349
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   350
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   351
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   352
enum TVerdict CTestStepAudInStreamNew::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   353
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   354
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   355
	return CTestStepUnitMMFAudClient::DoTestStepPostambleL();
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
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   361
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   362
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   363
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   364
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   365
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   366
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   367
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   368
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   369
TVerdict CTestStepAudInStreamNew::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   370
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   371
	__MM_HEAP_MARK;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   372
	// Printing to the console and log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   373
	INFO_PRINTF1(_L("MM-MMF-ACLNT-U-0700-CP"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   374
	INFO_PRINTF1(_L("this test is initialising an Audio Input Stream Utility Class"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   375
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   376
	iAudInStream = CMMFMdaAudioInputStream::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   377
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   378
	if ( iAudInStream == NULL )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   379
		 iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   380
	else 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   381
		 iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   382
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   383
	delete iAudInStream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   384
	iAudInStream = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   385
	__MM_HEAP_MARKEND;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   386
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   387
	INFO_PRINTF1(_L("finished with this test step"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   388
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   389
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   390
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   391
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   392
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   393
// --------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   394
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   395
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   396
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   397
 * Static constructor for CTestStepAudInStreamSetProp.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   398
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   399
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   400
 * @return	"CTestStepAudInStreamSetProp*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   401
 *			The constructed CTestStepAudInStreamSetProp
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   402
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   403
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   404
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   405
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   406
CTestStepAudInStreamSetProp* CTestStepAudInStreamSetProp::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   407
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   408
	CTestStepAudInStreamSetProp* self = new(ELeave) CTestStepAudInStreamSetProp;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   409
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   410
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   411
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   412
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   413
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   414
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   415
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   416
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   417
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   418
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   419
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   420
CTestStepAudInStreamSetProp::CTestStepAudInStreamSetProp()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   421
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   422
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   423
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   424
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   425
	iTestStepName = _L("MM-MMF-ACLNT-U-0701-CP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   426
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   427
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   428
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   429
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   430
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   431
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   432
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   433
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   434
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   435
CTestStepAudInStreamSetProp::~CTestStepAudInStreamSetProp()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   436
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   437
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   438
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   439
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   440
 * Implementation of the MMdaAudioOuputStreamCallback interface functions
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   441
 **/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   442
void CTestStepAudInStreamSetProp::MaiscOpenComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   443
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   444
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   445
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   446
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   447
void CTestStepAudInStreamSetProp::MaiscBufferCopied(TInt aError, const TDesC8& /*aBuffer*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   448
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   449
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   450
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   451
void CTestStepAudInStreamSetProp::MaiscRecordComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   452
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   453
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   454
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   455
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   456
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   457
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   458
 * Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   459
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   460
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   461
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   462
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   463
 enum TVerdict CTestStepAudInStreamSetProp::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   464
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   465
	 enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   466
	 // this installs the scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   467
	 verdict = CTestStepUnitMMFAudClient::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   468
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   469
	 // Printing to the console and log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   470
	INFO_PRINTF1(_L("MM-MMF-ACLNT-U-0701-CP"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   471
	INFO_PRINTF1(_L("this test is setting the audio properties of an Audio Input Stream Utility Class"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   472
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   473
	iAudInStream = CMMFMdaAudioInputStream::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   474
	if (iAudInStream == NULL)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   475
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   476
	 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   477
	iAudInStream->Open(NULL);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   478
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   479
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   480
	 return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   481
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   482
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   483
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   484
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   485
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   486
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   487
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   488
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   489
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   490
enum TVerdict CTestStepAudInStreamSetProp::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   491
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   492
	delete iAudInStream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   493
	iAudInStream = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   494
	//CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   495
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   496
	return CTestStepUnitMMFAudClient::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   497
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   498
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   499
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   500
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   501
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   502
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   503
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   504
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   505
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   506
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   507
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   508
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   509
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   510
TVerdict CTestStepAudInStreamSetProp::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   511
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   512
	//TMdaAudioDataSettings settings;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   513
		//	settings.Query();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   514
		//	settings.iSampleRate = TMdaAudioDataSettings::ESampleRate8000Hz; // ESampleRateAnyInRange
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   515
		//	settings.iChannels = TMdaAudioDataSettings::EChannelsMono;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   516
		//	settings.iFlags = TMdaAudioDataSettings::ENoNetworkRouting;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   517
		//	settings.iVolume = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   518
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   519
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   520
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   521
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   522
	TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   523
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   524
	// test 1
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   525
	TRAP(err, iAudInStream->SetAudioPropertiesL(TMdaAudioDataSettings::ESampleRate8000Hz,TMdaAudioDataSettings::EChannelsMono) );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   526
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   527
	if (!(err == KErrNone || 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   528
		  err == KErrNotSupported) )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   529
		 return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   530
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   531
	// test2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   532
	TRAP(err, iAudInStream->SetAudioPropertiesL(TMdaAudioDataSettings::ESampleRate44100Hz,TMdaAudioDataSettings::EChannelsStereo) );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   533
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   534
	if (!(err == KErrNone || 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   535
		  err == KErrNotSupported) )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   536
		 return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   537
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   538
	INFO_PRINTF1(_L("finished with this test step"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   539
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   540
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   541
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   542
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   543
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   544
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   545
// --------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   546
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   547
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   548
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   549
 * Static constructor for CTestStepAudInStreamOpen.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   550
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   551
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   552
 * @return	"CTestStepAudInStreamOpen*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   553
 *			The constructed CTestStepAudInStreamOpen
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   554
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   555
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   556
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   557
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   558
CTestStepAudInStreamOpen* CTestStepAudInStreamOpen::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   559
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   560
	CTestStepAudInStreamOpen* self = new(ELeave) CTestStepAudInStreamOpen;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   561
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   562
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   563
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   564
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   565
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   566
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   567
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   568
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   569
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   570
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   571
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   572
CTestStepAudInStreamOpen::CTestStepAudInStreamOpen()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   573
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   574
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   575
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   576
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   577
	iTestStepName = _L("MM-MMF-ACLNT-U-0702-CP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   578
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   579
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   580
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   581
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   582
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   583
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   584
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   585
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   586
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   587
CTestStepAudInStreamOpen::~CTestStepAudInStreamOpen()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   588
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   589
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   590
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   591
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   592
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   593
 * Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   594
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   595
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   596
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   597
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   598
 enum TVerdict CTestStepAudInStreamOpen::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   599
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   600
	enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   601
	// this installs the scheduler and NEWLs the CMMFMdaAudioInputStream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   602
	verdict = CTestStepAudInStream::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   603
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   604
	// Printing to the console and log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   605
	INFO_PRINTF1(_L("MM-MMF-ACLNT-U-0702-CP"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   606
	INFO_PRINTF1(_L("this test is openning an Audio Input Stream Utility Class"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   607
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   608
	return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   609
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   610
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   611
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   612
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   613
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   614
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   615
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   616
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   617
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   618
enum TVerdict CTestStepAudInStreamOpen::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   619
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   620
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   621
	return CTestStepAudInStream::DoTestStepPostambleL();
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
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   627
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   628
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   629
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   630
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   631
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   632
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   633
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   634
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   635
TVerdict CTestStepAudInStreamOpen::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   636
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   637
	TMdaAudioDataSettings settings;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   638
	settings.Query();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   639
	settings.iSampleRate = TMdaAudioDataSettings::ESampleRate8000Hz; // ESampleRateAnyInRange
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   640
	settings.iChannels = TMdaAudioDataSettings::EChannelsStereo;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   641
	settings.iFlags = TMdaAudioDataSettings::ENoNetworkRouting;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   642
	settings.iVolume = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   643
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   644
	//Test Open with audio settings
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   645
	iAudInStream->Open(&settings);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   646
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   647
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   648
	TBool stopped = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   649
	TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   650
	err = GetAudInStreamStopped(iAudInStream, stopped);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   651
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   652
	if (iError != KErrNone || err != KErrNone || !stopped )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   653
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   654
		INFO_PRINTF1(_L("Open with audio settings failed"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   655
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   656
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   657
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   658
	//Test Open with NULL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   659
	iAudInStream->Open(NULL);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   660
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   661
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   662
	stopped = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   663
	err = GetAudInStreamStopped(iAudInStream, stopped);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   664
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   665
	if (iError != KErrNone || err != KErrNone || !stopped )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   666
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   667
		INFO_PRINTF1(_L("Open without audio settings failed"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   668
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   669
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   670
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   671
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   672
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   673
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   674
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   675
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   676
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   677
// --------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   678
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   679
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   680
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   681
 * Static constructor for CTestStepAudInStreamSetGain.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   682
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   683
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   684
 * @return	"CTestStepAudInStreamSetGain*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   685
 *			The constructed CTestStepAudInStreamSetGain
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   686
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   687
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   688
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   689
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   690
CTestStepAudInStreamSetGain* CTestStepAudInStreamSetGain::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   691
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   692
	CTestStepAudInStreamSetGain* self = new(ELeave) CTestStepAudInStreamSetGain;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   693
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   694
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   695
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   696
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   697
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   698
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   699
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   700
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   701
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   702
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   703
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   704
CTestStepAudInStreamSetGain::CTestStepAudInStreamSetGain()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   705
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   706
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   707
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   708
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   709
	iTestStepName = _L("MM-MMF-ACLNT-U-0703-CP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   710
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   711
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   712
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   713
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   714
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   715
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   716
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   717
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   718
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   719
CTestStepAudInStreamSetGain::~CTestStepAudInStreamSetGain()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   720
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   721
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   722
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   723
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   724
 * Implementation of the MMdaAudioOuputStreamCallback interface functions
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   725
 **/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   726
void CTestStepAudInStreamSetGain::MaiscOpenComplete(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   727
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   728
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   729
void CTestStepAudInStreamSetGain::MaiscBufferCopied(TInt /*aError*/, const TDesC8& /*aBuffer*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   730
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   731
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   732
void CTestStepAudInStreamSetGain::MaiscRecordComplete(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   733
	{
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 Preamble.
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 CTestStepAudInStreamSetGain::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   744
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   745
	 enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   746
	 // this installs the scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   747
	 verdict = CTestStepUnitMMFAudClient::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   748
	// Printing to the console and log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   749
	INFO_PRINTF1(_L("MM-MMF-ACLNT-U-0703-CP"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   750
	INFO_PRINTF1(_L("this test is setting/getting the Gain of an Audio Input Stream Utility Class"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   751
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   752
	iAudInStream = CMMFMdaAudioInputStream::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   753
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   754
	 return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   755
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   756
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   757
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   758
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   759
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   760
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   761
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   762
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   763
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   764
enum TVerdict CTestStepAudInStreamSetGain::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   765
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   766
	delete iAudInStream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   767
	iAudInStream = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   768
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   769
	return CTestStepUnitMMFAudClient::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   770
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   771
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   772
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   773
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   774
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   775
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   776
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   777
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   778
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   779
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   780
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   781
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   782
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   783
TVerdict CTestStepAudInStreamSetGain::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   784
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   785
	TInt gain = iAudInStream->MaxGain()/2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   786
	if (gain < 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   787
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   788
	//set the volume
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   789
	iAudInStream->SetGain(gain);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   790
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   791
	//get the volume
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   792
	TInt rgain = iAudInStream->Gain();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   793
	if (gain != rgain ) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   794
		 return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   795
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   796
	INFO_PRINTF1(_L("finished with this test step"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   797
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   798
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   799
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   800
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   801
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   802
// --------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   803
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   804
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   805
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   806
 * Static constructor for CTestStepAudInStreamSetPrior.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   807
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   808
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   809
 * @return	"CTestStepAudInStreamSetPrior*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   810
 *			The constructed CTestStepAudInStreamSetPrior
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   811
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   812
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   813
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   814
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   815
CTestStepAudInStreamSetPrior* CTestStepAudInStreamSetPrior::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   816
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   817
	CTestStepAudInStreamSetPrior* self = new(ELeave) CTestStepAudInStreamSetPrior;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   818
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   819
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   820
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   821
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   822
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   823
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   824
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   825
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   826
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   827
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   828
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   829
CTestStepAudInStreamSetPrior::CTestStepAudInStreamSetPrior()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   830
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   831
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   832
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   833
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   834
	iTestStepName = _L("MM-MMF-ACLNT-U-0708-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   835
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   836
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   837
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   838
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   839
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   840
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   841
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   842
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   843
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   844
CTestStepAudInStreamSetPrior::~CTestStepAudInStreamSetPrior()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   845
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   846
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   847
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   848
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   849
 * Implementation of the MMdaAudioOuputStreamCallback interface functions
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   850
 **/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   851
void CTestStepAudInStreamSetPrior::MaiscOpenComplete(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   852
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   853
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   854
void CTestStepAudInStreamSetPrior::MaiscBufferCopied(TInt /*aError*/, const TDesC8& /*aBuffer*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   855
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   856
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   857
void CTestStepAudInStreamSetPrior::MaiscRecordComplete(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   858
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   859
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   860
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   861
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   862
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   863
 * Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   864
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   865
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   866
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   867
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   868
 enum TVerdict CTestStepAudInStreamSetPrior::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   869
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   870
	 enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   871
	 // this installs the scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   872
	 verdict = CTestStepUnitMMFAudClient::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   873
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   874
	// Printing to the console and log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   875
	INFO_PRINTF1(_L("MM-MMF-ACLNT-U-0708-HP"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   876
	INFO_PRINTF1(_L("this test is setting the audio priorities of an Audio Input Stream Utility Class"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   877
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   878
	iAudInStream = CMMFMdaAudioInputStream::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   879
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   880
	 return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   881
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   882
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   883
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   884
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   885
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   886
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   887
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   888
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   889
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   890
enum TVerdict CTestStepAudInStreamSetPrior::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   891
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   892
	delete iAudInStream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   893
	iAudInStream = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   894
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   895
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   896
	return CTestStepUnitMMFAudClient::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   897
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   898
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   899
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   900
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   901
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   902
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   903
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   904
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   905
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   906
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   907
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   908
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   909
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   910
TVerdict CTestStepAudInStreamSetPrior::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   911
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   912
//	TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   913
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   914
	// test 1
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   915
	iAudInStream->SetPriority(EMdaPriorityMin, EMdaPriorityPreferenceTime);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   916
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   917
/*	TMMFPrioritySettings prior;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   918
	err = GetAudInStreamPrioritySettings(iAudInStream, prior);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   919
	if ( err != KErrNone || 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   920
		 prior.iPriority != EMdaPriorityMin ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   921
		 prior.iPref != EMdaPriorityPreferenceTime)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   922
		 return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   923
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   924
	// test2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   925
	iAudInStream->SetPriority(EMdaPriorityMax, EMdaPriorityPreferenceQuality);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   926
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   927
/*	err = GetAudInStreamPrioritySettings(iAudInStream, prior);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   928
	if ( err != KErrNone || 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   929
		 prior.iPriority != EMdaPriorityMax ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   930
		 prior.iPref != EMdaPriorityPreferenceQuality)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   931
		 return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   932
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   933
	INFO_PRINTF1(_L("finished with this test step"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   934
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   935
	return iTestStepResult;
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
// --------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   940
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   941
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   942
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   943
 * Static constructor for CTestStepAudInStreamSetBalance.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   944
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   945
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   946
 * @return	"CTestStepAudInStreamSetBalance*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   947
 *			The constructed CTestStepAudInStreamSetBalance
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   948
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   949
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   950
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   951
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   952
CTestStepAudInStreamSetBalance* CTestStepAudInStreamSetBalance::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   953
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   954
	CTestStepAudInStreamSetBalance* self = new(ELeave) CTestStepAudInStreamSetBalance;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   955
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   956
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   957
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   958
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   959
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   960
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   961
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   962
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   963
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   964
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   965
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   966
CTestStepAudInStreamSetBalance::CTestStepAudInStreamSetBalance()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   967
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   968
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   969
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   970
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   971
	iTestStepName = _L("MM-MMF-ACLNT-U-0706-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   972
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   973
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   974
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   975
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   976
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   977
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   978
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   979
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   980
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   981
CTestStepAudInStreamSetBalance::~CTestStepAudInStreamSetBalance()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   982
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   983
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   984
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   985
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   986
 * Implementation of the MMdaAudioOuputStreamCallback interface functions
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   987
 **/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   988
void CTestStepAudInStreamSetBalance::MaiscOpenComplete(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   989
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   990
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   991
void CTestStepAudInStreamSetBalance::MaiscBufferCopied(TInt /*aError*/, const TDesC8& /*aBuffer*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   992
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   993
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   994
void CTestStepAudInStreamSetBalance::MaiscRecordComplete(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   995
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   996
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   997
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   998
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   999
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1000
 * Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1001
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1002
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1003
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1004
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1005
 enum TVerdict CTestStepAudInStreamSetBalance::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1006
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1007
	 enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1008
	 // this installs the scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1009
	 verdict = CTestStepUnitMMFAudClient::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1010
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1011
	 TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1012
	// Printing to the console and log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1013
	INFO_PRINTF1(_L("MM-MMF-ACLNT-U-0706-HP"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1014
	INFO_PRINTF1(_L("this test is setting and getting the balance of an Audio Input Stream Utility Class"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1015
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1016
	TRAP(err, iAudInStream = CMMFMdaAudioInputStream::NewL(*this) );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1017
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1018
	if (err != KErrNone ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1019
		iAudInStream == NULL )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1020
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1021
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1022
	 return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1023
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1024
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1025
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1026
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1027
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1028
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1029
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1030
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1031
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1032
enum TVerdict CTestStepAudInStreamSetBalance::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1033
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1034
	delete iAudInStream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1035
	iAudInStream = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1036
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1037
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1038
	return CTestStepUnitMMFAudClient::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1039
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1040
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1041
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1042
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1043
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1044
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1045
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1046
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1047
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1048
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1049
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1050
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1051
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1052
TVerdict CTestStepAudInStreamSetBalance::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1053
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1054
	TInt bal = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1055
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1056
	TRAPD(err, iAudInStream->SetBalanceL()); // default KMMFBalanceCenter
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1057
	if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1058
		return EFail; // we expect this _will_ be supported for Typhoon
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1059
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1060
	//get the balance
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1061
	TRAP(err, bal = iAudInStream->GetBalanceL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1062
	if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1063
		return EFail; // we expect this _will_ be supported for Typhoon
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1064
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1065
	if (bal != KMMFBalanceCenter )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1066
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1067
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1068
	TRAP(err, iAudInStream->SetBalanceL(KMMFBalanceMaxRight));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1069
	if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1070
		return EFail; // we expect this _will_ be supported for Typhoon
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1071
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1072
	//get the balance
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1073
	TRAP(err, bal = iAudInStream->GetBalanceL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1074
	if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1075
		return EFail; // we expect this _will_ be supported for Typhoon
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1076
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1077
	if (bal != KMMFBalanceMaxRight )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1078
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1079
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1080
	TRAP(err, iAudInStream->SetBalanceL(KMMFBalanceMaxLeft));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1081
	if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1082
		return EFail; // we expect this _will_ be supported for Typhoon
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1083
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1084
	//get the balance
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1085
	TRAP(err, bal = iAudInStream->GetBalanceL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1086
	if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1087
		return EFail; // we expect this _will_ be supported for Typhoon
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1088
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1089
	if (bal != KMMFBalanceMaxLeft )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1090
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1091
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1092
	// In of bounds
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1093
	/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1094
	iAudInStream->SetBalance(KMMFBalanceMaxLeft+10);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1095
	//check condition
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1096
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1097
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1098
	INFO_PRINTF1(_L("finished with this test step"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1099
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1100
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1101
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1102
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1103
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1104
// --------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1105
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1106
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1107
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1108
 * Static constructor for CTestStepAudInStreamRead.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1109
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1110
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1111
 * @return	"CTestStepAudInStreamRead*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1112
 *			The constructed CTestStepAudInStreamRead
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1113
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1114
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1115
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1116
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1117
CTestStepAudInStreamRead* CTestStepAudInStreamRead::NewL(TUint aTestIndex)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1118
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1119
	CTestStepAudInStreamRead* self = new(ELeave) CTestStepAudInStreamRead(aTestIndex);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1120
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1121
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1122
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1123
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1124
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1125
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1126
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1127
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1128
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1129
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1130
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1131
CTestStepAudInStreamRead::CTestStepAudInStreamRead(TUint aTestIndex)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1132
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1133
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1134
	// store a pointer to the test parameters
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1135
	iTestParameters = &(KTestParameters[aTestIndex]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1136
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1137
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1138
	iTestStepName = iTestParameters->iTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1139
	iHeapSize = 131072;		//	~128k
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1140
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1141
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1142
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1143
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1144
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1145
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1146
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1147
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1148
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1149
CTestStepAudInStreamRead::~CTestStepAudInStreamRead()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1150
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1151
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1152
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1153
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1154
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1155
 * Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1156
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1157
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1158
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1159
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1160
 enum TVerdict CTestStepAudInStreamRead::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1161
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1162
	 enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1163
	// this installs the scheduler, and NEWLs the input stream object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1164
	 verdict = CTestStepAudInStream::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1165
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1166
	// Printing to the console and log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1167
	INFO_PRINTF1(_L("this test is reading data from an Audio Input Stream Utility Class. ReadL()"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1168
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1169
	TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1170
	TRAP(err, iAudInStream->SetDataTypeL(iTestParameters->iEncoding));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1171
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1172
	if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1173
		 return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1174
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1175
	iAudInStream->Open(NULL);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1176
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1177
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1178
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1179
	if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1180
		 return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1181
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1182
	err = iFile.Replace( iFs, KRecordStreamRawFile, EFileWrite ) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1183
	if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1184
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1185
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1186
	 return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1187
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1188
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1189
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1190
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1191
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1192
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1193
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1194
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1195
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1196
enum TVerdict CTestStepAudInStreamRead::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1197
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1198
	iFile.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1199
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1200
	return CTestStepAudInStream::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1201
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1202
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1203
LOCAL_C TInt stopActiveScheduler(TAny*)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1204
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1205
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1206
	return FALSE;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1207
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1208
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1209
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1210
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1211
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1212
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1213
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1214
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1215
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1216
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1217
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1218
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1219
TVerdict CTestStepAudInStreamRead::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1220
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1221
	StartReadL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1222
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1223
	CCallBackTimer* timer  = CCallBackTimer::NewL(TCallBack(stopActiveScheduler));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1224
	timer->After(5000000); // 5s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1225
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1226
	delete timer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1227
	if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1228
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1229
		INFO_PRINTF2(_L("Test failed (iError=%d)"), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1230
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1231
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1232
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1233
	iAudInStream->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1234
	// Now playback what we've recorded
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1235
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1236
	CMdaAudioOutputStream* outputStream = CMdaAudioOutputStream::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1237
	CleanupStack::PushL(outputStream);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1238
	TRAPD(err, outputStream->SetDataTypeL(iTestParameters->iEncoding));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1239
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1240
	if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1241
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1242
		CleanupStack::PopAndDestroy(1, outputStream);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1243
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1244
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1245
	outputStream->Open(NULL);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1246
	outputStream->SetVolume(outputStream->MaxVolume());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1247
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1248
	CActiveScheduler::Start(); // wait for open to complete
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1249
	TInt size = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1250
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1251
	User::LeaveIfError(iFile.Size(size));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1252
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1253
	// Read the entire file into a buffer - bit naughty but OK for test code
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1254
	INFO_PRINTF2(_L("HBufC8:NewLC(size):  size=%d"), size);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1255
	HBufC8* buffer = HBufC8::NewLC(size);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1256
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1257
	INFO_PRINTF1(_L("Buffer created"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1258
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1259
	TInt pos = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1260
	User::LeaveIfError(iFile.Seek(ESeekStart, pos));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1261
	TPtr8 bufPtr = buffer->Des();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1262
	User::LeaveIfError(iFile.Read(bufPtr, size));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1263
	outputStream->WriteL(bufPtr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1264
	iIsPlaying = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1265
	CActiveScheduler::Start(); // wait for the play to complete
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1266
	CleanupStack::PopAndDestroy(2); // buffer, outputStream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1267
	if (iError != KErrNone && iError != KErrUnderflow)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1268
		 return EInconclusive; // There may be a problem with the output stream rather than the input stream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1269
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1270
	INFO_PRINTF1(_L("finished with this test step"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1271
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1272
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1273
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1274
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1275
void CTestStepAudInStreamRead::MaoscOpenComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1276
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1277
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1278
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1279
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1280
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1281
void CTestStepAudInStreamRead::MaoscBufferCopied(TInt /*aError*/, const TDesC8& /*aBuffer*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1282
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1283
	// Don't care
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1284
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1285
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1286
void CTestStepAudInStreamRead::MaoscPlayComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1287
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1288
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1289
	if (iIsPlaying)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1290
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1291
		CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1292
		iIsPlaying = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1293
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1294
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1295
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1296
void CTestStepAudInStreamRead::MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& /*aDuration*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1297
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1298
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1299
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1300
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1301
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1302
void CTestStepAudInStreamRead::MapcPlayComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1303
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1304
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1305
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1306
	}
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
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1312
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1313
 * Static constructor for CTestStepAudInStreamStop.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1314
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1315
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1316
 * @return	"CTestStepAudInStreamStop*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1317
 *			The constructed CTestStepAudInStreamStop
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1318
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1319
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1320
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1321
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1322
CTestStepAudInStreamStop* CTestStepAudInStreamStop::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1323
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1324
	CTestStepAudInStreamStop* self = new(ELeave) CTestStepAudInStreamStop;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1325
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1326
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1327
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1328
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1329
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1330
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1331
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1332
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1333
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1334
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1335
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1336
CTestStepAudInStreamStop::CTestStepAudInStreamStop()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1337
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1338
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1339
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1340
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1341
	iTestStepName = _L("MM-MMF-ACLNT-U-0710-CP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1342
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1343
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1344
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1345
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1346
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1347
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1348
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1349
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1350
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1351
CTestStepAudInStreamStop::~CTestStepAudInStreamStop()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1352
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1353
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1354
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1355
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1356
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1357
 * Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1358
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1359
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1360
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1361
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1362
 enum TVerdict CTestStepAudInStreamStop::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1363
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1364
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1365
	enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1366
	// this installs the scheduler, and NEWLs the input stream object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1367
	verdict = CTestStepAudInStream::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1368
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1369
	// Printing to the console and log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1370
	INFO_PRINTF1(_L("MM-MMF-ACLNT-U-0710-CP"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1371
	INFO_PRINTF1(_L("this test is stopping a playing Audio Input Stream Utility Class: Stop()"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1372
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1373
	iAudInStream->Open(NULL);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1374
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1375
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1376
	if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1377
		 return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1378
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1379
	TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1380
	err = iFile.Replace( iFs, KRecordStreamRawFile, EFileWrite ) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1381
	if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1382
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1383
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1384
	// start feeding the input stream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1385
	StartReadL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1386
	CCallBackTimer* timer  = CCallBackTimer::NewL(TCallBack(stopActiveScheduler, iAudInStream));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1387
	timer->After(1000000); // 1s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1388
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1389
	delete timer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1390
	if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1391
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1392
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1393
	return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1394
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1395
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1396
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1397
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1398
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1399
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1400
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1401
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1402
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1403
enum TVerdict CTestStepAudInStreamStop::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1404
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1405
	iFile.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1406
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1407
	return CTestStepAudInStream::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1408
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1409
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1410
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1411
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1412
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1413
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1414
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1415
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1416
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1417
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1418
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1419
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1420
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1421
TVerdict CTestStepAudInStreamStop::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1422
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1423
	iAudInStream->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1424
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1425
	TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1426
	TBool stopped = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1427
	err = GetAudInStreamStopped(iAudInStream, stopped);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1428
	if (err != KErrNone || 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1429
		!stopped )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1430
		 return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1431
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1432
	INFO_PRINTF1(_L("finished with this test step"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1433
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1434
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1435
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1436
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1437
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1438
// --------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1439
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1440
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1441
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1442
 * Static constructor for CTestStepAudInStreamPosition.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1443
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1444
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1445
 * @return	"CTestStepAudInStreamPosition*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1446
 *			The constructed CTestStepAudInStreamPosition
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1447
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1448
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1449
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1450
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1451
CTestStepAudInStreamPosition* CTestStepAudInStreamPosition::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1452
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1453
	CTestStepAudInStreamPosition* self = new(ELeave) CTestStepAudInStreamPosition;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1454
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1455
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1456
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1457
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1458
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1459
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1460
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1461
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1462
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1463
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1464
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1465
CTestStepAudInStreamPosition::CTestStepAudInStreamPosition()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1466
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1467
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1468
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1469
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1470
	iTestStepName = _L("MM-MMF-ACLNT-U-0711-CP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1471
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1472
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1473
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1474
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1475
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1476
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1477
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1478
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1479
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1480
CTestStepAudInStreamPosition::~CTestStepAudInStreamPosition()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1481
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1482
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1483
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1484
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1485
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1486
 * Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1487
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1488
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1489
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1490
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1491
 enum TVerdict CTestStepAudInStreamPosition::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1492
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1493
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1494
	enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1495
	// this installs the scheduler, and NEWLs the input stream object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1496
	verdict = CTestStepAudInStream::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1497
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1498
	// Printing to the console and log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1499
	INFO_PRINTF1(_L("MM-MMF-ACLNT-U-0711-CP"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1500
	INFO_PRINTF1(_L("this test is gettig the position of a playing Audio Input Stream Utility Class: Position()"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1501
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1502
	iAudInStream->Open(NULL);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1503
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1504
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1505
	if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1506
		 return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1507
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1508
	TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1509
	err = iFile.Replace( iFs, KRecordStreamRawFile, EFileWrite ) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1510
	if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1511
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1512
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1513
	// start feeding the input stream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1514
	StartReadL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1515
	CIdle* idleStopper = CIdle::NewL(CActive::EPriorityStandard);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1516
	idleStopper->Start(TCallBack(stopActiveScheduler));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1517
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1518
	delete idleStopper;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1519
	if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1520
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1521
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1522
	TBool isRecording = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1523
	err = GetAudInStreamRecording(iAudInStream, isRecording);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1524
	if (err != KErrNone || 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1525
		!isRecording)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1526
		 return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1527
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1528
	return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1529
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1530
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1531
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1532
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1533
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1534
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1535
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1536
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1537
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1538
enum TVerdict CTestStepAudInStreamPosition::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1539
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1540
	iFile.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1541
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1542
	return CTestStepAudInStream::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1543
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1544
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1545
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1546
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1547
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1548
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1549
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1550
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1551
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1552
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1553
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1554
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1555
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1556
TVerdict CTestStepAudInStreamPosition::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1557
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1558
	TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1559
	TInt bytes = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1560
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1561
	// here the purpose is to test if the Position() function returns the 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1562
	// correct position with respect to the clip byte-stream position, i.e.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1563
	// the bytes that have been recorded so far, expressed in time (via sample rate)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1564
	// and not the actual real-time time difference between the beginning of the 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1565
	// recording and the moment we apply Position().
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1566
	// The stream might take longer actual time to be recorded, e.g. start delay, breaks, etc.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1567
	// however in this case streaming from AudioInput(microphone) should be consistent
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1568
	// but it's not the purpose of this unit test to check that it records fine and within 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1569
	// certain time limits.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1570
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1571
	// get the position
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1572
	TTimeIntervalMicroSeconds pos1 = iAudInStream->Position();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1573
	bytes = iAudInStream->GetBytes();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1574
	TInt64 estimPos = (TInt64(bytes) * KMicroSecsInOneSec) / (TInt64(KSampleRate) * TInt64(KBytesPerSample));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1575
	CCallBackTimer* callBackTimer = CCallBackTimer::NewL(TCallBack(stopActiveScheduler));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1576
	const TInt KWaitTime = 1000000;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1577
	//const TInt KTolerence = 300000; // Should be able to do better than this!
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1578
	callBackTimer->After(KWaitTime);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1579
	// wait a bit
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1580
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1581
	delete callBackTimer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1582
	if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1583
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1584
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1585
	bytes = iAudInStream->GetBytes();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1586
	estimPos = (TInt64(bytes) * KMicroSecsInOneSec) / (TInt64(KSampleRate) * TInt64(KBytesPerSample));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1587
	// get the new position
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1588
	TTimeIntervalMicroSeconds pos2 = iAudInStream->Position();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1589
	if (pos2 != estimPos)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1590
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1591
	TInt64 diff = pos2.Int64()-pos1.Int64();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1592
	INFO_PRINTF2(_L("position diff: %d"), diff);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1593
	//if (diff < (KWaitTime-KTolerence) || diff > (KWaitTime+KTolerence))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1594
	//	return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1595
	// stop the input stream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1596
	iAudInStream->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1597
	TBool isStopped;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1598
	err = GetAudInStreamStopped(iAudInStream, isStopped);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1599
	if (err != KErrNone || 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1600
		!isStopped )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1601
		 return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1602
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1603
	// get the new position
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1604
	TTimeIntervalMicroSeconds pos = iAudInStream->Position();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1605
	if (pos.Int64() != 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1606
		 return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1607
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1608
	INFO_PRINTF1(_L("finished with this test step"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1609
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1610
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1611
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1612
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1613
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1614
// --------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1615
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1616
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1617
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1618
 * Static constructor for CTestStepAudInStreamGetBytes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1619
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1620
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1621
 * @return	"CTestStepAudInStreamGetBytes*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1622
 *			The constructed CTestStepAudInStreamGetBytes
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1623
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1624
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1625
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1626
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1627
CTestStepAudInStreamGetBytes* CTestStepAudInStreamGetBytes::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1628
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1629
	CTestStepAudInStreamGetBytes* self = new(ELeave) CTestStepAudInStreamGetBytes;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1630
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1631
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1632
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1633
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1634
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1635
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1636
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1637
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1638
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1639
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1640
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1641
CTestStepAudInStreamGetBytes::CTestStepAudInStreamGetBytes()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1642
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1643
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1644
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1645
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1646
	iTestStepName = _L("MM-MMF-ACLNT-U-0712-CP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1647
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1648
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1649
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1650
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1651
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1652
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1653
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1654
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1655
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1656
CTestStepAudInStreamGetBytes::~CTestStepAudInStreamGetBytes()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1657
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1658
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1659
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1660
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1661
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1662
 * Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1663
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1664
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1665
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1666
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1667
 enum TVerdict CTestStepAudInStreamGetBytes::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1668
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1669
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1670
	enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1671
	// this installs the scheduler, and NEWLs the input stream object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1672
	verdict = CTestStepAudInStream::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1673
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1674
	// Printing to the console and log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1675
	INFO_PRINTF1(_L("MM-MMF-ACLNT-U-0712-CP"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1676
	INFO_PRINTF1(_L("this test gets the bytes rendered by the H/W until this moment: GetBytes()"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1677
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1678
	iAudInStream->Open(NULL);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1679
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1680
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1681
	if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1682
		 return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1683
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1684
	TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1685
	err = iFile.Replace( iFs, KRecordStreamRawFile, EFileWrite ) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1686
	if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1687
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1688
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1689
	// start feeding the input stream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1690
	StartReadL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1691
	CIdle* idleStopper = CIdle::NewL(CActive::EPriorityStandard);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1692
	idleStopper->Start(TCallBack(stopActiveScheduler));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1693
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1694
	delete idleStopper;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1695
	if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1696
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1697
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1698
	TBool isRecording = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1699
	err = GetAudInStreamRecording(iAudInStream, isRecording);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1700
	if (err != KErrNone || 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1701
		!isRecording)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1702
		 return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1703
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1704
	return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1705
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1706
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1707
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1708
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1709
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1710
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1711
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1712
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1713
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1714
enum TVerdict CTestStepAudInStreamGetBytes::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1715
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1716
	iFile.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1717
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1718
	return CTestStepAudInStream::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1719
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1720
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1721
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1722
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1723
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1724
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1725
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1726
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1727
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1728
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1729
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1730
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1731
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1732
TVerdict CTestStepAudInStreamGetBytes::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1733
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1734
	TInt bytes1 = iAudInStream->GetBytes();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1735
	CCallBackTimer* callBackTimer = CCallBackTimer::NewL(TCallBack(stopActiveScheduler));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1736
	callBackTimer->After(2000000);	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1737
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1738
	callBackTimer->Cancel(); // in case something else stopped the AS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1739
	if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1740
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1741
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1742
	TInt bytes2 = iAudInStream->GetBytes();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1743
	callBackTimer->After(1000000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1744
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1745
	delete callBackTimer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1746
	if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1747
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1748
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1749
	iAudInStream->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1750
	TInt bytes3 = iAudInStream->GetBytes();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1751
	TInt fileSize;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1752
	User::LeaveIfError(iFile.Size(fileSize));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1753
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1754
	if (bytes1 >= bytes2 || bytes2 >= bytes3)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1755
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1756
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1757
	if (bytes3 != fileSize)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1758
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1759
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1760
	INFO_PRINTF1(_L("finished with this test step"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1761
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1762
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1763
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1764
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1765
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1766
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1767
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1768
// --------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1769
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1770
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1771
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1772
 * Static constructor for CTestStepAudInStreamDataType.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1773
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1774
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1775
 * @return	"CTestStepAudInStreamGetSetDataType*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1776
 *			The constructed CTestStepAudInStreamDataType
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1777
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1778
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1779
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1780
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1781
CTestStepAudInStreamDataType* CTestStepAudInStreamDataType::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1782
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1783
	CTestStepAudInStreamDataType* self = new(ELeave) CTestStepAudInStreamDataType;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1784
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1785
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1786
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1787
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1788
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1789
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1790
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1791
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1792
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1793
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1794
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1795
CTestStepAudInStreamDataType::CTestStepAudInStreamDataType()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1796
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1797
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1798
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1799
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1800
	iTestStepName = _L("MM-MMF-ACLNT-U-0730-CP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1801
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1802
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1803
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1804
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1805
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1806
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1807
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1808
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1809
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1810
CTestStepAudInStreamDataType::~CTestStepAudInStreamDataType()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1811
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1812
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1813
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1814
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1815
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1816
 * Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1817
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1818
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1819
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1820
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1821
 enum TVerdict CTestStepAudInStreamDataType::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1822
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1823
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1824
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1825
	CTestStepAudInStream::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1826
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1827
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1828
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1829
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1830
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1831
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1832
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1833
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1834
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1835
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1836
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1837
enum TVerdict CTestStepAudInStreamDataType::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1838
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1839
	return CTestStepAudInStream::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1840
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1841
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1842
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1843
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1844
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1845
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1846
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1847
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1848
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1849
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1850
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1851
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1852
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1853
TVerdict CTestStepAudInStreamDataType::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1854
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1855
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1856
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1857
	RArray<TFourCC> codecs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1858
	codecs.Append(KMMFFourCCCodePCMU8);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1859
	codecs.Append(KMMFFourCCCodePCM16);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1860
	codecs.Append(KMMFFourCCCodeALAW);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1861
	codecs.Append(KMMFFourCCCodeMuLAW);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1862
	codecs.Append(KMMFFourCCCodeIMAD);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1863
	codecs.Append(KMMFFourCCCodePCM16B);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1864
	codecs.Append(KMMFFourCCCodeGSM610);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1865
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1866
	CMdaAudioInputStream* inStream = CMdaAudioInputStream::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1867
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1868
	TInt numCodecs = codecs.Count();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1869
	for(TInt i=0; i<numCodecs; i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1870
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1871
		TRAPD(err, inStream->SetDataTypeL(codecs[i]));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1872
		if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1873
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1874
			iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1875
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1876
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1877
		TFourCC fourCCReceived = inStream->DataType();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1878
		if (codecs[i] != fourCCReceived)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1879
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1880
			iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1881
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1882
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1883
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1884
	delete inStream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1885
	codecs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1886
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1887
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1888
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1889
// --------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1890
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1891
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1892
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1893
 * Static constructor for CTestStepAudInStreamMemLeak.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1894
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1895
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1896
 * @return	"CTestStepAudInStreamMemLeak*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1897
 *			The constructed CTestStepAudInStreamMemLeak
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1898
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1899
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1900
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1901
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1902
CTestStepAudInStreamMemLeak* CTestStepAudInStreamMemLeak::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1903
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1904
	CTestStepAudInStreamMemLeak* self = new(ELeave) CTestStepAudInStreamMemLeak;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1905
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1906
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1907
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1908
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1909
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1910
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1911
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1912
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1913
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1914
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1915
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1916
CTestStepAudInStreamMemLeak::CTestStepAudInStreamMemLeak()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1917
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1918
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1919
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1920
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1921
	iTestStepName = _L("MM-MMF-ACLNT-U-0510-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1922
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1923
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1924
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1925
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1926
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1927
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1928
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1929
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1930
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1931
CTestStepAudInStreamMemLeak::~CTestStepAudInStreamMemLeak()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1932
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1933
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1934
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1935
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1936
 * Implementation of the MMdaAudioOuputStreamCallback interface functions
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1937
 **/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1938
void CTestStepAudInStreamMemLeak::MaiscOpenComplete(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1939
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1940
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1941
void CTestStepAudInStreamMemLeak::MaiscBufferCopied(TInt /*aError*/, const TDesC8& /*aBuffer*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1942
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1943
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1944
void CTestStepAudInStreamMemLeak::MaiscRecordComplete(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1945
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1946
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1947
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1948
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1949
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1950
 * Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1951
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1952
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1953
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1954
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1955
 enum TVerdict CTestStepAudInStreamMemLeak::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1956
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1957
	 enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1958
	 // this installs the scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1959
	 verdict = CTestStepUnitMMFAudClient::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1960
	 return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1961
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1962
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1963
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1964
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1965
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1966
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1967
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1968
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1969
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1970
enum TVerdict CTestStepAudInStreamMemLeak::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1971
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1972
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1973
	return CTestStepUnitMMFAudClient::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1974
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1975
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1976
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1977
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1978
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1979
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1980
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1981
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1982
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1983
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1984
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1985
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1986
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1987
TVerdict CTestStepAudInStreamMemLeak::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1988
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1989
	__MM_HEAP_MARK;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1990
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1991
	INFO_PRINTF2(_L("%S"), &iTestStepName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1992
	INFO_PRINTF1(_L("this test creates & then deletes an Audio Input Stream Utility Class"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1993
	INFO_PRINTF1(_L("and then checks for any memory leak"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1994
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1995
	iAudInStream = CMdaAudioInputStream::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1996
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1997
	if ( iAudInStream == NULL )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1998
		 iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1999
	else 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2000
		 iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2001
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2002
	delete iAudInStream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2003
	iAudInStream = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2004
	__MM_HEAP_MARKEND;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2005
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2006
	INFO_PRINTF1(_L("finished with this test step"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2007
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2008
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2009
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2010
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2011
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2012
// --------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2013
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2014
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2015
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2016
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2017
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2018
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2019
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2020
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2021
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2022
RTestStepAudInStreamBitRate::RTestStepAudInStreamBitRate()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2023
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2024
	iTestVerdictSet = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2025
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2026
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2027
	iTestStepName = _L("MM-MMF-ACLNT-U-0511-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2028
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2029
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2030
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2031
 * Implementation of the MMdaAudioOuputStreamCallback interface functions
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2032
 **/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2033
void RTestStepAudInStreamBitRate::MaiscOpenComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2034
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2035
	TBuf<256> message;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2036
	if (aError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2037
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2038
		message.Format(_L("Open failed unexpectedly with error %d - aborting test"), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2039
		SetSectionFailed(message);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2040
		CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2041
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2042
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2043
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2044
		TestBitRates();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2045
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2046
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2047
void RTestStepAudInStreamBitRate::MaiscBufferCopied(TInt /*aError*/, const TDesC8& /*aBuffer*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2048
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2049
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2050
void RTestStepAudInStreamBitRate::MaiscRecordComplete(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2051
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2052
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2053
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2054
TVerdict RTestStepAudInStreamBitRate::OpenL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2055
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2056
	// create and install the active scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2057
	CActiveScheduler* sched = new (ELeave) CActiveScheduler;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2058
	CActiveScheduler::Install(sched);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2059
	return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2060
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2061
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2062
TVerdict RTestStepAudInStreamBitRate::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2063
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2064
	iAudInStream = CMdaAudioInputStream::NewL(*this);		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2065
	iAudInStream->Open(NULL);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2066
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2067
	__ASSERT_ALWAYS(iTestVerdictSet, User::Panic(_L("Test verdict not set"),0));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2068
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2069
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2070
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2071
const TInt KTestBitRate = 48000 * 16;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2072
_LIT(KMessageNotReadyPass, "Received KErrNotReady (As Expected: H/W device has not yet been fully initialised)");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2073
_LIT(KMessageUnexpectedErrorFail, "Unexpected error: %d");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2074
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2075
void RTestStepAudInStreamBitRate::TestBitRates()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2076
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2077
	TBuf<256> message;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2078
	TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2079
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2080
	// this will invoke the bitrate plugin but will not have
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2081
	// initialised the datapath therefore we expect a KErrNotReady
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2082
	// error from each call
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2083
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2084
	TRAP(err, iAudInStream->BitRateL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2085
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2086
	if (err != KErrNotReady)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2087
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2088
		message.Format(KMessageUnexpectedErrorFail,err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2089
		SetSectionFailed(message);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2090
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2091
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2092
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2093
		message.Format(KMessageNotReadyPass);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2094
		SetSectionPassed(message);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2095
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2096
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2097
	RArray<TInt> array;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2098
	array.AppendL(KTestBitRate); // set a dummy value
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2099
	TRAP(err, iAudInStream->GetSupportedBitRatesL(array));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2100
	if (array.Count() != 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2101
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2102
		SetSectionFailed(_L("array not reset after call to GetSupportedBitRates"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2103
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2104
	array.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2105
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2106
	if (err != KErrNotReady)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2107
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2108
		message.Format(KMessageUnexpectedErrorFail,err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2109
		SetSectionFailed(message);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2110
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2111
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2112
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2113
		message.Format(KMessageNotReadyPass);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2114
		SetSectionPassed(message);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2115
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2116
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2117
	TRAP(err, iAudInStream->SetBitRateL(KTestBitRate));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2118
	if (err != KErrNotReady)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2119
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2120
		message.Format(KMessageUnexpectedErrorFail,err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2121
		SetSectionFailed(message);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2122
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2123
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2124
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2125
		message.Format(KMessageNotReadyPass);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2126
		SetSectionPassed(message);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2127
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2128
	// finished with test
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2129
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2130
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2131
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2132
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2133
 void RTestStepAudInStreamBitRate::SetSectionPassed(const TDesC& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2134
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2135
	INFO_PRINTF2(_L("%S"),&aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2136
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2137
	if (!iTestVerdictSet)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2138
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2139
		iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2140
		iTestVerdictSet = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2141
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2142
	if (iTestStepResult == EPass)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2143
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2144
		INFO_PRINTF1(_L("Section Passed - Overall Verdict PASS"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2145
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2146
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2147
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2148
		INFO_PRINTF1(_L("Section Passed - Overall Verdict FAIL"));	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2149
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2150
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2151
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2152
void RTestStepAudInStreamBitRate::SetSectionFailed(const TDesC& aMessage)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2153
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2154
	// A fail will always cause the whole test to fail
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2155
	iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2156
	INFO_PRINTF2(_L("%S"),&aMessage);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2157
	INFO_PRINTF1(_L("Section Failed - Overall Verdict FAIL"));	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2158
	iTestVerdictSet = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2159
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2160
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2161
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2162
void RTestStepAudInStreamBitRate::Close()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2163
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2164
	delete iAudInStream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2165
	iAudInStream = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2166
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2167
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2168
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2169
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2170
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2171
// --------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2172
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2173
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2174
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2175
 * Static constructor for CTestStepAudInStreamTestBitrate.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2176
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2177
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2178
 * @return	"CTestStepAudInStreamTestBitrate*"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2179
 *			The constructed CTestStepAudInStreamTestBitrate
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2180
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2181
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2182
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2183
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2184
CTestStepAudInStreamTestBitrate* CTestStepAudInStreamTestBitrate::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2185
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2186
	CTestStepAudInStreamTestBitrate* self = new(ELeave) CTestStepAudInStreamTestBitrate;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2187
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2188
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2189
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2190
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2191
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2192
 * Test step constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2193
 * Each test step initialises its own name.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2194
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2195
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2196
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2197
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2198
CTestStepAudInStreamTestBitrate::CTestStepAudInStreamTestBitrate()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2199
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2200
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2201
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2202
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2203
	iTestStepName = _L("MM-MMF-ACLNT-U-0747-CP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2204
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2205
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2206
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2207
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2208
 * Test step destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2209
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2210
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2211
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2212
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2213
CTestStepAudInStreamTestBitrate::~CTestStepAudInStreamTestBitrate()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2214
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2215
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2216
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2217
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2218
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2219
 * Test step Preamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2220
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2221
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2222
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2223
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2224
 enum TVerdict CTestStepAudInStreamTestBitrate::DoTestStepPreambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2225
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2226
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2227
	enum TVerdict verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2228
	// this installs the scheduler, and NEWLs the input stream object
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2229
	verdict = CTestStepAudInStream::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2230
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2231
	// Printing to the console and log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2232
	INFO_PRINTF1(_L("MM-MMF-ACLNT-U-0747-CP"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2233
	INFO_PRINTF1(_L("this tests the bitrate custom interface implemented in DevSound"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2234
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2235
	iAudInStream->Open(NULL);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2236
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2237
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2238
	if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2239
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2240
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2241
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2242
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2243
	TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2244
	err = iFile.Replace( iFs, KRecordStreamRawFile, EFileWrite ) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2245
	if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2246
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2247
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2248
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2249
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2250
	// start feeding the input stream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2251
	StartReadL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2252
	CIdle* idleStopper = CIdle::NewL(CActive::EPriorityStandard);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2253
	idleStopper->Start(TCallBack(stopActiveScheduler));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2254
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2255
	delete idleStopper;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2256
	if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2257
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2258
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2259
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2260
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2261
	TBool isRecording = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2262
	err = GetAudInStreamRecording(iAudInStream, isRecording);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2263
	if (err != KErrNone || !isRecording)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2264
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2265
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2266
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2267
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2268
	User::After(1000000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2269
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2270
	return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2271
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2272
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2273
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2274
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2275
 * Test step Postamble.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2276
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2277
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2278
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2279
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2280
enum TVerdict CTestStepAudInStreamTestBitrate::DoTestStepPostambleL(void)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2281
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2282
	iFile.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2283
	//[ Destroy the scheduler ]
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2284
	return CTestStepAudInStream::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2285
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2286
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2287
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2288
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2289
 * Do the test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2290
 * Each test step must supply an implementation for DoTestStepL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2291
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2292
 * @return	"TVerdict"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2293
 *			The result of the test step
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2294
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2295
 * @xxxx
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2296
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2297
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2298
TVerdict CTestStepAudInStreamTestBitrate::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2299
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2300
	TBool test1 = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2301
	TBool test2 = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2302
	TBool test3 = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2303
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2304
	// fetch the bitrate
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2305
	TInt bitRate = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2306
	TRAPD(err, bitRate = iAudInStream->BitRateL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2307
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2308
	if (err == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2309
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2310
		INFO_PRINTF2(_L("BitRateL() returned %d"), bitRate);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2311
		test1 = ETrue;				
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2312
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2313
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2314
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2315
		INFO_PRINTF2(_L("BitRateL() failed with error %d"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2316
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2317
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2318
	// even if test is fail we keep going so as to test APIs
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2319
	// get the supported bitrates from the sound device
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2320
	RArray<TInt> array;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2321
	TRAP(err, iAudInStream->GetSupportedBitRatesL(array));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2322
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2323
	if ((err == KErrNone) && (array.Count() > 0))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2324
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2325
		INFO_PRINTF2(_L("GetSupportedBitRatesL() returned %d result"), array.Count());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2326
		test2 = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2327
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2328
	else if (err != KErrNone) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2329
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2330
		INFO_PRINTF2(_L("GetSupportedBitRatesL() failed with error %d"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2331
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2332
	else if (array.Count() == 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2333
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2334
		INFO_PRINTF2(_L("GetSupportedBitRatesL() returned no supported bitrates!"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2335
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2336
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2337
	// set a required bitrate - we assume num of channels
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2338
	// has already been set as mono (1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2339
	TRAP(err, iAudInStream->SetBitRateL(KTestBitRate));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2340
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2341
	if (err == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2342
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2343
		INFO_PRINTF2(_L("SetBitRateL() set successfully at %d"), KTestBitRate);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2344
		test3 = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2345
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2346
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2347
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2348
		INFO_PRINTF2(_L("SetBitRateL() failed with error %d"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2349
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2350
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2351
	iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2352
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2353
	if (test1 && test2 && test3)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2354
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2355
		iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2356
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2357
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2358
	INFO_PRINTF1(_L("finished with this test step"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2359
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2360
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2361
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2362
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2363
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2364
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2365
RTestStepAudInStreamBitRateOOM* RTestStepAudInStreamBitRateOOM::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2366
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2367
	RTestStepAudInStreamBitRateOOM* self = new(ELeave) RTestStepAudInStreamBitRateOOM;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2368
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2369
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2370
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2371
RTestStepAudInStreamBitRateOOM::RTestStepAudInStreamBitRateOOM()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2372
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2373
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2374
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2375
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2376
	iTestStepName = _L("MM-MMF-ACLNT-U-0748-CP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2377
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2378
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2379
RTestStepAudInStreamBitRateOOM::~RTestStepAudInStreamBitRateOOM()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2380
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2381
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2382
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2383
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2384
 * Implementation of the MMdaAudioOuputStreamCallback interface functions
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2385
 **/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2386
void RTestStepAudInStreamBitRateOOM::MaiscOpenComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2387
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2388
	if (aError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2389
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2390
		INFO_PRINTF2(_L("Open failed unexpectedly with error %d - aborting test"), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2391
		iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2392
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2393
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2394
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2395
void RTestStepAudInStreamBitRateOOM::MaiscBufferCopied(TInt /*aError*/, const TDesC8& /*aBuffer*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2396
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2397
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2398
void RTestStepAudInStreamBitRateOOM::MaiscRecordComplete(TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2399
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2400
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2401
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2402
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2403
TVerdict RTestStepAudInStreamBitRateOOM::TestBitRateInterfaceL()	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2404
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2405
	// create the stream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2406
	CMMFMdaAudioInputStream* inStream = CMMFMdaAudioInputStream::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2407
	CleanupStack::PushL(inStream);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2408
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2409
	// open it and start the scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2410
	inStream->Open(NULL);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2411
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2412
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2413
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2414
	// we trap all calls to catch the KErrNotReady error
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2415
	// now fetch the bitrate
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2416
	TRAPD(err, inStream->BitRateL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2417
	if (err != KErrNone && err != KErrNotReady)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2418
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2419
		User::Leave(err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2420
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2421
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2422
	// fetch a list of bitrates
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2423
	RArray<TInt> array;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2424
	TRAP(err, inStream->GetSupportedBitRatesL(array));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2425
	if (err != KErrNone && err != KErrNotReady)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2426
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2427
		User::Leave(err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2428
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2429
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2430
	// set a required bitrate - we assume num of channels
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2431
	// has already been set as mono (1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2432
	TRAP(err, inStream->SetBitRateL(KTestBitRate))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2433
	if (err != KErrNone && err != KErrNotReady)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2434
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2435
		User::Leave(err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2436
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2437
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2438
	// clean up
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2439
	CleanupStack::PopAndDestroy(inStream);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2440
	inStream = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2441
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2442
	return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2443
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2444
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2445
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2446
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2447
TVerdict RTestStepAudInStreamBitRateOOM::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2448
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2449
	iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2450
    TInt err       = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2451
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2452
	CActiveScheduler* sched = new (ELeave) CActiveScheduler;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2453
	CActiveScheduler::Install(sched);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2454
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2455
	// Printing to the console and log file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2456
	INFO_PRINTF1(_L("MM-MMF-ACLNT-U-0748-CP"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2457
	INFO_PRINTF1(_L("this tests the bitrate custom interface implemented in DevSound for OOM"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2458
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2459
	//__MM_HEAP_MARK;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2460
	TVerdict testRes = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2461
	TRAP( err, testRes = TestBitRateInterfaceL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2462
	//__MM_HEAP_MARKEND;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2463
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2464
	if (err != KErrNone || testRes == EFail)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2465
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2466
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2467
	TInt failCount = 1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2468
	TBool completed = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2469
	TBool reachedEnd = EFalse; // Note: declare outside loop to help with debugging
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2470
	for(;;)	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2471
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2472
		__UHEAP_SETFAIL(RHeap::EFailNext ,failCount);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2473
		//__MM_HEAP_MARK;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2474
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2475
		testRes = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2476
		TRAP( err, testRes = TestBitRateInterfaceL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2477
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2478
		completed = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2479
		if (err == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2480
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2481
			if (testRes == EPass)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2482
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2483
				TAny *testAlloc = User::Alloc(1); // when this fails, we passed through all allocs within test
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2484
				if (testAlloc==NULL)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2485
					{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2486
					reachedEnd = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2487
					failCount--; // -= 1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2488
					}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2489
				else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2490
					{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2491
					User::Free(testAlloc);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2492
					}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2493
				completed = reachedEnd;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2494
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2495
			else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2496
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2497
				// the test failed but we have already proved above
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2498
				// that the required plugins are present
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2499
				// therefore we assume that the interface returned
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2500
				// a NULL pointer and so we can continue to test
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2501
				// until the timeout or the fail count exceeds
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2502
				completed = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2503
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2504
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2505
		else if (err == KErrNotSupported)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2506
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2507
			// the test has returned not supported but we already
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2508
			// know that the interface *is* supported so we assume
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2509
			// that the interface creation failed due to lack of
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2510
			// memory and so we continue to test until the timeout
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2511
			// or we exceed the fail count
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2512
			completed = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2513
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2514
		else if (err != KErrNoMemory) // bad error code
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2515
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2516
			completed = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2517
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2518
				
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2519
		//__MM_HEAP_MARKEND;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2520
		__UHEAP_SETFAIL(RHeap::ENone ,0);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2521
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2522
		// if we have completed successfully or we have exceeded
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2523
		// a 1000 failed ALLOC attempts then quit
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2524
		if (completed || failCount > 1000)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2525
			break; // exit loop
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2526
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2527
		failCount++;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2528
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2529
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2530
	// finished with test
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2531
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2532
	if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2533
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2534
		INFO_PRINTF3(_L("  Error(%d) with %d memory allocations tested"), err, failCount);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2535
		iTestStepResult = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2536
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2537
	else 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2538
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2539
		INFO_PRINTF2(_L("  Completed OK with %d memory allocations tested"), failCount);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2540
		iTestStepResult = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2541
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2542
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2543
	INFO_PRINTF1(_L("finished with this test step"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2544
	// test steps return a result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2545
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2546
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2547
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2548
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2549
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2550
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2551
// RAsyncTestStep Tests
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2552
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2553
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2554
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2555
 * Base class common implementation 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2556
 **/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2557
 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2558
CTestStepAudInStreamAsyncTestStep::CTestStepAudInStreamAsyncTestStep(CTestSuite* aSuite)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2559
// Using zero initialisation
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2560
//	iTestState (EStateOpen)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2561
//	iBufferList
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2562
//	iBufferCount
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2563
//	iAudInStream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2564
//	iTrigger
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2565
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2566
	iSuite = aSuite;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2567
	//Default heap size is 64K. Increased to 128K to avoid the KErrNoMemory for this test step.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2568
	iHeapSize = 1024*128;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2569
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2570
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2571
void CTestStepAudInStreamAsyncTestStep::KickoffTestL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2572
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2573
	iTrigger = CFsmTrigger::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2574
	iAudInStream = CMdaAudioInputStream::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2575
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2576
	// Reset the buffer. 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2577
	// We need them empty as could test whether data has been placed into them to obtain some stats.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2578
	for(TInt i=0; i<KNumBuffers; i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2579
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2580
		iBufferList[i] = KNullDesC8;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2581
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2582
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2583
	// start the timer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2584
	iTrigger->Cancel(); // ensure assert in StartTimer always succeeds
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2585
	iTrigger->StartTimer(500000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2586
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2587
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2588
// cleanup at end
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2589
void CTestStepAudInStreamAsyncTestStep::CloseTest()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2590
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2591
	if (iTrigger)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2592
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2593
		iTrigger->Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2594
		delete iTrigger;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2595
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2596
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2597
	if (iAudInStream)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2598
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2599
		delete iAudInStream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2600
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2601
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2602
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2603
void CTestStepAudInStreamAsyncTestStep::MaiscOpenComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2604
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2605
	if (aError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2606
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2607
		INFO_PRINTF2(_L("*MaiscOpenComplete* Error: %d."), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2608
		StopTest(aError, EFail);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2609
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2610
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2611
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2612
void CTestStepAudInStreamAsyncTestStep::MaiscBufferCopied(TInt aError, const TDesC8& aBuffer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2613
	{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2614
	if (aBuffer.Length())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2615
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2616
		++iBufferCount;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2617
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2618
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2619
	if (aError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2620
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2621
		INFO_PRINTF2(_L("*MaiscBufferCopied* Error: %d."), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2622
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2623
		// KErrAbort when we Stop the device, so valid
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2624
		if (aError != KErrAbort)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2625
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2626
			StopTest(aError, EFail);			
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2627
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2628
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2629
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2630
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2631
void CTestStepAudInStreamAsyncTestStep::MaiscRecordComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2632
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2633
	INFO_PRINTF2(_L("*MaiscRecordComplete* GetBytes reports %d bytes recorded."), iAudInStream->GetBytes());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2634
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2635
	if (aError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2636
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2637
		INFO_PRINTF2(_L("*MaiscRecordComplete* Error: %d."), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2638
		StopTest(aError, EFail);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2639
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2640
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2641
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2642
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2643
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2644
 * Implementation of AO timer used to invoke test processing at desired intervals (i.e. State Machine)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2645
 **/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2646
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2647
CFsmTrigger* CFsmTrigger::NewL(CTestStepAudInStreamAsyncTestStep& aObserver)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2648
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2649
	CFsmTrigger* self = new (ELeave) CFsmTrigger(aObserver);	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2650
	CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2651
	self->ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2652
	CleanupStack::Pop(self);	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2653
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2654
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2655
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2656
CFsmTrigger::CFsmTrigger(CTestStepAudInStreamAsyncTestStep& aObserver)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2657
:	CActive(CActive::EPriorityStandard),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2658
	iObserver (aObserver)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2659
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2660
	// nothing to do
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2661
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2662
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2663
void CFsmTrigger::ConstructL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2664
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2665
	User::LeaveIfError (iTimer.CreateLocal());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2666
	CActiveScheduler::Add (this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2667
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2668
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2669
CFsmTrigger::~CFsmTrigger()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2670
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2671
	Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2672
	iTimer.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2673
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2674
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2675
void CFsmTrigger::RunL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2676
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2677
	// need to call Fsm
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2678
	iObserver.Fsm();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2679
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2680
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2681
void CFsmTrigger::DoCancel()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2682
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2683
	iTimer.Cancel();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2684
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2685
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2686
void CFsmTrigger::StartTimer(TTimeIntervalMicroSeconds32 aDelay)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2687
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2688
	__ASSERT_ALWAYS(!IsActive(), User::Panic(_L("CFsmTrigger"), 1));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2689
	iTimer.After(iStatus, aDelay);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2690
	SetActive();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2691
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2692
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2693
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2694
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2695
 * Implementation of RAsyncTestStep used to test the RequestStop() api
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2696
 **/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2697
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2698
CTestStepAudInStreamTestReqStop* CTestStepAudInStreamTestReqStop::NewL(CTestSuite* aSuite)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2699
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2700
	return new (ELeave) CTestStepAudInStreamTestReqStop(aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2701
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2702
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2703
CTestStepAudInStreamTestReqStop::CTestStepAudInStreamTestReqStop(CTestSuite* aSuite)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2704
: CTestStepAudInStreamAsyncTestStep(aSuite)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2705
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2706
	iTestStepName = _L("MM-MMF-ACLNT-U-0749-CP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2707
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2708
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2709
void CTestStepAudInStreamTestReqStop::KickoffTestL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2710
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2711
	INFO_PRINTF1(_L("DEF095804 CMdaAudioInputStream loses not complete buffers from DevSound"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2712
	INFO_PRINTF1(_L("Calls RequestStop to ensure no data is lost."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2713
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2714
	CTestStepAudInStreamAsyncTestStep::KickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2715
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2716
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2717
// cleanup at end
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2718
void CTestStepAudInStreamTestReqStop::CloseTest()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2719
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2720
	CTestStepAudInStreamAsyncTestStep::CloseTest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2721
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2722
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2723
void CTestStepAudInStreamTestReqStop::MaiscOpenComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2724
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2725
	CTestStepAudInStreamAsyncTestStep::MaiscOpenComplete(aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2726
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2727
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2728
void CTestStepAudInStreamTestReqStop::MaiscBufferCopied(TInt aError, const TDesC8& aBuffer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2729
	{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2730
	CTestStepAudInStreamAsyncTestStep::MaiscBufferCopied(aError, aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2731
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2732
	if (aError == KErrAbort)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2733
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2734
		INFO_PRINTF2(_L("*MaiscBufferCopied* Error EXPECTED. We have been Stopped."), aError);			
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2735
		INFO_PRINTF2(_L("*MaiscBufferCopied* Data in this buffer: %d bytes."), aBuffer.Length());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2736
		INFO_PRINTF2(_L("*MaiscBufferCopied* GetBytes reports %d bytes recorded."), iAudInStream->GetBytes());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2737
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2738
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2739
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2740
void CTestStepAudInStreamTestReqStop::MaiscRecordComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2741
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2742
	CTestStepAudInStreamAsyncTestStep::MaiscRecordComplete(aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2743
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2744
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2745
void CTestStepAudInStreamTestReqStop::Fsm()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2746
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2747
	switch (iTestState)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2748
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2749
	case EStateOpen:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2750
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2751
		iAudInStream->Open(NULL);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2752
		iTrigger->Cancel(); // ensure assert in StartTimer always succeeds
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2753
		iTrigger->StartTimer(500000); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2754
		iTestState = EStateRecordInit;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2755
		break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2756
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2757
	case EStateRecordInit:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2758
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2759
		// start the recording process
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2760
		for (TInt i=0; i<KNumBuffers; i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2761
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2762
			iAudInStream->ReadL(iBufferList[i]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2763
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2764
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2765
		// start the timer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2766
		iTrigger->Cancel(); // ensure assert in StartTimer always succeeds
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2767
		iTrigger->StartTimer(500000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2768
		iTestState = EStateRecord;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2769
		break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2770
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2771
	case EStateRecord:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2772
		{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2773
		// Just wating time here...for the record process to continue
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2774
		// start the timer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2775
		iTrigger->Cancel(); // ensure assert in StartTimer always succeeds
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2776
		iTrigger->StartTimer(500000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2777
		iTestState = EStateRequestStop;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2778
		break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2779
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2780
	case EStateRequestStop:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2781
		{		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2782
		// stop the recording process
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2783
		iAudInStream->RequestStop();	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2784
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2785
		// start the timer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2786
		iTrigger->Cancel(); // ensure assert in StartTimer always succeeds
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2787
		iTrigger->StartTimer(500000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2788
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2789
		// report the number of bytes read
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2790
		INFO_PRINTF2(_L("State: EStateRequestStop - GetBytes reports %d bytes recorded."), iAudInStream->GetBytes());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2791
		iTestState = EStateStopTest;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2792
		break;			
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2793
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2794
	case EStateStopTest:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2795
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2796
		INFO_PRINTF3(_L("Used %d buffers of %d."), iBufferCount, KNumBuffers);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2797
		StopTest(); // success
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2798
		break;					
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2799
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2800
	default:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2801
		INFO_PRINTF1(_L("State machine error"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2802
		StopTest(KErrGeneral, EFail);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2803
		break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2804
		}		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2805
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2806
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2807
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2808
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2809
 * Implementation of RAsyncTestStep used to test the RequestStop() then Stop() apis
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2810
 **/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2811
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2812
CTestStepAudInStreamTestReqStopThenStop* CTestStepAudInStreamTestReqStopThenStop::NewL(CTestSuite* aSuite)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2813
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2814
	return new (ELeave) CTestStepAudInStreamTestReqStopThenStop(aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2815
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2816
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2817
CTestStepAudInStreamTestReqStopThenStop::CTestStepAudInStreamTestReqStopThenStop(CTestSuite* aSuite)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2818
: CTestStepAudInStreamAsyncTestStep(aSuite)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2819
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2820
	iTestStepName = _L("MM-MMF-ACLNT-U-0750-CP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2821
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2822
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2823
void CTestStepAudInStreamTestReqStopThenStop::KickoffTestL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2824
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2825
	INFO_PRINTF1(_L("DEF095804 CMdaAudioInputStream loses not complete buffers from DevSound"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2826
	INFO_PRINTF1(_L("Calls RequestStop then Stop to ensure correct operation."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2827
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2828
	CTestStepAudInStreamAsyncTestStep::KickoffTestL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2829
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2830
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2831
// cleanup at end
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2832
void CTestStepAudInStreamTestReqStopThenStop::CloseTest()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2833
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2834
	CTestStepAudInStreamAsyncTestStep::CloseTest();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2835
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2836
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2837
void CTestStepAudInStreamTestReqStopThenStop::MaiscOpenComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2838
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2839
	CTestStepAudInStreamAsyncTestStep::MaiscOpenComplete(aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2840
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2841
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2842
void CTestStepAudInStreamTestReqStopThenStop::MaiscBufferCopied(TInt aError, const TDesC8& aBuffer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2843
	{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2844
	CTestStepAudInStreamAsyncTestStep::MaiscBufferCopied(aError, aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2845
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2846
	if (aError == KErrAbort)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2847
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2848
		INFO_PRINTF2(_L("*MaiscBufferCopied* Error EXPECTED. We have been Stopped."), aError);			
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2849
		INFO_PRINTF2(_L("*MaiscBufferCopied* Data in this buffer: %d bytes."), aBuffer.Length());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2850
		INFO_PRINTF2(_L("*MaiscBufferCopied* GetBytes reports %d bytes recorded."), iAudInStream->GetBytes());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2851
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2852
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2853
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2854
void CTestStepAudInStreamTestReqStopThenStop::MaiscRecordComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2855
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2856
	CTestStepAudInStreamAsyncTestStep::MaiscRecordComplete(aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2857
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2858
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2859
void CTestStepAudInStreamTestReqStopThenStop::Fsm()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2860
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2861
	switch (iTestState)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2862
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2863
	case EStateOpen:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2864
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2865
		iAudInStream->Open(NULL);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2866
		iTrigger->Cancel(); // ensure assert in StartTimer always succeeds
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2867
		iTrigger->StartTimer(500000); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2868
		iTestState = EStateRecordInit;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2869
		break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2870
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2871
	case EStateRecordInit:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2872
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2873
		// start the recording process
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2874
		for (TInt i=0; i<KNumBuffers; i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2875
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2876
			iAudInStream->ReadL(iBufferList[i]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2877
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2878
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2879
		// start the timer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2880
		iTrigger->Cancel(); // ensure assert in StartTimer always succeeds
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2881
		iTrigger->StartTimer(500000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2882
		iTestState = EStateRecord;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2883
		break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2884
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2885
	case EStateRecord:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2886
		{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2887
		// Just wating time here...for the record process to continue
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2888
		// start the timer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2889
		iTrigger->Cancel(); // ensure assert in StartTimer always succeeds
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2890
		iTrigger->StartTimer(500000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2891
		iTestState = EStateRequestStop;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2892
		break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2893
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2894
	case EStateRequestStop:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2895
		{		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2896
		// stop the recording process
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2897
		iAudInStream->RequestStop();	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2898
		iAudInStream->Stop();	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2899
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2900
		// start the timer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2901
		iTrigger->Cancel(); // ensure assert in StartTimer always succeeds
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2902
		iTrigger->StartTimer(500000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2903
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2904
		// report the number of bytes read
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2905
		INFO_PRINTF2(_L("State: EStateRequestStop - GetBytes reports %d bytes recorded."), iAudInStream->GetBytes());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2906
		iTestState = EStateStopTest;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2907
		break;			
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2908
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2909
	case EStateStopTest:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2910
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2911
		INFO_PRINTF3(_L("Used %d buffers of %d."), iBufferCount, KNumBuffers);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2912
		StopTest(); // success
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2913
		break;					
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2914
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2915
	default:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2916
		INFO_PRINTF1(_L("State machine error"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2917
		StopTest(KErrGeneral, EFail);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2918
		break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2919
		}		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2920
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2921
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2922
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2923
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2924
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2925
 * Implementation of RAsyncTestStep used to test the RequestStop() then Stop() apis
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2926
 **/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2927
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2928
CTestStepAudInStreamTestStopFromBufferCopied* CTestStepAudInStreamTestStopFromBufferCopied::NewL(CTestSuite* aSuite)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2929
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2930
	return new (ELeave) CTestStepAudInStreamTestStopFromBufferCopied(aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2931
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2932
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2933
CTestStepAudInStreamTestStopFromBufferCopied::CTestStepAudInStreamTestStopFromBufferCopied(CTestSuite* aSuite)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2934
: CTestStepAudInStreamAsyncTestStep(aSuite)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2935
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2936
	iTestStepName = _L("MM-MMF-ACLNT-U-0751-CP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2937
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2938
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2939
void CTestStepAudInStreamTestStopFromBufferCopied::MaiscBufferCopied(TInt aError, const TDesC8& aBuffer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2940
	{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2941
	CTestStepAudInStreamAsyncTestStep::MaiscBufferCopied(aError, aBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2942
	if(iTestState == EStateRequestStop)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2943
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2944
		iTestState = EStateStopping;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2945
		iAudInStream->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2946
		iTestState = EStateStopTest;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2947
		Fsm();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2948
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2949
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2950
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2951
void CTestStepAudInStreamTestStopFromBufferCopied::Fsm()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2952
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2953
	switch (iTestState)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2954
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2955
	case EStateOpen:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2956
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2957
		iAudInStream->Open(NULL);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2958
		iTrigger->Cancel(); // ensure assert in StartTimer always succeeds
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2959
		iTrigger->StartTimer(500000); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2960
		iTestState = EStateRecordInit;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2961
		break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2962
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2963
	case EStateRecordInit:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2964
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2965
		// start the recording process
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2966
		for (TInt i=0; i<KNumBuffers; i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2967
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2968
			TRAPD(err, iAudInStream->ReadL(iBufferList[i]));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2969
			if(err)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2970
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2971
				INFO_PRINTF2(_L("ReadL failed with error[%d]."), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2972
				StopTest(err, EFail);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2973
				return;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2974
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2975
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2976
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2977
		// start the timer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2978
		iTrigger->Cancel(); // ensure assert in StartTimer always succeeds
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2979
		iTrigger->StartTimer(500000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2980
		iTestState = EStateRecord;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2981
		break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2982
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2983
	case EStateRecord:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2984
		{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2985
		// Just wating time here...for the record process to continue
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2986
		// start the timer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2987
		iTrigger->Cancel(); // ensure assert in StartTimer always succeeds
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2988
		iTestState = EStateRequestStop;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2989
		break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2990
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2991
	case EStateStopTest:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2992
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2993
		INFO_PRINTF3(_L("Used %d buffers of %d."), iBufferCount, KRecNumBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2994
		StopTest(); // success
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2995
		break;					
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2996
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2997
	default:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2998
		INFO_PRINTF1(_L("State machine error"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2999
		StopTest(KErrGeneral, EFail);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3000
		break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3001
		}		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3002
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3003
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3004
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3005
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3006
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3007
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3008
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3009
 **/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3010
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3011
CTestStepAudInStreamDestroy* CTestStepAudInStreamDestroy::NewL(CTestSuite* aSuite)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3012
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3013
	return new (ELeave) CTestStepAudInStreamDestroy(aSuite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3014
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3015
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3016
CTestStepAudInStreamDestroy::CTestStepAudInStreamDestroy(CTestSuite* aSuite)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3017
: CTestStepAudInStreamAsyncTestStep(aSuite)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3018
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3019
	iTestStepName = _L("MM-MMF-ACLNT-U-0985-CP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3020
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3021
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3022
void CTestStepAudInStreamDestroy::MaiscBufferCopied(TInt aError, const TDesC8& aBuffer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3023
	{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3024
	INFO_PRINTF2(_L("*MaiscBufferCopied* Error: %d."), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3025
	if (aError==KErrNone && aBuffer.Length())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3026
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3027
			++iBufferCount;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3028
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3029
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3030
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3031
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3032
			if (aError == KErrAbort)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3033
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3034
				INFO_PRINTF1(_L("Unexpected call back Received when input stream has been deleted"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3035
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3036
			StopTest(aError, EFail);			
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3037
			
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3038
			}	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3039
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3040
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3041
void CTestStepAudInStreamDestroy::Fsm()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3042
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3043
	switch (iTestState)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3044
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3045
	case EStateOpen:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3046
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3047
		iAudInStream->Open(NULL);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3048
		iTrigger->Cancel(); // ensure assert in StartTimer always succeeds
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3049
		iTrigger->StartTimer(500000); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3050
		iTestState = EStateRecordInit;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3051
		break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3052
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3053
	case EStateRecordInit:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3054
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3055
		// start the recording process
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3056
		for (TInt i=0; i<KNumBuffers; i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3057
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3058
			TRAPD(err, iAudInStream->ReadL(iBufferList[i]));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3059
			if(err)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3060
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3061
				INFO_PRINTF2(_L("ReadL failed with error[%d]."), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3062
				StopTest(err, EFail);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3063
				return;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3064
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3065
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3066
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3067
		// start the timer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3068
		iTrigger->Cancel(); // ensure assert in StartTimer always succeeds
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3069
		iTrigger->StartTimer(1000000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3070
		iTestState = EStateStopTest;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3071
		break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3072
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3073
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3074
	case EStateStopTest:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3075
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3076
		//Now call delete to invoke the destructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3077
		INFO_PRINTF1(_L("Deleting Input Stream"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3078
		delete iAudInStream;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3079
		iAudInStream=NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3080
		INFO_PRINTF3(_L("Used %d buffers of %d."), iBufferCount, KNumBuffers);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3081
		StopTest(); // success
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3082
		break;					
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3083
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3084
	default:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3085
		INFO_PRINTF1(_L("State machine error"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3086
		StopTest(KErrGeneral, EFail);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3087
		break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3088
		}		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  3089
	}