mmlibs/mmfw/tsrc/mmfintegrationtest/ACLNT/TestTone.cpp
author hgs
Thu, 07 Oct 2010 22:34:12 +0100
changeset 0 b8ed18f6c07b
permissions -rw-r--r--
2010wk40
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     1
// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     2
// All rights reserved.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     7
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     8
// Initial Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    10
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    11
// Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    12
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    13
// Description:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    14
// This program is designed the test of the MMF_ACLNT.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
// 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    16
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    17
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    18
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    19
 @file TestTone.cpp
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
#include "TestTone.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
const TInt KHeapSizeToneTestEKA2 = 128000; // Heapsize for tone tests on EKA2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
CTestMmfAclntTone::CTestMmfAclntTone(const TDesC& aTestName, const TInt aExpectedResult)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
	// Each test step initialises it's own name
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
// need a bigger heap size on EKA2 HW
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
#if !defined __WINS__
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
	iHeapSize = KHeapSizeToneTestEKA2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
#endif // EKA2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
	iFrequency = KToneFrequency;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
	iDuration = TTimeIntervalMicroSeconds(KOneSecond);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
	iExpectedResult = aExpectedResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
	iStop = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
CTestMmfAclntTone* CTestMmfAclntTone::NewL(const TDesC& aTestName, const TInt aExpectedResult)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
	CTestMmfAclntTone* self = new (ELeave) CTestMmfAclntTone(aTestName,aExpectedResult);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
