mmlibs/mmfw/tsrc/mmfintegrationtest/ACLNT/TestConverter.h
changeset 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmlibs/mmfw/tsrc/mmfintegrationtest/ACLNT/TestConverter.h	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,450 @@
+
+// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Header file: Basic  tests.
+// 
+//
+
+/**
+ @file TestConverter.h
+*/
+
+
+#ifndef TESTCONVERTER_H__
+#define TESTCONVERTER_H__
+
+#include "TSI_MMFACLNT.h"
+
+//Original duration = 8359176 Us with 92160 bytes of 8bit per sample data + 44 header
+//Window start = 2089794 Us, aligned to a frame = 1857596 Us
+//Window end = 6269382 Us, aligned to a frame =6315828 Us
+//Therefore window = 4179588, aligned to a frames =4458231 Us
+
+//New file = 4458231/8359176 * 92160 * 16bits(2) + 44 = 98348
+const TInt KConverterWindowFileSize = 98348;
+
+
+//Add to KConverterWindowFileSize a full convert of the source file:-
+//=92160 * 16bits(2) + KConverterWindowFileSize
+const TInt KConverterWindowPlusNormalFileSize = 282668;
+
+
+/**
+ * Set config destination clip
+ *
+ * @class CTestMmfAclntConConfig
+ *
+ */
+class CTestMmfAclntConConfig : public CTestMmfAclntCodecTest, public MMdaObjectStateChangeObserver 
+	{
+public:
+	CTestMmfAclntConConfig(const TDesC& aTestName, const TTestFormat aFormat, const TBool aNegative);
+	static CTestMmfAclntConConfig* NewL(const TDesC& aTestName, const TTestFormat aFormat, const TBool aNegative = EFalse);
+	virtual TVerdict DoTestStepL();
+	virtual TVerdict DoTestL(CMdaAudioConvertUtility* aConverter);
+	virtual TVerdict DoTestStepPreambleL();
+	// from MMdaObjectStateChangeObserver
+	void MoscoStateChangeEvent(CBase* aObject, TInt aPreviousState, TInt aCurrentState, TInt aErrorCode);
+
+protected:
+	virtual void GetKeyName(TDes& aDes);
+protected:
+	TInt iError;
+	TBool iThisIsNegativeTest;
+	};
+
+
+/**
+ * Convert WAV to AU.
+ *
+ * @class CTestMmfAclntDoConv
+ *
+ */
+class CTestMmfAclntDoConv : public CTestMmfAclntStep, public MMdaObjectStateChangeObserver
+	{
+public:
+	enum FormatSpec
+	{
+	MdaFormatSpec,
+	MmfFormatSpec
+	};
+
+
+
+	CTestMmfAclntDoConv(const TDesC& aTestName, const TDesC& aSectName, 
+		const TDesC& aKeyName, const TDesC& aSectName2, 
+		const TDesC& aKeyName2, 
+		TInt	aBits, FormatSpec aFormat);
+	
+	//aBits 0  = TMdaPcmWavCodec::E8BitPcm
+	//		1  = TMdaPcmWavCodec::E16BitPcm
+	//		-1  - UnsupportedCodec (negative test)
+	static CTestMmfAclntDoConv* NewL(const TDesC& aTestName, 
+		const TDesC& aSectName, const TDesC& aKeyName, 
+		const TDesC& aSectName2, const TDesC& aKeyName2, 
+		TInt aBits, FormatSpec aFormat);
+	virtual TVerdict DoTestStepL();
+	virtual TVerdict DoTestL(CMdaAudioConvertUtility* aConverter);
+	// from MMdaObjectStateChangeObserver
+	void MoscoStateChangeEvent(CBase* aObject, TInt aPreviousState, TInt aCurrentState, TInt aErrorCode);
+
+protected:
+	TInt iError;
+	CBase* iObject;
+	TInt iPreviousState;
+	TInt iCurrentState;
+	TBuf<KNameBufSize> iSectName;
+	TBuf<KNameBufSize> iKeyName;
+	TBuf<KNameBufSize> iSectName2;
+	TBuf<KNameBufSize> iKeyName2;
+
+	FormatSpec iFormat;
+	TInt	iBits;
+	};
+
+
+/**
+ * Closes an open file then opens a second file
+ *
+ * @class CTestMmfAclntConCloseOpen
+ *
+ */
+class CTestMmfAclntConCloseOpen: public CTestMmfAclntConConfig
+	{
+public:
+	CTestMmfAclntConCloseOpen(const TDesC& aTestName) ;
+	~CTestMmfAclntConCloseOpen(){} ;
+	virtual TVerdict DoTestL(CMdaAudioConvertUtility* aConverter);
+	static CTestMmfAclntConCloseOpen* NewL(const TDesC& aTestName);
+	};
+
+/**
+ * Set convert window. Enquire window. Delete window
+ *
+ * @class CTestMmfAclntConWindow
+ *
+ */
+class CTestMmfAclntConWindow: public CTestMmfAclntConConfig
+	{
+public:
+	CTestMmfAclntConWindow(const TDesC& aTestName) ;
+	~CTestMmfAclntConWindow(){} ;
+	virtual TVerdict DoTestL(CMdaAudioConvertUtility* aConverter);
+	static CTestMmfAclntConWindow* NewL(const TDesC& aTestName);
+protected:
+	TVerdict CheckFileSize(const TDesC& aFilename, const TInt aExpectedSize);
+	};
+
+
+/**
+ * Enquire duration
+ *
+ * @class CTestMmfAclntConDuration
+ *
+ */
+class CTestMmfAclntConDuration: public CTestMmfAclntConConfig
+	{
+public:
+	CTestMmfAclntConDuration(const TDesC& aTestName) ;
+	virtual TVerdict DoTestL(CMdaAudioConvertUtility* aConverter);
+	void MoscoStateChangeEvent(CBase* aObject, TInt aPreviousState, 
+			TInt aCurrentState, TInt aErrorCode) ;
+	static CTestMmfAclntConDuration* NewL(const TDesC& aTestName);
+protected:
+	virtual void GetKeyName(TDes& aDes);
+	};
+
+/**
+ * Set position and enquire position
+ *
+ * @class CTestMmfAclntConPosition
+ *
+ */
+class CTestMmfAclntConPosition: public CTestMmfAclntConConfig
+	{
+public:
+	CTestMmfAclntConPosition(const TDesC& aTestName, const TTimeIntervalMicroSeconds aPosition);
+	virtual TVerdict DoTestL(CMdaAudioConvertUtility* aConverter);
+	static CTestMmfAclntConPosition* NewL(const TDesC& aTestName, const	TTimeIntervalMicroSeconds aPosition);
+
+protected:
+	void GetKeyName(TDes& aDes);
+private:
+	TTimeIntervalMicroSeconds iPosition;
+	};
+
+
+/**
+ * Set config destination clip
+ *
+ * @class CTestMmfAclntConQuery
+ *
+ */
+class CTestMmfAclntConQuery: public CTestMmfAclntConConfig
+	{
+public:
+	CTestMmfAclntConQuery(const TDesC& aTestName);
+	virtual TVerdict DoTestL(CMdaAudioConvertUtility* aConverter);
+	static CTestMmfAclntConQuery* NewL(const TDesC& aTestName);
+	TVerdict DoTestStepL();
+protected:
+	void GetKeyName(TDes& aDes);
+	};
+
+//
+// NEGATIVE TESTS
+//
+
+/** 
+ * Conversion utility - Delete object before conversion operation has completed.
+ *
+ * @class CTestMmfAclntDelete
+ *
+ */
+class CTestMmfAclntDelete : public CTestMmfAclntStep, public MMdaObjectStateChangeObserver
+	{
+public:
+	CTestMmfAclntDelete() ;
+	virtual TVerdict DoTestStepL();
+	// MMdaObjectStateChangeObserver
+	void MoscoStateChangeEvent(CBase* aObject, TInt aPreviousState, TInt aCurrentState, TInt aErrorCode);
+
+private:
+	TInt iError;	
+	};
+
+
+/** 
+ * Open new file while audio converter is converting. Open a new audio file.
+ *
+ * @class CTestMmfAclntOpenWhileConvert
+ *
+ */
+class CTestMmfAclntOpenWhileConvert : public CTestMmfAclntConConfig
+	{
+public:
+	CTestMmfAclntOpenWhileConvert(const TDesC& aTestName) ;
+	static CTestMmfAclntOpenWhileConvert* NewL(const TDesC& aTestName);
+	virtual TVerdict DoTestL(CMdaAudioConvertUtility* aConverter);
+	} ;
+/**
+ * @class CTestMmfAclntConvertDestBitRate
+ */
+
+class CTestMmfAclntConvertDestBitRate : public CTestMmfAclntConConfig
+	{
+public:
+	CTestMmfAclntConvertDestBitRate(const TDesC& aTestName, TBool aNegative) ;
+        static	CTestMmfAclntConvertDestBitRate* NewL(const TDesC& aTestName, TBool aNegative) ;
+	TVerdict DoTestL(CMdaAudioConvertUtility* aConverter);
+
+protected:
+	void GetKeyName(TDes& aDes);
+	};
+
+
+/**
+ * @class CTestMmfAclntConvertDestDataType
+ */
+class CTestMmfAclntConvertDestDataType : public CTestMmfAclntConConfig
+	{
+public:
+	CTestMmfAclntConvertDestDataType(const TDesC& aTestName, TBool aNegative);
+        static CTestMmfAclntConvertDestDataType* NewL(const TDesC& aTestName, TBool aNegative);
+	TVerdict DoTestL(CMdaAudioConvertUtility* aConverter);
+protected:
+	void GetKeyName(TDes& aDes);
+private:
+	TFourCC iDataType ;
+	} ;
+
+
+/**
+ * @class CTestMmfAclntConvertDestFormat
+ */
+class CTestMmfAclntConvertDestFormat : public CTestMmfAclntConConfig
+	{
+public:
+	CTestMmfAclntConvertDestFormat(const TDesC& aTestName, TBool aNegative);
+	static CTestMmfAclntConvertDestFormat* NewL(const TDesC& aTestName, TBool aNegative);
+	TVerdict DoTestL(CMdaAudioConvertUtility* aConverter);
+protected:
+	void GetKeyName(TDes& aDes);
+	};
+
+
+/**
+ * @class CTestMmfAclntConvertDestSampleRate
+ */
+class CTestMmfAclntConvertDestSampleRate : public CTestMmfAclntConConfig
+	{
+public:
+	CTestMmfAclntConvertDestSampleRate(const TDesC& aTestName, TBool aNegative);
+	static CTestMmfAclntConvertDestSampleRate* NewL(const TDesC& aTestName, TBool aNegative);
+	TVerdict DoTestL(CMdaAudioConvertUtility* aConverter);
+	TVerdict DoTestStepL() ;
+
+protected:
+	void GetKeyName(TDes& aDes);
+	void MoscoStateChangeEvent(CBase* aObject, TInt aPreviousState,	TInt aCurrentState,
+								TInt aErrorCode) ;
+	};
+
+/**
+ * @class CTestMmfAclntConvertDestNumberOfChannels
+ */
+class CTestMmfAclntConvertDestNumberOfChannels : public CTestMmfAclntConConfig
+	{
+public:
+	CTestMmfAclntConvertDestNumberOfChannels(const TDesC& aTestName, TBool aNegative);
+	static CTestMmfAclntConvertDestNumberOfChannels* NewL(const TDesC& aTestName, TBool aNegative);
+	TVerdict DoTestL(CMdaAudioConvertUtility* aConverter);
+protected:
+	void GetKeyName(TDes& aDes);
+	};
+
+/**
+ * @class CTestMmfAclntConvertSourceInfo
+ */
+class CTestMmfAclntConvertSourceInfo : public CTestMmfAclntConConfig
+	{
+public:
+	CTestMmfAclntConvertSourceInfo(const TDesC& aTestName, TBool aNegative);
+	static CTestMmfAclntConvertSourceInfo* NewL(const TDesC& aTestName, TBool aNegative);
+	TVerdict DoTestL(CMdaAudioConvertUtility* aConverter);
+protected:
+	void GetKeyName(TDes& aDes);
+	};
+/**
+ * Audio convert croping.
+ *
+ * @class CTestMmfAclntConvertCrop
+ *
+ */
+class CTestMmfAclntConvertCrop : public CTestMmfAclntConConfig
+	{
+public:
+	CTestMmfAclntConvertCrop(const TDesC& aTestName, const TBool aCropToEnd, TBool aNegative) ;
+	virtual TVerdict DoTestL(CMdaAudioConvertUtility* aConverter);
+	static CTestMmfAclntConvertCrop* NewL(const TDesC& aTestName, const TBool aCropToEnd, TBool aNegative);
+	virtual TVerdict DoTestStepL() ;
+	virtual TVerdict DoTestStepPostambleL();
+	// from MMdaObjectStateChangeObserver
+	void MoscoStateChangeEvent(CBase* aObject, TInt aPreviousState, TInt aCurrentState, TInt aErrorCode);
+private:
+	TBool iCropToEnd;
+	TPtrC iToFilename;
+	TPtrC iToFilename2;
+	} ;
+
+
+/**
+ * Set maximum length of file in bytes and convert
+ *
+ * @class CTestMmfAclntConvertLength
+ *
+ */
+class CTestMmfAclntConvertLength: public CTestMmfAclntConConfig
+	{
+public:
+	CTestMmfAclntConvertLength(const TDesC& aTestName, TBool aNegative) ;
+	virtual TVerdict DoTestL(CMdaAudioConvertUtility* aConvertUtil);
+	static CTestMmfAclntConvertLength* NewL(const TDesC& aTestName, TBool aNegative);
+	};
+
+/**
+ * Set repeats
+ *
+ * @class CTestMmfAclntConvertRepeat
+ *
+ */
+class CTestMmfAclntConvertRepeat : public CTestMmfAclntConConfig
+	{
+public:
+	CTestMmfAclntConvertRepeat(const TDesC& aTestName, TBool aNegative) ;
+	virtual TVerdict DoTestL(CMdaAudioConvertUtility* aConvertUtil);
+	static CTestMmfAclntConvertRepeat* NewL(const TDesC& aTestName, TBool aNegative);
+	};
+
+/**
+ * Audio convert Stoping.
+ *
+ * @class CTestMmfAclntConvertStop
+ *
+ */
+class CTestMmfAclntConvertStop : public CTestMmfAclntConConfig
+	{
+public:
+	CTestMmfAclntConvertStop(const TDesC& aTestName, TBool aNegative) ;
+	virtual TVerdict DoTestL(CMdaAudioConvertUtility* aConverter);
+	static CTestMmfAclntConvertStop* NewL(const TDesC& aTestName, TBool aNegative);
+	TVerdict DoTestStepL() ;
+	// from MMdaObjectStateChangeObserver
+	void MoscoStateChangeEvent(CBase* aObject, TInt aPreviousState, TInt aCurrentState, TInt aErrorCode);
+	} ;
+
+/**
+ * Open a descriptor and convert
+ *
+ * @class CTestMmfAclntConvertDes
+ *
+ */
+class CTestMmfAclntConvertDes : public CTestMmfAclntCodecTest, public MMdaObjectStateChangeObserver, public MMdaAudioPlayerCallback	
+	{
+public:
+	CTestMmfAclntConvertDes(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TTestFormat aFormat = ENone, const TBool aCreateDes = EFalse) ;
+	virtual TVerdict DoTestStepL();
+	static CTestMmfAclntConvertDes* NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TTestFormat aFormat = ENone, const TBool aCreateDes = EFalse);
+	static CTestMmfAclntConvertDes* NewLC(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TTestFormat aFormat = ENone, const TBool aCreateDes = EFalse);
+	virtual TVerdict DoTestStepPreambleL();
+	virtual TVerdict DoTestStepPostambleL();
+	// from MMdaObjectStateChangeObserver
+	virtual void MoscoStateChangeEvent(CBase* aObject, TInt aPreviousState, TInt aCurrentState, TInt aErrorCode);
+	
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+
+private:
+	HBufC8* iAudio;
+	TInt iError;
+	TInt iSize;
+	TInt iFrameSize;
+	TInt iHeaderSize;
+	TBool iCreateDes;
+	TBuf<32> iSectName;					// Section name for retrieving filename
+	TBuf<32> iKeyName;					// Key name for retrieving filename
+	TUint iDataLengthSource;			// source data length - not including header
+	TUint iSamples;
+	TUint iChannels;
+	TUint iFileSizeSink;				// expected file size including header
+	TTimeIntervalMicroSeconds iDuration;
+
+	} ;
+
+/**
+ * Set Urls
+ *
+ * @class CTestMmfAclntConvertUrl
+ *
+ */
+class CTestMmfAclntConvertUrl : public CTestMmfAclntConConfig
+	{
+public:
+	CTestMmfAclntConvertUrl(const TDesC& aTestName, TBool aNegative) ;
+	virtual TVerdict DoTestStepL();
+	static CTestMmfAclntConvertUrl* NewL(const TDesC& aTestName, TBool aNegative);
+	};
+
+#endif