First public contribution.
1 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
16 #ifndef __TSU_MMF_SIGNCONVERSIONS_H__
17 #define __TSU_MMF_SIGNCONVERSIONS_H__
19 #include <testframework.h>
20 #include <mmf/server/mmfcodec.h>
21 #include <mmf/server/mmfbuffer.h>
22 #include <mmf/server/mmfdatabuffer.h>
23 #include <mmf/common/mmfutilities.h>
24 #include <mmf/common/mmffourcc.h>
26 #include <mmf/common/mmfcontroller.h>
27 #include <mmf/common/mmfcontrollerpluginresolver.h>
28 #include <mmf/plugin/mmfplugininterfaceuids.hrh>
29 #include "TSU_MMF_ACOD.h"
33 class CTestSuite_MMF_SwCodecDevices;
37 * class CMMFDataGenerator
38 * Provides interface for test generator
41 class CMMFDataGenerator : public CBase
45 CMMFDataGenerator(){};
46 ~CMMFDataGenerator(){};
47 virtual void GenerateSourceDataL( CMMFDataBuffer* &aBuffer, TInt aSize )=0;
48 virtual void GenerateComparisonDataL( CMMFDataBuffer* &aBuffer, TInt aSize )=0;
49 virtual void PrintComparisonDataL( CMMFDataBuffer& aCodedData, CMMFDataBuffer& aRefCodedData );
50 virtual void AssembleValue( TUint8* data, TInt16& aValue, TBool bigEndian = EFalse );
51 virtual void AssembleValue( TUint8* data, TUint16& aValue, TBool bigEndian = EFalse );
53 CTestSuite_MMF_SwCodecDevices* iRefSuite; //added to allow logging to file
58 * class CMMFPcm16toPcmU8Generator
59 * Template class to generate pcm16 data and converted pcmu8 data
62 class CMMFPcm16ToPcmU8Generator: public CMMFDataGenerator
65 CMMFPcm16ToPcmU8Generator();
66 ~CMMFPcm16ToPcmU8Generator();
67 virtual void GenerateSourceDataL( CMMFDataBuffer* &aBuffer, TInt aSize );
68 virtual void GenerateComparisonDataL( CMMFDataBuffer* &aBuffer, TInt aSize );
69 virtual void PrintComparisonDataL( CMMFDataBuffer& aCodedData, CMMFDataBuffer& aRefCodedData );
74 * class CMMFPcmU16toPcmU16BGenerator
75 * Template class to generate pcm16 data and converted pcmu8 data
78 class CMMFPcmU16toPcmU16BGenerator: public CMMFDataGenerator
81 CMMFPcmU16toPcmU16BGenerator();
82 ~CMMFPcmU16toPcmU16BGenerator();
83 virtual void GenerateSourceDataL( CMMFDataBuffer* &aBuffer, TInt aSize );
84 virtual void GenerateComparisonDataL( CMMFDataBuffer* &aBuffer, TInt aSize );
85 virtual void PrintComparisonDataL( CMMFDataBuffer& aCodedData, CMMFDataBuffer& aRefCodedData );
90 * class CMMFPcmU16BtoPcm16BGenerator
91 * Template class to generate pcm16 data and converted pcmu8 data
94 class CMMFPcmU16BtoPcmU16Generator: public CMMFDataGenerator
97 CMMFPcmU16BtoPcmU16Generator();
98 ~CMMFPcmU16BtoPcmU16Generator();
99 virtual void GenerateSourceDataL( CMMFDataBuffer* &aBuffer, TInt aSize );
100 virtual void GenerateComparisonDataL( CMMFDataBuffer* &aBuffer, TInt aSize );
101 virtual void PrintComparisonDataL( CMMFDataBuffer& aCodedData, CMMFDataBuffer& aRefCodedData );
106 * class CMMFPcm8ToPcm16Generator
107 * Template class to generate pcm8 data and convert to pcm16 data
110 class CMMFPcm8ToPcm16Generator: public CMMFDataGenerator
113 CMMFPcm8ToPcm16Generator();
114 ~CMMFPcm8ToPcm16Generator();
115 virtual void GenerateSourceDataL( CMMFDataBuffer* &aBuffer, TInt aSize );
116 virtual void GenerateComparisonDataL( CMMFDataBuffer* &aBuffer, TInt aSize );
117 virtual void PrintComparisonDataL( CMMFDataBuffer& aCodedData, CMMFDataBuffer& aRefCodedData );
122 * class CMMFPcmU8ToPcm16Generator
125 class CMMFPcmU8ToPcm16Generator : public CMMFDataGenerator
128 CMMFPcmU8ToPcm16Generator();
129 ~CMMFPcmU8ToPcm16Generator();
130 virtual void GenerateSourceDataL( CMMFDataBuffer* &aBuffer, TInt aSize );
131 virtual void GenerateComparisonDataL( CMMFDataBuffer* &aBuffer, TInt aSize );
132 virtual void PrintComparisonDataL( CMMFDataBuffer& aCodedData, CMMFDataBuffer& aRefCodedData );
136 * Class CTestStepSignConversionTest
137 * This class tests type conversions using
138 * a codec T, test data generator Generator
139 * and having test case name name
141 template <class T, class Generator, TInt index>
142 class CTestStepSignConversionTest : public CTestStep_MMF_SwCodecDevices
145 CTestStepSignConversionTest();
146 virtual ~CTestStepSignConversionTest();
147 virtual enum TVerdict DoTestStepL();
148 virtual TVerdict DoTestStepPreambleL(void);
149 virtual TVerdict DoTestStepPostambleL(void);
151 TBool CompareData( CMMFDataBuffer* aData1, CMMFDataBuffer* aData2 );
153 T* iCodecUnderTest; // The Codec Under Test
154 Generator* iGenerator;
155 CMMFDataBuffer* iSourceData; // reference source data
156 CMMFDataBuffer* iCodedData; // coded data
157 CMMFDataBuffer* iRefCodedData; // reference coded data
158 CTestSuite_MMF_SwCodecDevices* iRefSuite;