mmlibs/mmfw/tsrc/mmfintegrationtest/Ctlfrm/TSI_MmfCtlfrmStep.h
changeset 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmlibs/mmfw/tsrc/mmfintegrationtest/Ctlfrm/TSI_MmfCtlfrmStep.h	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,163 @@
+// 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:
+//
+
+#ifndef __TSI_MMFCTLFRMSTEP_H__
+#define __TSI_MMFCTLFRMSTEP_H__
+
+#include <testframework.h>
+#include <mmf/common/mmfcontroller.h>
+#include <mmf/server/mmffile.h>
+
+// Test controller/data plugin UIDs.
+// These are custom controllers provided by Integration Testing
+
+// dummy controller
+#define KTSIMmfControllerUid                   0x101f7bfa
+#define KTSIMmfController2Uid                  0x101f7bfc
+#define KTSIMmfDataSinkUid					   0x101f7bfe
+#define KTSIMmfDataSourceUid                   0x101f7c00
+
+#define KTextBufLen	64
+
+// priorities for controllers
+enum TTSIMmfPriority
+	{
+	ETSIMmfPriorityLow = 1,
+	ETSIMmfPriorityHigh = 11
+	};
+
+// -----------------------------------
+// RTestStepMmfCtlfrm, which is the base class for all 
+// the MMF CTLFRM suite test steps.
+class RTestStepMmfCtlfrm : public RTestStep
+	{
+public:
+	RTestStepMmfCtlfrm();
+	};
+
+// RTestStepMmfCtlfrmTest1
+// base class with preamble / postamble to open and close a test controller
+class RTestStepMmfCtlfrmTest1 : public RTestStepMmfCtlfrm
+	{
+public:
+	TVerdict OpenL();
+	void Close();
+protected:
+	RMMFController iController;
+	TMMFPrioritySettings iSettings;
+	};
+
+// RTestStepMmfCtlfrmTest2
+// base class with preamble / postamble to open and close a test controller 2
+class RTestStepMmfCtlfrmTest2 : public RTestStepMmfCtlfrm
+	{
+public:
+	TVerdict OpenL();
+	void Close();
+protected:
+	RMMFController iController;
+	TMMFPrioritySettings iSettings;
+	};
+
+// RTestStepMmfCtlfrmAudio
+// base class with preamble / postamble to open and close the audio controller
+// configured to receive events from the controlled
+class RTestStepMmfCtlfrmAudio : public RTestStepMmfCtlfrm
+	{
+public:
+	TVerdict OpenL();
+	void Close();
+
+protected:
+	 //[ check if the event status is pending ]
+	 TBool IsTimeOut( TRequestStatus& aEventStatus );
+	 //[ cancel received events ]
+	 void  CancelReceivedEvents();
+	 //[ is event sought the one we received ] 
+	 TBool IsSoughtEvent( TMMFEvent& aExpectedEvent, TMMFEventPckg& receivedEvent );
+	 // [ search for expected event ]
+	 TVerdict SearchForEvent( TMMFEvent& aExpectedEvent );
+
+protected:
+	RMMFController		 iController;
+	TMMFPrioritySettings iSettings;
+	RTimer               iTimer     ; // escape timer for waiting on events  
+	TMMFFileConfig       iFileConfig; // audio file 
+	};
+	 
+// RTestStepMmfCtlfrmAudioPrimed
+// same as above, with source/sink handles, and is primed in the preamble
+class RTestStepMmfCtlfrmAudioPrimed : public RTestStepMmfCtlfrmAudio
+	{
+public:
+	TVerdict OpenL();
+	void Close();
+
+protected:
+	TMMFMessageDestination* iSourceHandlePtr;
+	TMMFMessageDestination* iSinkHandlePtr;
+	};
+	 
+// RTestStepMmfCtlfrmAudioNoSource
+// same as RTestStepMmfCtlfrmAudio, but has no source or sink loaded yet
+class RTestStepMmfCtlfrmAudioNoSource : public RTestStepMmfCtlfrmAudio
+	{
+public:
+	TVerdict OpenL();
+	};
+	 
+// RTestStepMmfCtlfrmDualAudio
+// same as RTestStepMmfCtlfrmAudio, with 2 identical controllers
+class RTestStepMmfCtlfrmDualAudio : public RTestStepMmfCtlfrm
+	{
+public:
+	TVerdict OpenL();
+	void Close();
+
+protected:
+	 //[ check if the event status is pending ]
+	 TBool IsTimeOut( TRequestStatus& aEventStatus );
+	 //[ cancel received events ]
+	 void  CancelReceivedEvents( TInt aWhichController );
+	 //[ is event sought the one we received ] 
+	 TBool IsSoughtEvent( TMMFEvent& aExpectedEvent, TMMFEventPckg& receivedEvent );
+	 // [ search for expected event ]
+	 TVerdict SearchForEvent( TMMFEvent& aExpectedEvent, TInt aWhichController );
+
+protected:
+	RMMFController		 iController1;
+	RMMFController		 iController2;
+	TMMFPrioritySettings iSettings;
+	RTimer               iTimer     ; // escape timer for waiting on events  
+	TMMFFileConfig       iFileConfig1; // audio file 
+	TMMFFileConfig       iFileConfig2; // audio file 
+	};
+
+// RTestStepMmfCtlfrmVideo
+// base class with preamble / postamble to open and close the video controller
+class RTestStepMmfCtlfrmVideo : public RTestStepMmfCtlfrm
+	{
+public:
+	TVerdict OpenL();
+	void Close();
+
+protected:
+	RMMFController		 iController;
+	TMMFPrioritySettings iSettings;
+	TMMFFileConfig       iFileConfig; // video file 
+	};
+	 
+
+#endif	// __TSI_MMFCTLFRMSTEP_H__