mmlibs/mmfw/tsrc/mmfintegrationtest/ACLNT/playtruepause.cpp
changeset 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmlibs/mmfw/tsrc/mmfintegrationtest/ACLNT/playtruepause.cpp	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,943 @@
+// Copyright (c) 2008-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:
+// Part of the TSI_MMFACLNT suite that tests CR1566 (TruePause) on AudioPlayerUtility
+// 
+//
+
+/**
+ @file PlayTruePause.cpp
+*/
+
+#include "playtruepause.h"
+
+/*
+ *
+ * RMdaPlayerUtilityTestBase - Test step constructor
+ *
+ */
+RMdaPlayerUtilityTestBase::RMdaPlayerUtilityTestBase(const TDesC& aTestName, const TDesC& aSectName)
+	:	iAudioUtilityState(EStateInitial), 
+		iPlayerUtility(NULL),
+		iTimer(NULL),
+		iFilename(KNullDesC),
+		iStop(EFalse),
+		iQuery(EFalse),
+		iVolume(0),
+		iBalance(0),
+		iResume(EFalse),
+		iPauseResumeTimes(0),
+		iPauseApplied(0),
+		iDuration(0),
+		iAllFormat(0),
+		iPositionSupported(EFalse),
+		iMiliSec(EFalse)
+	{
+	iTestStepName = aTestName;
+	iSectName = aSectName;
+	}
+
+/*
+ *
+ * ~RMdaPlayerUtilityTestBase - Test step destructor
+ *
+ */
+RMdaPlayerUtilityTestBase::~RMdaPlayerUtilityTestBase()
+	{
+	if (iPlayerUtility)
+		{
+		delete iPlayerUtility;
+		}
+	if(iTimer)
+		{
+		delete iTimer;
+		}
+	}
+
+/*
+ *
+ * KickoffTestL - Starts the test
+ *
+ */
+void RMdaPlayerUtilityTestBase::KickoffTestL()
+	{
+	INFO_PRINTF1(_L("__________  Creating Player Utility object ___________"));
+	TRAPD(err,  iPlayerUtility = CMdaAudioPlayerUtility::NewL(*this));
+	if (err != KErrNone)
+		{
+		ERR_PRINTF2(_L("Could not create Player Utility object. Error = %d"), err);
+		StopTest(err);
+		return;
+		}
+	INFO_PRINTF1(_L("Player Utility State: EStateCreated"));
+	iAudioUtilityState = EStateCreated;
+	DoKickoffTestL();
+	INFO_PRINTF1(_L("Audio Player Utility Event: EEventInitialize"));
+	Fsm(EEventInitialize, KErrNone);
+	}
+
+/*
+ *
+ * CloseTest
+ *
+ */
+void RMdaPlayerUtilityTestBase::CloseTest()
+	{
+	INFO_PRINTF1(KMsgDelete);
+	delete iPlayerUtility;
+	delete iTimer;
+	}
+
+/*
+ *
+ * StartTimer - Starts timer and timer callback
+ *
+ */
+void RMdaPlayerUtilityTestBase::StartTimer(TTimeIntervalMicroSeconds32 aWaitTime)
+	{
+	TTimeIntervalMicroSeconds32 timeInterval;
+	
+	if(aWaitTime <= TTimeIntervalMicroSeconds32(0))
+		{
+		timeInterval = KMicroSecInOneSec;
+		}
+	else
+		{
+		timeInterval = aWaitTime;
+		}
+	TCallBack callback (TimerCallback, this);
+	iTimer->Start(timeInterval, timeInterval, callback);
+	INFO_PRINTF1(_L("Timer has been started"));
+	}
+
+/*
+ *
+ * TimerCallback
+ *
+ */
+TInt RMdaPlayerUtilityTestBase::TimerCallback(TAny* aPtr)
+	{
+	static_cast<RMdaPlayerUtilityTestBase*>(aPtr)->DoTimerCallback();
+	return KErrNone;
+	}
+
+/*
+ *
+ * DoTimerCallback
+ *
+ */
+void RMdaPlayerUtilityTestBase::DoTimerCallback()
+	{
+	INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete"));
+	Fsm (EEventTimerComplete, KErrNone);
+	}
+
+/*
+ *
+ * Fsm - Executes playing events of AudioPlayerUtility in sequence
+ *
+ */
+void RMdaPlayerUtilityTestBase::Fsm(TMdaAudioUtilityEvent aMdaAudioUtilityEvent, TInt aError)
+	{
+	switch (iAudioUtilityState)
+		{
+		case EStateCreated:
+			{
+			__ASSERT_ALWAYS((aError == KErrNone), Panic(iTestStepName.Right(KPanicLength), EFsmIncorrectErrorPassed));
+			if (aMdaAudioUtilityEvent == EEventInitialize)
+				{
+				INFO_PRINTF1(_L("Calling CMdaAudioPlayerUtility::OpenFileL"));
+				TRAPD(err,iPlayerUtility->OpenFileL(iFilename));
+				if(err)
+					{
+					ERR_PRINTF2(_L("CMdaAudioPlayerUtility::OpenFileL left with err = %d"),err);
+					StopTest(err);
+					break;
+					}
+				INFO_PRINTF1(_L("AudioPlayerUtility State: EStateInitializing"));
+				iAudioUtilityState = EStateInitializing;
+				}
+			else
+				{
+				ERR_PRINTF2(_L("MdaAudioUtility EEventInitialize not received as expected. Received event: %d"), aMdaAudioUtilityEvent);
+				StopTest(aError, EFail);
+				}
+			break;
+			}
+		case EStateInitializing:
+			{
+			if (aMdaAudioUtilityEvent == EEventInitComplete && aError == KErrNone)
+				{
+				INFO_PRINTF1(_L("Calling CMdaAudioPlayerUtility::Play"));
+				iPlayerUtility->Play();
+				INFO_PRINTF1(_L("AudioPlayerUtility State: EStatePlaying"));
+				iAudioUtilityState = EStatePlaying;
+				if(iMiliSec)
+					{
+					StartTimer(iDuration*KMiliSecInOneSec);
+					}
+				else
+					{
+					StartTimer(iDuration*KMicroSecInOneSec);
+					}
+				}
+			else if (aMdaAudioUtilityEvent == EEventInitComplete && aError != KErrNone)
+				{
+				ERR_PRINTF2(_L("MapcInitComplete returned with error = %d"), aError);
+				StopTest(aError);	
+				}
+			else
+				{
+				ERR_PRINTF2(_L("MdaAudioUtility EEventInitComplete not received as expected. Received event: %d"), aMdaAudioUtilityEvent);
+				StopTest(aError, EFail);
+				}
+			break;
+			}
+		case EStatePlaying:
+			{
+			if(aMdaAudioUtilityEvent == EEventTimerComplete)
+				{
+				INFO_PRINTF1(_L("Calling CMdaAudioPlayerUtility::Pause"));
+				TInt err = iPlayerUtility->Pause();
+				iPauseApplied = ETrue;
+				INFO_PRINTF1(_L("AudioPlayerUtility State: EStatePause"));
+				iAudioUtilityState = EStatePause;
+				}
+			else
+				{
+				ERR_PRINTF2(_L("MdaAudioUtility EEventTimerComplete not received as expected. Received event: %d"), aMdaAudioUtilityEvent);
+				StopTest(aError, EFail);
+				}
+			break;
+			}
+		case EStatePause:
+			{
+			if (aMdaAudioUtilityEvent == EEventTimerComplete)
+				{
+				if(iQuery)
+					{
+					INFO_PRINTF2(_L("Setting AudioPlayerUtility volume = %d"), iVolume);
+					TInt err = iPlayerUtility->SetVolume(iVolume);
+					if (err != KErrNone)
+						{
+						ERR_PRINTF2(_L("Setting volume failed. It returned with error = %d"), err);
+						StopTest(err);
+						break;
+						}
+					TInt volume = 0;
+					INFO_PRINTF1(_L("Calling CMdaAudioPlayerUtility::GetVolume for verifying"));
+					err = iPlayerUtility->GetVolume(volume);
+					if (err != KErrNone)
+						{
+						ERR_PRINTF2(_L("CMdaAudioPlayerUtility::GetVolume returned with error = %d"), err);
+						StopTest(err);
+						break;
+						}
+					if(iVolume != volume)
+						{
+						ERR_PRINTF2(_L("CMdaAudioPlayerUtility::SetVolume returned different set value = %d"), volume);
+						StopTest(KErrGeneral);
+						break;
+						}
+					INFO_PRINTF2(_L("Setting AudioPlayerUtility balance = %d"), iBalance);
+					err = iPlayerUtility->SetBalance(iBalance);
+					if (err != KErrNone)
+						{
+						ERR_PRINTF2(_L("Setting balance failed. It returned with error = %d"), err);
+						StopTest(err);
+						break;
+						}
+					TInt balance = 0;
+					INFO_PRINTF1(_L("Calling CMdaAudioPlayerUtility::GetBalance for verifying"));
+					err = iPlayerUtility->GetBalance(balance);
+					if (err != KErrNone)
+						{
+						ERR_PRINTF2(_L("CMdaAudioPlayerUtility::GetBalance returned with error = %d"), err);
+						StopTest(err);
+						break;
+						}
+					if(Abs(iBalance - balance)<KBalanceTolerance)
+						{
+						INFO_PRINTF2(_L("CMdaAudioPlayerUtility::SetBalance returned expected set value %d"),iBalance);
+						}
+					else
+						{
+						ERR_PRINTF3(_L("CMdaAudioPlayerUtility::SetBalance returned different set value %d. Retrieved %d"), iBalance, balance);
+						StopTest(KErrGeneral);
+						break;
+						}
+					INFO_PRINTF1(_L("Calling CMdaAudioPlayerUtility::Play"));
+					iPlayerUtility->Play();
+					iTimer->Cancel();
+					INFO_PRINTF1(_L("Audio Player Utility State: EStatePlaying"));
+					iAudioUtilityState = EStatePlaying;
+					INFO_PRINTF1(_L("Calling CMdaAudioPlayerUtility::GetVolume for verifying"));
+					err = iPlayerUtility->GetVolume(volume);
+					if (err != KErrNone)
+						{
+						ERR_PRINTF2(_L("CMdaAudioPlayerUtility::GetVolume returned with error = %d"), err);
+						StopTest(err);
+						break;
+						}
+					if (volume == iVolume)
+						{
+						INFO_PRINTF1(_L("CMdaAudioPlayerUtility::GetVolume returned equal previous set value as expected"));
+						}
+					else
+						{
+						ERR_PRINTF2(_L("CMdaAudioPlayerUtility::GetVolume returned different set value = %d"), iVolume);
+						StopTest (KErrGeneral);
+						break;
+						}
+					INFO_PRINTF1(_L("Calling CMdaAudioPlayerUtility::GetBalance for verifying"));
+					err = iPlayerUtility->GetBalance(balance);
+					if (err != KErrNone)
+						{
+						ERR_PRINTF2(_L("CMdaAudioPlayerUtility::GetBalance returned with error = %d"), err);
+						StopTest(err);
+						break;
+						}
+					if(Abs(iBalance - balance)<KBalanceTolerance)
+						{
+						INFO_PRINTF2(_L("CMdaAudioPlayerUtility::GetBalance returned expected set value %d"),iBalance);
+						}
+					else
+						{
+						ERR_PRINTF3(_L("CMdaAudioPlayerUtility::GetBalance returned different set value = %d. Retrieved %d"), iBalance, balance);
+						StopTest(KErrGeneral);
+						break;
+						}
+					}
+				if(iResume || iStop)
+					{
+					TTimeIntervalMicroSeconds position1 = 0;
+					if(iPositionSupported)
+						{
+						INFO_PRINTF1(_L("Calling CMdaAudioPlayerUtility::GetPosition"));
+						TInt err = iPlayerUtility->GetPosition(position1);
+						if(err)
+							{
+							ERR_PRINTF2(_L("CMdaAudioPlayerUtility::GetPosition returned with err = %d"), err);
+							StopTest(err);
+							break;
+							}
+						INFO_PRINTF2(_L("AudioPlayerUtility position = %Ld"), position1.Int64());
+						if(position1.Int64() == 0)
+							{
+							INFO_PRINTF1(_L("AudioPlayerUtility position must be longer than 0"));
+							StopTest(KErrGeneral);
+							break;
+							}
+						}
+					if(iStop)
+						{
+						INFO_PRINTF1(_L("Calling CMdaAudioPlayerUtility::Stop"));
+						iPlayerUtility->Stop();
+						}
+					INFO_PRINTF1(_L("Calling CMdaAudioPlayerUtility::Play"));
+					iPlayerUtility->Play();
+					if((--iPauseResumeTimes) <= 0)
+						{
+						iTimer->Cancel();
+						}
+					INFO_PRINTF1(_L("AudioPlayerUtility State: EStatePlaying"));
+					iAudioUtilityState = EStatePlaying;
+					TTimeIntervalMicroSeconds position2 = 0;
+					if(iPositionSupported)
+						{
+						INFO_PRINTF1(_L("Calling CMdaAudioPlayerUtility::GetPosition"));
+						TInt err = iPlayerUtility->GetPosition(position2);
+						if(err)
+							{
+							ERR_PRINTF2(_L("CMdaAudioPlayerUtility::GetPosition returned with err = %d"), err);
+							StopTest(err);
+							break;
+							}
+						INFO_PRINTF2(_L(" AudioPlayerUtility position = %Ld"), position2.Int64());
+						}
+					if(iStop)
+						{
+						if(position2.Int64() == 0)
+							{
+							INFO_PRINTF1(_L("AudioPlayerUtility position was reset as expected"));
+							}
+						else
+							{
+							INFO_PRINTF1(_L("AudioPlayerUtility position was not reset"));
+							StopTest(KErrGeneral);
+							break;
+							}
+						}
+					else if(iPositionSupported)
+						{
+						if(Abs(position2.Int64() - position1.Int64()) <= KOneSecond/2)
+							{
+							INFO_PRINTF2(_L("AudioPlayerUtility position continued from expected position %Ld"),position2.Int64());
+							}
+						else
+							{
+							ERR_PRINTF3(_L("Playback did not resume from expected position. Expected %Ld Retrieved %Ld"),position1.Int64(),position2.Int64());
+							StopTest(KErrGeneral);
+							break;
+							}
+						}
+					else
+						{
+						INFO_PRINTF1(_L("AudioPlayerUtility continue playing "));
+						}
+					
+					}
+				}
+			else
+				{
+				ERR_PRINTF2(_L("MdaAudioUtility EEventTimerComplete not received as expected. Received event: %d"), aMdaAudioUtilityEvent);
+				StopTest(aError, EFail);
+				}
+			break;
+			}
+		default:
+			{
+			ERR_PRINTF2(_L("Invalid MdaAudioUtility state received: %d"), aMdaAudioUtilityEvent);
+			StopTest(KErrGeneral);
+			}
+		}
+	}
+
+/*
+ *
+ * MapcInitComplete - From MMdaAudioPlayerCallback
+ *
+ */
+void RMdaPlayerUtilityTestBase::MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& /*aDuration*/)
+	{
+	INFO_PRINTF1(_L("========== Audio Player Utility MapcInitComplete() callback =========="));
+	if(iAudioUtilityState == EStateInitializing)
+		{
+		INFO_PRINTF1(_L(" Audio Player Utility Event: EEventInitComplete"));
+		Fsm(EEventInitComplete, aError);
+		}
+	}
+
+/*
+ *
+ * MapcPlayComplete - From MMdaAudioPlayerCallback
+ *
+ */
+void RMdaPlayerUtilityTestBase::MapcPlayComplete(TInt aError)
+	{
+	INFO_PRINTF1(_L("========== Audio Player Utility MapcPlayComplete() callback =========="));
+	if (aError == KErrNone)
+		{
+		INFO_PRINTF2(_L("AudioPlayerUtility called MapcPlayComplete with error = %d as expected"), aError);
+		StopTest();
+		}
+	else
+		{
+		ERR_PRINTF2(_L("AudioPlayerUtility called MapcPlayComplete with error = %d"), aError);
+		ERR_PRINTF2(_L("Expected error = %d"), KErrNone);
+		StopTest(aError);
+		}
+	}
+
+/*
+ *
+ * Panic
+ *
+ */
+void RMdaPlayerUtilityTestBase::Panic(const TDesC &aCategory, TInt aReason)
+	{
+	User::Panic(aCategory, aReason);
+	}
+
+/*
+ *========================================================================================================
+ * MM-MMF-ACLNT-I-0185-HP
+ *========================================================================================================
+ */
+RMdaPlayerUtiliyPauseStopAndPlayWavTest::RMdaPlayerUtiliyPauseStopAndPlayWavTest(const TDesC& aTestName, const TDesC& aSectName)
+	:	RMdaPlayerUtilityTestBase(aTestName, aSectName)
+	{
+	iStop = ETrue;
+	iPositionSupported = ETrue;
+	}
+
+/*
+ *
+ * NewL
+ *
+ */
+RMdaPlayerUtiliyPauseStopAndPlayWavTest* RMdaPlayerUtiliyPauseStopAndPlayWavTest::NewL(const TDesC& aTestName, const TDesC& aSectName)
+	{
+	RMdaPlayerUtiliyPauseStopAndPlayWavTest * self = new(ELeave)RMdaPlayerUtiliyPauseStopAndPlayWavTest(aTestName, aSectName);
+	return self;
+	}
+
+/*
+ *
+ * DoKickoffTestL
+ *
+ */
+void RMdaPlayerUtiliyPauseStopAndPlayWavTest::DoKickoffTestL()
+	{
+	TPtrC filename;
+	// Get the filename of the audio file to play
+	if (!GetStringFromConfig(iSectName, KFilenameWAV, filename))
+		{
+		ERR_PRINTF1(_L("Filename could not be retrieved from ini file"));
+		StopTest(KErrNotFound);
+		return;
+		}
+	// open using RFile for playback
+	iFilename.Copy(filename);
+	INFO_PRINTF2(_L("File under test  -> %S"), &iFilename);
+	if (!GetIntFromConfig(iSectName, KDuration1, iDuration))
+		{
+		ERR_PRINTF2(KMsgErrorGetParameter, &KDuration1);
+		StopTest(KErrNotFound);
+		return;
+		}
+	iTimer = CPeriodic::NewL(CActive::EPriorityHigh);
+	}
+/*
+ *========================================================================================================
+ * MM-MMF-ACLNT-I-0186-HP
+ *========================================================================================================
+ */
+RMdaPlayerUtilityQueryPauseAndPlayWavTest::RMdaPlayerUtilityQueryPauseAndPlayWavTest(const TDesC& aTestName, const TDesC& aSectName)
+	:	RMdaPlayerUtilityTestBase(aTestName, aSectName)
+	{
+	iQuery = ETrue;
+	}
+
+/*
+ *
+ * NewL
+ *
+ */
+RMdaPlayerUtilityQueryPauseAndPlayWavTest* RMdaPlayerUtilityQueryPauseAndPlayWavTest::NewL(const TDesC& aTestName, const TDesC& aSectName)
+	{
+	RMdaPlayerUtilityQueryPauseAndPlayWavTest * self = new(ELeave)RMdaPlayerUtilityQueryPauseAndPlayWavTest(aTestName, aSectName);
+	return self;
+	}
+
+/*
+ *
+ * DoKickoffTestL
+ *
+ */
+void RMdaPlayerUtilityQueryPauseAndPlayWavTest::DoKickoffTestL()
+	{
+	TPtrC filename;
+	// Get the filename of the audio file to play
+	if (!GetStringFromConfig(iSectName, KFilenameWAV, filename))
+		{
+		ERR_PRINTF1(_L("Filename could not be retrieved from ini file"));
+		StopTest(KErrNotFound);
+		return;
+		}
+	// open using RFile for playback
+	iFilename.Copy(filename);
+	INFO_PRINTF2(_L("File under test  -> %S"), &iFilename);
+	if (!GetIntFromConfig(iSectName, KVolume, iVolume))
+		{
+		ERR_PRINTF2(KMsgErrorGetParameter, &KVolume);
+		StopTest(KErrNotFound);
+		return;
+		}
+	if (!GetIntFromConfig(iSectName, KBalance, iBalance))
+		{
+		ERR_PRINTF2(KMsgErrorGetParameter, &KBalance);
+		StopTest(KErrNotFound);
+		return;
+		}
+	if (!GetIntFromConfig(iSectName, KDuration1, iDuration))
+		{
+		ERR_PRINTF2(KMsgErrorGetParameter, &KDuration1);
+		StopTest(KErrNotFound);
+		return;
+		}
+	iTimer = CPeriodic::NewL(CActive::EPriorityHigh);
+	}
+
+/*
+ *========================================================================================================
+ * MM-MMF-ACLNT-I-0187-HP
+ *========================================================================================================
+ */
+RMdaPlayerUtilityPauseAndPlaySqnTest::RMdaPlayerUtilityPauseAndPlaySqnTest(const TDesC& aTestName, const TDesC& aSectName)
+	:	RMdaPlayerUtilityTestBase(aTestName, aSectName)
+	{
+	iResume = ETrue;
+	}
+
+/*
+ *
+ * NewL
+ *
+ */
+RMdaPlayerUtilityPauseAndPlaySqnTest* RMdaPlayerUtilityPauseAndPlaySqnTest::NewL(const TDesC& aTestName, const TDesC& aSectName)
+	{
+	RMdaPlayerUtilityPauseAndPlaySqnTest * self = new(ELeave)RMdaPlayerUtilityPauseAndPlaySqnTest(aTestName, aSectName);
+	return self;
+	}
+
+/*
+ *
+ * DoKickoffTestL
+ *
+ */
+void RMdaPlayerUtilityPauseAndPlaySqnTest::DoKickoffTestL()
+	{
+	TPtrC filename;
+	// Get the filename of the audio file to play
+	if (!GetStringFromConfig(iSectName, KFilenameSQN, filename))
+		{
+		ERR_PRINTF1(_L("Filename could not be retrieved from ini file"));
+		StopTest(KErrNotFound);
+		return;
+		}
+	// open using RFile for playback
+	iFilename.Copy(filename);
+	INFO_PRINTF2(_L("File under test  -> %S"), &iFilename);
+	if (!GetIntFromConfig(iSectName, KDuration1, iDuration))
+		{
+		ERR_PRINTF2(KMsgErrorGetParameter, &KDuration1);
+		StopTest(KErrNotFound);
+		return;
+		}
+	iTimer = CPeriodic::NewL(CActive::EPriorityHigh);
+	}
+
+/*
+ *========================================================================================================
+ * MM-MMF-ACLNT-I-0188-HP
+ *========================================================================================================
+ */
+RMdaPlayerUtilityPauseAndPlayThreeTimesSqnTest::RMdaPlayerUtilityPauseAndPlayThreeTimesSqnTest(const TDesC& aTestName, const TDesC& aSectName)
+	:	RMdaPlayerUtilityTestBase(aTestName, aSectName)
+	{
+	iResume = ETrue;
+	iPauseResumeTimes = KRepeatThrice;
+	}
+
+/*
+ *
+ * NewL
+ *
+ */
+RMdaPlayerUtilityPauseAndPlayThreeTimesSqnTest* RMdaPlayerUtilityPauseAndPlayThreeTimesSqnTest::NewL(const TDesC& aTestName, const TDesC& aSectName)
+	{
+	RMdaPlayerUtilityPauseAndPlayThreeTimesSqnTest * self = new(ELeave)RMdaPlayerUtilityPauseAndPlayThreeTimesSqnTest(aTestName, aSectName);
+	return self;
+	}
+
+/*
+ *
+ * DoKickoffTestL
+ *
+ */
+void RMdaPlayerUtilityPauseAndPlayThreeTimesSqnTest::DoKickoffTestL()
+	{
+	TPtrC filename;
+	// Get the filename of the audio file to play
+	if (!GetStringFromConfig(iSectName, KFilenameSQN, filename))
+		{
+		ERR_PRINTF1(_L("Filename could not be retrieved from ini file"));
+		StopTest(KErrNotFound);
+		return;
+		}
+	// open using RFile for playback
+	iFilename.Copy(filename);
+	INFO_PRINTF2(_L("File under test  -> %S"), &iFilename);
+	if (!GetIntFromConfig(iSectName, KDuration1, iDuration))
+		{
+		ERR_PRINTF2(KMsgErrorGetParameter, &KDuration1);
+		StopTest(KErrNotFound);
+		return;
+		}
+	iTimer = CPeriodic::NewL(CActive::EPriorityHigh);
+	}
+
+/*
+ *========================================================================================================
+ * MM-MMF-ACLNT-I-0189-HP
+ *========================================================================================================
+ */
+RMdaPlayerUtilityPauseStopAndPlaySqnTest::RMdaPlayerUtilityPauseStopAndPlaySqnTest(const TDesC& aTestName, const TDesC& aSectName)
+	:	RMdaPlayerUtilityTestBase(aTestName, aSectName)
+	{
+	iStop = ETrue;
+	}
+
+/*
+ *
+ * NewL
+ *
+ */
+RMdaPlayerUtilityPauseStopAndPlaySqnTest* RMdaPlayerUtilityPauseStopAndPlaySqnTest::NewL(const TDesC& aTestName, const TDesC& aSectName)
+	{
+	RMdaPlayerUtilityPauseStopAndPlaySqnTest * self = new(ELeave)RMdaPlayerUtilityPauseStopAndPlaySqnTest(aTestName, aSectName);
+	return self;
+	}
+
+/*
+ *
+ * DoKickoffTestL
+ *
+ */
+void RMdaPlayerUtilityPauseStopAndPlaySqnTest::DoKickoffTestL()
+	{
+	TPtrC filename;
+	// Get the filename of the audio file to play
+	if (!GetStringFromConfig(iSectName, KFilenameSQN, filename))
+		{
+		ERR_PRINTF1(_L("Filename could not be retrieved from ini file"));
+		StopTest(KErrNotFound);
+		return;
+		}
+	// open using RFile for playback
+	iFilename.Copy(filename);
+	INFO_PRINTF2(_L("File under test  -> %S"), &iFilename);
+	if (!GetIntFromConfig(iSectName, KDuration1, iDuration))
+		{
+		ERR_PRINTF2(KMsgErrorGetParameter, &KDuration1);
+		StopTest(KErrNotFound);
+		return;
+		}
+	iTimer = CPeriodic::NewL(CActive::EPriorityHigh);
+	}
+
+/*
+ *========================================================================================================
+ * MM-MMF-ACLNT-I-0190-HP
+ *========================================================================================================
+ */
+RMdaPlayerUtilityGetVolumeAndBalancePauseAndPlaySqnTest::RMdaPlayerUtilityGetVolumeAndBalancePauseAndPlaySqnTest(const TDesC& aTestName, const TDesC& aSectName)
+	:	RMdaPlayerUtilityTestBase(aTestName, aSectName)
+	{
+	iQuery = ETrue;
+	}
+
+/*
+ *
+ * NewL
+ *
+ */
+RMdaPlayerUtilityGetVolumeAndBalancePauseAndPlaySqnTest* RMdaPlayerUtilityGetVolumeAndBalancePauseAndPlaySqnTest::NewL(const TDesC& aTestName, const TDesC& aSectName)
+	{
+	RMdaPlayerUtilityGetVolumeAndBalancePauseAndPlaySqnTest * self = new(ELeave)RMdaPlayerUtilityGetVolumeAndBalancePauseAndPlaySqnTest(aTestName, aSectName);
+	return self;
+	}
+
+/*
+ *
+ * DoKickoffTestL
+ *
+ */
+void RMdaPlayerUtilityGetVolumeAndBalancePauseAndPlaySqnTest::DoKickoffTestL()
+	{
+	TPtrC filename;
+	// Get the filename of the audio file to play
+	if (!GetStringFromConfig(iSectName, KFilenameSQN, filename))
+		{
+		ERR_PRINTF1(_L("Filename could not be retrieved from ini file"));
+		StopTest(KErrNotFound);
+		return;
+		}
+	// open using RFile for playback
+	iFilename.Copy(filename);
+	INFO_PRINTF2(_L("File under test  -> %S"), &iFilename);
+	if (!GetIntFromConfig(iSectName, KVolume, iVolume))
+		{
+		ERR_PRINTF2(KMsgErrorGetParameter, &KVolume);
+		StopTest(KErrNotFound);
+		return;
+		}
+	if (!GetIntFromConfig(iSectName, KBalance, iBalance))
+		{
+		ERR_PRINTF2(KMsgErrorGetParameter, &KBalance);
+		StopTest(KErrNotFound);
+		return;
+		}
+	if (!GetIntFromConfig(iSectName, KDuration1, iDuration))
+		{
+		ERR_PRINTF2(KMsgErrorGetParameter, &KDuration1);
+		StopTest(KErrNotFound);
+		return;
+		}
+	iTimer = CPeriodic::NewL(CActive::EPriorityHigh);
+	}
+
+/*
+ *========================================================================================================
+ * MM-MMF-ACLNT-I-0191-HP
+ *========================================================================================================
+ */
+RMdaPlayerUtilityPauseAndPlayFormatsTest::RMdaPlayerUtilityPauseAndPlayFormatsTest(const TDesC& aTestName, const TDesC& aSectName)
+	:	RMdaPlayerUtilityTestBase(aTestName, aSectName)
+	{
+	iResume = ETrue;
+	iPositionSupported = ETrue;
+	iMiliSec = ETrue;
+	}
+
+/*
+ *
+ * NewL
+ *
+ */
+RMdaPlayerUtilityPauseAndPlayFormatsTest* RMdaPlayerUtilityPauseAndPlayFormatsTest::NewL(const TDesC& aTestName, const TDesC& aSectName)
+	{
+	RMdaPlayerUtilityPauseAndPlayFormatsTest * self = new(ELeave)RMdaPlayerUtilityPauseAndPlayFormatsTest(aTestName, aSectName);
+	return self;
+	}
+
+/*
+ *
+ * DoKickoffTestL
+ *
+ */
+void RMdaPlayerUtilityPauseAndPlayFormatsTest::DoKickoffTestL()
+	{
+	TPtrC filename;
+	// Get the filename of the audio file to play
+	if (!GetStringFromConfig(iSectName, KFilenamePCM16, filename))
+		{
+		ERR_PRINTF1(_L("Filename could not be retrieved from ini file"));
+		StopTest(KErrNotFound);
+		return;
+		}
+	// open using RFile for playback
+	iFilename.Copy(filename);
+	INFO_PRINTF2(_L("File \"PCM16\" under test  -> %S"), &iFilename);
+	if (!GetIntFromConfig(iSectName, KDurationMiliSec, iDuration))
+		{
+		ERR_PRINTF2(KMsgErrorGetParameter, &KDurationMiliSec);
+		StopTest(KErrNotFound);
+		return;
+		}
+	iTimer = CPeriodic::NewL(CActive::EPriorityHigh);
+	}
+
+/*
+ *
+ * MapcPlayComplete - From MMdaAudioPlayerCallback
+ *
+ */
+void RMdaPlayerUtilityPauseAndPlayFormatsTest::MapcPlayComplete(TInt aError)
+	{
+	INFO_PRINTF1(_L("========== Audio Player Utility MapcPlayComplete() callback =========="));
+	if (aError == KErrNone)
+		{
+		if(iPauseApplied)
+			{
+			INFO_PRINTF2(_L("AudioPlayerUtility called MapcPlayComplete with error = %d as expected"), aError);
+			TBuf<KFileFormatSize> fileFormat;
+			switch(iAllFormat)
+				{
+				case EPCM8Format:
+					{
+					fileFormat.Copy(KFilenamePCM8);
+					INFO_PRINTF2(_L("File \"PCM8\" under test  -> %S"), &fileFormat);
+					break;
+					}
+				case EPCMU16Format:
+					{
+					fileFormat.Copy(KFilenamePCMU16);
+					INFO_PRINTF2(_L("File \"PCMU16\" under test  -> %S"), &fileFormat);
+					break;
+					}
+				case EPCMU16BEFormat:
+					{
+					fileFormat.Copy(KFilenamePCMU16BE);
+					INFO_PRINTF2(_L("File \"PCMU16BE\" under test  -> %S"), &fileFormat);
+					break;
+					}
+				case EALAWFormat:
+					{
+					fileFormat.Copy(KFilenameAlaw);
+					INFO_PRINTF2(_L("File \"ALAW\" under test  -> %S"), &fileFormat);
+					break;
+					}
+				case EMULAWFormat:
+					{
+					fileFormat.Copy(KFilenameMulaw);
+					INFO_PRINTF2(_L("File \"MULAW\" under test  -> %S"), &fileFormat);
+					break;
+					}
+				case EGSM610Format:
+					{
+					fileFormat.Copy(KFilenameGSM610);
+					INFO_PRINTF2(_L("File \"GSM610\" under test  -> %S"), &fileFormat);
+					break;
+					}
+				case EIMADFormat:
+					{
+					fileFormat.Copy(KFilenameIMAD);
+					INFO_PRINTF2(_L("File \"IMAD\" under test  -> %S"), &fileFormat);
+					break;
+					}
+				case EPCMU8Format:
+					{
+					fileFormat.Copy(KFilenamePCMU8);
+					INFO_PRINTF2(_L("File \"PCMU8\" under test  -> %S"), &fileFormat);
+					break;
+					}
+				case EOGGFormat:
+					{
+					fileFormat.Copy(KFilenameOGG);
+					INFO_PRINTF2(_L("File \"OGG\" under test  -> %S"), &fileFormat);
+					break;
+					}
+				default:
+					{
+					break;
+					}
+				}
+			if(iAllFormat > EOGGFormat)
+				{
+				StopTest();
+				}
+			else
+				{
+				++iAllFormat;
+				iPauseApplied = EFalse;
+				TPtrC filename;
+				if (!GetStringFromConfig(iSectName, fileFormat, filename))
+					{
+					ERR_PRINTF1(_L("Filename could not be retrieved from ini file"));
+					StopTest(KErrNotFound);
+					return;
+					}
+				iFilename.Copy(filename);
+				INFO_PRINTF1(_L("Player Utility State: EStateCreated"));
+				iAudioUtilityState = EStateCreated;
+				INFO_PRINTF1(_L("Audio Player Utility Event: EEventInitialize"));
+				Fsm(EEventInitialize, KErrNone);
+				}
+			}
+		else
+			{
+			ERR_PRINTF2(_L("AudioPlayerUtility called MapcPlayComplete with error = %d"), aError);
+			ERR_PRINTF1(_L("Audio file was finished before continuing"));
+			StopTest(KErrGeneral);
+			}
+		}
+	else
+		{
+		ERR_PRINTF2(_L("AudioPlayerUtility called MapcPlayComplete with error = %d"), aError);
+		ERR_PRINTF2(_L("Expected error = %d"), KErrNone);
+		StopTest(aError);
+		}
+	}
+