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".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
16 #ifndef TESTOUTPUTSTREAMTRUEPAUSE_H
17 #define TESTOUTPUTSTREAMTRUEPAUSE_H
19 #include <testframework.h>
20 #include "TSI_MMFACLNT.h"
21 #include "mdaaudiooutputstream.h"
22 #include "truepauseconstants.h"
25 *========================================================================================================
26 * Constant declarations
27 *========================================================================================================
30 const TInt KBufSize = 1024; //1K buffer size
31 const TInt KBufferNum = 5; //5 buffers per array
34 *========================================================================================================
35 * Base class for OutputStream test steps in this suite.
36 *========================================================================================================
39 class RMdaOutputStreamTestBase: public RAsyncTestStep, public MMdaAudioOutputStreamCallback
42 // from RAsyncTestStep
45 void CallStopTest(TInt aError);
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);
54 // Executes events of MdaToneUtility using a Finite State Machine
55 virtual void Fsm(TMdaAOSEvent aMdaAudioOutputStreamEvent, TInt aError);
57 // From MMdaAudioOutputStreamObserver
58 virtual void MaoscBufferCopied(TInt aError, const TDesC8 &aBuffer);
59 virtual void MaoscPlayComplete(TInt aError);
60 virtual void MaoscOpenComplete(TInt aError);
63 TMdaAOSState iAudioOutputStreamState;
64 CMdaAudioOutputStream* iAudioOutputStream;
77 TTimeIntervalMicroSeconds iPosition;
79 TBuf<KNameBufSize> iSectName; // Section name
80 // Handle for the audio file for playing and recording
83 // Handle to a file server session
85 RBuf8 iBuffer; // Buffer to read data
90 *========================================================================================================
91 * MM-MMF-ACLNT-I-0175-HP
92 *========================================================================================================
94 class RMdaOutputStreamResumeTest : public RMdaOutputStreamTestBase
97 static RMdaOutputStreamResumeTest* NewL(const TDesC& aTestName, const TDesC& aSectName);
99 RMdaOutputStreamResumeTest(const TDesC& aTestName, const TDesC& aSectName);
100 void DoKickoffTestL();
101 void DoTimerCallback();
105 *========================================================================================================
106 * MM-MMF-ACLNT-I-0176-HP
107 *========================================================================================================
109 class RMdaOutputStreamResumeThriceTest : public RMdaOutputStreamTestBase
112 static RMdaOutputStreamResumeThriceTest* NewL(const TDesC& aTestName, const TDesC& aSectName);
114 RMdaOutputStreamResumeThriceTest(const TDesC& aTestName, const TDesC& aSectName);
115 void DoKickoffTestL();
116 void DoTimerCallback();
120 *========================================================================================================
121 * MM-MMF-ACLNT-I-0177-HP
122 *========================================================================================================
124 class RMdaOutputStreamConfigInPauseTest : public RMdaOutputStreamTestBase
127 static RMdaOutputStreamConfigInPauseTest* NewL(const TDesC& aTestName, const TDesC& aSectName);
129 RMdaOutputStreamConfigInPauseTest(const TDesC& aTestName, const TDesC& aSectName);
130 void DoKickoffTestL();
131 void DoTimerCallback();
135 *========================================================================================================
136 * MM-MMF-ACLNT-I-0178-HP
137 *========================================================================================================
139 class RMdaOutputStreamInvalidConfigInPauseTest : public RMdaOutputStreamTestBase
142 static RMdaOutputStreamInvalidConfigInPauseTest* NewL(const TDesC& aTestName, const TDesC& aSectName);
144 RMdaOutputStreamInvalidConfigInPauseTest(const TDesC& aTestName, const TDesC& aSectName);
145 void DoKickoffTestL();
146 void DoTimerCallback();
150 *========================================================================================================
151 * MM-MMF-ACLNT-I-0179-HP
152 *========================================================================================================
154 class RMdaOutputStreamGetBytesInPauseTest : public RMdaOutputStreamTestBase
157 static RMdaOutputStreamGetBytesInPauseTest* NewL(const TDesC& aTestName, const TDesC& aSectName);
159 RMdaOutputStreamGetBytesInPauseTest(const TDesC& aTestName, const TDesC& aSectName);
160 void DoKickoffTestL();
161 void DoTimerCallback();
165 *========================================================================================================
166 * MM-MMF-ACLNT-I-0180-HP
167 *========================================================================================================
169 class RMdaOutputStreamPlayPauseStopPlayTest : public RMdaOutputStreamTestBase
172 static RMdaOutputStreamPlayPauseStopPlayTest* NewL(const TDesC& aTestName, const TDesC& aSectName);
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);
184 *========================================================================================================
185 * MM-MMF-ACLNT-I-0181-HP
186 *========================================================================================================
188 class RMdaOutputStreamPauseResumeBeforeWriteTest : public RMdaOutputStreamTestBase
191 static RMdaOutputStreamPauseResumeBeforeWriteTest* NewL(const TDesC& aTestName, const TDesC& aSectName);
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);
201 *========================================================================================================
202 * MM-MMF-ACLNT-I-0182-HP
203 *========================================================================================================
205 class RMdaOutputStreamInvalidFormatsTest : public RMdaOutputStreamTestBase
208 static RMdaOutputStreamInvalidFormatsTest* NewL(const TDesC& aTestName, const TDesC& aSectName);
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);
218 *========================================================================================================
219 * MM-MMF-ACLNT-I-0184-HP
220 *========================================================================================================
222 class RMdaOutputStreamPauseNonA3FTest : public RMdaOutputStreamTestBase
225 static RMdaOutputStreamPauseNonA3FTest* NewL(const TDesC& aTestName, const TDesC& aSectName);
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);
234 #endif// __TESTOUTPUTSTREAMTRUEPAUSE_H__