void CTestMmfAclntTone::MatoPrepareComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
	INFO_PRINTF1( _L("CTestMmfAclntTone::MatoPrepareComplete MMdaAudioToneObserver Callback for CMdaAudioToneUtility complete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
	INFO_PRINTF2( _L("iError %d"), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
	if(iStop)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
		CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
void CTestMmfAclntTone::MatoPlayComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
	INFO_PRINTF1( _L("CTestMmfAclntTone::MatoPlayComplete MMdaAudioToneObserver Callback for CMdaAudioToneUtility complete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
	INFO_PRINTF2( _L("iError %d"), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
	if(iStop)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
		CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    70
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    71
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    72
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
 * Play a tone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
TVerdict CTestMmfAclntTone::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
	INFO_PRINTF1( _L("TestTone : Play"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
	iStop = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
	CMdaAudioToneUtility* toneUtil = CMdaAudioToneUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
	CleanupStack::PushL(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
	toneUtil->PrepareToPlayTone(iFrequency,iDuration);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
	// Wait for prepare
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
	INFO_PRINTF1( _L("Initialise CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
		ret = DoTestL(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
	//produce another tone to confirm that the configuration is retained over multiple plays
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    95
		ret = DoTestL(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    96
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    97
	if(ret == EFail)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    98
		ERR_PRINTF2( _L("CMdaAudioToneUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    99
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
	CleanupStack::PopAndDestroy(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
	return	ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
TVerdict CTestMmfAclntTone::DoTestL(CMdaAudioToneUtility* aToneUtil)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   106
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   107
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   108
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   109
	aToneUtil->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   110
	// wait for play.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   111
	INFO_PRINTF1( _L("Play CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
	if(iError == iExpectedResult)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
//Play DualTone Test for Sirocco CR
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
CTestMmfAclntDualTone::CTestMmfAclntDualTone(const TDesC& aTestName) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
	: CTestMmfAclntTone(aTestName) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   126
	iFreqOne = KToneFrequency;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   127
	iFreqTwo = KToneFrequencyTwo;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   128
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   129
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   130
CTestMmfAclntDualTone* CTestMmfAclntDualTone::NewL(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   131
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   132
	CTestMmfAclntDualTone* self = new (ELeave) CTestMmfAclntDualTone(aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
 * Play a Dual tone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   139
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   140
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
TVerdict CTestMmfAclntDualTone::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
	INFO_PRINTF1( _L("TestTone : Play Dual Tone"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
	CMdaAudioToneUtility* toneUtil = CMdaAudioToneUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
	CleanupStack::PushL(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
	toneUtil->PrepareToPlayDualTone(iFreqOne,iFreqTwo,iDuration);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
	// Wait for prepare
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   153
	INFO_PRINTF1( _L("Initialise CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   154
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   155
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   156
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   157
		ret = DoTestL(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   158
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   159
	//produce another tone to confirm that the configuration is retained over multiple plays
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   160
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   161
		ret = DoTestL(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   162
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   163
	if(ret == EFail)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   164
		ERR_PRINTF2( _L("CMdaAudioToneUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   165
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   166
	CleanupStack::PopAndDestroy(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   167
	return	ret;
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
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   172
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   173
CTestMmfAclntToneDtmf::CTestMmfAclntToneDtmf(const TDesC& aTestName,const TDesC& aDTMF,const TInt aExpectedResult)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   174
	: CTestMmfAclntTone(aTestName,aExpectedResult), iDTMF(aDTMF)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   175
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   176
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   177
CTestMmfAclntToneDtmf* CTestMmfAclntToneDtmf::NewL(const TDesC& aTestName,const TDesC& aDTMF,const TInt aExpectedResult)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   178
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   179
	CTestMmfAclntToneDtmf* self = new (ELeave) CTestMmfAclntToneDtmf(aTestName,aDTMF,aExpectedResult);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   180
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   181
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   182
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   183
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   184
 * Play a DTMF string
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   185
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   186
TVerdict CTestMmfAclntToneDtmf::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   187
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   188
	INFO_PRINTF1( _L("TestTone : Play DTMF"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   189
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   190
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   191
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   192
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   193
	CMdaAudioToneUtility* toneUtil = CMdaAudioToneUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   194
	CleanupStack::PushL(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   195
	toneUtil->PrepareToPlayDTMFString(iDTMF);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   196
	// Wait for prepare to complete
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   197
	INFO_PRINTF1( _L("Initialise CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   198
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   199
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   200
	toneUtil->PrepareToPlayDTMFString(iDTMF);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   201
	// Wait for prepare to complete
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   202
	INFO_PRINTF1( _L("Reinitialise CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   203
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   204
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   205
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   206
		ret = DoTestL(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   207
	else if (iError == iExpectedResult)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   208
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   209
		INFO_PRINTF2( _L("Initialisation failed as expected with code %d"), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   210
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   211
		iError = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   212
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   213
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   214
	if(ret == EFail)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   215
		ERR_PRINTF2( _L("CMdaAudioToneUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   216
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   217
	CleanupStack::PopAndDestroy(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   218
	return ret;
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
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   223
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   224
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   225
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   226
CTestMmfAclntToneFile::CTestMmfAclntToneFile(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   227
	: CTestMmfAclntTone(aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   228
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   229
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   230
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   231
	// Each test step initialises it's own name
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   232
	iSectName = aSectName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   233
	iKeyName= aKeyName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   234
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   235
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   236
CTestMmfAclntToneFile* CTestMmfAclntToneFile::NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   237
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   238
	CTestMmfAclntToneFile* self = new (ELeave) CTestMmfAclntToneFile(aTestName,aSectName,aKeyName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   239
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   240
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   241
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   242
TVerdict CTestMmfAclntToneFile::DoTestStepPreambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   243
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   244
	TPtrC filename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   245
	if(!GetStringFromConfig(iSectName, iKeyName, filename))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   246
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   247
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   248
	// Create a sequence file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   249
	TInt length;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   250
	RFs fs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   251
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   252
	fs.Connect();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   253
	CleanupClosePushL(fs);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   254
#ifdef __IPC_V2_PRESENT__
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   255
	User::LeaveIfError(fs.ShareAuto());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   256
#else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   257
	User::LeaveIfError(fs.Share(RSessionBase::EExplicitAttach));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   258
#endif
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   259
	RFile file;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   260
	User::LeaveIfError(file.Replace(fs,filename,EFileWrite));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   261
	CleanupClosePushL(file);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   262
	User::LeaveIfError(file.Write(KFixedSequenceData()));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   263
	User::LeaveIfError(file.Size(length));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   264
	CleanupStack::PopAndDestroy(2, &fs);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   265
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   266
	return CTestMmfAclntStep::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   267
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   268
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   269
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   270
 * Play a tone file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   271
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   272
TVerdict CTestMmfAclntToneFile::DoTestStepL( void )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   273
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   274
	INFO_PRINTF1( _L("TestTone : Play File"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   275
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   276
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   277
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   278
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   279
	TPtrC filename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   280
	if(!GetStringFromConfig(iSectName, iKeyName, filename))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   281
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   282
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   283
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   284
	// perform test using this file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   285
	CMdaAudioToneUtility* toneUtil = CMdaAudioToneUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   286
	CleanupStack::PushL(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   287
	toneUtil->PrepareToPlayFileSequence(filename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   288
	// Wait for prepare
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   289
	INFO_PRINTF1( _L("Initialise CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   290
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   291
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   292
	toneUtil->PrepareToPlayFileSequence(filename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   293
	// Wait for prepare
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   294
	INFO_PRINTF1( _L("re-initialise CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   295
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   296
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   297
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   298
		ret = DoTestL(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   299
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   300
	if(ret == EFail)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   301
		ERR_PRINTF2( _L("CMdaAudioToneUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   302
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   303
	CleanupStack::PopAndDestroy(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   304
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   305
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   306
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   307
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   308
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   309
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   310
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   311
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   312
CTestMmfAclntToneDes::CTestMmfAclntToneDes(const TDesC& aTestName, const TDesC8& aDes, const TInt aExpectedResult)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   313
	: CTestMmfAclntTone(aTestName, aExpectedResult), iDes(aDes)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   314
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   315
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   316
CTestMmfAclntToneDes* CTestMmfAclntToneDes::NewL(const TDesC& aTestName, const TDesC8& aDes, const TInt aExpectedResult)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   317
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   318
	CTestMmfAclntToneDes* self = new (ELeave) CTestMmfAclntToneDes(aTestName,aDes, aExpectedResult);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   319
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   320
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   321
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   322
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   323
 * Play a tone from a descriptor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   324
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   325
TVerdict CTestMmfAclntToneDes::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   326
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   327
	INFO_PRINTF1( _L("TestTone : Play Des"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   328
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   329
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   330
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   331
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   332
	CMdaAudioToneUtility* toneUtil = CMdaAudioToneUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   333
	CleanupStack::PushL(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   334
	toneUtil->PrepareToPlayDesSequence(iDes);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   335
	// Wait for prepare
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   336
	INFO_PRINTF1( _L("Initialise CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   337
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   338
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   339
	toneUtil->PrepareToPlayDesSequence(iDes);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   340
	// Wait for prepare
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   341
	INFO_PRINTF1( _L("re-initialise CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   342
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   343
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   344
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   345
		ret = DoTestL(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   346
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   347
	if(ret == EFail)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   348
		ERR_PRINTF2( _L("CMdaAudioToneUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   349
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   350
	CleanupStack::PopAndDestroy(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   351
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   352
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   353
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   354
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   355
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   356
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   357
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   358
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   359
CTestMmfAclntToneFixed::CTestMmfAclntToneFixed(const TDesC& aTestName,const TInt aTone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   360
	:CTestMmfAclntTone(aTestName), iTone(aTone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   361
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   362
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   363
CTestMmfAclntToneFixed* CTestMmfAclntToneFixed::NewL(const TDesC& aTestName,const TInt aTone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   364
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   365
	CTestMmfAclntToneFixed* self = new (ELeave) CTestMmfAclntToneFixed(aTestName,aTone);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   366
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   367
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   368
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   369
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   370
 * Play a predefined/fixed tone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   371
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   372
TVerdict CTestMmfAclntToneFixed::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   373
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   374
	#ifdef SYMBIAN_MULTIMEDIA_A3FDEVSOUND
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   375
		INFO_PRINTF1( _L("TestTone : Play Fixed - no longer supported"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   376
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   377
		TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   378
		iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   379
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   380
		CMdaAudioToneUtility* toneUtil = CMdaAudioToneUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   381
		CleanupStack::PushL(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   382
		toneUtil->PrepareToPlayFixedSequence(iTone);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   383
		// Wait for prepare
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   384
		INFO_PRINTF1( _L("Initialise CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   385
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   386
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   387
		toneUtil->PrepareToPlayFixedSequence(iTone);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   388
		// Wait for prepare
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   389
		INFO_PRINTF1( _L("re-initialise CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   390
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   391
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   392
		// Has Audio Utility intialisied ?
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   393
		TInt sequenceCount = toneUtil->FixedSequenceCount();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   394
		INFO_PRINTF2( _L("FixedSequenceCount() returned %d"),sequenceCount);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   395
		if(sequenceCount <= 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   396
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   397
			INFO_PRINTF1( _L("Play Fixed Sequence is no longer supported"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   398
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   399
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   400
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   401
		if(ret == EFail)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   402
			ERR_PRINTF2( _L("CMdaAudioToneUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   403
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   404
		CleanupStack::PopAndDestroy(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   405
		return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   406
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   407
	#else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   408
		INFO_PRINTF1( _L("TestTone : Play Fixed"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   409
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   410
		TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   411
		iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   412
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   413
		CMdaAudioToneUtility* toneUtil = CMdaAudioToneUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   414
		CleanupStack::PushL(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   415
		toneUtil->PrepareToPlayFixedSequence(iTone);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   416
		// Wait for prepare
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   417
		INFO_PRINTF1( _L("Initialise CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   418
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   419
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   420
		toneUtil->PrepareToPlayFixedSequence(iTone);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   421
		// Wait for prepare
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   422
		INFO_PRINTF1( _L("re-initialise CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   423
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   424
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   425
		// Has Audio Utility intialisied ?
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   426
		TInt sequenceCount = toneUtil->FixedSequenceCount() ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   427
		if((iError == KErrNone) && (sequenceCount > 0))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   428
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   429
			INFO_PRINTF2( _L("FixedSequenceName is %S"), &toneUtil->FixedSequenceName(sequenceCount - 1)) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   430
			ret = DoTestL(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   431
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   432
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   433
		if(ret == EFail)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   434
			ERR_PRINTF2( _L("CMdaAudioToneUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   435
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   436
		CleanupStack::PopAndDestroy(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   437
		return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   438
	#endif
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   439
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   440
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   441
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   442
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   443
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   444
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   445
CTestMmfAclntToneAudio::CTestMmfAclntToneAudio()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   446
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   447
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   448
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   449
	// Each test step initialises it's own name
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   450
	iTestStepName = _L("MM-MMF-ACLNT-I-0156-LP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   451
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   452
// this test does not inherit from CTestMmfAclntTone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   453
// so we need to make the heap bigger here	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   454
// need a bigger heap size on EKA2 HW
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   455
#if !defined __WINS__
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   456
	iHeapSize = KHeapSizeToneTestEKA2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   457
#endif // EKA2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   458
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   459
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   460
void CTestMmfAclntToneAudio::MatoPrepareComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   461
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   462
	iToneError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   463
	INFO_PRINTF1( _L("CTestMmfAclntToneAudio::MatoPrepareComplete MMdaAudioToneObserver Callback for CMdaAudioToneUtility complete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   464
	INFO_PRINTF2( _L("iToneError %d"), iToneError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   465
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   466
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   467
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   468
void CTestMmfAclntToneAudio::MatoPlayComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   469
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   470
	INFO_PRINTF1( _L("CTestMmfAclntToneAudio::MatoPlayComplete MMdaAudioToneObserver Callback for CMdaAudioToneUtility called"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   471
	iToneError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   472
	INFO_PRINTF2( _L("iToneError %d"), iToneError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   473
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   474
	if((--iCallbackCount) == 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   475
		CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   476
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   477
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   478
void CTestMmfAclntToneAudio::MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& /*aDuration*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   479
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   480
	iPlayerError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   481
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   482
	}	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   483
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   484
void CTestMmfAclntToneAudio::MapcPlayComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   485
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   486
	INFO_PRINTF1( _L("CTestMmfAclntToneAudio::MatcPlayComplete MMdaAudioPlayerCallback for CMdaAudioPlayerUtility called"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   487
	iPlayerError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   488
	INFO_PRINTF2( _L("iPlayerError %d"), iPlayerError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   489
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   490
	if((--iCallbackCount) == 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   491
		CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   492
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   493
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   494
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   495
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   496
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   497
 * Playing a tone and playing an audio file.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   498
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   499
TVerdict CTestMmfAclntToneAudio::DoTestStepL( void )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   500
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   501
	INFO_PRINTF1( _L("TestTone : Tone/File"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   502
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   503
	TBuf<KSizeBuf>	filename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   504
	TPtrC			filename1; 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   505
	if(!GetStringFromConfig(_L("SectionOne"), _L("playerAudioFile"), filename1))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   506
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   507
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   508
	GetDriveName(filename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   509
	filename.Append(filename1);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   510
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   511
	iPlayerError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   512
	CMdaAudioPlayerUtility* playerUtility = 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   513
		//CMdaAudioPlayerUtility::NewFilePlayerL(filename,*this);//, EPriorityHigh);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   514
		CMdaAudioPlayerUtility::NewFilePlayerL(filename,*this, EPriorityNormal);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   515
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   516
	CleanupStack::PushL(playerUtility);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   517
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   518
	// Wait for prepare
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   519
	INFO_PRINTF1( _L("Initialise CMdaAudioPlayerUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   520
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   521
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   522
	if(iPlayerError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   523
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   524
		iToneError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   525
		INFO_PRINTF1( _L("Create audio tone utility..."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   526
		CMdaAudioToneUtility* toneUtil = CMdaAudioToneUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   527
		CleanupStack::PushL(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   528
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   529
		INFO_PRINTF1( _L("Prepare to play tone..."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   530
		toneUtil->PrepareToPlayTone(KToneFrequency,TTimeIntervalMicroSeconds(KOneSecond));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   531
		// Wait for prepare
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   532
		INFO_PRINTF1( _L("Initialise CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   533
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   534
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   535
		INFO_PRINTF1( _L("Re-prepare to play tone..."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   536
		toneUtil->PrepareToPlayTone(KToneFrequency,TTimeIntervalMicroSeconds(KOneSecond));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   537
		// Wait for prepare
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   538
		INFO_PRINTF1( _L("Initialise CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   539
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   540
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   541
		toneUtil->SetPriority(EPriorityHigh, EMdaPriorityPreferenceNone);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   542
		if(iToneError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   543
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   544
			iPlayerError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   545
			iToneError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   546
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   547
			// play files together
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   548
			INFO_PRINTF1( _L("Play CMdaAudioPlayerUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   549
			playerUtility->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   550
			INFO_PRINTF1( _L("Play CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   551
			toneUtil->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   552
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   553
			iCallbackCount = 2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   554
			CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   555
			// Wait for two callbacks
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   556
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   557
			//Tone utility is at priority high - should complete normally
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   558
			//Player is at priority normal should complete with KErrInUse
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   559
			//KErrAccessDenied is OK here, at least until we can do Mixing
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   560
			if(iToneError==KErrNone && (iPlayerError==KErrInUse || iPlayerError==KErrNone))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   561
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   562
				CleanupStack::PopAndDestroy(2); // playerUtility, toneUtil
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   563
				return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   564
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   565
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   566
		CleanupStack::PopAndDestroy(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   567
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   568
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   569
		INFO_PRINTF1( _L("Cannot initialise CMdaAudioPlayerUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   570
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   571
	ERR_PRINTF2( _L("CMdaAudioToneUtility completed with player error %d"),iPlayerError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   572
	ERR_PRINTF2( _L("CMdaAudioToneUtility completed with tone error %d"),iToneError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   573
	CleanupStack::PopAndDestroy(playerUtility);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   574
	return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   575
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   576
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   577
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   578
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   579
/** Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   580
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   581
CTestMmfAclntToneCancelP::CTestMmfAclntToneCancelP(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   582
	:CTestMmfAclntTone(aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   583
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   584
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   585
CTestMmfAclntToneCancelP* CTestMmfAclntToneCancelP::NewL(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   586
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   587
	CTestMmfAclntToneCancelP* self = new (ELeave) CTestMmfAclntToneCancelP(aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   588
	return self;
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
 * Cancel tone play
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   593
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   594
TVerdict CTestMmfAclntToneCancelP::DoTestL(CMdaAudioToneUtility* aToneUtil)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   595
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   596
	INFO_PRINTF1( _L("TestTone : Cancel Play"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   597
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   598
	iStop = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   599
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   600
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   601
	aToneUtil->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   602
	INFO_PRINTF1( _L("Play CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   603
	if(aToneUtil->State() == EMdaAudioToneUtilityPlaying)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   604
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   605
		// cancel play.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   606
		INFO_PRINTF1( _L("Cancel Play CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   607
		aToneUtil->CancelPlay();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   608
		// make sure tone is no longer playing
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   609
		if(aToneUtil->State() != EMdaAudioToneUtilityPlaying)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   610
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   611
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   612
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   613
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   614
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   615
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   616
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   617
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   618
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   619
CTestMmfAclntToneCancelIni::CTestMmfAclntToneCancelIni(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   620
	:CTestMmfAclntTone(aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   621
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   622
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   623
CTestMmfAclntToneCancelIni* CTestMmfAclntToneCancelIni::NewL(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   624
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   625
	CTestMmfAclntToneCancelIni* self = new (ELeave) CTestMmfAclntToneCancelIni(aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   626
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   627
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   628
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   629
/** 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   630
 * Cancel tone prepare.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   631
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   632
 * This fucntion cannot leave
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   633
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   634
TVerdict CTestMmfAclntToneCancelIni::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   635
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   636
	INFO_PRINTF1( _L("TestTone : Cancel Prepare"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   637
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   638
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   639
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   640
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   641
	CMdaAudioToneUtility* toneUtil = CMdaAudioToneUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   642
	CleanupStack::PushL(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   643
	INFO_PRINTF1( _L("Initialise CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   644
	toneUtil->PrepareToPlayFixedSequence(0);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   645
	INFO_PRINTF1( _L("Cancel Prep CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   646
	toneUtil->CancelPrepare();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   647
	// make sure init callback did not complete
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   648
	if((iError == KErrTimedOut) && (toneUtil->State() != EMdaAudioToneUtilityPrepared))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   649
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   650
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   651
	if(ret == EFail)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   652
		ERR_PRINTF2( _L("CMdaAudioToneUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   653
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   654
	CleanupStack::PopAndDestroy(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   655
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   656
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   657
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   658
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   659
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   660
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   661
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   662
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   663
CTestMmfAclntToneNames::CTestMmfAclntToneNames(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   664
	:CTestMmfAclntToneFixed(aTestName,1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   665
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   666
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   667
CTestMmfAclntToneNames* CTestMmfAclntToneNames::NewL(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   668
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   669
	CTestMmfAclntToneNames* self = new (ELeave) CTestMmfAclntToneNames(aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   670
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   671
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   672
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   673
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   674
 * Enquire sequence name
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   675
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   676
 * This function cannot leave
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   677
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   678
TVerdict CTestMmfAclntToneNames::DoTestL(CMdaAudioToneUtility* aToneUtil)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   679
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   680
	INFO_PRINTF1( _L("TestTone : Seq Name"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   681
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   682
	TVerdict ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   683
	TBuf<32> seqName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   684
	TInt count = aToneUtil->FixedSequenceCount();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   685
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   686
	for(TInt i = 0; i < count; i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   687
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   688
		seqName = aToneUtil->FixedSequenceName(i);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   689
		if(seqName.Length() < 1) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   690
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   691
			ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   692
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   693
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   694
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   695
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   696
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   697
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   698
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   699
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   700
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   701
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   702
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   703
CTestMmfAclntToneCount::CTestMmfAclntToneCount(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   704
	:CTestMmfAclntToneFixed(aTestName,1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   705
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   706
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   707
CTestMmfAclntToneCount* CTestMmfAclntToneCount::NewL(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   708
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   709
	CTestMmfAclntToneCount* self = new (ELeave) CTestMmfAclntToneCount(aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   710
	return self;
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
 * Enquire sequence count
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   715
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   716
TVerdict CTestMmfAclntToneCount::DoTestL(CMdaAudioToneUtility* aToneUtil)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   717
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   718
	INFO_PRINTF1( _L("TestTone : Seq Count"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   719
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   720
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   721
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   722
	if(aToneUtil->FixedSequenceCount() == KFixedSequenceCount)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   723
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   724
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   725
	return	EFail ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   726
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   727
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   728
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   729
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   730
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   731
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   732
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   733
CTestMmfAclntToneVolume::CTestMmfAclntToneVolume(const TDesC& aTestName,const TInt aVolume)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   734
	:CTestMmfAclntTone(aTestName), iVolume(aVolume)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   735
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   736
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   737
CTestMmfAclntToneVolume* CTestMmfAclntToneVolume::NewL(const TDesC& aTestName,const TInt aVolume)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   738
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   739
	CTestMmfAclntToneVolume* self = new (ELeave) CTestMmfAclntToneVolume(aTestName,aVolume);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   740
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   741
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   742
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   743
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   744
 * Set volume to max and enquire volume
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   745
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   746
TVerdict CTestMmfAclntToneVolume::DoTestL(CMdaAudioToneUtility* aToneUtil)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   747
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   748
	INFO_PRINTF1( _L("TestTone : Volume"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   749
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   750
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   751
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   752
	// added from CTestMmfAclntTone : we need the device to be open before
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   753
	// SetVolume() will function correctly
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   754
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   755
	aToneUtil->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   756
	// wait for play.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   757
	INFO_PRINTF1( _L("Play CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   758
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   759
	// don't wait for it to finish - run this test while playing
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   760
	// so we know device is open
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   761
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   762
	// Check maxvolume function
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   763
	if(iVolume == -1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   764
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   765
		iVolume = aToneUtil->MaxVolume();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   766
		aToneUtil->SetVolume(iVolume);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   767
		INFO_PRINTF3(_L("volume = %d iVolume = %d"), aToneUtil->Volume(), iVolume); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   768
		if(aToneUtil->Volume() == iVolume)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   769
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   770
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   771
	// Volume is truncated to maxvolume
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   772
	if(iVolume > aToneUtil->MaxVolume())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   773
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   774
		aToneUtil->SetVolume(iVolume);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   775
		INFO_PRINTF3(_L("volume = %d maxVolume = %d"), aToneUtil->Volume(), aToneUtil->MaxVolume()); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   776
		if(aToneUtil->Volume() == aToneUtil->MaxVolume())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   777
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   778
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   779
	// Volume is truncated to 0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   780
	else if(iVolume < 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   781
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   782
		aToneUtil->SetVolume(iVolume);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   783
		INFO_PRINTF2(_L("volume = %d, expecting 0"), aToneUtil->Volume()); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   784
		if(aToneUtil->Volume() == 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   785
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   786
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   787
	// Set volume and check
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   788
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   789
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   790
		aToneUtil->SetVolume(iVolume);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   791
		INFO_PRINTF3(_L("volume = %d iVolume = %d"), aToneUtil->Volume(), iVolume); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   792
		if(aToneUtil->Volume() == iVolume)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   793
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   794
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   795
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   796
	// let it finish playing
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   797
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   798
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   799
	return ret;
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
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   807
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   808
CTestMmfAclntVolumeRamp::CTestMmfAclntVolumeRamp(const TDesC& aTestName, const TInt aRamp)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   809
	:CTestMmfAclntTone(aTestName), iRamp(aRamp)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   810
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   811
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   812
CTestMmfAclntVolumeRamp* CTestMmfAclntVolumeRamp::NewL(const TDesC& aTestName, const TInt aRamp)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   813
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   814
	CTestMmfAclntVolumeRamp* self = new (ELeave) CTestMmfAclntVolumeRamp(aTestName,aRamp);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   815
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   816
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   817
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   818
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   819
 * Set volume ramp
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   820
 * This function cannot leave
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   821
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   822
TVerdict CTestMmfAclntVolumeRamp::DoTestL(CMdaAudioToneUtility* aToneUtil)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   823
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   824
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   825
	INFO_PRINTF1( _L("TestTone : Ramp"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   826
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   827
	TTimeIntervalMicroSeconds ramp(iRamp);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   828
	aToneUtil->SetVolumeRamp(ramp);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   829
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   830
	// aToneUtil->[Get]VolumeRamp() doesn't exist.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   831
	// For now, if SetVolumeRamp() doesn't panic, we have to return EPass.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   832
	// In future, maybe we can play the clip and get the volume at intervals?
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   833
	INFO_PRINTF1(_L("Warning : no API function to get volume ramp"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   834
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   835
	return EPass;
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
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   840
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   841
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   842
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   843
CTestMmfAclntToneRepeat::CTestMmfAclntToneRepeat(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   844
	:CTestMmfAclntTone(aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   845
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   846
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   847
CTestMmfAclntToneRepeat* CTestMmfAclntToneRepeat::NewL(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   848
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   849
	CTestMmfAclntToneRepeat* self = new (ELeave) CTestMmfAclntToneRepeat(aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   850
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   851
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   852
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   853
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   854
 * Set repeats
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   855
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   856
TVerdict CTestMmfAclntToneRepeat::DoTestL(CMdaAudioToneUtility* aToneUtil)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   857
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   858
	INFO_PRINTF1( _L("TestTone : Repeats"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   859
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   860
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   861
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   862
	TTimeIntervalMicroSeconds silence(0);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   863
	aToneUtil->SetRepeats(NUMBER_OF_REPEATS,silence);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   864
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   865
	TInt duration = I64INT(iDuration.Int64());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   866
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   867
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   868
	INFO_PRINTF1( _L("Play CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   869
	aToneUtil->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   870
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   871
	TTime start;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   872
	start.HomeTime();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   873
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   874
	TTime stop;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   875
	stop.HomeTime();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   876
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   877
	TUint actualDuration = I64INT(stop.MicroSecondsFrom(start).Int64());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   878
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   879
	INFO_PRINTF2(_L("Repeats : %d"), NUMBER_OF_REPEATS);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   880
	INFO_PRINTF6(_L("Error : %d Start = %d Stop = %d Duration = %d ActualDuration = %d"),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   881
		iError, I64INT(start.Int64()), I64INT(stop.Int64()), duration, actualDuration);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   882
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   883
	if((iError == KErrNone) && (TimeComparison(actualDuration, duration * (NUMBER_OF_REPEATS + 1),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   884
											   KExpectedDeviation * NUMBER_OF_REPEATS)))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   885
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   886
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   887
	return	EFail ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   888
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   889
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   890
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   891
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   892
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   893
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   894
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   895
CTestMmfAclntToneLength::CTestMmfAclntToneLength(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   896
	:CTestMmfAclntToneDtmf(aTestName,KShortDTMFString)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   897
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   898
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   899
CTestMmfAclntToneLength* CTestMmfAclntToneLength::NewL(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   900
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   901
	CTestMmfAclntToneLength* self = new (ELeave) CTestMmfAclntToneLength(aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   902
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   903
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   904
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   905
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   906
 * Configure tone on length, tone off length, pause length of DTMF Tones
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   907
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   908
TVerdict CTestMmfAclntToneLength::DoTestL(CMdaAudioToneUtility* aToneUtil)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   909
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   910
	INFO_PRINTF1( _L("TestTone : Length"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   911
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   912
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   913
	TTimeIntervalMicroSeconds32 on(KOneSecond), off(KOneSecond), pause(0);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   914
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   915
	aToneUtil->SetDTMFLengths(on, off, pause);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   916
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   917
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   918
	INFO_PRINTF1( _L("Play CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   919
	aToneUtil->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   920
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   921
	TTime start;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   922
	start.HomeTime();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   923
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   924
	TTime stop;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   925
	stop.HomeTime();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   926
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   927
	TUint actualDuration = I64INT(stop.MicroSecondsFrom(start).Int64());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   928
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   929
	INFO_PRINTF6(_L("Error : %d Start = %d Stop = %d Duration = %d ActualDuration = %d"),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   930
		iError, I64INT(start.Int64()), I64INT(stop.Int64()), KTwoSeconds, actualDuration);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   931
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   932
	if((iError == KErrNone) && (TimeComparison(actualDuration, KTwoSeconds, KExpectedDeviation)))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   933
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   934
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   935
	return EFail ;
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
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   942
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   943
CTestMmfAclntPriorityTones::CTestMmfAclntPriorityTones()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   944
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   945
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   946
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   947
	// Each test step initialises it's own name
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   948
	iTestStepName = _L("MM-MMF-ACLNT-I-0165-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   949
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   950
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   951
void CTestMmfAclntPriorityTones::MchoComplete(TInt aID, TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   952
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   953
	INFO_PRINTF1( _L("CTestMmfAclntPriorityTones : MMdaAudioToneObserver Callback for CMdaAudioToneUtility called"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   954
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   955
	INFO_PRINTF3( _L("iError %d ID %d"), iError, aID);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   956
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   957
	if(iFirstCallback == -1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   958
		iFirstCallback = aID;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   959
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   960
	if((--iCallbackCount) == 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   961
		CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   962
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   963
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   964
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   965
 * Set priorities of tones
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   966
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   967
TVerdict CTestMmfAclntPriorityTones::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   968
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   969
	INFO_PRINTF1( _L("TestTone : Priorities"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   970
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   971
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   972
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   973
    CMdaAudioToneUtility* toneUtil[2];
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   974
	CToneCallbackHandler* callback[2];
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   975
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   976
	for(TInt i=0; i<2; i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   977
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   978
		callback[i] = new (ELeave) CToneCallbackHandler(i,this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   979
		CleanupStack::PushL(callback[i]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   980
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   981
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   982
	toneUtil[0] = CMdaAudioToneUtility::NewL(*callback[0],NULL, -10, EMdaPriorityPreferenceTimeAndQuality);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   983
	CleanupStack::PushL(toneUtil[0]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   984
	toneUtil[1] = CMdaAudioToneUtility::NewL(*callback[1],NULL,  0, EMdaPriorityPreferenceTimeAndQuality);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   985
	CleanupStack::PushL(toneUtil[1]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   986
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   987
	toneUtil[0]->PrepareToPlayDTMFString(KDTMFString);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   988
	toneUtil[1]->PrepareToPlayDTMFString(KDTMFString);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   989
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   990
	// wait for initilisation callback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   991
	iCallbackCount = 2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   992
	INFO_PRINTF1( _L("Initialise CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   993
	INFO_PRINTF1( _L("Initialise CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   994
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   995
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   996
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   997
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   998
		iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   999
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1000
		toneUtil[0]->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1001
		toneUtil[1]->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1002
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1003
		INFO_PRINTF1( _L("Play CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1004
		INFO_PRINTF1( _L("Play CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1005
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1006
		// wait for play to complete
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1007
		iCallbackCount = 2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1008
		iFirstCallback = -1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1009
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1010
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1011
		if((iError == KErrNone) && (iFirstCallback == 0))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1012
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1013
			CleanupStack::PopAndDestroy(4);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1014
			return	EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1015
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1016
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1017
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1018
	ERR_PRINTF2( _L("CMdaAudioToneUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1019
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1020
	CleanupStack::PopAndDestroy(4);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1021
	return	EFail ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1022
	}
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
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1028
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1029
CTestMmfAclntToneBalance::CTestMmfAclntToneBalance(const TDesC& aTestName,const TInt aBalance)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1030
	:CTestMmfAclntTone(aTestName) ,iBalance(aBalance)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1031
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1032
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1033
CTestMmfAclntToneBalance* CTestMmfAclntToneBalance::NewL(const TDesC& aTestName,const TInt aBalance)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1034
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1035
	CTestMmfAclntToneBalance* self = new (ELeave) CTestMmfAclntToneBalance(aTestName,aBalance);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1036
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1037
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1038
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1039
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1040
 * Set balance and enquire balance
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1041
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1042
TVerdict CTestMmfAclntToneBalance::DoTestL(CMdaAudioToneUtility* aToneUtil)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1043
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1044
	INFO_PRINTF1( _L("TestTone : Balance"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1045
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1046
	if (iBalance < KMinBalance)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1047
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1048
		TRAPD(err, aToneUtil->SetBalanceL(iBalance));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1049
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1050
		if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1051
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1052
			INFO_PRINTF2(_L("SetBalanceL() returned unexpected error %d"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1053
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1054
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1055
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1056
		if(aToneUtil->GetBalanceL() == KMinBalance)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1057
			return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1058
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1059
	else if (iBalance > KMaxBalance)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1060
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1061
		TRAPD(err, aToneUtil->SetBalanceL(iBalance));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1062
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1063
		if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1064
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1065
			INFO_PRINTF2(_L("SetBalanceL() returned unexpected error %d"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1066
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1067
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1068
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1069
		if(aToneUtil->GetBalanceL() == KMaxBalance)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1070
			return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1071
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1072
	else 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1073
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1074
		TRAPD(err, aToneUtil->SetBalanceL(iBalance));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1075
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1076
		if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1077
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1078
			INFO_PRINTF2(_L("SetBalanceL() returned unexpected error %d"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1079
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1080
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1081
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1082
		if(aToneUtil->GetBalanceL() == iBalance)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1083
			return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1084
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1085
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1086
	return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1087
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1088
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1089
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1090
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1091
// NEGATIVE TESTING
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1092
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1093
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1094
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1095
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1096
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1097
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1098
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1099
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1100
CTestMmfAclntOnOffPause::CTestMmfAclntOnOffPause()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1101
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1102
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1103
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1104
// Each test step initialises it's own name
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1105
	iTestStepName = _L("MM-MMF-ACLNT-I-1155-HP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1106
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1107
// this test does not inherit from CTestMmfAclntTone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1108
// so we need to make the heap bigger here	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1109
// need a bigger heap size on EKA2 HW
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1110
#if !defined __WINS__	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1111
	iHeapSize = KHeapSizeToneTestEKA2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1112
#endif // EKA2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1113
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1114
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1115
void CTestMmfAclntOnOffPause::MatoPrepareComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1116
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1117
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1118
	INFO_PRINTF1( _L("CTestMmfAclntOnOffPause::MatoPrepareComplete MMdaAudioToneObserver Callback for CMdaAudioToneUtility complete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1119
	INFO_PRINTF2( _L("iError %d"), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1120
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1121
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1122
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1123
void CTestMmfAclntOnOffPause::MatoPlayComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1124
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1125
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1126
	INFO_PRINTF1( _L("CTestMmfAclntOnOffPause::MatoPlayComplete MMdaAudioToneObserver Callback for CMdaAudioToneUtility complete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1127
	INFO_PRINTF2( _L("iError %d"), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1128
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1129
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1130
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1131
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1132
 * Set up tone on, off and pause length to illegal values.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1133
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1134
TVerdict CTestMmfAclntOnOffPause::DoTestStepL( void )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1135
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1136
	INFO_PRINTF1( _L("TestTone : On/Off/Pause"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1137
	TVerdict res = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1138
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1139
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1140
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1141
	CMdaAudioToneUtility* toneUtil = CMdaAudioToneUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1142
	CleanupStack::PushL(toneUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1143
	toneUtil->PrepareToPlayDTMFString(KDTMFString);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1144
	// Wait for prepare
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1145
	INFO_PRINTF1( _L("Initialise CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1146
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1147
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1148
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1149
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1150
		iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1151
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1152
		TTimeIntervalMicroSeconds32 on(-4), off(-3), pause(-5);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1153
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1154
		toneUtil->SetDTMFLengths(on, off, pause);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1155
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1156
		toneUtil->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1157
		// wait for play to complete
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1158
		INFO_PRINTF1( _L("Play CMdaAudioToneUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1159
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1160
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1161
		// check this worked
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1162
		if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1163
			res = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1164
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1165
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1166
	CleanupStack::Pop(); // toneUtil
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1167
	ERR_PRINTF2( _L("CMdaAudioToneUtility completed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1168
	delete toneUtil;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1169
	return	res;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1170
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1171