sl@0: // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #ifndef __TSU_MMF_SIGNCONVERSIONS_H__ sl@0: #define __TSU_MMF_SIGNCONVERSIONS_H__ sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: #include "TSU_MMF_ACOD.h" sl@0: sl@0: sl@0: class CTestSuite ; sl@0: class CTestSuite_MMF_SwCodecDevices; sl@0: sl@0: /** sl@0: * sl@0: * class CMMFDataGenerator sl@0: * Provides interface for test generator sl@0: * sl@0: */ sl@0: class CMMFDataGenerator : public CBase sl@0: sl@0: { sl@0: public: sl@0: CMMFDataGenerator(){}; sl@0: ~CMMFDataGenerator(){}; sl@0: virtual void GenerateSourceDataL( CMMFDataBuffer* &aBuffer, TInt aSize )=0; sl@0: virtual void GenerateComparisonDataL( CMMFDataBuffer* &aBuffer, TInt aSize )=0; sl@0: virtual void PrintComparisonDataL( CMMFDataBuffer& aCodedData, CMMFDataBuffer& aRefCodedData ); sl@0: virtual void AssembleValue( TUint8* data, TInt16& aValue, TBool bigEndian = EFalse ); sl@0: virtual void AssembleValue( TUint8* data, TUint16& aValue, TBool bigEndian = EFalse ); sl@0: private: sl@0: CTestSuite_MMF_SwCodecDevices* iRefSuite; //added to allow logging to file sl@0: }; sl@0: sl@0: /** sl@0: * sl@0: * class CMMFPcm16toPcmU8Generator sl@0: * Template class to generate pcm16 data and converted pcmu8 data sl@0: * sl@0: **/ sl@0: class CMMFPcm16ToPcmU8Generator: public CMMFDataGenerator sl@0: { sl@0: public: sl@0: CMMFPcm16ToPcmU8Generator(); sl@0: ~CMMFPcm16ToPcmU8Generator(); sl@0: virtual void GenerateSourceDataL( CMMFDataBuffer* &aBuffer, TInt aSize ); sl@0: virtual void GenerateComparisonDataL( CMMFDataBuffer* &aBuffer, TInt aSize ); sl@0: virtual void PrintComparisonDataL( CMMFDataBuffer& aCodedData, CMMFDataBuffer& aRefCodedData ); sl@0: }; sl@0: sl@0: /** sl@0: * sl@0: * class CMMFPcmU16toPcmU16BGenerator sl@0: * Template class to generate pcm16 data and converted pcmu8 data sl@0: * sl@0: **/ sl@0: class CMMFPcmU16toPcmU16BGenerator: public CMMFDataGenerator sl@0: { sl@0: public: sl@0: CMMFPcmU16toPcmU16BGenerator(); sl@0: ~CMMFPcmU16toPcmU16BGenerator(); sl@0: virtual void GenerateSourceDataL( CMMFDataBuffer* &aBuffer, TInt aSize ); sl@0: virtual void GenerateComparisonDataL( CMMFDataBuffer* &aBuffer, TInt aSize ); sl@0: virtual void PrintComparisonDataL( CMMFDataBuffer& aCodedData, CMMFDataBuffer& aRefCodedData ); sl@0: }; sl@0: sl@0: /** sl@0: * sl@0: * class CMMFPcmU16BtoPcm16BGenerator sl@0: * Template class to generate pcm16 data and converted pcmu8 data sl@0: * sl@0: **/ sl@0: class CMMFPcmU16BtoPcmU16Generator: public CMMFDataGenerator sl@0: { sl@0: public: sl@0: CMMFPcmU16BtoPcmU16Generator(); sl@0: ~CMMFPcmU16BtoPcmU16Generator(); sl@0: virtual void GenerateSourceDataL( CMMFDataBuffer* &aBuffer, TInt aSize ); sl@0: virtual void GenerateComparisonDataL( CMMFDataBuffer* &aBuffer, TInt aSize ); sl@0: virtual void PrintComparisonDataL( CMMFDataBuffer& aCodedData, CMMFDataBuffer& aRefCodedData ); sl@0: }; sl@0: sl@0: /** sl@0: * sl@0: * class CMMFPcm8ToPcm16Generator sl@0: * Template class to generate pcm8 data and convert to pcm16 data sl@0: * sl@0: **/ sl@0: class CMMFPcm8ToPcm16Generator: public CMMFDataGenerator sl@0: { sl@0: public: sl@0: CMMFPcm8ToPcm16Generator(); sl@0: ~CMMFPcm8ToPcm16Generator(); sl@0: virtual void GenerateSourceDataL( CMMFDataBuffer* &aBuffer, TInt aSize ); sl@0: virtual void GenerateComparisonDataL( CMMFDataBuffer* &aBuffer, TInt aSize ); sl@0: virtual void PrintComparisonDataL( CMMFDataBuffer& aCodedData, CMMFDataBuffer& aRefCodedData ); sl@0: }; sl@0: sl@0: /** sl@0: * sl@0: * class CMMFPcmU8ToPcm16Generator sl@0: * sl@0: **/ sl@0: class CMMFPcmU8ToPcm16Generator : public CMMFDataGenerator sl@0: { sl@0: public: sl@0: CMMFPcmU8ToPcm16Generator(); sl@0: ~CMMFPcmU8ToPcm16Generator(); sl@0: virtual void GenerateSourceDataL( CMMFDataBuffer* &aBuffer, TInt aSize ); sl@0: virtual void GenerateComparisonDataL( CMMFDataBuffer* &aBuffer, TInt aSize ); sl@0: virtual void PrintComparisonDataL( CMMFDataBuffer& aCodedData, CMMFDataBuffer& aRefCodedData ); sl@0: }; sl@0: sl@0: /** sl@0: * Class CTestStepSignConversionTest sl@0: * This class tests type conversions using sl@0: * a codec T, test data generator Generator sl@0: * and having test case name name sl@0: **/ sl@0: template sl@0: class CTestStepSignConversionTest : public CTestStep_MMF_SwCodecDevices sl@0: { sl@0: public: sl@0: CTestStepSignConversionTest(); sl@0: virtual ~CTestStepSignConversionTest(); sl@0: virtual enum TVerdict DoTestStepL(); sl@0: virtual TVerdict DoTestStepPreambleL(void); sl@0: virtual TVerdict DoTestStepPostambleL(void); sl@0: private: sl@0: TBool CompareData( CMMFDataBuffer* aData1, CMMFDataBuffer* aData2 ); sl@0: private: sl@0: T* iCodecUnderTest; // The Codec Under Test sl@0: Generator* iGenerator; sl@0: CMMFDataBuffer* iSourceData; // reference source data sl@0: CMMFDataBuffer* iCodedData; // coded data sl@0: CMMFDataBuffer* iRefCodedData; // reference coded data sl@0: CTestSuite_MMF_SwCodecDevices* iRefSuite; sl@0: }; sl@0: sl@0: #endif