mmlibs/mmfw/tsrc/mmfunittest/aclnt/TSU_MMF_ACLNT_01/TestStepCtrlSetRepeatsCustomCommands.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmlibs/mmfw/tsrc/mmfunittest/aclnt/TSU_MMF_ACLNT_01/TestStepCtrlSetRepeatsCustomCommands.cpp Thu Oct 07 22:34:12 2010 +0100
@@ -0,0 +1,164 @@
+// 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:
+//
+
+
+#include "TestStepCtrlSetRepeatsCustomCommands.h"
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <mmf/common/mmfstandardcustomcommandsenums.h>
+#include <mmf/common/mmfstandardcustomcommandsimpl.h>
+#endif
+
+
+CAsyncTestStepCtrlSetRepeatsCustomCommands::CAsyncTestStepCtrlSetRepeatsCustomCommands(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName)
+ {
+ iTestStepName=aTestName;
+ iSectName = aSectName;
+ iKeyName = aKeyName;
+ }
+
+
+CAsyncTestStepCtrlSetRepeatsCustomCommands * CAsyncTestStepCtrlSetRepeatsCustomCommands::NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName)
+ {
+ return new (ELeave) CAsyncTestStepCtrlSetRepeatsCustomCommands(aTestName, aSectName, aKeyName);
+ }
+
+ // from RAsyncTestStep
+void CAsyncTestStepCtrlSetRepeatsCustomCommands::KickoffTestL()
+ {
+ INFO_PRINTF1(_L("This a test for Controller SetRepeat custom command "));
+ iPriority.iPriority = KDefaultPriority; // set the priority to some default value
+ iPriority.iPref = EMdaPriorityPreferenceQuality;
+ iControllerEventMonitor = CMMFControllerEventMonitor::NewL(*this, iController);
+
+ //Prepare the TMMFFileConfig from filename to pass it to the AddDataSource
+ TPtrC fileName;
+ if(!GetStringFromConfig(iSectName, iKeyName, fileName))
+ {
+ INFO_PRINTF1(_L("GetStringFromConfig: Failed "));
+ StopTest(KErrGeneral, EFail);
+ return;
+ }
+ iFileConfig().iPath = fileName;
+
+ // Open the controller
+ INFO_PRINTF1(_L("Controller: Open"));
+ TInt errorCode = iController.Open(KMmfAudioControllerUid, iPriority);
+ if(errorCode)
+ {
+ INFO_PRINTF2(_L("Failed to load the controller %d "), errorCode);
+ StopTest(errorCode, EFail);
+ User::Leave( errorCode );
+ }
+ // Start the event monitor
+ iControllerEventMonitor->Start();
+
+ // Add the DataSource
+ INFO_PRINTF1(_L("Controller: AddDataSource "));
+ errorCode = iController.AddDataSource(KUidMmfFileSource, iFileConfig);
+ if(errorCode)
+ {
+ INFO_PRINTF2(_L("AddDataSource failed with %d "), errorCode);
+ StopTest(errorCode, EFail);
+ User::Leave( errorCode );
+ }
+ // Add the DataSink
+ INFO_PRINTF1(_L("Controller: AddDataSink "));
+ errorCode = iController.AddDataSink(KUidMmfAudioOutput,KNullDesC8);
+ if(errorCode)
+ {
+ INFO_PRINTF2(_L("AddDataSink failed with %d "), errorCode);
+ StopTest(errorCode, EFail);
+ User::Leave( errorCode );
+ }
+ INFO_PRINTF1(_L("RMMFAudioPlayControllerSetRepeatsCustomCommands::SetRepeats"));
+ RMMFAudioPlayControllerSetRepeatsCustomCommands theCommander(iController);
+ errorCode = theCommander.SetRepeats(1, TTimeIntervalMicroSeconds(3000000) );
+ #ifndef SYMBIAN_MULTIMEDIA_A3FDEVSOUND
+ if(errorCode == KErrNotSupported)
+ {//controller on old devsound does not support this custom command
+ INFO_PRINTF2(_L("SetRepeats is failed with %d on legacy devsound"), errorCode);
+ StopTest();
+ return;
+ }
+ else
+ {
+ INFO_PRINTF2(_L("SetRepeats is not failed with KErrNotSupported but failed with %d on legacy devsound"), errorCode);
+ StopTest(errorCode, EFail);
+ User::Leave(errorCode);
+ }
+ #else
+ if(errorCode)
+ {
+ INFO_PRINTF2(_L("SetRepeats is failed with %d "), errorCode);
+ StopTest(errorCode, EFail);
+ User::Leave( errorCode );
+ }
+ #endif
+ // Prime The Controller
+ INFO_PRINTF1(_L("Prime"));
+ errorCode = iController.Prime();
+ if(errorCode)
+ {
+ INFO_PRINTF2(_L("Prime is failed with %d "), errorCode);
+ StopTest(errorCode, EFail);
+ User::Leave( errorCode );
+ }
+ // Start Playing
+ INFO_PRINTF1(_L("Play"));
+ errorCode = iController.Play();
+ if(errorCode)
+ {
+ INFO_PRINTF2(_L("Play() is failed with %d "), errorCode);
+ StopTest(errorCode, EFail);
+ User::Leave( errorCode );
+ }
+ }
+
+void CAsyncTestStepCtrlSetRepeatsCustomCommands::CloseTest()
+ {
+ iController.Stop();
+ iController.Reset();
+ iControllerEventMonitor->Cancel();
+ delete iControllerEventMonitor;
+ iController.Close();
+ }
+
+
+/**
+ * This is from MMMFControllerEventMonitorObserver. CMMFControllerEventMonitor
+ * calls the method whenever it receives an event from PlayController. Basically
+ * checks for the Playcompletion event and passes the error back to the test step.
+ */
+void CAsyncTestStepCtrlSetRepeatsCustomCommands::HandleEvent(const TMMFEvent& aEvent)
+ {
+ if (aEvent.iEventType==KMMFEventCategoryPlaybackComplete)
+ {
+ if((aEvent.iErrorCode == KErrNone) || (aEvent.iErrorCode == KErrEof))
+ {
+ INFO_PRINTF2(_L("Playcompletion Error %d "), aEvent.iErrorCode);
+ StopTest();//Success
+ }
+ else
+ {
+ INFO_PRINTF2(_L("Playcompletion is failed with %d "), aEvent.iErrorCode);
+ StopTest(aEvent.iErrorCode, EFail);
+ }
+ }
+ else
+ {
+ INFO_PRINTF1(_L("Failed to receive Playcompletion Event "));
+ StopTest(KErrGeneral, EFail);
+ }
+ }