mmlibs/mmfw/tsrc/mmfunittest/aclnt/TSU_MMF_ACLNT_01/TestStepPlayerManip.h
changeset 0 b8ed18f6c07b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmlibs/mmfw/tsrc/mmfunittest/aclnt/TSU_MMF_ACLNT_01/TestStepPlayerManip.h	Thu Oct 07 22:34:12 2010 +0100
@@ -0,0 +1,912 @@
+// Copyright (c) 2002-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:
+// TestStepPlayerManip.cpp
+// (manipulation)
+// This file contains testing steps for the Unit
+// test of the MMF 'Deprecated' Audio Clients.
+// Tests opening sounds of various formats
+// from a file with various parameters and constructor calls
+// 
+//
+
+
+#ifndef __TEST_STEP_PLAYER_MANIP__
+#define __TEST_STEP_PLAYER_MANIP__
+
+/**
+ *
+ * Play and Stop sound
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+const TInt KBufSize		= 25;
+
+class CTestStepPlayerStop :	public	CTestStepUnitMMFAudClient,
+							public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerStop* NewL();
+	CTestStepPlayerStop();
+	~CTestStepPlayerStop();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	TBool iHasPlayed;
+	};
+
+/**
+ *
+ * Get sound Duration
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerDuration :	public	CTestStepUnitMMFAudClient,
+								public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerDuration* NewL();
+	CTestStepPlayerDuration();
+	~CTestStepPlayerDuration();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	};
+
+/**
+ *
+ * Set sound Repeats
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerRepeats :	public	CTestStepUnitMMFAudClient,
+								public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerRepeats* NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName);
+
+	~CTestStepPlayerRepeats();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+private:
+	CTestStepPlayerRepeats(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName);
+private:
+	TInt iError;
+	TBuf<KBufSize> iSectName;					// Section name for retrieving filename
+	TBuf<KBufSize> iKeyName;					// Key name for retrieving filename
+
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	};
+
+
+/**
+ *
+ * Set sound Repeats & test state during Trailing silence 
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerRepeatsState :	public	CTestStepUnitMMFAudClient,
+								public	MMdaAudioPlayerCallback
+	{
+public:
+	enum TSchedulerStopReasons {EUnknown, EPlayerInitialized, EPlayComplete, ETimer};
+
+public:
+	static CTestStepPlayerRepeatsState* NewL();
+	CTestStepPlayerRepeatsState();
+	~CTestStepPlayerRepeatsState();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+
+	class CCallbackTimer : public CTimer
+		{
+	public:
+		CCallbackTimer(CTestStepPlayerRepeatsState& aTest);
+		~CCallbackTimer();
+		static CCallbackTimer* NewL(CTestStepPlayerRepeatsState& aTest);
+		void RunL();
+	private:
+		CTestStepPlayerRepeatsState& iTest;
+		};
+
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+
+	CCallbackTimer* iTimer;
+
+public:
+	TSchedulerStopReasons iSchedulerStopReason;
+	};
+
+/**
+ *
+ * Set Volume Ramp
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerVolRamp :	public	CTestStepUnitMMFAudClient,
+								public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerVolRamp* NewL();
+	CTestStepPlayerVolRamp();
+	~CTestStepPlayerVolRamp();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	TTimeIntervalMicroSeconds* iDuration;
+	};
+
+/**
+ *
+ * Set Volume 
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerVol :	public	CTestStepUnitMMFAudClient,
+							public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerVol* NewL();
+	CTestStepPlayerVol();
+	~CTestStepPlayerVol();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	TPtrC iFileName2;
+	};
+
+/**
+ *
+ * Get/Set position
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerPosition :	public	CTestStepUnitMMFAudClient,
+								public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerPosition* NewL();
+	CTestStepPlayerPosition();
+	~CTestStepPlayerPosition();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	TTimeIntervalMicroSeconds iDuration;
+	TBool iHasPlayed;
+	};
+
+/**
+ *
+ * Set/Clear Play WIndow
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerPlayWindow :	public	CTestStepUnitMMFAudClient,
+									public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerPlayWindow* NewL();
+	CTestStepPlayerPlayWindow();
+	~CTestStepPlayerPlayWindow();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	TTimeIntervalMicroSeconds iDuration, iBeginning, iMiddle,iEnd;
+	TBool iHasPlayed;
+	};
+
+/**
+ *
+ * Get/Set balance
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerBalance :	public	CTestStepUnitMMFAudClient,
+								public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerBalance* NewL();
+	CTestStepPlayerBalance();
+	~CTestStepPlayerBalance();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	TTimeIntervalMicroSeconds iDuration;
+	};
+
+/**
+ *
+ * Close
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerClose :	public	CTestStepUnitMMFAudClient,
+								public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerClose* NewL();
+	CTestStepPlayerClose();
+	~CTestStepPlayerClose();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	TTimeIntervalMicroSeconds iDuration;
+	};
+
+/**
+ *
+ * Metadata
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerMeta :	public	CTestStepUnitMMFAudClient,
+								public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerMeta* NewL();
+	CTestStepPlayerMeta();
+	~CTestStepPlayerMeta();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	TInt iNum;
+	};
+
+/**
+ *
+ * Priority
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerPriority :	public	CTestStepUnitMMFAudClient,
+								public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerPriority* NewL();
+	CTestStepPlayerPriority();
+	~CTestStepPlayerPriority();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	TInt iNum;
+	};
+	
+
+//
+// CTestStepPlayerPauseSetPosPlay
+//
+class CTestStepPlayerPauseSetPosPlay : public CTestStepUnitMMFAudClient,
+									   public MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerPauseSetPosPlay* NewL();
+	CTestStepPlayerPauseSetPosPlay();
+	~CTestStepPlayerPauseSetPosPlay();
+	void Close();
+
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+	virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+	virtual void MapcPlayComplete(TInt aError);
+
+protected:
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	TInt iError;
+	};
+
+//
+// CTestStepPlayerPlayWaitSetPos - Start playing the file, wait and then mid-playback reset the position to a different point.  Ensure playback completes.
+//
+class CTestStepPlayerPlayWaitSetPos : public CTestStepUnitMMFAudClient,
+									   public MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerPlayWaitSetPos* NewL();
+	CTestStepPlayerPlayWaitSetPos();
+	~CTestStepPlayerPlayWaitSetPos();
+	
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+	virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+	virtual void MapcPlayComplete(TInt aError);
+
+	static TInt TimerCallback(TAny* aParentObject);
+	void DoTimerCallback();
+	
+protected:
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	CPeriodic* iSetPositionCountDown;
+	TInt iError;
+	};
+	
+/**
+ *
+ * GetImplementationInfo
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerGetImplementationInfo :	public	CTestStepUnitMMFAudClient,
+								public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerGetImplementationInfo* NewL();
+	CTestStepPlayerGetImplementationInfo();
+	~CTestStepPlayerGetImplementationInfo();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	TInt iNum;
+	};
+
+
+/**
+ *
+ * SendCustomCommandSync
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerSendCustomCommandSync :	public	CTestStepUnitMMFAudClient,
+								public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerSendCustomCommandSync* NewL();
+	CTestStepPlayerSendCustomCommandSync();
+	~CTestStepPlayerSendCustomCommandSync();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	TInt iNum;
+	};
+
+
+/**
+ *
+ * SendCustomCommandSync
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerSendCustomCommandAsync :	public	CTestStepUnitMMFAudClient,
+								public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerSendCustomCommandAsync* NewL();
+	CTestStepPlayerSendCustomCommandAsync();
+	~CTestStepPlayerSendCustomCommandAsync();
+	void Close();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+    
+   	class CAsyncObserver : public CActive
+		{
+	public:
+		CAsyncObserver() : CActive(EPriorityStandard) {CActiveScheduler::Add(this);}
+		void RunL()
+			{
+			CActiveScheduler::Stop();
+			}
+		void DoCancel(){;}
+		TRequestStatus& ActiveStatus(){SetActive();return iStatus;}
+		};
+
+
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	CAsyncObserver* iAsyncObserver;
+	TInt iNum;
+	};
+	
+	
+/**
+ *
+ * ReloadingTest
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerReloadingTest :	public	CTestStepUnitMMFAudClient,
+								public	MMdaAudioPlayerCallback,
+								public  MAudioLoadingObserver
+	{
+public:
+	static CTestStepPlayerReloadingTest* NewL();
+	CTestStepPlayerReloadingTest();
+	~CTestStepPlayerReloadingTest();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+    
+    virtual void MaloLoadingStarted();
+    virtual void MaloLoadingComplete();
+
+private:
+	TInt iError;
+	TBool iCorrectEventReceived;
+	TBool iEventReceived;
+	TBool iLoadingComplete;
+	TBool iLoadingStarted;
+
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	TInt iNum;
+	};
+	
+/**
+ *
+ * Test Open sound specifying a url
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerOpenUrl :	public	CTestStepUnitMMFAudClient,
+									public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerOpenUrl* NewL();
+	CTestStepPlayerOpenUrl();
+	~CTestStepPlayerOpenUrl();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+
+private:
+	void OpenAndStartSchedulerL(TInt);
+
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	TPtrC iURL;
+	TPtrC iLongURL;
+	TPtrC iMimeType;
+	};
+	
+/**
+ *
+ * Test Open sound specifying Uri Tag
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerOpenviaUriTag :	public	CTestStepUnitMMFAudClient,
+									public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerOpenviaUriTag* NewL();
+	CTestStepPlayerOpenviaUriTag();
+	~CTestStepPlayerOpenviaUriTag();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+	
+private:
+	void OpenAndStartSchedulerL(TInt);
+
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	TPtrC iURL;
+	TPtrC iMimeType;
+	};
+
+/**
+ *
+ * Test Open sound Trying next controller
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerOpenTryNextCtrl :	public	CTestStepUnitMMFAudClient,
+									public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerOpenTryNextCtrl* NewL();
+	CTestStepPlayerOpenTryNextCtrl();
+	~CTestStepPlayerOpenTryNextCtrl();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+	
+private:
+	void OpenAndStartSchedulerL(TInt);
+
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	TPtrC iURL;
+	TPtrC iMimeType;
+	};
+
+
+/**
+ *
+ * INC048184 - SetPlayWindow,play,Stop,Fast Farward,Close,play
+ * make sure second play starts from start of file
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerPlayStopFFPlayNext :	public	CTestStepUnitMMFAudClient,
+									        public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerPlayStopFFPlayNext* NewL();
+	~CTestStepPlayerPlayStopFFPlayNext();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+	virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+	virtual void MapcPlayComplete(TInt aError);
+
+private:
+	CTestStepPlayerPlayStopFFPlayNext();
+	void FastForward(const TTimeIntervalMicroSeconds aPosition);
+	void Next(void);
+private:
+	TInt iError;
+	TInt iCurrentState;
+	TPtrC iFileName;
+	CMdaAudioPlayerUtility* iPlayerUtility;
+	};
+
+/**
+ *
+ * DEF067052: To setpriorities after Pausing the player
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepMultipleSetPlayerPriority :	public	CTestStepUnitMMFAudClient,
+								public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepMultipleSetPlayerPriority* NewL();
+	CTestStepMultipleSetPlayerPriority();
+	~CTestStepMultipleSetPlayerPriority();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	};
+
+
+/**
+ *
+ * DEF070060: play-pause-play fails on JSR135 TCK test (setloopcount2)
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerPlayPausePlay :	public	CTestStepUnitMMFAudClient,
+								public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerPlayPausePlay* NewL();
+	CTestStepPlayerPlayPausePlay();
+	~CTestStepPlayerPlayPausePlay();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	};
+
+/**
+ *
+ * DEF078081: TCK fail: CMMFMdaAudioPlayerUtility::Duration can't handle infinite sounds
+ * This defect resulted in the call TMMFDurationInfo Duration(TTimeIntervalMicroSeconds& aDuration) 
+ * being added to CMdaAudioPlayerUtility, CMdaAudioRecorderUtility
+ *
+ * This test case checks that the call returns TMMFDurationInfo::EMMFDurationInfoValid
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlaybackDurationInformation :	public	CTestStepUnitMMFAudClient,
+							      	    public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlaybackDurationInformation* NewL();
+	CTestStepPlaybackDurationInformation();
+	~CTestStepPlaybackDurationInformation();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt);
+
+private:
+	TInt iError;
+	CMdaAudioPlayerUtility* iPlayer;
+	};
+
+/**
+ *
+ * CheckImplementationInfo
+ *
+ * @lib "TSU_MMF_ACLNT_01.lib"
+ *
+ * @xxxx
+ *
+ */
+class CTestStepPlayerCheckImplementationInfo :	public	CTestStepUnitMMFAudClient,
+								public	MMdaAudioPlayerCallback
+	{
+public:
+	static CTestStepPlayerCheckImplementationInfo* NewL();
+	CTestStepPlayerCheckImplementationInfo();
+	~CTestStepPlayerCheckImplementationInfo();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	TInt iNum;
+	};
+	
+
+/* DEF090666 : T:Aclnt - Pausing during repeat causes the file to close itself
+*
+* @lib "TSU_MMF_ACLNT_01.lib"
+*/
+
+class CTestStepPlayerRepeatsPause : public	CTestStepUnitMMFAudClient,
+								 public	MMdaAudioPlayerCallback
+	{
+public:
+	enum TSchedulerStopReasons {EUnknown, EPlayerInitialized, EPlayComplete, ETimer};
+public:
+	static CTestStepPlayerRepeatsPause* NewL();
+	CTestStepPlayerRepeatsPause();
+	~CTestStepPlayerRepeatsPause();
+	virtual enum TVerdict DoTestStepPreambleL(void);
+	virtual enum TVerdict DoTestStepPostambleL(void);
+	virtual TVerdict DoTestStepL();
+
+	// from MMdaAudioPlayerCallback
+    virtual void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+    virtual void MapcPlayComplete(TInt aError);
+
+	class CCallbackTimer : public CTimer
+		{
+	public:
+		CCallbackTimer(CTestStepPlayerRepeatsPause& aTest);
+		~CCallbackTimer();
+		static CCallbackTimer* NewL(CTestStepPlayerRepeatsPause& aTest);
+		void RunL();
+	private:
+		CTestStepPlayerRepeatsPause& iTest;
+		};
+private:
+	TInt iError;
+	CMMFMdaAudioPlayerUtility* iPlayer;
+	CCallbackTimer* iTimer;
+public:
+	TSchedulerStopReasons iSchedulerStopReason;
+	};
+
+
+#endif //(__TEST_STEP_PLAYER_MANIP__)