mmlibs/mmfw/tsrc/mmfintegrationtest/ACLNT/TestConverter.cpp
author hgs
Thu, 07 Oct 2010 22:34:12 +0100
changeset 0 b8ed18f6c07b
permissions -rw-r--r--
2010wk40
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     1
// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     2
// All rights reserved.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     7
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     8
// Initial Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    10
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    11
// Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    12
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    13
// Description:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    14
// This program is designed the test of the MMF_ACLNT.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
// 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    16
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    17
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    18
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    19
 @file TestConverter.cpp
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
#include "TestConverter.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
#include "mmfwavformat.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
#include <mmfformatimplementationuids.hrh>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
#include <mdaaudiosampleplayer.h>	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
#include "WavDecodeUtility.h"		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
// from "mmfauformat.h" :
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
const TUint KAuFileUncompressedDataHeaderSize = 24 ; // 6 times 4 byte quantities
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
_LIT(KAclntConConfigKeyName, "configAudio");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
_LIT(KAclntConDurationKeyName, "configAudio2");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
_LIT(KAclntConPositionKeyName, "configAudio3");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
_LIT(KAclntConQueryKeyName, "configAudio4");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
_LIT(KAclntConDestBitRateKeyName, "configAudio5");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
_LIT(KAclntConDestSampleRateKeyName, "configAudio6");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
_LIT(KAclntConDestNumberChannelsKeyName, "configAudio7");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
_LIT(KAclntConDestDataTypeKeyName, "configAudio8");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
_LIT(KAclntConDestFormatKeyName, "configAudio9");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
_LIT(KAclntConSourceInfoKeyName, "configAudio10");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
CTestMmfAclntDoConv::CTestMmfAclntDoConv(const TDesC& aTestName, const TDesC& aSectName, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
										 const TDesC& aKeyName, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
										 const TDesC& aSectName2, const TDesC& aKeyName2,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
										 TInt	aBits,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
										 FormatSpec aFormat)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
	// Each test step initialises it's own name
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
	iSectName = aSectName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
	iKeyName = aKeyName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
	iSectName2 = aSectName2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
	iKeyName2 = aKeyName2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
	iBits = aBits;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
	iFormat = aFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
