mmlibs/mmfw/tsrc/mmfintegrationtest/SDevSound/src/TSI_MMF_SDEVSOUND_STEP.cpp
author hgs
Tue, 02 Nov 2010 12:13:59 +0000
changeset 5 b220a9341636
parent 0 b8ed18f6c07b
permissions -rw-r--r--
2010wk46_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     1
// Copyright (c) 2004-2010 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
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    16
#include <e32base.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    17
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    18
#include "TSI_MMF_SDEVSOUND_STEP.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    19
#include "TSI_MMF_SDEVSOUND_SUITE.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
#include <simulprocclient.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
#include <e32msgqueue.h>
5
b220a9341636 2010wk46_01
hgs
parents: 0
diff changeset
    24
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
TAny GetDriveName(TDes& aFileName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
	#ifdef __WINS__
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
		aFileName = _L("c:");	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
	#elif defined(__MARM__) || defined(__X86GCC__)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
		#ifdef __TEST_FILES_ON_C_DRIVE__
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
			aFileName = _L("c:");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
		#else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
			aFileName = _L("z:");	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
		#endif // __TEST_FILES_ON_C_DRIVE__
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
	#endif	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
 * CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
 * Test step constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
CTestStepSDevSound::CTestStepSDevSound()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
	{ 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
	iExpectedValue = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
 * ~CTestStepDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
 *	 Test step destructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
CTestStepSDevSound::~CTestStepSDevSound()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
 * SetTestSuite
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
 * @param aTestSuite
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
void CTestStepSDevSound::SetTestSuite(const CTestSuiteSDevSound* aTestSuite)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
	iDevSoundTestSuite = aTestSuite;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    70
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    71
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    72
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
 * DoTestStepPostambleL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
TVerdict CTestStepSDevSound::DoTestStepPostambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
	if (iMMFDevSound)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
		INFO_PRINTF1(_L("Deleting DevSound Object"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
		delete iMMFDevSound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
		iMMFDevSound = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
	delete iAL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
	iAL = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
	delete iAS;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
	iAS = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
	return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    95
 * InitializeComplete
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    96
 * @param aError
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    97
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    98
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    99
void CTestStepSDevSound::InitializeComplete (TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
	INFO_PRINTF2(_L("DevSound called InitializeComplete with aError = %d"), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
	TRequestStatus* stat = &(iAL->iStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
	User::RequestComplete(stat, aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
	iCallbackArray[EInitComplete] ++;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
	iCallbackError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   106
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   107
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   108
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   109
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   110
 * ToneFinished
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   111
 * @param aError
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
void CTestStepSDevSound::ToneFinished (TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
	INFO_PRINTF2(_L("DevSound called ToneFinished with aError = %d"), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
	TRequestStatus* stat = &(iAL->iStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
	User::RequestComplete(stat, aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
	iCallbackArray[EToneFinished] ++;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
	iCallbackError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
 * BufferToBeFilled
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   126
 * @param aBuffer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   127
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   128
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   129
void CTestStepSDevSound::BufferToBeFilled (CMMFBuffer* aBuffer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   130
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   131
	 iBuffer = aBuffer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   132
	TRequestStatus* stat = &(iAL->iStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
	if (aBuffer != NULL) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
		User::RequestComplete(stat, KErrNone);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
		iCallbackError = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
	else 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   139
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   140
		User::RequestComplete(stat, KErrNotFound);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
		iCallbackError = KErrNotFound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
	iCallbackArray[EBuffToFill] ++;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
 * PlayError
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
 * @param aError
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
void CTestStepSDevSound::PlayError (TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   153
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   154
	INFO_PRINTF2(_L("DevSound called PlayError with aError = %d"), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   155
	TRequestStatus* stat = &(iAL->iStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   156
	User::RequestComplete (stat, aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   157
	iCallbackError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   158
	iCallbackArray[EPlayError] ++;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   159
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   160
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   161
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   162
 * 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   163
 * BufferToBeEmptied
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   164
 * @param aBuffer
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   165
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   166
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   167
void CTestStepSDevSound::BufferToBeEmptied (CMMFBuffer* aBuffer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   168
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   169
	INFO_PRINTF1(_L("DevSound called BufferToBeEmptied"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   170
	iBuffer = aBuffer;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   171
	TRequestStatus* stat = &(iAL->iStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   172
	if (aBuffer != NULL)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   173
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   174
		User::RequestComplete(stat, KErrNone);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   175
		iCallbackError = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   176
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   177
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   178
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   179
		User::RequestComplete(stat, KErrNotFound);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   180
		iCallbackError = KErrNotFound;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   181
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   182
	iCallbackArray[EBuffToEmpty] ++;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   183
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   184
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   185
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   186
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   187
 * RecordError
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   188
 * @param aError
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   189
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   190
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   191
void CTestStepSDevSound::RecordError (TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   192
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   193
	INFO_PRINTF2(_L("DevSound called RecordError with aError = %d"), aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   194
	TRequestStatus* stat = &(iAL->iStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   195
	User::RequestComplete (stat, aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   196
	iCallbackError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   197
	iCallbackArray[ERecError] ++;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   198
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   199
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   200
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   201
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   202
 * ConvertError
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   203
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   204
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   205
void CTestStepSDevSound::ConvertError (TInt /*aError*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   206
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   207
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   208
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   209
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   210
 * DeviceMessage
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   211
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   212
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   213
void CTestStepSDevSound::DeviceMessage (TUid, const TDesC8& /*aMsg*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   214
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   215
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   216
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   217
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   218
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   219
 * InitializeDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   220
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   221
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   222
TVerdict CTestStepSDevSound::InitializeDevSound(TMMFState aMode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   223
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   224
	iCallbackError = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   225
	iExpectedValue = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   226
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   227
	iAL->InitialiseActiveListener();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   228
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   229
	INFO_PRINTF1(_L("Initializing DevSound"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   230
	// Initialize
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   231
	TRAPD(err, iMMFDevSound->InitializeL(*this, aMode));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   232
	if (err)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   233
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   234
		WARN_PRINTF2 (_L("DevSound InitializeL left with error = %d"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   235
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   236
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   237
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   238
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   239
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   240
		if (iCallbackError != iExpectedValue)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   241
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   242
			ERR_PRINTF3 (_L("DevSound InitializeComplete returned %d, expected %d"), iCallbackError, iExpectedValue);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   243
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   244
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   245
		if (iCallbackArray[EInitComplete] != 1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   246
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   247
			ERR_PRINTF2 (_L("DevSound InitializeComplete was called %d times, expected 1"), iCallbackArray[EInitComplete]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   248
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   249
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   250
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   251
	return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   252
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   253
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   254
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   255
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   256
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   257
 * SetVolume
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   258
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   259
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   260
void CTestStepSDevSound::SetVolume(TInt aVolume)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   261
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   262
	INFO_PRINTF2(_L("Setting Volume = %d"), aVolume);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   263
	iMMFDevSound->SetVolume(aVolume);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   264
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   265
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   266
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   267
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   268
 * InitializeDevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   269
 * @param aDataType
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   270
 * @param aMode
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   271
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   272
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   273
 */	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   274
TVerdict CTestStepSDevSound::InitializeDevSound(TFourCC& aDataType, TMMFState aMode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   275
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   276
	iCallbackError = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   277
	iExpectedValue = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   278
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   279
	iAL->InitialiseActiveListener();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   280
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   281
	INFO_PRINTF1(_L("Initializing DevSound"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   282
	// Initialize
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   283
	TRAPD(err, iMMFDevSound->InitializeL(*this, aDataType, aMode));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   284
	if (err)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   285
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   286
		WARN_PRINTF2 (_L("DevSound InitializeL left with error = %d"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   287
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   288
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   289
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   290
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   291
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   292
		if (iCallbackError != iExpectedValue)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   293
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   294
			ERR_PRINTF3 (_L("DevSound InitializeComplete returned %d, expected %d"), iCallbackError, iExpectedValue);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   295
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   296
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   297
		if (iCallbackArray[EInitComplete] != 1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   298
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   299
			ERR_PRINTF2 (_L("DevSound InitializeComplete was called %d times, expected 1"), iCallbackArray[EInitComplete]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   300
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   301
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   302
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   303
	return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   304
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   305
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   306
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   307
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   308
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   309
 * PlayInit
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   310
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   311
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   312
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   313
TVerdict CTestStepSDevSound::PlayInit()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   314
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   315
	iCallbackArray.Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   316
	iAL->InitialiseActiveListener();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   317
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   318
	//get buffer from devsound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   319
	TRAPD(err, iMMFDevSound->PlayInitL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   320
	// Start the active scheduler and catch the callback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   321
 	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   322
	if (err)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   323
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   324
		WARN_PRINTF2 (_L("DevSound PlayInitL left with error = %d"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   325
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   326
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   327
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   328
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   329
		if (iCallbackArray[EBuffToFill] != 1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   330
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   331
			ERR_PRINTF2 (_L("DevSound BufferToBeFilled was called %d times, expected 1"), iCallbackArray[EBuffToFill]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   332
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   333
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   334
		TInt total = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   335
		for (TInt i = EInitComplete; i < EDeviceMsg; i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   336
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   337
			total += iCallbackArray[i];
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   338
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   339
		if (total > 1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   340
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   341
			ERR_PRINTF2 (_L("DevSound called %d callbacks, expected 1"), total);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   342
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   343
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   344
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   345
	return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   346
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   347
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   348
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   349
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   350
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   351
 * PlayData
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   352
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   353
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   354
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   355
TVerdict CTestStepSDevSound::PlayData()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   356
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   357
	iCallbackArray.Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   358
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   359
	iAL->InitialiseActiveListener();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   360
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   361
	iMMFDevSound->PlayData();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   362
	// Start the active scheduler and catch the callback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   363
 	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   364
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   365
	if (iCallbackArray[EBuffToFill] != 1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   366
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   367
		if (iCallbackArray[EBuffToFill] == 0 && iCallbackArray[EPlayError] == 1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   368
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   369
			INFO_PRINTF1(_L("DevSound PlayError was called 1 time.  Must be EOF."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   370
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   371
		else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   372
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   373
			ERR_PRINTF2 (_L("DevSound BufferToBeFilled was called %d times, expected 1"), iCallbackArray[EBuffToFill]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   374
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   375
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   376
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   377
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   378
	TInt total = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   379
	for (TInt i = EInitComplete; i < EDeviceMsg; i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   380
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   381
		total += iCallbackArray[i];
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   382
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   383
	if (total > 1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   384
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   385
		ERR_PRINTF2 (_L("DevSound called %d callbacks, expected 1"), total);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   386
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   387
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   388
	return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   389
	}	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   390
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   391
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   392
//------------------------------------------------------------------	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   393
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   394
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   395
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   396
 * DoTestStepPreamble
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   397
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   398
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   399
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   400
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   401
TVerdict CTestStepSDevSoundPlaySimpleTone::DoTestStepPreambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   402
	{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   403
	//Install the Active Scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   404
	iAS = new (ELeave) CActiveScheduler;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   405
	CActiveScheduler::Install (iAS);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   406
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   407
	iAL= new(ELeave)CActiveListener;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   408
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   409
	INFO_PRINTF1(_L("Creating DevSound Object"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   410
	TRAPD(err, iMMFDevSound = CMMFDevSound::NewL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   411
	if (err)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   412
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   413
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   414
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   415
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   416
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   417
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   418
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   419
	}	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   420
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   421
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   422
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   423
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   424
 * CTestStepDevSoundPlaySimpleTone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   425
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   426
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   427
CTestStepSDevSoundPlaySimpleTone::CTestStepSDevSoundPlaySimpleTone(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   428
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   429
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   430
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   431
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   432
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   433
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   434
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   435
 * DoTestStepL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   436
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   437
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   438
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   439
TVerdict CTestStepSDevSoundPlaySimpleTone::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   440
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   441
	INFO_PRINTF1(_L("Testing Simple Tone Playback"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   442
	TInt freq = 100;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   443
	TTimeIntervalMicroSeconds dur(2000000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   444
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   445
	//Initialize
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   446
	TVerdict initializeOK = InitializeDevSound(EMMFStateTonePlaying);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   447
	if (initializeOK  != EPass)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   448
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   449
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   450
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   451
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   452
	SetVolume(iMMFDevSound->MaxVolume());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   453
	iExpectedValue = KErrUnderflow;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   454
	iCallbackError = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   455
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   456
	iCallbackArray.Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   457
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   458
	INFO_PRINTF1(_L("Playing Simple Tone"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   459
	TRAPD(err, iMMFDevSound->PlayToneL(freq, dur));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   460
	if (err)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   461
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   462
		WARN_PRINTF2 (_L("DevSound PlayToneL left with error = %d"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   463
		iCallbackError = err;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   464
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   465
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   466
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   467
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   468
		iAL->InitialiseActiveListener();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   469
		// Start the active scheduler and catch the callback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   470
 		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   471
		if (iCallbackError != iExpectedValue)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   472
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   473
			ERR_PRINTF3 (_L("DevSound ToneFinished returned %d, expected %d"), iCallbackError, iExpectedValue);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   474
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   475
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   476
		if (iCallbackArray[EToneFinished] != 1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   477
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   478
			ERR_PRINTF2 (_L("DevSound ToneFinished was called %d times, expected 1"), iCallbackArray[EToneFinished]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   479
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   480
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   481
		TInt total = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   482
		for (TInt i = EInitComplete; i < EDeviceMsg; i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   483
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   484
			total += iCallbackArray[i];
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   485
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   486
		if (total > 1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   487
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   488
			ERR_PRINTF2 (_L("DevSound called %d callbacks, expected 1"), total);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   489
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   490
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   491
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   492
	return EPass;
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
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   498
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   499
 * DoTestStepPreamble
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   500
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   501
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   502
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   503
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   504
TVerdict CTestStepSDevSoundPlayDTMFTones::DoTestStepPreambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   505
	{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   506
	//Install the Active Scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   507
	iAS = new (ELeave) CActiveScheduler;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   508
	CActiveScheduler::Install (iAS);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   509
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   510
	iAL= new(ELeave)CActiveListener;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   511
	INFO_PRINTF1(_L("Creating DevSound Object"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   512
	TRAPD(err, iMMFDevSound = CMMFDevSound::NewL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   513
	if (err)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   514
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   515
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   516
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   517
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   518
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   519
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   520
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   521
	}	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   522
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   523
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   524
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   525
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   526
 * CTestStepSDevSoundPlayDTMFTones
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   527
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   528
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   529
CTestStepSDevSoundPlayDTMFTones::CTestStepSDevSoundPlayDTMFTones(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   530
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   531
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   532
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   533
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   534
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   535
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   536
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   537
 * DoTestStepL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   538
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   539
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   540
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   541
TVerdict CTestStepSDevSoundPlayDTMFTones::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   542
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   543
	INFO_PRINTF1(_L("Testing DTMF Playback"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   544
	TPtrC dtmfString = (_L("0123456789,abcdef,*#"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   545
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   546
	//Initialize
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   547
	TVerdict initializeOK = InitializeDevSound(EMMFStateTonePlaying);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   548
	if (initializeOK != EPass)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   549
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   550
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   551
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   552
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   553
	iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   554
	iExpectedValue = KErrUnderflow;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   555
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   556
	iCallbackError = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   557
	iCallbackArray.Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   558
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   559
	// Set request active
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   560
	iAL->InitialiseActiveListener();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   561
	INFO_PRINTF1(_L("Playing DTMF String"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   562
	TRAPD(err, iMMFDevSound->PlayDTMFStringL(dtmfString));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   563
	// Start the active scheduler and catch the callback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   564
 	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   565
	if (err)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   566
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   567
		WARN_PRINTF2 (_L("DevSound PlayDTMFStringL left with error = %d"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   568
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   569
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   570
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   571
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   572
		if (iCallbackError != iExpectedValue)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   573
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   574
			ERR_PRINTF3 (_L("DevSound ToneFinished returned %d, expected %d"), iCallbackError, iExpectedValue);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   575
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   576
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   577
		if (iCallbackArray[EToneFinished] != 1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   578
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   579
			ERR_PRINTF2 (_L("DevSound ToneFinished was called %d times, expected 1"), iCallbackArray[EToneFinished]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   580
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   581
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   582
		TInt total = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   583
		for (TInt i = EInitComplete; i < EDeviceMsg; i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   584
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   585
			total += iCallbackArray[i];
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   586
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   587
		if (total > 1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   588
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   589
			ERR_PRINTF2 (_L("DevSound called %d callbacks, expected 1"), total);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   590
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   591
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   592
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   593
	return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   594
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   595
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   596
//------------------------------------------------------------------	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   597
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   598
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   599
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   600
 * DoTestStepPreamble
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   601
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   602
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   603
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   604
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   605
TVerdict CTestStepSDevSoundPlayDualTone::DoTestStepPreambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   606
	{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   607
	//Install the Active Scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   608
	iAS = new (ELeave) CActiveScheduler;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   609
	CActiveScheduler::Install (iAS);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   610
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   611
	iAL= new(ELeave)CActiveListener;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   612
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   613
	INFO_PRINTF1(_L("Creating DevSound Object"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   614
	TRAPD(err, iMMFDevSound = CMMFDevSound::NewL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   615
	if (err)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   616
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   617
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   618
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   619
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   620
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   621
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   622
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   623
	}	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   624
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   625
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   626
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   627
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   628
 * CTestStepSDevSoundPlayDualTone
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   629
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   630
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   631
CTestStepSDevSoundPlayDualTone::CTestStepSDevSoundPlayDualTone(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   632
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   633
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   634
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   635
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   636
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   637
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   638
 * DoTestStepL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   639
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   640
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   641
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   642
TVerdict CTestStepSDevSoundPlayDualTone::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   643
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   644
	TInt freq1 = 100;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   645
	TInt freq2 = 200;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   646
	TTimeIntervalMicroSeconds dur(2000000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   647
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   648
	INFO_PRINTF1(_L("Testing Dual Tone Playback"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   649
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   650
	//Initialize
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   651
	TVerdict initializeOK = InitializeDevSound(EMMFStateTonePlaying);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   652
	if (initializeOK != EPass)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   653
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   654
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   655
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   656
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   657
	iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   658
	iExpectedValue = KErrUnderflow;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   659
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   660
	iCallbackError = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   661
	iCallbackArray.Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   662
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   663
	// Set request active
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   664
	iAL->InitialiseActiveListener();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   665
	INFO_PRINTF1(_L("Playing Dual Tone"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   666
	TRAPD(err, iMMFDevSound->PlayDualToneL(freq1, freq2, dur));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   667
	// Start the active scheduler and catch the callback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   668
 	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   669
	if (err)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   670
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   671
		WARN_PRINTF2 (_L("DevSound PlayDualToneL left with error = %d"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   672
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   673
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   674
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   675
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   676
		if (iCallbackError != iExpectedValue)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   677
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   678
			ERR_PRINTF3 (_L("DevSound ToneFinished returned %d, expected %d"), iCallbackError, iExpectedValue);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   679
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   680
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   681
		if (iCallbackArray[EToneFinished] != 1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   682
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   683
			ERR_PRINTF2 (_L("DevSound ToneFinished was called %d times, expected 1"), iCallbackArray[EToneFinished]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   684
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   685
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   686
		TInt total = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   687
		for (TInt i = EInitComplete; i < EDeviceMsg; i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   688
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   689
			total += iCallbackArray[i];
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   690
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   691
		if (total > 1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   692
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   693
			ERR_PRINTF2 (_L("DevSound called %d callbacks, expected 1"), total);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   694
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   695
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   696
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   697
	return EPass;
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
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   702
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   703
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   704
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   705
 * DigitalPlayback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   706
 * @param aNumSamples
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   707
 * @param aFilename
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   708
 * @param aDataType
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   709
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   710
 *	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   711
 */	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   712
TVerdict CTestStepSDevSoundPlayEOFPCM16::DigitalPlayback(TInt aNumSamples, TDesC& aFilename, TFourCC& aDataType)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   713
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   714
	TVerdict initializeOK = InitializeDevSound(aDataType, EMMFStatePlaying);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   715
	if (initializeOK != EPass)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   716
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   717
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   718
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   719
	SetVolume(iMMFDevSound->MaxVolume());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   720
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   721
	//Get a buffer to fill
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   722
	initializeOK = PlayInit();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   723
	if (initializeOK != EPass)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   724
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   725
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   726
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   727
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   728
	TInt error = iFs.Connect();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   729
	if (error != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   730
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   731
		ERR_PRINTF2 (_L("Could not connect to Filesystem. Error is %d"), error);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   732
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   733
		}	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   734
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   735
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   736
	TInt err = iFile.Open(iFs, aFilename, EFileRead);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   737
	if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   738
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   739
		ERR_PRINTF2 (_L("Could not open input file. Error is %d"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   740
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   741
		}		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   742
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   743
	TInt bufferCount = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   744
	if (aNumSamples < 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   745
		{// Play to EOF
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   746
		while (initializeOK == KErrNone && iCallbackError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   747
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   748
			//read sizeof buffer from file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   749
			CMMFDataBuffer*  buffer = STATIC_CAST (CMMFDataBuffer*, iBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   750
			iFile.Read(buffer->Data());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   751
			if (buffer->Data().Length()!= buffer->RequestSize())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   752
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   753
				INFO_PRINTF3(_L("Data length copied from file = %d. Expected %d. Must be EOF"), buffer->Data().Length(), buffer->RequestSize());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   754
				iBuffer->SetLastBuffer(ETrue);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   755
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   756
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   757
			//DevSound Play
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   758
			initializeOK = PlayData();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   759
			bufferCount ++;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   760
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   761
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   762
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   763
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   764
		while (bufferCount < aNumSamples && initializeOK  == KErrNone && iCallbackError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   765
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   766
			//read sizeof buffer from file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   767
			CMMFDataBuffer* buffer = STATIC_CAST (CMMFDataBuffer*, iBuffer);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   768
			iFile.Read(buffer->Data());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   769
			if (buffer->Data().Length()!= buffer->RequestSize())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   770
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   771
				INFO_PRINTF3(_L("Data length copied from file = %d. Expected %d. Must be EOF"), buffer->Data().Length(), buffer->RequestSize());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   772
				iBuffer->SetLastBuffer(ETrue);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   773
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   774
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   775
			//DevSound Play
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   776
			initializeOK = PlayData();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   777
			bufferCount ++;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   778
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   779
		TRequestStatus* stat = &iAL->iStatus;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   780
		User::WaitForRequest(*stat);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   781
		User::RequestComplete(stat, KErrNone);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   782
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   783
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   784
		iFile.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   785
		iFs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   786
		if (initializeOK != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   787
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   788
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   789
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   790
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   791
		if (aNumSamples >= 0 && bufferCount != aNumSamples)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   792
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   793
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   794
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   795
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   796
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   797
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   798
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   799
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   800
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   801
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   802
 * DoTestStepPreamble
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   803
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   804
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   805
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   806
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   807
TVerdict CTestStepSDevSoundPlayEOFPCM16::DoTestStepPreambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   808
	{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   809
	//Install the Active Scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   810
	iAS = new (ELeave) CActiveScheduler;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   811
	CActiveScheduler::Install (iAS);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   812
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   813
	iAL= new(ELeave)CActiveListener;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   814
	INFO_PRINTF1(_L("Creating DevSound Object"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   815
	TRAPD(err, iMMFDevSound = CMMFDevSound::NewL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   816
	if (err)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   817
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   818
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   819
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   820
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   821
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   822
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   823
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   824
	}	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   825
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   826
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   827
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   828
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   829
 * CTestStepSDevSoundPlayEOFPCM16
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   830
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   831
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   832
CTestStepSDevSoundPlayEOFPCM16::CTestStepSDevSoundPlayEOFPCM16(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   833
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   834
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   835
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   836
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   837
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   838
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   839
 * DoTestStepL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   840
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   841
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   842
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   843
TVerdict CTestStepSDevSoundPlayEOFPCM16::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   844
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   845
	INFO_PRINTF1(_L("Testing DevSound Digital Audio Playback to EOF"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   846
	iCallbackError = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   847
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   848
	TFileName filename = _L("C:\\sdevsoundinttestdata\\PCM_08_16_m.raw");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   849
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   850
	TFourCC pcm16(KMMFFourCCCodePCM16); //default to pcm16 data type
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   851
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   852
	return DigitalPlayback (-1, filename, pcm16);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   853
	}	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   854
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   855
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   856
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   857
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   858
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   859
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   860
 * CTestStepSDevSoundPlayFile
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   861
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   862
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   863
CTestStepSDevSoundPlayFile::CTestStepSDevSoundPlayFile(const TDesC& aTestName, const TDesC& aKeyName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   864
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   865
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   866
	iKeyFileName = aKeyName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   867
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   868
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   869
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   870
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   871
 * MapcInitComplete
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   872
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   873
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   874
void CTestStepSDevSoundPlayFile::MapcInitComplete(TInt aError, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   875
								const TTimeIntervalMicroSeconds & )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   876
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   877
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   878
	INFO_PRINTF1( _L("MMdaAudioPlayerCallback Init Complete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   879
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   880
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   881
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   882
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   883
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   884
 * MapcPlayComplete
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   885
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   886
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   887
void CTestStepSDevSoundPlayFile::MapcPlayComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   888
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   889
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   890
	INFO_PRINTF1( _L("MMdaAudioPlayerCallback Play Complete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   891
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   892
	}	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   893
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   894
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   895
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   896
 * DoTestStepL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   897
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   898
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   899
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   900
TVerdict CTestStepSDevSoundPlayFile::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   901
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   902
	//Install the Active Scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   903
	iAS = new (ELeave) CActiveScheduler;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   904
	CActiveScheduler::Install (iAS);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   905
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   906
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   907
	TVerdict res = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   908
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   909
	TBuf<KSizeBuf>	filename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   910
	TPtrC			filename1; 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   911
	if(!GetStringFromConfig(_L("SectionTen"),iKeyFileName,filename1))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   912
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   913
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   914
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   915
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   916
	GetDriveName(filename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   917
	filename.Append(filename1);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   918
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   919
	CMdaAudioPlayerUtility* player = CMdaAudioPlayerUtility::NewFilePlayerL(filename1,*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   920
	CleanupStack::PushL(player);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   921
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   922
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   923
	if (iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   924
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   925
		player->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   926
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   927
		if(iError == KErrNone) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   928
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   929
			res = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   930
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   931
		else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   932
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   933
			INFO_PRINTF1(_L("Failed during playing the audio"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   934
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   935
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   936
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   937
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   938
		INFO_PRINTF2(_L("Failed during opening the file. Error =  %d "), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   939
		}			
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   940
	CleanupStack::PopAndDestroy(player);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   941
	return res;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   942
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   943
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   944
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   945
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   946
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   947
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   948
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   949
 * SetupFormatL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   950
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   951
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   952
void CTestStepSDevSoundRecordFileBase::SetupFormatL(const TTestFormat aFormat)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   953
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   954
	if(iFormat)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   955
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   956
		delete iFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   957
		iFormat = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   958
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   959
	if(iCodec)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   960
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   961
		delete iCodec;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   962
		iCodec = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   963
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   964
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   965
	switch(aFormat)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   966
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   967
		case EPcm16Wav:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   968
			iFormat = new (ELeave) TMdaWavClipFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   969
			iCodec = new (ELeave) TMdaPcmWavCodec;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   970
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   971
		case EMulawRaw:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   972
			iFormat = new (ELeave) TMdaRawAudioClipFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   973
			iCodec = new (ELeave) TMdaAlawRawAudioCodec;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   974
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   975
		case E16BitAu:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   976
			iFormat = new (ELeave) TMdaAuClipFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   977
			iCodec = new (ELeave) TMdaAuCodec;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   978
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   979
		case EAlawAu:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   980
			iFormat = new (ELeave) TMdaAuClipFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   981
			iCodec = new (ELeave) TMdaAlawAuCodec;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   982
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   983
		case EPcm16Au:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   984
			iFormat = new (ELeave) TMdaAuClipFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   985
			iCodec = new (ELeave) TMdaPcm16BitAuCodec;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   986
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   987
		case EImaAdpcmWav:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   988
			iFormat = new (ELeave) TMdaWavClipFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   989
			iCodec = new (ELeave) TMdaImaAdpcmWavCodec;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   990
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   991
		case EAlawWav:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   992
			iFormat = new (ELeave) TMdaWavClipFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   993
			iCodec = new (ELeave) TMdaAlawWavCodec;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   994
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   995
		case EPcmU16:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   996
			iFormat = new (ELeave) TMdaRawAudioClipFormat();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   997
			iCodec = new (ELeave) TMdaUB16RawAudioCodec();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   998
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   999
		case EPcmU8:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1000
			iFormat = new (ELeave) TMdaRawAudioClipFormat();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1001
			iCodec = new (ELeave) TMdaU8PcmRawAudioCodec();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1002
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1003
		case EImasPcmWav:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1004
			iFormat = new (ELeave) TMdaWavClipFormat();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1005
			iCodec = new (ELeave) TMdaImaAdpcmWavCodec();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1006
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1007
		case EPcm8:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1008
			iFormat = new (ELeave) TMdaWavClipFormat();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1009
			iCodec = new (ELeave) TMdaPcmWavCodec(TMdaPcmWavCodec::E8BitPcm);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1010
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1011
		case EEpocWve:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1012
		case ENone:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1013
		default:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1014
		// will create an inconlusive result as preamble leaves.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1015
			iFormat = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1016
			iCodec = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1017
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1018
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1019
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1020
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1021
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1022
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1023
 * CTestStepSDevSoundRecordFile
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
CTestStepSDevSoundRecordFileBase::CTestStepSDevSoundRecordFileBase(const TDesC& aTestName, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1028
														   		   const TDesC& aSectName,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1029
														   	       const TDesC& aKeyName, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1030
														   		   const TTestFormat aFormat, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1031
														   		   const TBool aCreateFile)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1032
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1033
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1034
	iHeapSize = 200000;		// playback part of test loads whole sound file into buffer, so need large heap
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1035
	iSectName = aSectName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1036
	iKeyName = aKeyName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1037
	iTestFormat = aFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1038
	iCreateFile = aCreateFile;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1039
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1040
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1041
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1042
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1043
 * ~CTestStepSDevSoundRecordFile
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1044
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1045
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1046
CTestStepSDevSoundRecordFileBase::~CTestStepSDevSoundRecordFileBase()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1047
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1048
	delete iCodec;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1049
	iCodec = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1050
	delete iFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1051
	iFormat = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1052
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1053
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1054
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1055
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1056
 * CTestStepSDevSoundRecordFile Close
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1057
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1058
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1059
void CTestStepSDevSoundRecordFileBase::Close()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1060
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1061
	delete iCodec;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1062
	iCodec = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1063
	delete iFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1064
	iFormat = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1065
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1066
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1067
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1068
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1069
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1070
 * DoTestStepPreambleL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1071
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1072
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1073
TVerdict CTestStepSDevSoundRecordFileBase::DoTestStepPreambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1074
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1075
	TVerdict ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1076
	SetupFormatL(iTestFormat);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1077
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1078
	if(iCreateFile)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1079
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1080
		// Make sure file doesn't exist (maybe from a previous test)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1081
		TParse fullFileName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1082
		TBuf<KSizeBuf>	filename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1083
		TPtrC			filename1; 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1084
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1085
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1086
		if(!GetStringFromConfig(iSectName, iKeyName, filename1))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1087
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1088
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1089
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1090
		GetDriveName(filename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1091
		filename.Append(filename1);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1092
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1093
		// parse the filenames
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1094
		if(!fullFileName.Set(filename, &KDefault, NULL))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1095
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1096
			RFs fs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1097
			User::LeaveIfError(fs.Connect());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1098
			fs.SetAtt(fullFileName.FullName(), 0, KEntryAttReadOnly); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1099
			TInt error = fs.Delete(fullFileName.FullName());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1100
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1101
			if(error == KErrPathNotFound)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1102
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1103
				error = fs.MkDirAll(fullFileName.DriveAndPath());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1104
				INFO_PRINTF2(_L("Path for file %S was been created"), &fullFileName.FullName());	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1105
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1106
			else  if(error == KErrNotFound)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1107
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1108
				INFO_PRINTF2(_L("No need to delete %S"), &fullFileName.FullName());	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1109
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1110
			else if(error==KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1111
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1112
				INFO_PRINTF2(_L("Deleted %S"), &fullFileName.FullName());	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1113
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1114
			else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1115
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1116
				ret = EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1117
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1118
			fs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1119
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1120
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1121
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1122
	if(ret == EInconclusive)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1123
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1124
		return ret;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1125
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1126
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1127
	return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1128
	}
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
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1133
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1134
 * DoTestStepL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1135
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1136
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1137
TVerdict CTestStepSDevSoundRecordFileBase::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1138
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1139
	INFO_PRINTF1( _L("TestRecorder"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1140
	TVerdict verdict = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1141
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1142
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1143
	TPtrC	filename; 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1144
	if(!GetStringFromConfig(iSectName, iKeyName, filename))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1145
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1146
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1147
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1148
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1149
	iAS = new (ELeave) CActiveScheduler;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1150
	CActiveScheduler::Install (iAS);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1151
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1152
	CMdaAudioRecorderUtility* recUtil = CMdaAudioRecorderUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1153
	CleanupStack::PushL(recUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1154
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1155
	TMdaFileClipLocation location(filename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1156
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1157
	recUtil->OpenL(&location,iFormat,iCodec,&iAudioSettings);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1158
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1159
	INFO_PRINTF1( _L("Open a new file for recording"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1160
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1161
	if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1162
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1163
		INFO_PRINTF2(_L("Error opening file for recording iError = %d"), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1164
		recUtil->Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1165
		CleanupStack::PopAndDestroy(recUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1166
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1167
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1168
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1169
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1170
	recUtil->RecordL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1171
	CActiveScheduler::Start(); // open -> record
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1172
	INFO_PRINTF1( _L("Recording"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1173
	User::After(KFiveSeconds);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1174
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1175
	verdict = CheckRecordError();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1176
	if (verdict == EFail)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1177
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1178
		INFO_PRINTF2( _L("Fail to do recording with error: %d"), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1179
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1180
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1181
	recUtil->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1182
	User::After(KOneSecond);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1183
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1184
	recUtil->Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1185
	CleanupStack::PopAndDestroy(recUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1186
	recUtil = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1187
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1188
	return	verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1189
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1190
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1191
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1192
TVerdict CTestStepSDevSoundRecordFileBase::CheckRecordError()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1193
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1194
	return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1195
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1196
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1197
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1198
void CTestStepSDevSoundRecordFileBase::MoscoStateChangeEvent(CBase* /*aObject*/, TInt /*aPreviousState*/, TInt /*aCurrentState*/, TInt /*aErrorCode*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1199
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1200
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1201
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1202
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1203
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1204
CTestStepSDevSoundRecordFile::CTestStepSDevSoundRecordFile(const TDesC& aTestName, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1205
														   const TDesC& aSectName,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1206
														   const TDesC& aKeyName, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1207
														   const TTestFormat aFormat, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1208
														   const TBool aCreateFile)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1209
							 : CTestStepSDevSoundRecordFileBase(aTestName, aSectName, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1210
					  	    		  					   		aKeyName, aFormat, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1211
					  	    		  					   		aCreateFile)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1212
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1213
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1214
					  	    		  					   	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1215
					  	    		  					   	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1216
CTestStepSDevSoundRecordFile::~CTestStepSDevSoundRecordFile()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1217
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1218
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1219
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1220
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1221
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1222
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1223
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1224
 * MoscoStateChangeEvent
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1225
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1226
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1227
void CTestStepSDevSoundRecordFile::MoscoStateChangeEvent(CBase* /*aObject*/, TInt /*aPreviousState*/, TInt /*aCurrentState*/, TInt aErrorCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1228
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1229
	iError = aErrorCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1230
	INFO_PRINTF1( _L("CTestStepSDevSoundRecordFile : MMdaObjectStateChangeObserver Callback for CMdaAudioRecorderUtility complete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1231
	INFO_PRINTF2( _L("iError %d "), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1232
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1233
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1234
	}	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1235
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1236
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1237
TVerdict CTestStepSDevSoundRecordFile::CheckRecordError()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1238
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1239
	if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1240
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1241
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1242
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1243
	return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1244
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1245
			
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1246
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1247
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1248
CTestStepSDevSoundRecordFileNoCap::CTestStepSDevSoundRecordFileNoCap(const TDesC& aTestName, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1249
														   const TDesC& aSectName,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1250
														   const TDesC& aKeyName, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1251
														   const TTestFormat aFormat, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1252
														   const TBool aCreateFile)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1253
							 : CTestStepSDevSoundRecordFileBase(aTestName, aSectName, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1254
					  	    		  					   		aKeyName, aFormat, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1255
					  	    		  					   		aCreateFile)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1256
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1257
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1258
						  	    		  					   	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1259
					  	    		  					   	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1260
CTestStepSDevSoundRecordFileNoCap::~CTestStepSDevSoundRecordFileNoCap()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1261
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1262
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1263
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1264
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1265
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1266
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1267
 * MoscoStateChangeEvent
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1268
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1269
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1270
void CTestStepSDevSoundRecordFileNoCap::MoscoStateChangeEvent(CBase* /*aObject*/, TInt /*aPreviousState*/, TInt aCurrentState, TInt aErrorCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1271
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1272
	iError = aErrorCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1273
	INFO_PRINTF1( _L("CTestStepSDevSoundRecordFileNoCap : MMdaObjectStateChangeObserver Callback for CMdaAudioRecorderUtility complete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1274
	INFO_PRINTF2( _L("iError %d "), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1275
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1276
	if (aCurrentState == CMdaAudioClipUtility::EOpen)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1277
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1278
		CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1279
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1280
	}	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1281
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1282
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1283
TVerdict CTestStepSDevSoundRecordFileNoCap::CheckRecordError()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1284
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1285
	if (iError != KErrPermissionDenied)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1286
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1287
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1288
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1289
	return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1290
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1291
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1292
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1293
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1294
 * TestPlayData
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1295
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1296
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1297
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1298
TVerdict CTestStepSDevSoundPlayWithoutInitialize::TestPlayData()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1299
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1300
	iCallbackArray.Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1301
	iAL->InitialiseActiveListener();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1302
	INFO_PRINTF1(_L("Playing Data to a Buffer"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1303
	iMMFDevSound->PlayData();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1304
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1305
	//fail the test if it comes to this point
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1306
	INFO_PRINTF1(_L("Panic Test Step does not panic"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1307
	return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1308
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1309
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1310
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1311
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1312
 * DoTestStepPreamble
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1313
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1314
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1315
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1316
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1317
TVerdict CTestStepSDevSoundPlayWithoutInitialize::DoTestStepPreambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1318
	{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1319
	//Install the Active Scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1320
	iAS = new (ELeave) CActiveScheduler;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1321
	CActiveScheduler::Install (iAS);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1322
	iAL= new(ELeave)CActiveListener;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1323
	INFO_PRINTF1(_L("Creating DevSound Object"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1324
	TRAPD(err, iMMFDevSound = CMMFDevSound::NewL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1325
	if (err)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1326
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1327
		INFO_PRINTF2( _L("Error in Creating Devsound %d "), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1328
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1329
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1330
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1331
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1332
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1333
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1334
	}	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1335
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1336
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1337
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1338
 * CTestStepSDevSoundPlayWithoutInitialize
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1339
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1340
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1341
CTestStepSDevSoundPlayWithoutInitialize::CTestStepSDevSoundPlayWithoutInitialize(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1342
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1343
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1344
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1345
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1346
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1347
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1348
 * DoTestStepL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1349
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1350
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1351
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1352
TVerdict CTestStepSDevSoundPlayWithoutInitialize::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1353
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1354
	INFO_PRINTF1(_L("Try playing buffer without initializing the play at the first place and check if it panics"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1355
	iCallbackError = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1356
	TFourCC pcm16(KMMFFourCCCodePCM16); //default to pcm16 data type
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1357
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1358
	TVerdict initializeOK = InitializeDevSound(pcm16, EMMFStatePlaying);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1359
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1360
	if (initializeOK != EPass)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1361
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1362
		INFO_PRINTF1( _L("Error in Initializing Devsound"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1363
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1364
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1365
	SetVolume(iMMFDevSound->MaxVolume());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1366
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1367
	//DEF051386 - Try playing without getting a buffer from devsound through the initializing and check if it panics
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1368
	iTestStepResult = TestPlayData();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1369
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1370
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1371
	}	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1372
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1373
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1374
 * RecordData
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1375
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1376
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1377
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1378
TVerdict CTestStepSDevSoundRecordWithoutInitialize::TestRecordData()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1379
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1380
	iCallbackArray.Reset();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1381
	iAL->InitialiseActiveListener();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1382
	INFO_PRINTF1(_L("Recording Data to a Buffer"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1383
	iMMFDevSound->RecordData();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1384
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1385
	//fail the test if it comes to this point
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1386
	INFO_PRINTF1(_L("Panic Test Step does not panic"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1387
	return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1388
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1389
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1390
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1391
 * DoTestStepPreamble
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1392
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1393
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1394
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1395
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1396
TVerdict CTestStepSDevSoundRecordWithoutInitialize::DoTestStepPreambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1397
	{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1398
	//Install the Active Scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1399
	iAS = new (ELeave) CActiveScheduler;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1400
	CActiveScheduler::Install (iAS);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1401
	iAL= new(ELeave)CActiveListener;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1402
	INFO_PRINTF1(_L("Creating DevSound Object"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1403
	TRAPD(err, iMMFDevSound = CMMFDevSound::NewL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1404
	if (err)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1405
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1406
		INFO_PRINTF2( _L("Error in Creating Devsound %d "), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1407
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1408
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1409
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1410
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1411
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1412
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1413
	}	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1414
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1415
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1416
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1417
 * CTestStepSDevSoundRecordWithoutInitialize
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1418
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1419
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1420
CTestStepSDevSoundRecordWithoutInitialize::CTestStepSDevSoundRecordWithoutInitialize(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1421
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1422
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1423
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1424
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1425
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1426
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1427
 * DoTestStepL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1428
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1429
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1430
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1431
TVerdict CTestStepSDevSoundRecordWithoutInitialize::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1432
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1433
	INFO_PRINTF1(_L("Try recording buffer without initializing the record and check if it panics"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1434
	iCallbackError = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1435
	TFourCC pcm16(KMMFFourCCCodePCM16); //default to pcm16 data type
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1436
	TVerdict initializeOK = InitializeDevSound(pcm16, EMMFStateRecording);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1437
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1438
	if (initializeOK != EPass)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1439
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1440
		INFO_PRINTF1( _L("Error in Initializing Devsound"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1441
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1442
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1443
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1444
	SetVolume(iMMFDevSound->MaxVolume());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1445
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1446
	//DEF051386 - Try recording without getting a buffer from devsound through initializing and check if it panics.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1447
	iTestStepResult = TestRecordData();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1448
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1449
	return iTestStepResult;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1450
	}	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1451
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1452
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1453
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1454
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1455
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1456
 * DoTestStepPreamble
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1457
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1458
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1459
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1460
TVerdict CTestStepSDevSoundClientThreadCap::DoTestStepPreambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1461
	{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1462
	//Install the Active Scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1463
	iAS = new (ELeave) CActiveScheduler;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1464
	CActiveScheduler::Install (iAS);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1465
	iAL= new(ELeave)CActiveListener;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1466
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1467
	INFO_PRINTF1(_L("Creating DevSound Object"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1468
	TRAPD(err, iMMFDevSound = CMMFDevSound::NewL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1469
	if (err)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1470
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1471
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1472
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1473
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1474
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1475
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1476
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1477
	}	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1478
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1479
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1480
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1481
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1482
 * CTestStepSDevSoundClientThreadCap
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1483
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1484
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1485
CTestStepSDevSoundClientThreadCap::CTestStepSDevSoundClientThreadCap(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1486
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1487
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1488
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1489
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1490
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1491
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1492
 * DoTestStepL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1493
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1494
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1495
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1496
TVerdict CTestStepSDevSoundClientThreadCap::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1497
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1498
	INFO_PRINTF1(_L("Testing SetClientThread()"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1499
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1500
#ifndef SYMBIAN_MULTIMEDIA_A3FDEVSOUND
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1501
	//Initialize
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1502
	TVerdict initializeOK = InitializeDevSound(EMMFStateTonePlaying);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1503
	if (initializeOK  != EPass)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1504
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1505
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1506
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1507
#endif
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1508
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1509
	//Set client thread with current thread Id
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1510
	RThread thisThread;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1511
	TInt err = iMMFDevSound->SetClientThreadInfo(thisThread.Id());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1512
	thisThread.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1513
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1514
	if(err != KErrPermissionDenied)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1515
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1516
		INFO_PRINTF2(_L("SetClientThread() returns error code [%d]"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1517
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1518
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1519
	return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1520
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1521
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1522
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1523
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1524
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1525
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1526
 * DoTestStepPreamble
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1527
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1528
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1529
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1530
TVerdict CTestStepSDevSoundClientThreadInvalidId::DoTestStepPreambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1531
	{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1532
	//Install the Active Scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1533
	iAS = new (ELeave) CActiveScheduler;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1534
	CActiveScheduler::Install (iAS);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1535
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1536
	iAL= new(ELeave)CActiveListener;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1537
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1538
	INFO_PRINTF1(_L("Creating DevSound Object"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1539
	TRAPD(err, iMMFDevSound = CMMFDevSound::NewL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1540
	if (err)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1541
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1542
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1543
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1544
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1545
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1546
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1547
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1548
	}	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1549
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1550
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1551
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1552
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1553
 * CTestStepSDevSoundClientThreadCap
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1554
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1555
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1556
CTestStepSDevSoundClientThreadInvalidId::CTestStepSDevSoundClientThreadInvalidId(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1557
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1558
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1559
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1560
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1561
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1562
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1563
 * DoTestStepL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1564
 * @result TVerdict
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1565
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1566
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1567
TVerdict CTestStepSDevSoundClientThreadInvalidId::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1568
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1569
	INFO_PRINTF1(_L("Testing SetClientThread() with invalid thread Id"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1570
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1571
#ifndef SYMBIAN_MULTIMEDIA_A3FDEVSOUND
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1572
	TVerdict initializeOK = InitializeDevSound(EMMFStateTonePlaying);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1573
	if (initializeOK  != EPass)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1574
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1575
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1576
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1577
#endif
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1578
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1579
	//Set client thread with invalid thread Id
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1580
	TInt err = iMMFDevSound->SetClientThreadInfo(123456789);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1581
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1582
	if(err != KErrNotFound)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1583
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1584
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1585
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1586
	return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1587
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1588