os/mm/mmlibs/mmfw/tsrc/mmfintegrationtest/ACLNT/testoutputstreamtruepause.h
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     1 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 //
    15 
    16 #ifndef TESTOUTPUTSTREAMTRUEPAUSE_H
    17 #define TESTOUTPUTSTREAMTRUEPAUSE_H
    18 
    19 #include <testframework.h>
    20 #include "TSI_MMFACLNT.h"
    21 #include "mdaaudiooutputstream.h"
    22 #include "truepauseconstants.h"
    23 
    24 /*
    25  *========================================================================================================
    26  * Constant declarations
    27  *========================================================================================================
    28  */
    29 
    30 const TInt KBufSize = 1024; //1K buffer size
    31 const TInt KBufferNum = 5; //5 buffers per array
    32 
    33 /*
    34  *========================================================================================================
    35  * Base class for OutputStream test steps in this suite.
    36  *========================================================================================================
    37  */
    38 
    39 class RMdaOutputStreamTestBase: public RAsyncTestStep, public MMdaAudioOutputStreamCallback
    40 	{
    41 public:
    42 	// from RAsyncTestStep
    43 	void KickoffTestL();
    44 	void CloseTest();
    45 	void CallStopTest(TInt aError);
    46 protected:
    47 	RMdaOutputStreamTestBase(const TDesC& aTestName, const TDesC& aSectName);
    48 	~RMdaOutputStreamTestBase();
    49 	virtual void DoKickoffTestL() = 0;
    50 	virtual void DoTimerCallback() = 0;
    51 	static TInt TimerCallback(TAny*);
    52 	void StartTimer(TTimeIntervalMicroSeconds32 aWaitTime);
    53 
    54 	// Executes events of MdaToneUtility using a Finite State Machine
    55 	virtual void Fsm(TMdaAOSEvent aMdaAudioOutputStreamEvent, TInt aError);
    56 	
    57 	// From MMdaAudioOutputStreamObserver
    58 	virtual void MaoscBufferCopied(TInt aError, const TDesC8 &aBuffer);
    59 	virtual void MaoscPlayComplete(TInt aError);
    60 	virtual void MaoscOpenComplete(TInt aError);
    61 	
    62 protected:
    63 	TMdaAOSState iAudioOutputStreamState;
    64 	CMdaAudioOutputStream* iAudioOutputStream;
    65 	CPeriodic* iTimer;
    66 	TBool iWait;
    67 	TBool iStop;
    68 	TBool iConfig;
    69 	TBool iInvalidConfig;
    70 	TBool iGetBytes;
    71 	TInt iCount;
    72 	TInt iVolume;
    73 	TInt iBalance;
    74 	TInt iDuration;
    75 	TInt iPause;	
    76 	TInt iBytes;
    77 	TTimeIntervalMicroSeconds iPosition;
    78 	
    79 	TBuf<KNameBufSize> iSectName;		// Section name
    80 	// Handle for the audio file for playing and recording
    81 	RFile iFile;
    82 	TFileName iFilename;
    83 	// Handle to a file server session
    84 	RFs iFs;
    85 	RBuf8 iBuffer;		// Buffer to read data
    86 	
    87 	};
    88 
    89 /*
    90  *========================================================================================================
    91  * MM-MMF-ACLNT-I-0175-HP
    92  *========================================================================================================
    93  */
    94 class RMdaOutputStreamResumeTest : public RMdaOutputStreamTestBase
    95 	{
    96 public:
    97 	static RMdaOutputStreamResumeTest* NewL(const TDesC& aTestName, const TDesC& aSectName);
    98 private:
    99 	RMdaOutputStreamResumeTest(const TDesC& aTestName, const TDesC& aSectName);
   100 	void DoKickoffTestL();
   101 	void DoTimerCallback();
   102 	};
   103 
   104 /*
   105  *========================================================================================================
   106  * MM-MMF-ACLNT-I-0176-HP
   107  *========================================================================================================
   108  */
   109 class RMdaOutputStreamResumeThriceTest : public RMdaOutputStreamTestBase
   110 	{
   111 public:
   112 	static RMdaOutputStreamResumeThriceTest* NewL(const TDesC& aTestName, const TDesC& aSectName);
   113 private:
   114 	RMdaOutputStreamResumeThriceTest(const TDesC& aTestName, const TDesC& aSectName);
   115 	void DoKickoffTestL();
   116 	void DoTimerCallback();
   117 	};
   118 
   119 /*
   120  *========================================================================================================
   121  * MM-MMF-ACLNT-I-0177-HP
   122  *========================================================================================================
   123  */
   124 class RMdaOutputStreamConfigInPauseTest : public RMdaOutputStreamTestBase
   125 	{
   126 public:
   127 	static RMdaOutputStreamConfigInPauseTest* NewL(const TDesC& aTestName, const TDesC& aSectName);
   128 private:
   129 	RMdaOutputStreamConfigInPauseTest(const TDesC& aTestName, const TDesC& aSectName);
   130 	void DoKickoffTestL();
   131 	void DoTimerCallback();
   132 	};
   133 
   134 /*
   135  *========================================================================================================
   136  * MM-MMF-ACLNT-I-0178-HP
   137  *========================================================================================================
   138  */
   139 class RMdaOutputStreamInvalidConfigInPauseTest : public RMdaOutputStreamTestBase
   140 	{
   141 public:
   142 	static RMdaOutputStreamInvalidConfigInPauseTest* NewL(const TDesC& aTestName, const TDesC& aSectName);
   143 private:
   144 	RMdaOutputStreamInvalidConfigInPauseTest(const TDesC& aTestName, const TDesC& aSectName);
   145 	void DoKickoffTestL();
   146 	void DoTimerCallback();
   147 	};
   148 
   149 /*
   150  *========================================================================================================
   151  * MM-MMF-ACLNT-I-0179-HP
   152  *========================================================================================================
   153  */
   154 class RMdaOutputStreamGetBytesInPauseTest : public RMdaOutputStreamTestBase
   155 	{
   156 public:
   157 	static RMdaOutputStreamGetBytesInPauseTest* NewL(const TDesC& aTestName, const TDesC& aSectName);
   158 private:
   159 	RMdaOutputStreamGetBytesInPauseTest(const TDesC& aTestName, const TDesC& aSectName);
   160 	void DoKickoffTestL();
   161 	void DoTimerCallback();
   162 	};
   163 
   164 /*
   165  *========================================================================================================
   166  * MM-MMF-ACLNT-I-0180-HP
   167  *========================================================================================================
   168  */
   169 class RMdaOutputStreamPlayPauseStopPlayTest : public RMdaOutputStreamTestBase
   170 	{
   171 public:
   172 	static RMdaOutputStreamPlayPauseStopPlayTest* NewL(const TDesC& aTestName, const TDesC& aSectName);
   173 private:
   174 	RMdaOutputStreamPlayPauseStopPlayTest(const TDesC& aTestName, const TDesC& aSectName);
   175 	void DoKickoffTestL();
   176 	void DoTimerCallback();
   177 	// Executes events of MdaToneUtility using a Finite State Machine
   178 	void Fsm(TMdaAOSEvent aMdaAudioOutputStreamEvent, TInt aError);
   179 	// From MMdaAudioOutputStreamObserver
   180 	void MaoscPlayComplete(TInt aError);
   181 	};
   182 
   183 /*
   184  *========================================================================================================
   185  * MM-MMF-ACLNT-I-0181-HP
   186  *========================================================================================================
   187  */
   188 class RMdaOutputStreamPauseResumeBeforeWriteTest : public RMdaOutputStreamTestBase
   189 	{
   190 public:
   191 	static RMdaOutputStreamPauseResumeBeforeWriteTest* NewL(const TDesC& aTestName, const TDesC& aSectName);
   192 private:
   193 	RMdaOutputStreamPauseResumeBeforeWriteTest(const TDesC& aTestName, const TDesC& aSectName);
   194 	void DoKickoffTestL();
   195 	void DoTimerCallback();
   196 	// Executes events of MdaToneUtility using a Finite State Machine
   197 	void Fsm(TMdaAOSEvent aMdaAudioOutputStreamEvent, TInt aError);
   198 	};
   199 	
   200 /*
   201  *========================================================================================================
   202  * MM-MMF-ACLNT-I-0182-HP
   203  *========================================================================================================
   204  */
   205 class RMdaOutputStreamInvalidFormatsTest : public RMdaOutputStreamTestBase
   206 	{
   207 public:
   208 	static RMdaOutputStreamInvalidFormatsTest* NewL(const TDesC& aTestName, const TDesC& aSectName);
   209 private:
   210 	RMdaOutputStreamInvalidFormatsTest(const TDesC& aTestName, const TDesC& aSectName);
   211 	void DoKickoffTestL();
   212 	void DoTimerCallback();
   213 	// Executes events of MdaToneUtility using a Finite State Machine
   214 	void Fsm(TMdaAOSEvent aMdaAudioOutputStreamEvent, TInt aError);
   215 	};
   216 
   217 /*
   218  *========================================================================================================
   219  * MM-MMF-ACLNT-I-0184-HP
   220  *========================================================================================================
   221  */
   222 class RMdaOutputStreamPauseNonA3FTest : public RMdaOutputStreamTestBase
   223 	{
   224 public:
   225 	static RMdaOutputStreamPauseNonA3FTest* NewL(const TDesC& aTestName, const TDesC& aSectName);
   226 private:
   227 	RMdaOutputStreamPauseNonA3FTest(const TDesC& aTestName, const TDesC& aSectName);
   228 	void DoKickoffTestL();
   229 	void DoTimerCallback();
   230 	// Executes events of MdaToneUtility using a Finite State Machine
   231 	void Fsm(TMdaAOSEvent aMdaAudioOutputStreamEvent, TInt aError);
   232 	};	
   233 
   234 #endif// __TESTOUTPUTSTREAMTRUEPAUSE_H__