CTestMmfAclntDoConv* CTestMmfAclntDoConv::NewL(const TDesC& aTestName, const TDesC& aSectName, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
											   const TDesC& aKeyName, const TDesC& aSectName2, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
											   const TDesC& aKeyName2,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
											   TInt	aBits,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
											   FormatSpec aFormat)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    70
	CTestMmfAclntDoConv* self = new (ELeave) CTestMmfAclntDoConv(aTestName, aSectName, aKeyName, aSectName2, aKeyName2, aBits, aFormat);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    71
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    72
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
void CTestMmfAclntDoConv::MoscoStateChangeEvent(CBase* aObject, TInt aPreviousState, TInt aCurrentState, TInt aErrorCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
	iError = aErrorCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
	iObject = aObject;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
	iPreviousState = aPreviousState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
	iCurrentState = aCurrentState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
	INFO_PRINTF1( _L("CTestMmfAclntDoConv : MMdaObjectStateChangeObserver Callback for CMdaAudioConvertUtility complete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
	INFO_PRINTF4( _L("iError %d iPreviousState %d iCurrentState %d"), iError, iPreviousState, iCurrentState);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
TVerdict CTestMmfAclntDoConv::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
	INFO_PRINTF1( _L("TestConverter : Do Convert"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
	TBuf<KSizeBuf>	filename1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
	TPtrC filename11, filename2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
	if ((!GetStringFromConfig(iSectName, iKeyName, filename11)) || 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
		(!GetStringFromConfig( iSectName2, iKeyName2, filename2)))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    95
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    96
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    97
	GetDriveName(filename1);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    98
	filename1.Append(filename11);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    99
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
	//delete previos output file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
	RFs	theFs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
	User::LeaveIfError(theFs.Connect());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
	theFs.Delete(filename2);	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
	theFs.MkDirAll(filename2);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   106
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   107
	theFs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   108
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   109
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   110
	TMdaUL16RawAudioCodec	theCodecUnsupported;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   111
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
	TMdaPcmWavCodec			theCodecWav8Bit(TMdaPcmWavCodec::E8BitPcm);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
	TMdaPcmWavCodec			theCodecWav16Bit(TMdaPcmWavCodec::E16BitPcm);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
	TMdaPackage*			theCodec = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
	switch(iBits)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
		case 0:	theCodec = &theCodecWav8Bit; break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
		case 1:	theCodec = &theCodecWav16Bit; break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
		case -1:	theCodec = &theCodecUnsupported; break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
		default: break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
	if(theCodec == NULL)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   126
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   127
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   128
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   129
	CMdaAudioConvertUtility* converter = CMdaAudioConvertUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   130
	CleanupStack::PushL(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   131
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   132
	TMdaFileClipLocation	theLocation(filename2);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
	TMdaWavClipFormat		theMdaFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
	TMmfAclntWavEncodeClipFormat theMmfFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
	TMdaClipFormat* useFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
	if(iFormat == MdaFormatSpec)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
		useFormat = &theMdaFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   139
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   140
		useFormat = &theMmfFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
		converter->OpenL(filename1,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
						&theLocation,	// Normally file or descriptor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
						useFormat,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
						theCodec);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
	INFO_PRINTF1( _L("Initialise CMdaAudioConvertUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
		ret = DoTestL(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
	else if(iError != KErrNone && iBits == -1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   153
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   154
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   155
	if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   156
		ERR_PRINTF2( _L("CMdaAudioConvertUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   157
	CleanupStack::PopAndDestroy(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   158
	User::After(KOneSecond);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   159
	return ret;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   160
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   161
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   162
TVerdict CTestMmfAclntDoConv::DoTestL(CMdaAudioConvertUtility* aConverter)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   163
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   164
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   165
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   166
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   167
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   168
	// Convert 44100 -> 8000 sample rate
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   169
	const TUint KAclntDestSampleRate = 8000;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   170
	aConverter->SetDestinationSampleRateL(KAclntDestSampleRate);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   171
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   172
	// Output as AU file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   173
	aConverter->SetDestinationFormatL(TUid::Uid(KMmfUidFormatAUWrite));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   174
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   175
	aConverter->ConvertL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   176
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   177
	INFO_PRINTF1( _L("Convert CMdaAudioConvertUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   178
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   179
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   180
	// XXX Improve test. e.g. check that a valid AU file is written
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   181
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   182
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   183
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   184
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   185
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   186
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   187
		INFO_PRINTF2(_L("Error returned in MoscoStateChangeEvent callback: %d"), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   188
		ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   189
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   190
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   191
	if (ret == EPass)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   192
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   193
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   194
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   195
		// XXX Improve test. e.g. check that a valid AU file is written
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   196
		if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   197
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   198
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   199
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   200
		else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   201
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   202
			INFO_PRINTF2(_L("Error returned in MoscoStateChangeEvent callback: %d"), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   203
			ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   204
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   205
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   206
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   207
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   208
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   209
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   210
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   211
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   212
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   213
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   214
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   215
CTestMmfAclntConCloseOpen::CTestMmfAclntConCloseOpen(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   216
	:CTestMmfAclntConConfig(aTestName, EPcm16Wav, EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   217
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   218
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   219
CTestMmfAclntConCloseOpen* CTestMmfAclntConCloseOpen::NewL(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   220
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   221
	CTestMmfAclntConCloseOpen* self = new (ELeave) CTestMmfAclntConCloseOpen(aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   222
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   223
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   224
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   225
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   226
 * Open source and destination audio. Close them and open a new source and destination.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   227
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   228
TVerdict CTestMmfAclntConCloseOpen::DoTestL(CMdaAudioConvertUtility* aConverter)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   229
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   230
	INFO_PRINTF1( _L("TestConverter : Close/Open"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   231
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   232
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   233
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   234
	SetupFormatL(iTestFormat);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   235
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   236
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   237
	TPtrC toFilename, fromFilename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   238
	if ((!GetStringFromConfig(_L("SectionOne"), _L("playerAudioFile"), fromFilename)) || (!GetStringFromConfig(_L("SectionFour"), _L("configAudio"), toFilename)))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   239
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   240
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   241
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   242
	TMdaFileClipLocation location(toFilename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   243
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   244
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   245
	aConverter->Close(); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   246
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   247
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   248
	aConverter->OpenL(fromFilename, &location, iFormat, iCodec, NULL);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   249
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   250
	// wait for open
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   251
	INFO_PRINTF1( _L("Initialise CMdaAudioConvertUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   252
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   253
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   254
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   255
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   256
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   257
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   258
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   259
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   260
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   261
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   262
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   263
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   264
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   265
CTestMmfAclntConWindow::CTestMmfAclntConWindow(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   266
	:CTestMmfAclntConConfig(aTestName, EPcm16Wav, EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   267
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   268
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   269
CTestMmfAclntConWindow* CTestMmfAclntConWindow::NewL(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   270
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   271
	CTestMmfAclntConWindow* self = new (ELeave) CTestMmfAclntConWindow(aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   272
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   273
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   274
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   275
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   276
 * Set convert window. Enquire window. Delete window
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   277
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   278
TVerdict CTestMmfAclntConWindow::DoTestL(CMdaAudioConvertUtility* aConverter)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   279
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   280
	INFO_PRINTF1( _L("*** Converter set window test\n"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   281
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   282
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   283
	TInt64 temp1, temp2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   284
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   285
	temp1 = aConverter->Duration().Int64()/4;	// set start at first quarter of clip
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   286
	temp2 = TInt64(3) * (aConverter->Duration().Int64()/4);	// set end at 3rd quarter of clip
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   287
	ASSERT(temp2 > temp1);	// temp1 = start, temp2 = end
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   288
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   289
	TInt windowDuration = (I64INT(temp2) - I64INT(temp1));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   290
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   291
	TTimeIntervalMicroSeconds endTime(temp2); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   292
	TTimeIntervalMicroSeconds startTime(temp1);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   293
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   294
	INFO_PRINTF4(_L("StartTime = %d EndTime = %d WindowDuration = %d"),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   295
		I64INT(startTime.Int64()), I64INT(endTime.Int64()), windowDuration);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   296
	aConverter->SetPlayWindow(startTime,endTime);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   297
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   298
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   299
	TRAP(iError,aConverter->SetDestinationNumberOfChannelsL(1));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   300
	if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   301
		return ret ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   302
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   303
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   304
	INFO_PRINTF1( _L("CMdaAudioConvertUtility::ConvertL"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   305
	aConverter->ConvertL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   306
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   307
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   308
	CActiveScheduler::Start();	// initial MoscoStateChangeEvent callback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   309
	if (iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   310
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   311
		CActiveScheduler::Start();	// conversion starts here
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   312
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   313
		if (iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   314
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   315
			// Check file size is as expected
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   316
			TPtrC filename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   317
			if (!GetStringFromConfig(_L("SectionFour"), _L("configAudio"), filename))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   318
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   319
				INFO_PRINTF1(_L("Error getting filename from ini file"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   320
				ret = EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   321
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   322
			else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   323
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   324
				ret = CheckFileSize(filename, KConverterWindowFileSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   325
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   326
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   327
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   328
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   329
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   330
		INFO_PRINTF2(_L("iError = %d"), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   331
		ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   332
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   333
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   334
	// Test clear window
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   335
	if (ret == EPass)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   336
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   337
		INFO_PRINTF1(_L("*** Converter clear window test\n"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   338
		iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   339
		aConverter->ClearPlayWindow();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   340
		aConverter->ConvertL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   341
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   342
		CActiveScheduler::Start();	// initial MoscoStateChangeEvent callback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   343
		if (iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   344
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   345
			CActiveScheduler::Start();	// conversion starts here
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   346
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   347
			if (iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   348
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   349
				TPtrC filename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   350
				if (!GetStringFromConfig(_L("SectionFour"), _L("configAudio"), filename))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   351
					{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   352
					INFO_PRINTF1(_L("Error getting filename from ini file"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   353
					ret = EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   354
					}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   355
				else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   356
					{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   357
					// Second convert will be appended to the first
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   358
					ret = CheckFileSize(filename, KConverterWindowPlusNormalFileSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   359
					}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   360
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   361
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   362
		else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   363
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   364
			INFO_PRINTF2(_L("iError = %d"), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   365
			ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   366
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   367
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   368
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   369
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   370
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   371
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   372
TVerdict CTestMmfAclntConWindow::CheckFileSize(const TDesC& aFilename, const TInt aExpectedSize)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   373
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   374
	TVerdict verdict = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   375
	RFile file;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   376
	RFs fs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   377
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   378
	TInt ret = fs.Connect();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   379
	if (ret != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   380
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   381
		INFO_PRINTF1(_L("Error opening file system!"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   382
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   383
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   384
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   385
	// Check file size matches expected size
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   386
	TInt err = file.Open(fs, aFilename, EFileRead);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   387
	if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   388
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   389
		INFO_PRINTF2(_L("Error opening converted file (%d)"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   390
		verdict = EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   391
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   392
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   393
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   394
		TInt size = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   395
		err = file.Size(size);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   396
		if (err != KErrNone || size != aExpectedSize)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   397
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   398
			if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   399
				INFO_PRINTF2(_L("Error getting file size (%d)"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   400
			else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   401
				INFO_PRINTF3(_L("Converted file size incorrect (expected %d, got %d)"), aExpectedSize, size);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   402
			verdict = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   403
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   404
		else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   405
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   406
			INFO_PRINTF1(_L("Converted file size as expected (test passed)"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   407
			verdict = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   408
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   409
		file.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   410
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   411
	fs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   412
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   413
	return verdict;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   414
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   415
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   416
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   417
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   418
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   419
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   420
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   421
CTestMmfAclntConDuration::CTestMmfAclntConDuration(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   422
	:CTestMmfAclntConConfig(aTestName,EPcm16Wav, EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   423
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   424
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   425
CTestMmfAclntConDuration* CTestMmfAclntConDuration::NewL(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   426
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   427
	CTestMmfAclntConDuration* self = new (ELeave) CTestMmfAclntConDuration(aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   428
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   429
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   430
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   431
void CTestMmfAclntConDuration::GetKeyName(TDes& aDes)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   432
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   433
	aDes = KAclntConDurationKeyName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   434
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   435
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   436
/** Enquire duration
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   437
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   438
TVerdict CTestMmfAclntConDuration::DoTestL(CMdaAudioConvertUtility* aConverter)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   439
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   440
	INFO_PRINTF1( _L("TestConverter : Duration"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   441
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   442
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   443
	TTimeIntervalMicroSeconds duration(KSoundFileLength); // 8 second sound file!
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   444
	//since format+codec have wrrong default values
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   445
	TRAP(iError,aConverter->SetDestinationSampleRateL(8000));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   446
	TRAP(iError,aConverter->SetDestinationNumberOfChannelsL(1));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   447
	//TRAP(iError,aConverter->ConvertL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   448
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   449
	if(KErrNone == iError && (aConverter->Duration() == duration))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   450
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   451
		INFO_PRINTF3(_L("Duration  = %f mkS Record time  =  %f mkS"),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   452
				I64REAL(duration.Int64()), 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   453
				I64REAL(aConverter->RecordTimeAvailable().Int64()));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   454
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   455
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   456
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   457
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   458
		TInt64		durationExpected = duration.Int64();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   459
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   460
		TInt64		durationReceived = aConverter->Duration().Int64();	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   461
		INFO_PRINTF3( _L("Expected duration: %f, received duration: %f"), I64REAL(durationExpected), I64REAL(durationReceived));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   462
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   463
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   464
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   465
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   466
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   467
void CTestMmfAclntConDuration::MoscoStateChangeEvent(CBase* /*aObject*/, TInt /*aPreviousState*/, TInt /*aCurrentState*/, TInt aErrorCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   468
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   469
	iError = aErrorCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   470
	INFO_PRINTF1( _L("CTestMmfAclntDelete : MMdaObjectStateChangeObserver Callback for CMdaAudioConvertUtility complete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   471
	INFO_PRINTF2( _L("iError %d"), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   472
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   473
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   474
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   475
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   476
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   477
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   478
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   479
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   480
CTestMmfAclntConPosition::CTestMmfAclntConPosition(const TDesC& aTestName,const	TTimeIntervalMicroSeconds aPosition)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   481
	:CTestMmfAclntConConfig(aTestName,EPcm16Wav, EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   482
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   483
	iPosition = aPosition;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   484
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   485
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   486
CTestMmfAclntConPosition* CTestMmfAclntConPosition::NewL(const TDesC& aTestName,const TTimeIntervalMicroSeconds aPosition)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   487
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   488
	CTestMmfAclntConPosition* self = new (ELeave) CTestMmfAclntConPosition(aTestName, aPosition);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   489
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   490
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   491
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   492
void CTestMmfAclntConPosition::GetKeyName(TDes& aDes)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   493
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   494
	aDes = KAclntConPositionKeyName;
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
 * Set position and enquire position. Sound is always set to minus one
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   499
 * frame, becuase DevSound has to play something. (Even if set to the end of the clip).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   500
 *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   501
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   502
TVerdict CTestMmfAclntConPosition::DoTestL(CMdaAudioConvertUtility* aConverter)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   503
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   504
	INFO_PRINTF1( _L("TestConverter : Position"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   505
	TVerdict ret = EFail; 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   506
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   507
	//  Set position: middle of clip.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   508
	if (I64INT(iPosition.Int64()) == 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   509
		iPosition = I64INT(aConverter->Duration().Int64())/2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   510
	// Set position: end of clip.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   511
	if (I64INT(iPosition.Int64()) == -1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   512
		iPosition = aConverter->Duration();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   513
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   514
	// Position is beyond the end of the clips duration.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   515
	// so check that the value is clipped.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   516
	if(aConverter->Duration() < iPosition)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   517
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   518
		TInt64 temp = (aConverter->Duration().Int64() / KPcm16FrameInterval) - 1; // -1 for DevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   519
		aConverter->SetPosition(iPosition);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   520
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   521
		TInt64 theReceived = aConverter->Position().Int64();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   522
		TInt64 theExpected = temp * KPcm16FrameInterval;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   523
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   524
		TBool theRes = TimeComparison(I64INT(theReceived), I64INT(theExpected), KExpectedDeviation);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   525
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   526
		if(theRes == (TBool) ETrue)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   527
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   528
		INFO_PRINTF3( _L("Expected position : %d, Received position : %d"), theExpected, theReceived);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   529
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   530
	// Position is before the beginning of the clip
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   531
	// so check that the value is zero
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   532
	else if(iPosition < TTimeIntervalMicroSeconds(0))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   533
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   534
		TInt	theExpected = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   535
		aConverter->SetPosition(iPosition);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   536
		TInt	theReceived = I64INT(aConverter->Position().Int64());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   537
		TBool theRes = TimeComparison(theReceived, theExpected, 0);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   538
		if(theRes)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   539
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   540
		INFO_PRINTF3( _L("Expected position : %d, Received position : %d"), theExpected, theReceived);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   541
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   542
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   543
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   544
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   545
		//Original
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   546
		/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   547
		aConverter->SetPosition(iPosition);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   548
		aConverter->ConvertL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   549
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   550
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   551
		TInt64 temp = (iPosition.Int64() / KPcm16FrameInterval) - 1; // -1 for DevSound
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   552
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   553
		TInt	theReceived = I64INT(aConverter->Position().Int64());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   554
		TInt	theExpected = I64INT(temp) * KPcm16FrameInterval;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   555
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   556
		TBool theRes = TimeComparison(theReceived, theExpected, KExpectedDeviation);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   557
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   558
		if(theRes == (TBool) ETrue)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   559
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   560
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   561
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   562
		INFO_PRINTF3( _L("Expected position : %d, Received position : %d"), theExpected, theReceived);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   563
		*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   564
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   565
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   566
		//Amendment
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   567
		TInt	theDurationa = I64INT(aConverter->Duration().Int64());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   568
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   569
		aConverter->SetPosition(iPosition);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   570
		TInt	theExpected = I64INT(aConverter->Position().Int64());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   571
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   572
			//ConvertL requires two CActiveScheduler::Start()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   573
		aConverter->ConvertL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   574
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   575
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   576
			
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   577
		TPtrC toFilename, fromFilename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   578
		GetStringFromConfig(_L("SectionFour"), _L("configAudio"), fromFilename); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   579
		GetStringFromConfig(_L("SectionFour"), _L("configAudio12"), toFilename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   580
		TMdaFileClipLocation location2(toFilename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   581
		aConverter->OpenL(fromFilename, &location2, iFormat, iCodec);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   582
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   583
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   584
		TInt	theDurationb = I64INT(aConverter->Duration().Int64());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   585
		TInt	theReceived = theDurationa - theDurationb;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   586
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   587
		TBool theRes = TimeComparison(theReceived, theExpected, KDeviation);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   588
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   589
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   590
		if(theRes == (TBool) ETrue)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   591
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   592
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   593
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   594
		INFO_PRINTF3( _L("Expected position : %d, Received position : %d"), theExpected, theReceived);
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
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   599
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   600
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   601
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   602
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   603
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   604
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   605
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   606
CTestMmfAclntConConfig::CTestMmfAclntConConfig(const TDesC& aTestName, const TTestFormat aFormat, const TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   607
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   608
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   609
	iThisIsNegativeTest = aNegative;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   610
	iTestFormat = aFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   611
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   612
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   613
CTestMmfAclntConConfig* CTestMmfAclntConConfig::NewL(const TDesC& aTestName, const TTestFormat aFormat, const TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   614
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   615
	CTestMmfAclntConConfig* self = new (ELeave) CTestMmfAclntConConfig(aTestName, aFormat, aNegative);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   616
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   617
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   618
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   619
void CTestMmfAclntConConfig::MoscoStateChangeEvent(CBase* /*aObject*/, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   620
												   TInt /*aPreviousState*/, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   621
												   TInt /*aCurrentState*/, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   622
												   TInt aErrorCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   623
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   624
	iError = aErrorCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   625
	INFO_PRINTF1( _L("CTestMmfAclntConConfig : MMdaObjectStateChangeObserver Callback for CMdaAudioConvertUtility complete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   626
	INFO_PRINTF2( _L("iError %d"), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   627
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   628
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   629
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   630
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   631
void CTestMmfAclntConConfig::GetKeyName(TDes& aDes)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   632
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   633
	aDes = KAclntConConfigKeyName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   634
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   635
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   636
TVerdict CTestMmfAclntConConfig::DoTestStepPreambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   637
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   638
	TVerdict ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   639
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   640
	SetupFormatL(iTestFormat);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   641
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   642
	TBuf<64> keyName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   643
	GetKeyName(keyName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   644
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   645
	// Make sure file doesn't exist (maybe from a previous test)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   646
	TParse fullFileName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   647
	TPtrC filename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   648
	if(!GetStringFromConfig(_L("SectionFour"), keyName, filename))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   649
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   650
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   651
	// parse the filenames
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   652
		if(!fullFileName.Set(filename, &KDefault, NULL))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   653
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   654
		RFs fs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   655
		User::LeaveIfError(fs.Connect());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   656
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   657
		TInt error = fs.Delete(fullFileName.FullName());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   658
		if(error == KErrPathNotFound)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   659
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   660
				error = fs.MkDirAll(fullFileName.DriveAndPath());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   661
				INFO_PRINTF2(_L("Path for file %S was been created"), &fullFileName.FullName());	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   662
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   663
		else if(error == KErrNotFound)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   664
			INFO_PRINTF2(_L("No need to delete %S"), &fullFileName.FullName());	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   665
		else if(error==KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   666
			INFO_PRINTF2(_L("Deleted %S"), &fullFileName.FullName());	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   667
		else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   668
			ret = EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   669
		fs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   670
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   671
	if((ret == EInconclusive) || (ret == EFail))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   672
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   673
		return ret;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   674
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   675
	return CTestMmfAclntStep::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   676
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   677
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   678
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   679
 * Set config destination clip
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   680
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   681
TVerdict CTestMmfAclntConConfig::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   682
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   683
	INFO_PRINTF1( _L("TestConverter : Config"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   684
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   685
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   686
	TPtrC toFilename, fromFilename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   687
	if ((!GetStringFromConfig(_L("SectionOne"), _L("playerAudioFile"), fromFilename)) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   688
		|| (!GetStringFromConfig(_L("SectionFour"), _L("configAudio"), toFilename)))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   689
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   690
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   691
	// Delete the old file if it exists
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   692
	RFs fs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   693
	TInt err = fs.Connect();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   694
	if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   695
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   696
		INFO_PRINTF2(_L("Error doing fs.Connect (%d)"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   697
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   698
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   699
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   700
	err = fs.Delete(toFilename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   701
	if ((err != KErrNone) && (err != KErrNotFound))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   702
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   703
		INFO_PRINTF3(_L("Error deleting 'toFilename' (%S) %d"), &toFilename, err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   704
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   705
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   706
	fs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   707
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   708
	TMdaFileClipLocation location(toFilename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   709
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   710
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   711
	CMdaAudioConvertUtility* converter = CMdaAudioConvertUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   712
	CleanupStack::PushL(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   713
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   714
	if (iThisIsNegativeTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   715
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   716
		iAudioSettings.iSampleRate = KInvalidNumber;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   717
		iAudioSettings.iChannels = KInvalidNumber;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   718
		converter->OpenL(fromFilename, &location, iFormat, iCodec, &iAudioSettings);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   719
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   720
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   721
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   722
		  converter->OpenL(fromFilename, &location, iFormat, iCodec);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   723
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   724
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   725
	INFO_PRINTF1( _L("Initialise CMdaAudioConvertUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   726
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   727
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   728
	//TRAP(iError, converter->SetDestinationNumberOfChannelsL(1));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   729
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   730
	if (iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   731
		ret = DoTestL(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   732
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   733
	if (ret == EFail)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   734
		INFO_PRINTF2( _L("CMdaAudioConvertUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   735
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   736
	if(iThisIsNegativeTest && iError == KErrNotSupported)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   737
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   738
			ret = EPass;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   739
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   740
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   741
	CleanupStack::PopAndDestroy(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   742
	User::After(KOneSecond);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   743
	return ret;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   744
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   745
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   746
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   747
TVerdict CTestMmfAclntConConfig::DoTestL(CMdaAudioConvertUtility* aConverter)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   748
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   749
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   750
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   751
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   752
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   753
	aConverter->ConvertL(); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   754
	INFO_PRINTF1( _L("Convert CMdaAudioConvertUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   755
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   756
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   757
	// a negative test will fail succesfully at this point
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   758
	if (!iThisIsNegativeTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   759
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   760
	else if (iError == KErrNotSupported)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   761
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   762
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   763
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   764
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   765
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   766
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   767
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   768
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   769
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   770
CTestMmfAclntConQuery::CTestMmfAclntConQuery(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   771
	:CTestMmfAclntConConfig(aTestName, EPcm16Wav, EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   772
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   773
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   774
CTestMmfAclntConQuery* CTestMmfAclntConQuery::NewL(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   775
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   776
	CTestMmfAclntConQuery* self = new (ELeave) CTestMmfAclntConQuery(aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   777
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   778
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   779
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   780
void CTestMmfAclntConQuery::GetKeyName(TDes& aDes)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   781
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   782
	aDes = KAclntConQueryKeyName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   783
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   784
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   785
TVerdict CTestMmfAclntConQuery::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   786
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   787
	INFO_PRINTF1( _L("TestConverter : ConQuery"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   788
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   789
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   790
	TPtrC toFilename, fromFilename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   791
	if ((!GetStringFromConfig(_L("SectionOne"), _L("playerAudioFile"), fromFilename)) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   792
	//if ((!GetStringFromConfig(_L("SectionSeven"), _L("auFile"), fromFilename)) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   793
	//if ((!GetStringFromConfig(_L("SectionSeven"), _L("rawFile"), fromFilename)) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   794
	|| (!GetStringFromConfig(_L("SectionFour"), _L("configAudio4"), toFilename)))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   795
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   796
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   797
	TMdaFileClipLocation location(toFilename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   798
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   799
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   800
	CMdaAudioConvertUtility* converter = CMdaAudioConvertUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   801
	CleanupStack::PushL(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   802
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   803
	converter->OpenL(fromFilename, &location, iFormat, iCodec);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   804
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   805
	INFO_PRINTF1( _L("Initialise CMdaAudioConvertUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   806
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   807
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   808
	if (iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   809
		ret = DoTestL(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   810
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   811
	if (ret == EFail)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   812
		INFO_PRINTF2( _L("CMdaAudioConvertUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   813
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   814
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   815
	CleanupStack::PopAndDestroy(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   816
	User::After(KOneSecond);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   817
	return ret;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   818
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   819
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   820
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   821
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   822
 * query transformations available.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   823
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   824
TVerdict CTestMmfAclntConQuery::DoTestL(CMdaAudioConvertUtility* aConverter)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   825
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   826
	INFO_PRINTF1( _L("TestConverter : Query Transactions"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   827
	RArray<TFourCC>		theSupportedDataTypes;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   828
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   829
	TInt err ; 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   830
	TRAP(err,aConverter->GetSupportedDestinationDataTypesL(theSupportedDataTypes));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   831
	if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   832
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   833
		INFO_PRINTF2(_L("CMdaAudioConvertUtility::GetSupportedDataTypesL left with error %d"),err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   834
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   835
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   836
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   837
	TUint8		theBuffer8[KSizeBuf];
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   838
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   839
	INFO_PRINTF1( _L("The supported available transformation"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   840
	for(TInt	index = 0; index < theSupportedDataTypes.Count() ; index++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   841
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   842
		 TFourCC&	four = 	theSupportedDataTypes[index];
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   843
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   844
		 TPtr8		ptrFour(theBuffer8, KSizeBuf);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   845
		 four.FourCC(&ptrFour);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   846
		 TBuf<KSizeBuf>	theBuf;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   847
		 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   848
		 theBuf.Copy(ptrFour);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   849
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   850
		 INFO_PRINTF3( _L("%d  %S"), index, &theBuf);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   851
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   852
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   853
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   854
	return EPass;	
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
// Negative tests
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   860
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   861
//-------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   862
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   863
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   864
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   865
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   866
CTestMmfAclntDelete::CTestMmfAclntDelete()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   867
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   868
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   869
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   870
	// Each test step initialises it's own name
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   871
	iTestStepName = _L("MM-MMF-ACLNT-I-1051-CP");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   872
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   873
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   874
void CTestMmfAclntDelete::MoscoStateChangeEvent(CBase* /*aObject*/, TInt /*aPreviousState*/, TInt /*aCurrentState*/, TInt aErrorCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   875
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   876
	iError = aErrorCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   877
	INFO_PRINTF1( _L("CTestMmfAclntDelete : MMdaObjectStateChangeObserver Callback for CMdaAudioConvertUtility complete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   878
	INFO_PRINTF2( _L("iError %d"), iError);
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
 * Conversion utility - Delete object before conversion operation has completed.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   884
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   885
TVerdict CTestMmfAclntDelete::DoTestStepL( void )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   886
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   887
	INFO_PRINTF1( _L("TestConverter : Delete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   888
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   889
	TPtrC sourceFileName, targetFileName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   890
	if((!GetStringFromConfig(_L("SectionOne"), _L("playerAudioFile"), sourceFileName)) || 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   891
		(!GetStringFromConfig(_L("SectionFour"), _L("configAudio"), targetFileName)))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   892
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   893
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   894
	RFs		theFs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   895
	theFs.Connect();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   896
	theFs.Delete(targetFileName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   897
	theFs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   898
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   899
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   900
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   901
	TMdaFileClipLocation location(targetFileName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   902
	TMdaWavClipFormat	format;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   903
	TMdaPcmWavCodec		codec;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   904
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   905
	__MM_HEAP_MARK;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   906
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   907
	CMdaAudioConvertUtility* converter = CMdaAudioConvertUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   908
	CleanupStack::PushL(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   909
	converter->OpenL(sourceFileName,&location, &format, &codec);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   910
	INFO_PRINTF1( _L("Initialise CMdaAudioConvertUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   911
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   912
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   913
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   914
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   915
		converter->ConvertL(); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   916
		INFO_PRINTF1( _L("Convert CMdaAudioConvertUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   917
		//User::After(3 * KOneSecond);		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   918
		CleanupStack::PopAndDestroy(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   919
		User::After(KOneSecond);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   920
		INFO_PRINTF1( _L("Destroy CMdaAudioConvertUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   921
		__MM_HEAP_MARKEND;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   922
		User::Heap().Check();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   923
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   924
		return	EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   925
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   926
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   927
	ERR_PRINTF2( _L("CMdaAudioConvertUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   928
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   929
	CleanupStack::PopAndDestroy(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   930
	User::After(KOneSecond);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   931
	return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   932
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   933
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   934
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   935
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   936
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   937
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   938
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   939
CTestMmfAclntOpenWhileConvert::CTestMmfAclntOpenWhileConvert(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   940
	:CTestMmfAclntConConfig(aTestName, EPcm16Wav,EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   941
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   942
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   943
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   944
CTestMmfAclntOpenWhileConvert* CTestMmfAclntOpenWhileConvert::NewL(const TDesC& aTestName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   945
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   946
	CTestMmfAclntOpenWhileConvert* self = new (ELeave) CTestMmfAclntOpenWhileConvert(aTestName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   947
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   948
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   949
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   950
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   951
 * Open new file while audio converter is converting. Open a new audio file.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   952
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   953
TVerdict CTestMmfAclntOpenWhileConvert::DoTestL(CMdaAudioConvertUtility* aConverter)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   954
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   955
	INFO_PRINTF1( _L("TestConverter : Open/Convert"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   956
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   957
	TPtrC auFilename, wavFilename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   958
	//if((!GetStringFromConfig(_L("SectionFour"), _L("auAudioFile"), auFilename)) || 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   959
	//	(!GetStringFromConfig(_L("SectionFour"), _L("wavAudioFile"), wavFilename)))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   960
	if((!GetStringFromConfig(_L("SectionOne"), _L("PCM8"), auFilename)) || 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   961
		(!GetStringFromConfig(_L("SectionFour"), _L("PCM16_out"), wavFilename)))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   962
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   963
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   964
	RFs	theFs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   965
	User::LeaveIfError(theFs.Connect());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   966
	theFs.Delete(wavFilename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   967
	theFs.MkDirAll(wavFilename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   968
	theFs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   969
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   970
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   971
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   972
	TMdaFileClipLocation location(wavFilename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   973
	TMdaWavClipFormat format;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   974
	TMdaPcmWavCodec		codec(TMdaPcmWavCodec::E16BitPcm);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   975
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   976
	aConverter->ConvertL(); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   977
	INFO_PRINTF1( _L("Convert CMdaAudioConvertUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   978
	User::After(KOneSecond);		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   979
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   980
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   981
	aConverter->OpenL(auFilename,&location, &format, &codec);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   982
	INFO_PRINTF1( _L("Initialise CMdaAudioConvertUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   983
	// wait for open
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   984
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   985
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   986
	if(iError == KErrInUse || iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   987
		return	EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   988
	return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   989
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   990
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   991
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   992
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   993
CTestMmfAclntConvertDestBitRate::CTestMmfAclntConvertDestBitRate(const TDesC& aTestName, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   994
	: CTestMmfAclntConConfig(aTestName, EPcm16Wav, aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   995
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   996
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   997
CTestMmfAclntConvertDestBitRate* CTestMmfAclntConvertDestBitRate::NewL(const TDesC& aTestName, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   998
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   999
	CTestMmfAclntConvertDestBitRate* self = new (ELeave) CTestMmfAclntConvertDestBitRate(aTestName,aNegative);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1000
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1001
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1002
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1003
void CTestMmfAclntConvertDestBitRate::GetKeyName(TDes& aDes)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1004
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1005
	aDes = KAclntConDestBitRateKeyName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1006
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1007
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1008
TVerdict CTestMmfAclntConvertDestBitRate::DoTestL(CMdaAudioConvertUtility* aConverter)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1009
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1010
	INFO_PRINTF1( _L("TestConvertUtils : Destination Bit Rate"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1011
	TVerdict ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1012
	TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1013
	RArray<TUint> rates;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1014
	TRAP(err,aConverter->GetSupportedConversionBitRatesL(rates));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1015
	// in Typhoon KErrNotSupported is expected
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1016
	if(err==KErrNotSupported)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1017
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1018
		//test the other bitrate functions for code coverage (and behaviour)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1019
		TRAP(err,aConverter->SetDestinationBitRateL(100)); // arbitrary value since KErrNotSupported is expected anyway
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1020
		if (err != KErrNotSupported)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1021
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1022
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1023
		TUint rate=0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1024
		TRAP(err, rate=aConverter->DestinationBitRateL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1025
		if (err != KErrNone)	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1026
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1027
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1028
		INFO_PRINTF3(_L("CMdaAudioConvertUtility::GetSupportedConversionBitRatesL() leave with error %d bitrate of %d"),err,rate);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1029
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1030
		return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1031
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1032
	if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1033
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1034
		INFO_PRINTF2(_L("CMdaAudioConvertUtility::GetSupportedConversionBitRatesL() leave with error %d"),iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1035
		ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1036
		return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1037
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1038
	TInt numRates = rates.Count();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1039
	for(TInt i=0;i<numRates;i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1040
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1041
		INFO_PRINTF2(_L("CMdaAudioConvertUtility::SetDestinationBitRateL (%d)"),rates[i]);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1042
		TRAP(iError,aConverter->SetDestinationBitRateL(rates[i]));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1043
		if(iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1044
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1045
			INFO_PRINTF2(_L("CMdaAudioConvertUtility::SetDestinationBitRateL left with error %d"),iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1046
			ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1047
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1048
		else// no error, get rate
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1049
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1050
			TUint rate=0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1051
			TRAP(iError,rate = aConverter->DestinationBitRateL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1052
			//TRAP(err, aConverter->ConvertL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1053
			//CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1054
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1055
			if(iError!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1056
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1057
				INFO_PRINTF2(_L("CMdaAudioConvertUtility::DestinationBitRateL leave with error %d"),iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1058
				ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1059
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1060
			else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1061
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1062
				if(rate!=rates[i])
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1063
					{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1064
					ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1065
					INFO_PRINTF1(_L("Rate mismatch"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1066
					}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1067
					else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1068
					{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1069
					INFO_PRINTF1(_L("Rates match"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1070
					}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1071
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1072
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1073
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1074
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1075
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1076
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1077
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1078
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1079
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1080
CTestMmfAclntConvertDestDataType::CTestMmfAclntConvertDestDataType(const TDesC& aTestName, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1081
	: CTestMmfAclntConConfig(aTestName, EPcm16Wav, aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1082
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1083
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1084
CTestMmfAclntConvertDestDataType* CTestMmfAclntConvertDestDataType::NewL(const TDesC& aTestName, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1085
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1086
	CTestMmfAclntConvertDestDataType* self = new (ELeave) CTestMmfAclntConvertDestDataType(aTestName,aNegative);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1087
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1088
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1089
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1090
void CTestMmfAclntConvertDestDataType::GetKeyName(TDes& aDes)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1091
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1092
	aDes = KAclntConDestDataTypeKeyName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1093
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1094
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1095
TVerdict CTestMmfAclntConvertDestDataType::DoTestL(CMdaAudioConvertUtility* aConverter)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1096
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1097
	INFO_PRINTF1( _L("TestConvertUtils : Destination data type"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1098
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1099
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1100
	TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1101
	RArray<TFourCC> SupportedDataTypes ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1102
	TFourCC dataType;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1103
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1104
	TRAP(err,aConverter->GetSupportedDestinationDataTypesL(SupportedDataTypes));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1105
	if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1106
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1107
		INFO_PRINTF2(_L("CMdaAudioConvertUtility::GetSupportedBitRatesL leave with error %d"),err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1108
		ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1109
		return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1110
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1111
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1112
	TInt numRates = SupportedDataTypes.Count();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1113
	ret = EPass ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1114
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1115
	for(TInt i=0;i<numRates;i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1116
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1117
		dataType = SupportedDataTypes[i] ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1118
		TUint8 char1 = TUint8( dataType.FourCC() ) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1119
		TUint8 char2 = TUint8( dataType.FourCC() >> 8 ) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1120
		TUint8 char3 = TUint8( dataType.FourCC() >> 16 ) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1121
		TUint8 char4 = TUint8( dataType.FourCC() >> 24 ) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1122
		//fourCCString->Format( _L8("%1c%1c%1c%1c"), char1, char2, char3, char4 ) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1123
		INFO_PRINTF5(_L("dataType.FourCC= %1c%1c%1c%1c"), char1, char2, char3, char4);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1124
		TRAP(err,aConverter->SetDestinationDataTypeL(SupportedDataTypes[i]));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1125
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1126
		if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1127
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1128
			INFO_PRINTF2(_L("CMdaAudioConvertUtility::SetDestinationDataTypeL leave with error %d"),err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1129
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1130
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1131
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1132
		TRAP(err,dataType = aConverter->DestinationDataTypeL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1133
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1134
		if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1135
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1136
			INFO_PRINTF2(_L("CMdaAudioConvertUtility::DestinationDataTypeL leave with error %d"),err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1137
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1138
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1139
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1140
		if(dataType!=SupportedDataTypes[i])
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1141
			ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1142
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1143
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1144
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1145
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1146
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1147
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1148
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1149
CTestMmfAclntConvertDestFormat::CTestMmfAclntConvertDestFormat(const TDesC& aTestName, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1150
	: CTestMmfAclntConConfig(aTestName, EPcm16Wav, aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1151
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1152
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1153
CTestMmfAclntConvertDestFormat* CTestMmfAclntConvertDestFormat::NewL(const TDesC& aTestName, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1154
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1155
	CTestMmfAclntConvertDestFormat* self = new (ELeave) CTestMmfAclntConvertDestFormat(aTestName,aNegative) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1156
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1157
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1158
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1159
void CTestMmfAclntConvertDestFormat::GetKeyName(TDes& aDes)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1160
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1161
	aDes = KAclntConDestFormatKeyName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1162
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1163
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1164
TVerdict CTestMmfAclntConvertDestFormat::DoTestL(CMdaAudioConvertUtility* aConverter)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1165
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1166
	INFO_PRINTF1( _L("TestConvertUtils : Destination format"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1167
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1168
	TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1169
	TUid format1(KUidMdaWavCodec) ;	//Why not?
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1170
	TUid format2 ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1171
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1172
	TRAP(err,format1 = aConverter->DestinationFormatL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1173
	if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1174
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1175
		INFO_PRINTF2(_L("CMdaAudioConvertUtility::DestinationFormatL leave with error %d"),err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1176
		return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1177
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1178
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1179
	TRAP(err,aConverter->SetDestinationFormatL(format1));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1180
	if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1181
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1182
		INFO_PRINTF2(_L("CMdaAudioConvertUtility::SetDestinationFormatL leave with error %d"),err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1183
		return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1184
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1185
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1186
	TRAP(err,format2 = aConverter->DestinationFormatL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1187
	if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1188
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1189
		INFO_PRINTF2(_L("CMdaAudioConvertUtility::DestinationFormatL leave with error %d"),err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1190
		return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1191
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1192
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1193
	if(format1 == format2)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1194
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1195
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1196
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1197
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1198
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1199
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1200
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1201
CTestMmfAclntConvertDestSampleRate::CTestMmfAclntConvertDestSampleRate(const TDesC& aTestName, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1202
	: CTestMmfAclntConConfig(aTestName, EPcm16Wav, aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1203
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1204
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1205
CTestMmfAclntConvertDestSampleRate* CTestMmfAclntConvertDestSampleRate::NewL(const TDesC& aTestName, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1206
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1207
	CTestMmfAclntConvertDestSampleRate* self = new (ELeave) CTestMmfAclntConvertDestSampleRate(aTestName,aNegative);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1208
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1209
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1210
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1211
void CTestMmfAclntConvertDestSampleRate::GetKeyName(TDes& aDes)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1212
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1213
	aDes = KAclntConDestSampleRateKeyName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1214
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1215
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1216
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1217
 * Set config destination clip
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1218
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1219
TVerdict CTestMmfAclntConvertDestSampleRate::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1220
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1221
	INFO_PRINTF1( _L("TestConverter : Config"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1222
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1223
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1224
	TPtrC toFilename, fromFilename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1225
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1226
//	if ((!GetStringFromConfig(_L("SectionOne"), _L("Pcm16Mono44khz"), fromFilename)) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1227
	if ((!GetStringFromConfig(_L("SectionOne"), _L("playerAudioFile"), fromFilename)) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1228
		|| (!GetStringFromConfig(_L("SectionFour"), _L("configAudio"), toFilename)))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1229
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1230
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1231
	// Delete the old file if it exists
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1232
	RFs fs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1233
	TInt err = fs.Connect();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1234
	if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1235
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1236
		INFO_PRINTF2(_L("Error doing fs.Connect (%d)"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1237
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1238
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1239
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1240
	err = fs.Delete(toFilename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1241
	if ((err != KErrNone) && (err != KErrNotFound))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1242
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1243
		INFO_PRINTF3(_L("Error deleting 'toFilename' (%S) %d"), &toFilename, err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1244
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1245
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1246
	fs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1247
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1248
	TMdaFileClipLocation location(toFilename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1249
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1250
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1251
	CMdaAudioConvertUtility* converter = CMdaAudioConvertUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1252
	CleanupStack::PushL(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1253
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1254
	if (iThisIsNegativeTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1255
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1256
		iAudioSettings.iSampleRate = KInvalidNumber;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1257
		iAudioSettings.iChannels = KInvalidNumber;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1258
		converter->OpenL(fromFilename, &location, iFormat, iCodec, &iAudioSettings);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1259
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1260
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1261
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1262
		  converter->OpenL(fromFilename, &location, iFormat, iCodec);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1263
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1264
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1265
	INFO_PRINTF1( _L("Initialise CMdaAudioConvertUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1266
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1267
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1268
	if (iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1269
		ret = DoTestL(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1270
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1271
	if (ret == EFail)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1272
		INFO_PRINTF2( _L("CMdaAudioConvertUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1273
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1274
	if(iThisIsNegativeTest && iError == KErrNotSupported)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1275
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1276
			ret = EPass;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1277
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1278
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1279
	CleanupStack::PopAndDestroy(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1280
	User::After(KOneSecond);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1281
	return ret;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1282
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1283
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1284
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1285
void CTestMmfAclntConvertDestSampleRate::MoscoStateChangeEvent(CBase* /*aObject*/, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1286
													TInt aPreviousState,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1287
													TInt aCurrentState,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1288
													TInt aErrorCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1289
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1290
	iError = aErrorCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1291
	//iObject = aObject;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1292
	TInt PreviousState = aPreviousState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1293
	TInt CurrentState = aCurrentState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1294
	INFO_PRINTF1( _L("CTestMmfAclntConvertDestSampleRate : MMdaObjectStateChangeObserver Callback for CMdaAudioConvertUtility complete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1295
	INFO_PRINTF4( _L("iError %d PreviousState %d -> CurrentState %d"), 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1296
			iError, PreviousState, CurrentState);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1297
	if( CurrentState != CMdaAudioClipUtility::EPlaying) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1298
	 //give a chace to finish conversion
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1299
		CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1300
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1301
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1302
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1303
TVerdict CTestMmfAclntConvertDestSampleRate::DoTestL(CMdaAudioConvertUtility* aConverter)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1304
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1305
	INFO_PRINTF1( _L("TestConvertUtils : Destination Sample Rate"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1306
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1307
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1308
	TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1309
	RArray<TUint> supportedSampleRates ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1310
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1311
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1312
	TRAP(err,aConverter->GetSupportedConversionSampleRatesL(supportedSampleRates));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1313
	if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1314
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1315
		INFO_PRINTF2(_L("CMdaAudioConvertUtility::GetSupportedConversionSampleRatesL() leave with error %d"),err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1316
		ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1317
		return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1318
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1319
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1320
	TInt numRates = supportedSampleRates.Count();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1321
	if( 0 != numRates)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1322
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1323
		ret = EPass ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1324
		for(TInt i=0;i<numRates;i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1325
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1326
			// Delete the output file if it exists
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1327
			// Necessary otherwise we will open the output file for conversion and 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1328
			// use the sample rate of the file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1329
			TPtrC toFilename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1330
			if (!GetStringFromConfig(_L("SectionFour"), _L("configAudio"), toFilename))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1331
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1332
				INFO_PRINTF1(_L("Error finding filename in INI file"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1333
				return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1334
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1335
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1336
			RFs fs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1337
			TInt err = fs.Connect();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1338
			if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1339
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1340
				INFO_PRINTF2(_L("Error doing fs.Connect (%d)"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1341
				return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1342
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1343
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1344
			err = fs.Delete(toFilename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1345
			if ((err != KErrNone) && (err != KErrNotFound))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1346
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1347
				INFO_PRINTF3(_L("Error deleting 'toFilename' (%S) %d"), &toFilename, err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1348
				return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1349
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1350
			fs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1351
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1352
			// Do the conversion
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1353
			TUint SampleRate = supportedSampleRates[i] ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1354
			INFO_PRINTF2(_L("SampleRate = %d"), SampleRate);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1355
			TRAP(err,aConverter->SetDestinationSampleRateL(SampleRate));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1356
			if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1357
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1358
				INFO_PRINTF2(_L("CMdaAudioConvertUtility::SetDestinationSampleRateL() leave with error %d"),err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1359
				ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1360
				return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1361
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1362
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1363
			TRAP(err, aConverter->ConvertL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1364
			CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1365
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1366
			if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1367
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1368
				INFO_PRINTF2(_L("CMdaAudioConvertUtility::ConvertL leave with error %d"),err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1369
				ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1370
				break ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1371
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1372
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1373
			TRAP(err,SampleRate = aConverter->DestinationSampleRateL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1374
			if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1375
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1376
				INFO_PRINTF2(_L("CMdaAudioConvertUtility::DestinationSampleRateL leave with error %d"),err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1377
				ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1378
				break ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1379
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1380
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1381
			if(SampleRate != supportedSampleRates[i])
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1382
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1383
				INFO_PRINTF1(_L("CMdaAudioConvertUtility::DestinationSampleRateL does not match the sample rate set"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1384
				ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1385
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1386
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1387
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1388
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1389
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1390
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1391
		INFO_PRINTF1(_L("CMdaAudioConvertUtility::GetSupportedConversionSampleRatesL() returned empy array."));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1392
		ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1393
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1394
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1395
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1396
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1397
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1398
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1399
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1400
CTestMmfAclntConvertDestNumberOfChannels::CTestMmfAclntConvertDestNumberOfChannels(const TDesC& aTestName, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1401
	: CTestMmfAclntConConfig(aTestName, EPcm16Wav, aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1402
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1403
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1404
CTestMmfAclntConvertDestNumberOfChannels* CTestMmfAclntConvertDestNumberOfChannels::NewL(const TDesC& aTestName, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1405
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1406
	CTestMmfAclntConvertDestNumberOfChannels* self = new (ELeave) CTestMmfAclntConvertDestNumberOfChannels(aTestName,aNegative);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1407
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1408
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1409
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1410
void CTestMmfAclntConvertDestNumberOfChannels::GetKeyName(TDes& aDes)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1411
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1412
	aDes = KAclntConDestNumberChannelsKeyName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1413
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1414
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1415
TVerdict CTestMmfAclntConvertDestNumberOfChannels::DoTestL(CMdaAudioConvertUtility* aConverter)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1416
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1417
	INFO_PRINTF1( _L("TestConvertUtils : Destination Number of Channels"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1418
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1419
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1420
	TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1421
	RArray<TUint> aSupportedNumberOfChannels ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1422
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1423
	TRAP(err,aConverter->GetSupportedConversionNumberOfChannelsL(aSupportedNumberOfChannels));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1424
	if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1425
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1426
		INFO_PRINTF2(_L("CMdaAudioConvertUtility::GetSupportedConversionNumberOfChannelsL() leave with error %d"),err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1427
		ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1428
		return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1429
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1430
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1431
	TInt numRates = aSupportedNumberOfChannels.Count();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1432
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1433
	ret = EPass ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1434
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1435
	for(TInt i=0;i<numRates;i++)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1436
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1437
		TUint NumberOfChannels = aSupportedNumberOfChannels[i] ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1438
		INFO_PRINTF2(_L("NumberOfChannels = %d"), NumberOfChannels);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1439
		TRAP(err,aConverter->SetDestinationNumberOfChannelsL(aSupportedNumberOfChannels[i]));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1440
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1441
		if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1442
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1443
			INFO_PRINTF2(_L("CMdaAudioConvertUtility::SetDestinationNumberOfChannelL() leave with error %d"),err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1444
			return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1445
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1446
		TRAP(err,NumberOfChannels = aConverter->DestinationNumberOfChannelsL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1447
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1448
		if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1449
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1450
			INFO_PRINTF2(_L("CMdaAudioConvertUtility::DestinationNumberOfChannelL leave with error %d"),err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1451
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1452
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1453
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1454
		if(NumberOfChannels != aSupportedNumberOfChannels[i])
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1455
			ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1456
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1457
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1458
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1459
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1460
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1461
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1462
CTestMmfAclntConvertSourceInfo::CTestMmfAclntConvertSourceInfo(const TDesC& aTestName, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1463
	: CTestMmfAclntConConfig(aTestName, EPcm16Wav, aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1464
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1465
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1466
CTestMmfAclntConvertSourceInfo* CTestMmfAclntConvertSourceInfo::NewL(const TDesC& aTestName, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1467
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1468
	CTestMmfAclntConvertSourceInfo* self = new (ELeave) CTestMmfAclntConvertSourceInfo(aTestName,aNegative);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1469
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1470
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1471
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1472
void CTestMmfAclntConvertSourceInfo::GetKeyName(TDes& aDes)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1473
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1474
	aDes = KAclntConSourceInfoKeyName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1475
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1476
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1477
TVerdict CTestMmfAclntConvertSourceInfo::DoTestL(CMdaAudioConvertUtility* aConverter)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1478
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1479
	INFO_PRINTF1( _L("TestConvertUtils : Source Info"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1480
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1481
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1482
	TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1483
	TUint NumberOfChannels = 0 ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1484
	TRAP(err,NumberOfChannels = aConverter->SourceNumberOfChannelsL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1485
	if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1486
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1487
		INFO_PRINTF2(_L("CMdaAudioConvertUtility::SourceNumberOfChannelL leave with error %d"),err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1488
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1489
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1490
	INFO_PRINTF2(_L("NumberOfChannels = %d"), NumberOfChannels);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1491
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1492
	TUint BitRate = 0 ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1493
	TRAP(err,BitRate = aConverter->SourceBitRateL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1494
	if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1495
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1496
		INFO_PRINTF2(_L("CMdaAudioConvertUtility::SourceBitRateL leave with error %d"),err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1497
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1498
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1499
	INFO_PRINTF2(_L("BitRate = %d"), BitRate);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1500
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1501
	TUint SampleRate = 0 ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1502
	TRAP(err,SampleRate = aConverter->SourceSampleRateL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1503
	if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1504
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1505
		INFO_PRINTF2(_L("CMdaAudioConvertUtility::SourceSampleRateL leave with error %d"),err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1506
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1507
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1508
	INFO_PRINTF2(_L("SampleRate = %d"), SampleRate);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1509
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1510
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1511
	TUid Format(KUidMdaWavCodec)  ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1512
	TRAP(err,Format = aConverter->SourceFormatL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1513
	if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1514
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1515
		INFO_PRINTF2(_L("CMdaAudioConvertUtility::SourceFormatL leave with error %d"),err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1516
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1517
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1518
	INFO_PRINTF2(_L("Format = %d"), Format);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1519
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1520
	TFourCC dataType;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1521
	TRAP(err,dataType = aConverter->SourceDataTypeL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1522
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1523
	if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1524
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1525
		INFO_PRINTF2(_L("CMdaAudioConvertUtility::SourceDataTypeL leave with error %d"),err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1526
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1527
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1528
	TUint8 char1 = TUint8( dataType.FourCC() ) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1529
	TUint8 char2 = TUint8( dataType.FourCC() >> 8 ) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1530
	TUint8 char3 = TUint8( dataType.FourCC() >> 16 ) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1531
	TUint8 char4 = TUint8( dataType.FourCC() >> 24 ) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1532
	INFO_PRINTF5(_L("dataType.FourCC= %1c%1c%1c%1c"), char1, char2, char3, char4);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1533
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1534
	ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1535
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1536
	return ret ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1537
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1538
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1539
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1540
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1541
CTestMmfAclntConvertLength::CTestMmfAclntConvertLength(const TDesC& aTestName, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1542
	:CTestMmfAclntConConfig(aTestName, EPcm16Wav, aNegative) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1543
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1544
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1545
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1546
CTestMmfAclntConvertLength* CTestMmfAclntConvertLength::NewL(const TDesC& aTestName, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1547
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1548
	CTestMmfAclntConvertLength* self = new (ELeave) CTestMmfAclntConvertLength(aTestName, aNegative);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1549
	return self;
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
 *Set maximum length of file in bytes and Convertord
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1554
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1555
TVerdict CTestMmfAclntConvertLength::DoTestL(CMdaAudioConvertUtility* aConvertUtil)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1556
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1557
	INFO_PRINTF1( _L("TestConvertor : Length"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1558
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1559
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1560
	//TTimeIntervalMicroSeconds ConvertTime(aConvertUtil->Duration());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1561
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1562
	aConvertUtil->SetMaxWriteLength(800);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1563
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1564
	TRAP(iError, aConvertUtil->PlayL()) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1565
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1566
	if(iError != KErrNone) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1567
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1568
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1569
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1570
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1571
	aConvertUtil->Stop() ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1572
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1573
	//until DEF011919 is not fixed
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1574
	//if(aConvertUtil->Duration() != ConvertTime)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1575
	ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1576
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1577
	return	ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1578
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1579
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1580
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1581
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1582
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1583
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1584
CTestMmfAclntConvertRepeat::CTestMmfAclntConvertRepeat(const TDesC& aTestName, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1585
	:CTestMmfAclntConConfig(aTestName, EPcm16Wav, aNegative) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1586
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1587
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1588
CTestMmfAclntConvertRepeat* CTestMmfAclntConvertRepeat::NewL(const TDesC& aTestName, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1589
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1590
	CTestMmfAclntConvertRepeat* self = new (ELeave) CTestMmfAclntConvertRepeat(aTestName,aNegative);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1591
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1592
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1593
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1594
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1595
 * Set repeats
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1596
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1597
TVerdict CTestMmfAclntConvertRepeat::DoTestL(CMdaAudioConvertUtility* aConvertUtil)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1598
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1599
	INFO_PRINTF1( _L("TestConvert : Repeats"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1600
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1601
 	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1602
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1603
	TTimeIntervalMicroSeconds silence(0);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1604
	//just to sutisfy CCover, actualy does nothing
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1605
	aConvertUtil->SetRepeats(NUMBER_OF_REPEATS,silence);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1606
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1607
	//TInt duration = I64INT(aConvertUtil->Duration().Int64());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1608
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1609
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1610
	INFO_PRINTF1( _L("Play CMdaAudioConvertUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1611
	//just to sutisfy CCover, actualy calls ConvertL() see
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1612
	TRAP(iError, aConvertUtil->PlayL()) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1613
	if(iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1614
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1615
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1616
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1617
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1618
	//TUint actualDuration = I64INT(aConvertUtil->Duration().Int64()) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1619
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1620
	//INFO_PRINTF2(_L("Repeats : %d"), NUMBER_OF_REPEATS);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1621
	//INFO_PRINTF6(_L("Error : %d Start = %d Stop = %d Duration = %d ActualDuration = %d"),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1622
	//	iError, I64INT(start.Int64()), I64INT(stop.Int64()), duration, actualDuration);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1623
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1624
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1625
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1626
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1627
	return	EFail ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1628
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1629
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1630
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1631
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1632
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1633
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1634
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1635
CTestMmfAclntConvertCrop::CTestMmfAclntConvertCrop(const TDesC& aTestName, const TBool aCropToEnd, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1636
	:CTestMmfAclntConConfig(aTestName, EPcm16Wav, aNegative), 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1637
	iCropToEnd(aCropToEnd)	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1638
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1639
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1640
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1641
CTestMmfAclntConvertCrop* CTestMmfAclntConvertCrop::NewL(const TDesC& aTestName, const TBool aCropToEnd, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1642
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1643
	CTestMmfAclntConvertCrop* self = new (ELeave) CTestMmfAclntConvertCrop(aTestName, aCropToEnd, aNegative);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1644
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1645
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1646
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1647
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1648
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1649
 * Set config destination clip
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1650
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1651
TVerdict CTestMmfAclntConvertCrop::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1652
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1653
	INFO_PRINTF1( _L("TestConverter : Config"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1654
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1655
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1656
	TPtrC fromFilename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1657
	if ((!GetStringFromConfig(_L("SectionOne"), _L("PCM16"), fromFilename))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1658
		|| (!GetStringFromConfig(_L("SectionFour"), _L("configAudio"), iToFilename))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1659
		|| (!GetStringFromConfig(_L("SectionFour"), _L("configAudio11"), iToFilename2)))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1660
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1661
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1662
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1663
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1664
	CMdaAudioConvertUtility* converter = CMdaAudioConvertUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1665
	CleanupStack::PushL(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1666
	TMdaFileClipLocation	location(iToFilename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1667
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1668
	if (iThisIsNegativeTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1669
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1670
		iAudioSettings.iSampleRate = KInvalidNumber;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1671
		iAudioSettings.iChannels = KInvalidNumber;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1672
		//to keep CCover happy
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1673
		converter->OpenL(fromFilename, iToFilename2) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1674
			//&location, iFormat, iCodec, &iAudioSettings);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1675
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1676
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1677
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1678
		converter->OpenL(fromFilename, &location, iFormat, iCodec);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1679
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1680
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1681
	INFO_PRINTF1( _L("Initialise CMdaAudioConvertUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1682
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1683
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1684
	if (iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1685
		ret = DoTestL(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1686
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1687
	CleanupStack::PopAndDestroy(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1688
	User::After(KOneSecond);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1689
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1690
	if (ret == EFail)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1691
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1692
		INFO_PRINTF2( _L("CMdaAudioConvertUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1693
		return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1694
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1695
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1696
	if(iThisIsNegativeTest && iError == KErrNotSupported)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1697
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1698
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1699
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1700
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1701
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1702
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1703
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1704
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1705
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1706
void CTestMmfAclntConvertCrop::MoscoStateChangeEvent(CBase* /*aObject*/,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1707
													TInt aPreviousState,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1708
													TInt aCurrentState,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1709
													TInt aErrorCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1710
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1711
	iError = aErrorCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1712
	//iObject = aObject;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1713
	TInt PreviousState = aPreviousState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1714
	TInt CurrentState = aCurrentState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1715
	INFO_PRINTF1( _L("CTestMmfAclntDoConv : MMdaObjectStateChangeObserver Callback for CMdaAudioConvertUtility complete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1716
	INFO_PRINTF4( _L("iError %d PreviousState %d -> CurrentState %d"), 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1717
			iError, PreviousState, CurrentState);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1718
	//if( CurrentState != CMdaAudioClipUtility::ERecording) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1719
	 //give a chance to finish conversion
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1720
		CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1721
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1722
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1723
TVerdict CTestMmfAclntConvertCrop::DoTestStepPostambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1724
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1725
	if (iThisIsNegativeTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1726
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1727
		RFs fs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1728
		User::LeaveIfError(fs.Connect());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1729
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1730
		TInt error = fs.Delete(iToFilename2);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1731
		if(error == KErrPathNotFound)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1732
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1733
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1734
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1735
	return CTestMmfAclntStep::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1736
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1737
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1738
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1739
 * Audio croping.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1740
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1741
TVerdict CTestMmfAclntConvertCrop::DoTestL(CMdaAudioConvertUtility* aConvert)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1742
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1743
	if (iThisIsNegativeTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1744
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1745
		TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1746
		TRAP(err, aConvert->ConvertL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1747
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1748
		if( err != KErrNone || iError != KErrNone) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1749
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1750
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1751
		if( err != KErrNone || iError != KErrNone) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1752
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1753
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1754
		TTimeIntervalMicroSeconds cropPoint( TTimeIntervalMicroSeconds(aConvert->Duration().Int64()/2) );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1755
		TTimeIntervalMicroSeconds cropPoint2( TTimeIntervalMicroSeconds(aConvert->Duration().Int64()*2/3) );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1756
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1757
		aConvert->SetPosition(cropPoint);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1758
		// 1st crop
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1759
		TRAP(err, aConvert->CropL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1760
		if(err != KErrNone) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1761
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1762
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1763
		// position beyond the end of the cropped file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1764
		aConvert->SetPosition(cropPoint2);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1765
		// 2nd crop
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1766
		TRAP(err, aConvert->CropL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1767
		if(err != KErrArgument) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1768
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1769
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1770
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1771
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1772
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1773
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1774
		TInt err = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1775
		TRAP(err, aConvert->ConvertL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1776
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1777
		if( err != KErrNone || iError != KErrNone) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1778
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1779
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1780
		if( err != KErrNone || iError != KErrNone) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1781
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1782
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1783
		TTimeIntervalMicroSeconds origDuration( TTimeIntervalMicroSeconds(aConvert->Duration().Int64() ));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1784
		TTimeIntervalMicroSeconds cropPoint( origDuration.Int64()*2/3);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1785
		aConvert->SetPosition(cropPoint);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1786
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1787
		INFO_PRINTF4(_L("crop point %d, duration %d, cropToEnd %d"),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1788
			I64INT(cropPoint.Int64()), 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1789
			I64INT(origDuration.Int64()),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1790
			iCropToEnd);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1791
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1792
		if(iCropToEnd)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1793
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1794
			TRAP(iError, aConvert->CropL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1795
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1796
		else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1797
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1798
			TRAP(iError, aConvert->CropFromBeginningL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1799
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1800
		if(iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1801
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1802
			ERR_PRINTF2(_L("Crop left with error =  %d"),iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1803
				return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1804
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1805
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1806
		// Check if the cropped duration is within the deviation from the expected duration
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1807
		// NB : there is no converter API to check the destination(sink) duration after cropping
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1808
		// but we can check cropping by reopening the file and checking its new duration
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1809
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1810
		TMdaFileClipLocation	location(iToFilename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1811
		aConvert->OpenL(iToFilename, &location, iFormat, iCodec);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1812
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1813
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1814
		TTimeIntervalMicroSeconds newDuration( TTimeIntervalMicroSeconds(aConvert->Duration().Int64() ));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1815
		TTimeIntervalMicroSeconds expectedDuration;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1816
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1817
		if (iCropToEnd)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1818
			expectedDuration = cropPoint;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1819
		else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1820
			expectedDuration = origDuration.Int64() - cropPoint.Int64();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1821
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1822
		INFO_PRINTF3(_L("new duration %d, expected %d"),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1823
			I64INT(newDuration.Int64()), 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1824
			I64INT(expectedDuration.Int64()));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1825
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1826
		// check for match within deviation
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1827
		// We should query the duration of one 4K buffer, then use that as the jitter
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1828
		// on whatever file we are testing.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1829
		TUint bitRate = 0 ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1830
		TRAP(err,bitRate = aConvert->DestinationBitRateL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1831
		if(err!=KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1832
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1833
			INFO_PRINTF2(_L("CMdaAudioConvertUtility::DestinationBitRateL leave with error %d"),err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1834
			return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1835
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1836
		INFO_PRINTF2(_L("Bit rate = %d"), bitRate);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1837
		// buffer duration = no. bytes / byte rate
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1838
		TUint bufDuration = (4096000 / (bitRate / 8)) + 1;	// get it in 1/1000 sec, and round up
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1839
		TInt64 dev(bufDuration * 1000);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1840
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1841
		INFO_PRINTF2(_L("Buffer duration = %d"), I64INT(dev));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1842
		TBool durationMatch = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1843
		if (newDuration == expectedDuration)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1844
			durationMatch = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1845
		else if (newDuration < expectedDuration)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1846
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1847
			if (expectedDuration <= newDuration.Int64() + dev)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1848
				durationMatch = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1849
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1850
		else if (newDuration > expectedDuration)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1851
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1852
			if (expectedDuration >= newDuration.Int64() - dev)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1853
				durationMatch = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1854
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1855
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1856
		if (!durationMatch)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1857
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1858
				ERR_PRINTF1(_L("Cropped duration out of expected range"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1859
				return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1860
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1861
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1862
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1863
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1864
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1865
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1866
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1867
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1868
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1869
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1870
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1871
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1872
CTestMmfAclntConvertStop::CTestMmfAclntConvertStop(const TDesC& aTestName, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1873
	:CTestMmfAclntConConfig(aTestName, EPcm16Wav, aNegative) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1874
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1875
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1876
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1877
CTestMmfAclntConvertStop* CTestMmfAclntConvertStop::NewL(const TDesC& aTestName, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1878
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1879
	CTestMmfAclntConvertStop* self = new (ELeave) CTestMmfAclntConvertStop(aTestName, aNegative);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1880
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1881
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1882
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1883
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1884
void CTestMmfAclntConvertStop::MoscoStateChangeEvent(CBase* /*aObject*/, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1885
													TInt aPreviousState,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1886
													TInt aCurrentState,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1887
													TInt aErrorCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1888
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1889
	iError = aErrorCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1890
	//iObject = aObject;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1891
	TInt PreviousState = aPreviousState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1892
	TInt CurrentState = aCurrentState;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1893
	INFO_PRINTF1( _L("CTestMmfAclntDoConv : MMdaObjectStateChangeObserver Callback for CMdaAudioConvertUtility complete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1894
	INFO_PRINTF4( _L("iError %d PreviousState %d -> CurrentState %d"), 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1895
			iError, PreviousState, CurrentState);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1896
	if( CurrentState != CMdaAudioClipUtility::ERecording) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1897
	 //give a chance to finish conversion
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1898
		CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1899
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1900
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1901
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1902
 * Set config destination clip
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1903
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1904
TVerdict CTestMmfAclntConvertStop::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1905
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1906
	INFO_PRINTF1( _L("TestConverter : Config"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1907
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1908
//stolen from  #include <MMFMdaClient.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1909
//static const TUid KUidMmfAudioController	= {0x101F5022};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1910
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1911
	TPtrC toFilename, fromFilename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1912
	if ((!GetStringFromConfig(_L("SectionOne"), _L("playerAudioFile"), fromFilename))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1913
		|| (!GetStringFromConfig(_L("SectionFour"), _L("configAudio"), toFilename)))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1914
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1915
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1916
	//TMdaFileClipLocation toLocation(toFilename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1917
	//TMdaFileClipLocation fromLocation(fromFilename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1918
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1919
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1920
	CMdaAudioConvertUtility* converter = CMdaAudioConvertUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1921
	CleanupStack::PushL(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1922
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1923
	if (iThisIsNegativeTest)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1924
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1925
		iAudioSettings.iSampleRate = KInvalidNumber;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1926
		iAudioSettings.iChannels = KInvalidNumber;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1927
		//to keep CCover happy
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1928
		//converter->OpenL(&fromLocation, &toLocation, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1929
		//	KUidMdaWavPcmCodec, KUidMdaClipFormatAu, KFourCCNULL);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1930
		converter->OpenL(fromFilename, toFilename) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1931
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1932
	else										   
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1933
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1934
		//converter->OpenL(&fromLocation, &toLocation, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1935
		//	KUidMmfAudioController, KUidMdaWavPcmCodec, TFourCC('A', 'L', 'A', 'W'));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1936
		converter->OpenL(fromFilename, toFilename) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1937
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1938
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1939
	INFO_PRINTF1( _L("Initialise CMdaAudioConvertUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1940
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1941
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1942
	if (iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1943
		ret = DoTestL(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1944
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1945
	if (ret == EFail)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1946
		INFO_PRINTF2( _L("CMdaAudioConvertUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1947
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1948
	if(iThisIsNegativeTest && iError == KErrNotSupported)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1949
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1950
			ret = EPass;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1951
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1952
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1953
	CleanupStack::PopAndDestroy(converter);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1954
	User::After(KOneSecond);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1955
	return ret;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1956
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1957
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1958
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1959
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1960
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1961
 * Conversion stoping.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1962
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1963
TVerdict CTestMmfAclntConvertStop::DoTestL(CMdaAudioConvertUtility* aConvert)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1964
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1965
	INFO_PRINTF1( _L("TestConvert : Stop"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1966
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1967
	TRAP(iError, aConvert->ConvertL()) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1968
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1969
	if(iError != KErrNone) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1970
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1971
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1972
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1973
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1974
	aConvert->Stop() ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1975
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1976
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1977
	return	EPass ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1978
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1979
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1980
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1981
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1982
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1983
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1984
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1985
CTestMmfAclntConvertDes::CTestMmfAclntConvertDes(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TTestFormat aFormat, const TBool aCreateDes)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1986
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1987
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1988
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1989
	// Each test step initialises it's own name
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1990
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1991
	iSectName = aSectName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1992
	iKeyName = aKeyName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1993
	iTestFormat = aFormat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1994
	iCreateDes = aCreateDes;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1995
	iSize = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1996
	iAudio = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1997
	//128K heap size
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1998
	iHeapSize = 0x20000;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1999
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2000
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2001
CTestMmfAclntConvertDes* CTestMmfAclntConvertDes::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TTestFormat aFormat,const TBool aCreateDes)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2002
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2003
	CTestMmfAclntConvertDes* self = new (ELeave) CTestMmfAclntConvertDes(aTestName,aSectName,aKeyName,aFormat,aCreateDes);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2004
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2005
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2006
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2007
CTestMmfAclntConvertDes* CTestMmfAclntConvertDes::NewLC(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TTestFormat aFormat, const TBool aCreateDes)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2008
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2009
	CTestMmfAclntConvertDes* self = CTestMmfAclntConvertDes::NewLC(aTestName,aSectName,aKeyName,aFormat,aCreateDes);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2010
	CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2011
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2012
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2013
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2014
void CTestMmfAclntConvertDes::MoscoStateChangeEvent(CBase* /*aObject*/, TInt aPreviousState, TInt aCurrentState, TInt aErrorCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2015
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2016
	iError = aErrorCode;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2017
	INFO_PRINTF4( _L("MMdaObjectStateChangeObserver: previous state: %d current state: %d error: %d"),aPreviousState, aCurrentState, aErrorCode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2018
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2019
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2020
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2021
TVerdict CTestMmfAclntConvertDes::DoTestStepPreambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2022
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2023
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2024
	SetupFormatL(iTestFormat);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2025
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2026
	RFs fs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2027
	RFile file;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2028
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2029
	// Connect to file server
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2030
	User::LeaveIfError(fs.Connect());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2031
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2032
	// get the filename from the config (.ini) file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2033
	TBuf<KSizeBuf>	filename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2034
	TPtrC			filename1; 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2035
	if(!GetStringFromConfig(iSectName, iKeyName, filename1))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2036
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2037
	GetDriveName(filename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2038
	filename.Append(filename1);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2039
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2040
	// opem the file to see if it exists and get the size
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2041
	User::LeaveIfError(file.Open(fs,filename,EFileRead));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2042
	CleanupClosePushL(file);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2043
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2044
	User::LeaveIfError(file.Size(iSize));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2045
	INFO_PRINTF2(_L("size of file is %d\n"),iSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2046
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2047
	// read the file into a descriptor and use CWavDecodeUtility
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2048
	// to examine the WAV file to get the data length etc.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2049
	HBufC8* imageData = HBufC8::NewLC(iSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2050
	TPtr8 imageDataPtr(imageData->Des());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2051
	User::LeaveIfError(file.Read(imageDataPtr));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2052
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2053
	CWavDecodeUtility* decodeUtility = CWavDecodeUtility::NewL(imageDataPtr);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2054
	CleanupStack::PushL(decodeUtility);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2055
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2056
	iDataLengthSource = decodeUtility->GetDataLength();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2057
	iSamples = decodeUtility->GetSamples();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2058
	iChannels = decodeUtility->GetChannels();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2059
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2060
	INFO_PRINTF2( _L("Sample Rate = %d"), decodeUtility->GetSampleRate());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2061
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2062
	INFO_PRINTF2( _L("Data length = %d"), iDataLengthSource);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2063
	INFO_PRINTF2( _L("Channels = %d"), iChannels);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2064
	INFO_PRINTF2( _L("Num of samples = %d"), iSamples);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2065
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2066
	CleanupStack::PopAndDestroy(3,&file); // decodeUtility, imageData, file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2067
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2068
	switch (iTestFormat)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2069
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2070
		case EPcm16Wav:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2071
			iHeaderSize = KWavFileUncompressedDataHeaderSize; //(see mmfwavformat.cpp, CreateSinkBufferOfSizeL())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2072
			iFrameSize = 4096;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2073
			iFileSizeSink = KWavFileUncompressedDataHeaderSize + iSamples * iChannels * 16 /*BitsPerSample*/ / 8;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2074
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2075
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2076
		case EAlawWav:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2077
			iHeaderSize = KWavFileUncompressedDataHeaderSize; //(see mmfwavformat.cpp, CreateSinkBufferOfSizeL())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2078
			iFrameSize = 4096;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2079
			iFileSizeSink = KWavFileUncompressedDataHeaderSize + iSamples * iChannels * 8 /*BitsPerSample*/ / 8;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2080
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2081
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2082
		case EPcm8:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2083
			iHeaderSize = KWavFileUncompressedDataHeaderSize; //(see mmfwavformat.cpp, CreateSinkBufferOfSizeL())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2084
			iFrameSize = 4096;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2085
			iFileSizeSink = KWavFileUncompressedDataHeaderSize + iSamples * iChannels * 8 /*BitsPerSample*/ / 8;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2086
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2087
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2088
		case EImaAdpcmWav:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2089
		case EImasPcmWav:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2090
			iHeaderSize = KWavFileCompressedDataHeaderSize + KImaAdpcmFactChunkSize;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2091
			iFrameSize = 4096;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2092
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2093
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2094
		case EMulawRaw:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2095
			iHeaderSize = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2096
			iFrameSize = 4096;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2097
			iFileSizeSink = iSamples * iChannels * 8 /*BitsPerSample*/ / 8;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2098
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2099
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2100
		case EPcmU8:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2101
			iHeaderSize = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2102
			iFrameSize = 4096;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2103
			iFileSizeSink = iSamples * iChannels * 8 /*BitsPerSample*/ / 8;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2104
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2105
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2106
		case EPcmU16:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2107
			iHeaderSize = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2108
			iFrameSize = 4096;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2109
			iFileSizeSink = iSamples * iChannels * 16 /*BitsPerSample*/ / 8;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2110
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2111
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2112
		case EGsmWav:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2113
			iHeaderSize = KWavFileCompressedDataHeaderSize + KGSMFactChunkSize;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2114
			iFrameSize = 4096;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2115
			break;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2116
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2117
		case E16BitAu:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2118
			iHeaderSize = KAuFileUncompressedDataHeaderSize;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2119
			iFrameSize = 4096;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2120
			iFileSizeSink = iHeaderSize + iSamples * iChannels * 16 /*BitsPerSample*/ / 8;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2121
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2122
		default:				   
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2123
			/*skip*/ ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2124
			iHeaderSize = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2125
			iFrameSize = 1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2126
			break ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2127
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2128
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2129
	return CTestMmfAclntStep::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2130
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2131
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2132
TVerdict CTestMmfAclntConvertDes::DoTestStepPostambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2133
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2134
	delete iAudio;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2135
	return CTestMmfAclntStep::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2136
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2137
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2138
void CTestMmfAclntConvertDes::MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds &aDuration)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2139
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2140
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2141
	iDuration = aDuration;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2142
	INFO_PRINTF1( _L("MMdaAudioPlayerCallback Init Complete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2143
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2144
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2145
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2146
void CTestMmfAclntConvertDes::MapcPlayComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2147
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2148
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2149
	INFO_PRINTF1( _L("MMdaAudioPlayerCallback Play Complete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2150
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2151
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2152
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2153
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2154
 * Open a descriptor and Convertord
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2155
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2156
TVerdict CTestMmfAclntConvertDes::DoTestStepL( void )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2157
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2158
	INFO_PRINTF1( _L("TestConvertor : Convert Des"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2159
	TVerdict ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2160
	HBufC8* audioTo = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2161
	TMdaDesClipLocation* toLocation = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2162
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2163
	CMdaAudioConvertUtility* ConvertUtil = CMdaAudioConvertUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2164
	CleanupStack::PushL(ConvertUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2165
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2166
	TBuf<KSizeBuf>	filename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2167
	TPtrC			filename1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2168
	if(!GetStringFromConfig(iSectName, iKeyName, filename1))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2169
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2170
	GetDriveName(filename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2171
	filename.Append(filename1);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2172
	//output buffer 2 much than input one
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2173
	audioTo = HBufC8::NewMaxLC(iSize*2);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2174
	TPtr8 toBufferDes(audioTo->Des());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2175
	toBufferDes.SetLength(0);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2176
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2177
	toLocation = new (ELeave) TMdaDesClipLocation(toBufferDes);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2178
	CleanupStack::PushL(toLocation);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2179
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2180
	ConvertUtil->OpenL(filename, toLocation, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2181
			iFormat, iCodec) ; 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2182
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2183
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2184
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2185
	INFO_PRINTF1( _L("Initialise CMdaAudioConvertUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2186
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2187
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2188
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2189
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2190
		iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2191
		ConvertUtil->ConvertL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2192
		INFO_PRINTF1( _L("Convertord CMdaAudioConvertUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2193
		CActiveScheduler::Start(); // open->Convertord
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2194
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2195
		if (iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2196
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2197
			// wait to run out of space Convertording
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2198
			CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2199
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2200
			if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2201
				{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2202
				INFO_PRINTF3(_L("Length %d, expected = %d"), audioTo->Length(), iFileSizeSink);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2203
				// compare length with expected
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2204
				if (iFileSizeSink > 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2205
					{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2206
					//is it a good size?
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2207
					if((audioTo->Length()) != (static_cast<TInt> (iFileSizeSink)) )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2208
						{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2209
						ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2210
						}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2211
					}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2212
				else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2213
					{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2214
					ret = EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2215
					}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2216
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2217
				// For good measure,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2218
				// check the validity of the conversion by comparing duration 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2219
				// with original file - but not for raw files
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2220
				if (iHeaderSize > 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2221
					{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2222
					CMdaAudioPlayerUtility* player = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2223
					player = CMdaAudioPlayerUtility::NewDesPlayerL(*audioTo, *this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2224
					CleanupStack::PushL(player);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2225
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2226
					// Wait for init callback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2227
					INFO_PRINTF1( _L("Initialise CMdaAudioPlayerUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2228
					CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2229
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2230
					player->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2231
					// Wait for play complete callback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2232
					INFO_PRINTF1( _L("CMdaAudioPlayerUtility::Play()"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2233
					CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2234
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2235
					INFO_PRINTF3( _L("Duration = %ld, expected = %ld"), I64LOW(player->Duration().Int64()), I64LOW(ConvertUtil->Duration().Int64()));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2236
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2237
					if (iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2238
						{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2239
						ERR_PRINTF2( _L("Play failed with error : %d"),iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2240
						ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2241
						}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2242
					else if (ConvertUtil->Duration() != player->Duration())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2243
						{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2244
						ERR_PRINTF3( _L("Actual Duration : %ld does not match the Expected Duration : %ld"),player->Duration().Int64(), ConvertUtil->Duration().Int64());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2245
						ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2246
						}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2247
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2248
					CleanupStack::PopAndDestroy(player);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2249
					}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2250
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2251
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2252
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2253
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2254
#if defined __WRITE_CONVERSION_TO_FILE
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2255
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2256
	_LIT(KFileOutRaw, "\\TEST.AU");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2257
	RFs fs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2258
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2259
	fs.Connect();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2260
	RFile file;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2261
	file.Replace(fs, KFileOutRaw(), EFileWrite);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2262
	file.Write(audioTo->Des());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2263
	TInt len = audioTo->Length();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2264
	file.Size(len);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2265
	file.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2266
	fs.Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2267
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2268
#endif
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2269
	if (ret != EPass)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2270
		ERR_PRINTF2( _L("CMdaAudioConvertorderUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2271
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2272
	CleanupStack::PopAndDestroy(toLocation);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2273
	CleanupStack::PopAndDestroy(audioTo);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2274
	CleanupStack::PopAndDestroy(ConvertUtil);	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2275
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2276
	User::After(KOneSecond);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2277
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2278
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2279
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2280
//---------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2281
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2282
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2283
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2284
CTestMmfAclntConvertUrl::CTestMmfAclntConvertUrl(const TDesC& aTestName, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2285
	:CTestMmfAclntConConfig(aTestName, EAlawWav, aNegative) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2286
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2287
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2288
CTestMmfAclntConvertUrl* CTestMmfAclntConvertUrl::NewL(const TDesC& aTestName, TBool aNegative)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2289
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2290
	CTestMmfAclntConvertUrl* self = new (ELeave) CTestMmfAclntConvertUrl(aTestName,aNegative);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2291
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2292
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2293
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2294
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2295
 * Set Urls
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2296
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2297
TVerdict CTestMmfAclntConvertUrl::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2298
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2299
	INFO_PRINTF1( _L("TestConvert : Urls"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2300
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2301
	TMdaUrlClipLocation* toLocation = new (ELeave)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2302
		TMdaUrlClipLocation(_L("http://www.symbian.com"),KUseDefaultIap);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2303
	CleanupStack::PushL(toLocation);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2304
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2305
	CMdaAudioConvertUtility* ConvertUtil = CMdaAudioConvertUtility::NewL(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2306
	CleanupStack::PushL(ConvertUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2307
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2308
	TBuf<KSizeBuf>	fromFileName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2309
	TPtrC			pFromFileName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2310
	if(!GetStringFromConfig(_L("SectionOne"), _L("playerAudioFile"), pFromFileName))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2311
			return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2312
	GetDriveName(fromFileName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2313
	fromFileName.Append(pFromFileName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2314
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2315
	TRAP(iError, ConvertUtil->OpenL(fromFileName, toLocation, iFormat, iCodec)) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2316
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2317
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2318
		//should not work for time being
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2319
		iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2320
		INFO_PRINTF1( _L("Initialise CMdaAudioConvertUtility"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2321
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2322
		if(iError == KErrNotSupported)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2323
			ret = EPass ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2324
		else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2325
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2326
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2327
   			TRAP(iError, ConvertUtil->ConvertL()) ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2328
			if(iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2329
				{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2330
				ERR_PRINTF2(_L("Convert left with error =  %d"),iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2331
				ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2332
				}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2333
				
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2334
			CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2335
			if(iError == KErrNotSupported)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2336
				ret = EPass ;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2337
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2338
		//CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2339
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2340
	else if(iError == KErrNotSupported)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2341
	{  //expected result
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2342
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2343
		ERR_PRINTF2(_L("OpenL left with error =  %d. It's OK for now!"),iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2344
		ret = EPass ;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2345
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2346
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2347
	CleanupStack::PopAndDestroy(ConvertUtil);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2348
	CleanupStack::PopAndDestroy(toLocation);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2349
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  2350
	}