// 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:
//


PRINT 
PRINT 
PRINT IMPORTANT NOTE: THIS SCRIPT SHOULD ONLY BE RUN IN A3F. SCRIPT CREATED AS PART OF CR1566.
PRINT
PRINT 


LOAD_SUITE TSU_MMF_DEVSOUND_SUITE.dll

delay 1000

//! @SYMTestCaseID			MM-MMF-DEVSOUND-U-0081-HP
//! @SYMREQ				REQ11453
//!					REQ11455
//! @SYMPREQ				1540
//! @SYMTestCaseDec			Resume Audio Playback - When pause playing PCM audio call Resume() after IsResumeSupported() 
//! @SYMTestPriority			Normal
//! @SYMTestType			Normal Usecase
//! @SYMTestActions			1. Create a Devsound instance.
//!					2. Open the file to be played(must be PCM).
//!					3. Create a CPeriodic instance.
//!					4. Initialise a DevSound instance to play audio.
//!					4.1 Wait for InitializeComplete(KErrNone) callback response.
//!					5. Call PlayInitL() and start timer events every 2 seconds.
//!					6. Wait for BufferToBeFilled(..) callback of DevSound instance to fill the buffer with data. 
//!					To continue receiving BTBF callbacks, is mandatory to call PlayData() method.
//!					7. On timer event Pause() method.
//!					8. Wait for another timer event, call IsResumeSupported() then Resume()
//! @SYMTestExpectedResults		IsResumeSupported() will return ETrue.
//!					Resume()(will return KErrNone) is supported for PCM.
//!
PRINT Resume Audio Playback - When pause playing PCM audio call Resume() after IsResumeSupported() 
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0081-HP, c:\tsu_mmf_truepause_devsound.ini
TEST_COMPLETE

//! @SYMTestCaseID			MM-MMF-DEVSOUND-U-0082-HP
//! @SYMREQ				REQ11453
//!					REQ11455
//! @SYMPREQ				1540
//! @SYMTestCaseDec			Resume Audio Playback Rejection - Rejection scenario is between 2 instances that play audio
//! @SYMTestPriority			Normal
//! @SYMTestType			Normal Usecase
//! @SYMTestActions			1. Create a DevSound instance.
//!					2. Open files to be played by DevSound instances.
//!					3. Create a CPeriodic instance.
//!					4. Create a second DevSound instance to play audio using low priority settings.
//!					5. Initialise the first devsound instance to play audio and set its priority using a high value.
//!					5.1 Wait for InitializeComplete(KErrNone) callback response.
//!					6. Call PlayInitL() method for first DevSound instance and star timer events each 2 seconds.
//!					7. Wait for BufferToBeFilled(..) callback of first DevSound instance to fill the buffer with data.
//!					To continue receiving BTBF callbacks, is mandatory to call PlayData() method.
//!					8. On timer event call Pause() method.
//!					9. Wait for another timer event set the second devsound's priority to the lowest value, call IsResumeSupported() then Resume().
//! @SYMTestExpectedResults		Second DevSound instance PlayError() callback shall return aError = KErrInUse, KErrDied or KErrAccessDenied
//!					First DevSound IsResumeSupported() will return ETrue.
//!					First DevSound Resume()(will return KErrNone) is supported for PCM.
//!
PRINT Resume Audio Playback Rejection - Rejection scenario is between 2 instances that play audio
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0082-HP, c:\tsu_mmf_truepause_devsound.ini
TEST_COMPLETE

//! @SYMTestCaseID			MM-MMF-DEVSOUND-U-0083-HP
//! @SYMREQ				REQ11453
//!					REQ11455
//! @SYMPREQ				1540
//! @SYMTestCaseDec			Resume Audio Playback Pre-emption - Pre-emption scenario is between 2 instances that play audio
//! @SYMTestPriority			Normal
//! @SYMTestType			Normal Usecase
//! @SYMTestActions			1. Create a DevSound instance.
//!					2. Open files to be played by DevSound instances.
//!					3. Create a CPeriodic instance.
//!					4. Create a second DevSound instance to play audio using high priority settings.
//!					5. Initialise the first devsound instance to play audio and set its priority using a low value.					
//!					6. Call PlayInitL() method for first DevSound instance and star timer events each 2 seconds.
//!					7. Wait for BufferToBeFilled(..) callback of first DevSound instance to fill the buffer with data.
//!					To continue receiving BTBF callbacks, is mandatory to call PlayData() method.
//!					8. On timer event call Pause() method.
//!					9. Wait for another timer event set the second devsound's priority to the highest value, call IsResumeSupported() then Resume().
//! @SYMTestExpectedResults		First DevSound instance PlayError() callback shall return aError = KErrInUse, KErrDied or KErrAccessDenied.
//!					First DevSound IsResumeSupported() will return ETrue.
//!					First DevSound Resume must return with KErrNotReady.
//!
PRINT Resume Audio Playback Pre-emption - Pre-emption scenario is between 2 instances that play audio
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0083-HP, c:\tsu_mmf_truepause_devsound.ini
TEST_COMPLETE

//! @SYMTestCaseID			MM-MMF-DEVSOUND-U-0084-HP
//! @SYMREQ				REQ11453
//!					REQ11455
//! @SYMPREQ				1540
//! @SYMTestCaseDec			Resume Audio Playback - When stop() is called after pause(), BufferToBeFilled() callback does not receive anymore.
//! @SYMTestPriority			Normal
//! @SYMTestType			Alternative Usecase
//! @SYMTestActions			1. Create a DevSound instance.
//!					2. Open files to be played by DevSound instance (must be PCM).
//!					3. Create a CPeriodic instance.
//!					4. Initialise a DevSound instance to play audio.
//!					4.1 Wait for InitializeComplete(KErrNone) callback response.
//!					5. Call PlayInitL() method for DevSound instance and star timer events each 2 seconds.
//!					6. Wait for BufferToBeFilled(..) callback of DevSound instance to fill the buffer with data. To continue receiving BTBF callbacks, is mandatory to call PlayData() method.
//!					7. On timer event call Pause() method.
//!					8. Wait for another timer event call Stop() method.
//!					9. Wait for last timer event, then call IsResumeSupported() and Resume().
//! @SYMTestExpectedResults		After call Stop() method, BufferToBeFilled() must never occurr.
//!					DevSound IsResumeSupported() will return ETrue.
//!					DevSound Resume must return with KErrNotReady.
//!
PRINT Resume Audio Playback - When stop() is called after pause(), BufferToBeFilled() callback does not receive anymore.
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0084-HP, c:\tsu_mmf_truepause_devsound.ini
TEST_COMPLETE

//! @SYMTestCaseID			MM-MMF-DEVSOUND-U-0085-HP
//! @SYMREQ				REQ11453
//!					REQ11455
//! @SYMPREQ				1540
//! @SYMTestCaseDec			Resume Audio Playback - Call SetVolume(..) and SetPlayBalanceL(..) methods to set volume and LeftPercentage/aRightPercentage during pause respectively.
//! @SYMTestPriority			Normal
//! @SYMTestType			Alternative Usecase
//! @SYMTestActions			1. Create a Devsound instance.
//!					2. Open files to be played by DevSound instance (must be PCM).
//!					3. Create a CPeriodic instance.
//!					4. Initialise a DevSound instance to play audio.
//!					4.1 Wait for InitializeComplete(KErrNone) callback response.
//!					5. Call PlayInitL() method for DevSound instance and star timer events each 2 seconds.
//!					6. Wait for BufferToBeFilled(..) callback of DevSound instance to fill the buffer with data. To continue receiving BTBF callbacks, is mandatory to call PlayData() method.
//!					7. On timer event call Pause() method.
//!					8. Wait for another timer event and set different volume and balance to default values, then call Volume() and GetPlayBalanceL() methods.
//!					9. Call IsResumeSupported() and Resume() methods, then call Volume() and GetPlayBalanceL() methods.	
//! @SYMTestExpectedResults		While pause, value returned by Volume() must be equal to the value set by SetVolume(..) .
//!					While pause, value returned by GetPlayBalanceL()  must be equal to the value set by SetPlayBalanceL() .
//!					After resume, value returned by Volume() must be equal to the previous value set by SetVolume(..) .
//!					After resume, value returned by GetPlayBalanceL()  must be equal to the previous value set by SetPlayBalanceL() .
//!					DevSound IsResumeSupported() will return ETrue.
//!					DevSound Resume()(will return KErrNone) is supported for PCM.
PRINT Resume Audio Playback - Call SetVolume(..) and SetPlayBalanceL(..) methods to set volume and LeftPercentage/aRightPercentage during pause respectively.
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0085-HP, c:\tsu_mmf_truepause_devsound.ini
TEST_COMPLETE

//! @SYMTestCaseID			MM-MMF-DEVSOUND-U-0086-HP
//! @SYMREQ				REQ11453
//!					REQ11455
//! @SYMPREQ				1540
//! @SYMTestCaseDec			Resume Audio Playback - Call SetConfigL(..) method to try to change the TMMFCapabilities during pause().
//! @SYMTestPriority			Normal
//! @SYMTestType			Alternative Usecase
//! @SYMTestActions			1. Create a Devsound instance.
//!					2. Open files to be played by DevSound instance (must be PCM).
//!					3. Create a CPeriodic instance.
//!					4. Initialise a DevSound instance to play audio.
//!					4.1 Wait for InitializeComplete(KErrNone) callback response.
//!					4.2 Call SetConfigL() method to set initial TMMFCapabilities.
//!					6. Call PlayInitL() method for DevSound instance and star timer events each 2 seconds.
//!					6. Wait for BufferToBeFilled(..) callback of DevSound instance to fill the buffer with data. To continue receiving BTBF callbacks, is mandatory to call PlayData() method.
//!					7. On timer event call Pause() method.
//!					8. Wait for another timer event and call SetConfigL() method to set different TMMFCapabilities.
//!					9. Call IsResumeSupported() and Resume() methods, then call Config() method.	
//! @SYMTestExpectedResults		While pause, SetConfigL() must return KErrNotReady.
//!					After resume TMMFCapabilities must be equal to initial configuration.
//!					DevSound IsResumeSupported() will return ETrue.
//!					DevSound Resume()(will return KErrNone) is supported for PCM.
PRINT Resume Audio Playback - Call SetConfigL(..) method to try to change the TMMFCapabilities during pause().
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0086-HP, c:\tsu_mmf_truepause_devsound.ini
TEST_COMPLETE

//! @SYMTestCaseID			MM-MMF-DEVSOUND-U-0088-HP
//! @SYMREQ				REQ11453
//!					REQ11455
//! @SYMPREQ				1540
//! @SYMTestCaseDec			Resume Record audio - Pause and resume for PCM.
//! @SYMTestPriority			Normal
//! @SYMTestType			Normal Usecase
//! @SYMTestActions			1. Create a Devsound instance.
//!					2. Create a CPeriodic instance.
//!					3. Open the audio files to be recorded and initialize the Devsound instance to record audio(PCM).
//!					3.1 Wait for InitializeComplete(KErrNone) callback response.
//!					4. Start the CPeriodic instance.
//!					5. Call RecodInitL() to start the recording process.
//!					6. Wait for BufferToBeEmptied(..) callback to retrieve the buffered data from DevSound. To continue receiving BTBE callbacks, is mandatory to call RecordData() method.
//!					7. On the CPeriodic timer event, use Pause() to temporarily stop the record process.
//!					7.1  Continue RecordData()/BufferToBeEmptied() loop until last buffer flag is set. 
//!					8. After last buffer is received, call IsResumeSupported(), Resume() and RecordData().
//!					9. On timer event call Pause(), wait for last buffer and stop the recording process.
//!					10. Close file session.	
//! @SYMTestExpectedResults		IsResumeSupported() will return ETrue.
//!					Resume()(will return KErrNone) is supported for PCM.
//!					Output is recorded at c:\mm\mmf\testfiles\truepause_devsound_test_data\record_1.raw
PRINT Resume Record audio - Pause and resume for PCM.
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0088-HP, c:\tsu_mmf_truepause_devsound.ini 
TEST_COMPLETE

//! @SYMTestCaseID			MM-MMF-DEVSOUND-U-0188-HP
//! @SYMREQ				REQ11453
//!					REQ11455
//! @SYMPREQ				1540
//! @SYMTestCaseDec			Resume Record audio - Pause and resume for PCM.
//! @SYMTestPriority			Normal
//! @SYMTestType			Normal Usecase
//! @SYMTestActions			1. Create a Devsound instance.
//!					2. Create a CPeriodic instance.
//!					3. Open the audio files to be recorded and initialize the Devsound instance to record audio(PCM).
//!					3.1 Wait for InitializeComplete(KErrNone) callback response.
//!					4. Start the CPeriodic instance.
//!					5. Call RecodInitL() to start the recording process.
//!					6. Wait for BufferToBeEmptied(..) callback to retrieve the buffered data from DevSound. To continue receiving BTBE callbacks, is mandatory to call RecordData() method.
//!					7. On the CPeriodic timer event, use Pause() to temporarily stop the record process.
//!					7.1  Continue RecordData()/BufferToBeEmptied() loop until last buffer flag is set. 
//!					8. After last buffer is received, call IsResumeSupported(), RecordData() and Resume()
//!					9. On timer event call Pause(), wait for last buffer and stop the recording process.
//!					10. Close file session.	
//! @SYMTestExpectedResults		IsResumeSupported() will return ETrue.
//!					Resume()(will return KErrNone) is supported for PCM.
//!					Output is recorded at c:\mm\mmf\testfiles\truepause_devsound_test_data\record_1.raw
PRINT Resume Record audio - Pause and resume for PCM.
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0088-HP, c:\tsu_mmf_truepause_devsound.ini MM-MMF-DEVSOUND-U-0188-HP 
TEST_COMPLETE

//! @SYMTestCaseID			MM-MMF-DEVSOUND-U-0288-HP
//! @SYMREQ				REQ11453
//!					REQ11455
//! @SYMPREQ				1540
//! @SYMTestCaseDec			Resume Record audio - Pause and resume for PCM.
//! @SYMTestPriority			Normal
//! @SYMTestType			Negative Usecase
//! @SYMTestActions			1. Create a Devsound instance.
//!					2. Create a CPeriodic instance.
//!					3. Open the audio files to be recorded and initialize the Devsound instance to record audio(PCM).
//!					3.1 Wait for InitializeComplete(KErrNone) callback response.
//!					4. Start the CPeriodic instance.
//!					5. Call RecodInitL() to start the recording process.
//!					6. Wait for BufferToBeEmptied(..) callback to retrieve the buffered data from DevSound. To continue receiving BTBE callbacks, is mandatory to call RecordData() method.
//!					7. On the CPeriodic timer event, use Pause() to temporarily stop the record process.
//!					7.1  Continue RecordData()/BufferToBeEmptied() loop until last buffer flag is set. 
//!					8. After last buffer is received, call IsResumeSupported(), and Resume()
//!					9. On timer event (2s) we should not have received any buffers - if we get a buffer in this time, that is an error
//!					10. Close file session.	
//! @SYMTestExpectedResults		IsResumeSupported() will return ETrue.
//!					Resume()(will return KErrNone) is supported for PCM.
//!					Output is recorded at c:\mm\mmf\testfiles\truepause_devsound_test_data\record_1.raw
PRINT Resume Record audio - Pause and resume for PCM.
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0088-HP, c:\tsu_mmf_truepause_devsound.ini MM-MMF-DEVSOUND-U-0288-HP 
TEST_COMPLETE

//! @SYMTestCaseID			MM-MMF-DEVSOUND-U-0089-HP
//! @SYMREQ				REQ11453
//!					REQ11455
//! @SYMPREQ				1540
//! @SYMTestCaseDec			Resume Record audio - Pause and Immediate resume.
//! @SYMTestPriority			Normal
//! @SYMTestType			Alernative Usecase
//! @SYMTestActions			1. Create a Devsound instance.
//!					2. Create a CPeriodic instance.
//!					3. Open the audio files to be recorded and initialize the Devsound instance to record audio(PCM).
//!					3.1 Wait for InitializeComplete(KErrNone) callback response.
//!					4. Start the CPeriodic instance.
//!					5. Call RecodInitL() to start the recording process.
//!					6. Wait for BufferToBeEmptied(..) callback to retrieve the buffered data from DevSound. To continue receiving BTBE callbacks, is mandatory to call RecordData() method.
//!					7. On the CPeriodic timer event, use Pause() to temporarily stop the record process.
//!					7.1  Continue RecordData()/BufferToBeEmptied(). 
//!					8. Donīt wait for the last buffer flag, then call IsResumeSupported() and Resume().
//!					9. On timer event call Pause(), wait for last buffer and stop the recording process.
//!					10. Close file session.	
//! @SYMTestExpectedResults		IsResumeSupported() will return ETrue.
//!					Resume()(will return KErrNone) is supported for PCM.
//!					Last buffer flag must never occur.
//!					Output is recorded at c:\mm\mmf\testfiles\truepause_devsound_test_data\record_2.raw
PRINT Resume Record audio - Pause and Immediate resume.
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0089-HP, c:\tsu_mmf_truepause_devsound.ini
TEST_COMPLETE

//! @SYMTestCaseID			MM-MMF-DEVSOUND-U-0090-HP
//! @SYMREQ				REQ11453
//!					REQ11455
//! @SYMPREQ				1540
//! @SYMTestCaseDec			Resume Record audio - Pause and resume for non PCM.
//! @SYMTestPriority			Normal
//! @SYMTestType			Exception Usecase
//! @SYMTestActions			1. Create a Devsound instance.
//!					2. Create a CPeriodic instance.
//!					3. Open the audio files to be recorded and initialize the Devsound instance to record audio(non PCM).
//!					3.1 Wait for InitializeComplete(KErrNone) callback response.
//!					4. Start the CPeriodic instance.
//!					5. Call RecodInitL() to start the recording process.
//!					6. Wait for BufferToBeEmptied(..) callback to retrieve the buffered data from DevSound. To continue receiving BTBE callbacks, is mandatory to call RecordData() method.
//!					7. On the CPeriodic timer event, use Pause() to temporarily stop the record process.
//!					7.1  Continue RecordData()/BufferToBeEmptied() loop until last buffer flag is set. 
//!					8. After last buffer is received, call IsResumeSupported() and Resume().
//!					10. Close file session.	
//! @SYMTestExpectedResults		IsResumeSupported() will return EFalse.
//!					Resume()(will return KErrNotSupported) is supported for non PCM.
//!					Output is recorded at c:\mm\mmf\testfiles\truepause_devsound_test_data\record_3.ogg
PRINT Resume Record audio - Pause and resume for non PCM.
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0090-HP, c:\tsu_mmf_truepause_devsound.ini
TEST_COMPLETE

//! @SYMTestCaseID			MM-MMF-DEVSOUND-U-0091-HP
//! @SYMREQ				REQ11453
//!					REQ11455
//! @SYMPREQ				1540
//! @SYMTestCaseDec			Resume Record audio - Call SetGain(..) and SetRecordBalance(..) methods to set gain and LeftPercentage/aRightPercentage during pause respectively.
//! @SYMTestPriority			Normal
//! @SYMTestType			Normal Usecase
//! @SYMTestActions			1. Create a Devsound instance.
//!					2. Create a CPeriodic instance.
//!					3. Open the audio files to be recorded and initialize the Devsound instance to record audio(PCM).
//!					3.1 Wait for InitializeComplete(KErrNone) callback response.
//!					4. Start the CPeriodic instance.
//!					5. Call RecodInitL() to start the recording process.
//!					6. Wait for BufferToBeEmptied(..) callback to retrieve the buffered data from DevSound. To continue receiving BTBE callbacks, is mandatory to call RecordData() method.
//!					7. On the CPeriodic timer event, use Pause() to temporarily stop the record process.
//!					7.1  Continue RecordData()/BufferToBeEmptied() loop until last buffer flag is set. 
//!					8. After last buffer is received, set different gain and balance to default values, then call Gain() and call GetRecordBalanceL() methods.
//!					9. Call IsResumeSupported() and Resume(), then call Gain() and call GetRecordBalanceL() methods.
//!					9. On timer event call Pause(), wait for last buffer and stop the recording process.
//!					10. Close file session.	
//! @SYMTestExpectedResults		While pause, value returned by Gain() must be equal to the value set by SetGain() .
//!					While pause, value returned by GetRecordBalanceL()  must be equal to the value set by SetRecordBalanceL() .
//!					After resume, value returned by Gain() must be equal to the previous value set by SetGain() .
//!					After resume, value returned by GetRecordBalanceL()  must be equal to the previous value set by SetRecordBalanceL() .
//!					IsResumeSupported() will return ETrue.
//!					Resume()(will return KErrNone) is supported for PCM.
//!					Output is recorded at c:\mm\mmf\testfiles\truepause_devsound_test_data\record_4.raw
PRINT Resume Record audio - Call SetGain(..) and SetRecordBalance(..) methods to set gain and LeftPercentage/aRightPercentage during pause respectively.
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0091-HP, c:\tsu_mmf_truepause_devsound.ini
TEST_COMPLETE

//! @SYMTestCaseID			MM-MMF-DEVSOUND-U-0092-HP
//! @SYMREQ				REQ11453
//!					REQ11455
//! @SYMPREQ				1540
//! @SYMTestCaseDec			Resume Record audio - Call SetConfigL(..) method to try to change the TMMFCapabilities during pause().
//! @SYMTestPriority			Normal
//! @SYMTestType			Normal Usecase
//! @SYMTestActions			1. Create a Devsound instance.
//!					2. Create a CPeriodic instance.
//!					3. Open the audio files to be recorded and initialize the Devsound instance to record audio(PCM).
//!					3.1 Wait for InitializeComplete(KErrNone) callback response.
//!					4. Start the CPeriodic instance.
//!					4.1 Call SetConfigL() method to set initial TMMFCapabilities.
//!					5. Call RecodInitL() to start the recording process.
//!					6. Wait for BufferToBeEmptied(..) callback to retrieve the buffered data from DevSound. To continue receiving BTBE callbacks, is mandatory to call RecordData() method.
//!					7. On the CPeriodic timer event, use Pause() to temporarily stop the record process.
//!					7.1  Continue RecordData()/BufferToBeEmptied() loop until last buffer flag is set. 
//!					8. After last buffer is received, call SetConfigL() method to set different TMMFCapabilities.
//!					9. Call IsResumeSupported() and Resume(), then call Config() method.
//!					9. On timer event call Pause(), wait for last buffer and stop the recording process.
//!					10. Close file session.	
//! @SYMTestExpectedResults		While pause, SetConfigL() must return KErrNotReady.
//!					After resume TMMFCapabilities must be equal to initial configuration.
//!					IsResumeSupported() will return ETrue.
//!					Resume()(will return KErrNone) is supported for PCM.
//!					Output is recorded at c:\mm\mmf\testfiles\truepause_devsound_test_data\record_5.raw
PRINT Resume Record audio - Call SetConfigL(..) method to try to change the TMMFCapabilities during pause().
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0092-HP, c:\tsu_mmf_truepause_devsound.ini
TEST_COMPLETE

//! @SYMTestCaseID			MM-MMF-DEVSOUND-U-0093-HP
//! @SYMREQ				REQ11453
//!					REQ11455
//!					REQ11461
//! @SYMPREQ				1540
//! @SYMTestCaseDec			Resume play tone - Tone - Call Resume() to resume tone playback
//! @SYMTestPriority			Normal
//! @SYMTestType			Normal Usecase
//! @SYMTestActions			1. Create and Initialize DevSound instance to play tones.
//!					1.1 Wait for InitializeComplete(KErrNone) callback response.
//!					2. Create and start a CPeriodic object.
//!					3. Play a tone using PlayToneL().(For testing purposes, the tone should last more than the timer event)
//!					4. On the timer event, after two seconds, call Pause() to temporary halt ongoing play tone operation.
//!					5. After two more seconds on the next timer event, call IsResumeSupported() and Resume().	
//! @SYMTestExpectedResults		IsResumeSupported() will return ETrue.
//!					Resume()(will return KErrNotSupported) is supported for Play tone.
PRINT Resume play tone - Tone - Call Resume() to resume tone playback
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0093-HP, c:\tsu_mmf_truepause_devsound.ini
TEST_COMPLETE

//! @SYMTestCaseID			MM-MMF-DEVSOUND-U-0094-HP
//! @SYMREQ				REQ11453
//!					REQ11455
//!					REQ11461
//! @SYMPREQ				1540
//! @SYMTestCaseDec			Resume play tone - Dual Tone - Call Resume() to resume tone playback
//! @SYMTestPriority			Normal
//! @SYMTestType			Normal Usecase
//! @SYMTestActions			1. Create and Initialize DevSound instance to play tones.
//!					1.1 Wait for InitializeComplete(KErrNone) callback response.
//!					2. Create and start a CPeriodic object.
//!					3. Play a tone using PlayDualToneL().(For testing purposes, the tone should last more than the timer event)
//!					4. On the timer event, after two seconds, call Pause() to temporary halt ongoing play tone operation.
//!					5. After two more seconds on the next timer event, call IsResumeSupported() and Resume().	
//! @SYMTestExpectedResults		IsResumeSupported() will return ETrue.
//!					Resume()(will return KErrNotSupported) is supported for Play dual tone.
PRINT Resume play tone - Dual Tone - Call Resume() to resume tone playback
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0094-HP, c:\tsu_mmf_truepause_devsound.ini
TEST_COMPLETE

//! @SYMTestCaseID			MM-MMF-DEVSOUND-U-0095-HP
//! @SYMREQ				REQ11453
//!					REQ11455
//!					REQ11461
//! @SYMPREQ				1540
//! @SYMTestCaseDec			Resume play tone - DTMF String - Call Resume() to resume tone playback
//! @SYMTestPriority			Normal
//! @SYMTestType			Normal Usecase
//! @SYMTestActions			1. Create and Initialize DevSound instance to play tones.
//!					1.1 Wait for InitializeComplete(KErrNone) callback response.
//!					2. Create and start a CPeriodic object.
//!					3. Play a tone using PlayDTMFStringL().(For testing purposes, the tone should last more than the timer event)
//!					4. On the timer event, after two seconds, call Pause() to temporary halt ongoing play tone operation.
//!					5. After two more seconds on the next timer event, call IsResumeSupported() and Resume().	
//! @SYMTestExpectedResults		IsResumeSupported() will return ETrue.
//!					Resume()(will return KErrNotSupported) is supported for Play DTMFString tone.
PRINT Resume play tone - DTMF String - Call Resume() to resume tone playback
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0095-HP, c:\tsu_mmf_truepause_devsound.ini
TEST_COMPLETE

//! @SYMTestCaseID			MM-MMF-DEVSOUND-U-0096-HP
//! @SYMREQ				REQ11453
//!					REQ11455
//!					REQ11461
//! @SYMPREQ				1540
//! @SYMTestCaseDec			Resume play tone - Tone Sequence - Call Resume() to resume tone playback
//! @SYMTestPriority			Normal
//! @SYMTestType			Normal Usecase
//! @SYMTestActions			1. Create and Initialize DevSound instance to play tones.
//!					1.1 Wait for InitializeComplete(KErrNone) callback response.
//!					2. Create and start a CPeriodic object.
//!					3. Call PlayToneSequenceL() method. (For testing purposes, the tone should last more than the timer event)
//!					4. On the timer event, after two seconds, call Pause() to temporary halt ongoing play tone operation.
//!					5. After two more seconds on the next timer event, call IsResumeSupported() and Resume().	
//! @SYMTestExpectedResults		IsResumeSupported() will return ETrue.
//!					Resume()(will return KErrNone) is supported for Play tone sequence.
PRINT Resume play tone - Tone Sequence - Call Resume() to resume tone playback
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0096-HP, c:\tsu_mmf_truepause_devsound.ini
TEST_COMPLETE

//! @SYMTestCaseID			MM-MMF-DEVSOUND-U-0097-HP
//! @SYMREQ				REQ11453
//!					REQ11455
//!					REQ11461
//! @SYMPREQ				1540
//! @SYMTestCaseDec			Resume play tone - Tone - Call SetVolume(..) and SetPlayBalanceL(..) methods to set volume and LeftPercentage/aRightPercentage during pause respectively.
//! @SYMTestPriority			Normal
//! @SYMTestType			Normal Usecase
//! @SYMTestActions			1. Create and Initialize DevSound instance to play tones.
//!					1.1 Wait for InitializeComplete(KErrNone) callback response.
//!					2. Create and start a CPeriodic object.
//!					3. Play a tone using PlayToneL().(For testing purposes, the tone should last more than the timer event)
//!					4. On the timer event, after two seconds, call Pause() to temporary halt ongoing play tone operation.
//!					5. After two more seconds on the next timer event, set different volume and balance to default values, then call Volume() and GetPlayBalanceL() methods.
//!					6. Call IsResumeSupported() and Resume() methods, then call Volume() and GetPlayBalanceL() methods.	
//! @SYMTestExpectedResults		While pause, value returned by Volume() must be equal to the value set by SetVolume(..) .
//!					While pause, value returned by GetPlayBalanceL()  must be equal to the value set by SetPlayBalanceL() .
//!					After resume, value returned by Volume() must be equal to the previous value set by SetVolume(..) .
//!					After resume, value returned by GetPlayBalanceL()  must be equal to the previous value set by SetPlayBalanceL() .
//!					IsResumeSupported() will return ETrue.
//!					Resume()(will return KErrNotSupported) is supported for Play tone.
PRINT Resume play tone - Tone - Call SetVolume(..) and SetPlayBalanceL(..) methods to set volume and LeftPercentage/aRightPercentage during pause respectively.
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0097-HP, c:\tsu_mmf_truepause_devsound.ini
TEST_COMPLETE

//! @SYMTestCaseID			MM-MMF-DEVSOUND-U-0098-HP
//! @SYMREQ				REQ11453
//!					REQ11455
//!					REQ11461
//! @SYMPREQ				1540
//! @SYMTestCaseDec			Resume play tone - Tone Sequence - Call SetVolume(..) and SetPlayBalanceL(..) methods to set volume and LeftPercentage/aRightPercentage during pause respectively.
//! @SYMTestPriority			Normal
//! @SYMTestType			Normal Usecase
//! @SYMTestActions			1. Create and Initialize DevSound instance to play tones.
//!					1.1 Wait for InitializeComplete(KErrNone) callback response.
//!					2. Create and start a CPeriodic object.
//!					3. Call PlayToneSequenceL() method. (For testing purposes, the tone should last more than the timer event)
//!					4. On the timer event, after two seconds, call Pause() to temporary halt ongoing play tone operation.
//!					5. After two more seconds on the next timer event, set different volume and balance to default values, then call Volume() and GetPlayBalanceL() methods.
//!					6. Call IsResumeSupported() and Resume() methods, then call Volume() and GetPlayBalanceL() methods.	
//! @SYMTestExpectedResults		While pause, value returned by Volume() must be equal to the value set by SetVolume(..) .
//!					While pause, value returned by GetPlayBalanceL()  must be equal to the value set by SetPlayBalanceL() .
//!					After resume, value returned by Volume() must be equal to the previous value set by SetVolume(..) .
//!					After resume, value returned by GetPlayBalanceL()  must be equal to the previous value set by SetPlayBalanceL() .
//!					IsResumeSupported() will return ETrue.
//!					Resume()(will return KErrNone) is supported for Play tone sequence.
PRINT Resume play tone - Tone Sequence - Call SetVolume(..) and SetPlayBalanceL(..) methods to set volume and LeftPercentage/aRightPercentage during pause respectively.
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0098-HP, c:\tsu_mmf_truepause_devsound.ini
TEST_COMPLETE


//! @SYMTestCaseID		MM-MMF-DEVSOUND-U-0099-HP
//! @SYMDEF				DEF127468
//! @SYMTestCaseDec		Pause DevSound and call EmptyBuffers(), ensure this does not resume playback.  Then call resume and check EOF reached.
//! @SYMTestPriority		Normal
//! @SYMTestType			Normal Usecase
//! @SYMTestActions		1. Create a Devsound instance.
//!					2. Open the file to be played.
//!					3. Create a CPeriodic instance.
//!					4. Initialise the DevSound instance to play audio and start the timer for 3 seconds.
//!					5. After 3 seconds of audio playback pause DevSound.
//!					6. Call EmptyBuffers() and restart the timer for 3 seconds.
//!					7. After 3 seconds of silence, during which there should be no calls to the BufferToBeFilled() callback, call Resume().
//!					8. Continue playback until the EOF is reached.
//! @SYMTestExpectedResults	No calls to BufferToBeFilled() during paused stage.
//!					Resume() will result in playback of the file until EOF reached.
//!
PRINT Pause DevSound and call EmptyBuffers(), ensure this does not resume playback.  Then call resume and check EOF reached.
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0099-HP, c:\tsu_mmf_truepause_devsound.ini
TEST_COMPLETE

//! @SYMTestCaseID			MM-MMF-DEVSOUND-U-0105-HP
//! @SYMDEF				DEF142860
//! @SYMTestCaseDec			Resume Record audio usint RecordInit - Pause and iniitalise for PCM.
//! @SYMTestPriority			Normal
//! @SYMTestType			Normal Usecase
//! @SYMTestActions			1. Create a Devsound instance.
//!					2. Create a CPeriodic instance.
//!					3. Open the audio files to be recorded and initialize the Devsound instance to record audio(PCM).
//!					3.1 Wait for InitializeComplete(KErrNone) callback response.
//!					4. Start the CPeriodic instance.
//!					5. Call RecodInitL() to start the recording process.
//!					6. Wait for BufferToBeEmptied(..) callback to retrieve the buffered data from DevSound. To continue receiving BTBE callbacks, is mandatory to call RecordData() method.
//!					7. On the CPeriodic timer event, use Pause() to temporarily stop the record process.
//!					7.1  Continue RecordData()/BufferToBeEmptied() loop until last buffer flag is set. 
//!					8. After last buffer is received, call IsResumeSupported(), RecordInit() and RecordData().
//!					9. On timer event call Pause(), wait for last buffer and stop the recording process.
//!					10. Close file session.	
//! @SYMTestExpectedResults		IsResumeSupported() will return ETrue.
//!					RecordInit()(will return KErrNone) is supported for PCM.
//!					Output is recorded at c:\mm\mmf\testfiles\truepause_devsound_test_data\record_1.raw
PRINT Resume Record audio - Pause and resume for PCM.
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0105-HP, c:\tsu_mmf_truepause_devsound.ini 
TEST_COMPLETE


//! @SYMTestCaseID		MM-MMF-DEVSOUND-U-0199-HP
//! @SYMREQ				REQ11453
//!						REQ11455
//! @SYMPREQ			1540
//! @SYMTestCaseDec		Resume Audio Playback - When pause playing PCM audio call Resume() after IsResumeSupported() 
//! @SYMTestPriority	Normal
//! @SYMTestType		Normal Usecase
//! @SYMTestActions		1. Create a Devsound instance.
//!					2. Open the file to be played(must be PCM).
//!					3. Create a CPeriodic instance.
//!					4. Initialise a DevSound instance to play audio.
//!					4.1 Wait for InitializeComplete(KErrNone) callback response.
//!					5. Call PlayInitL() and start timer events every 2 seconds.
//!					6. Wait for BufferToBeFilled(..) callback of DevSound instance to fill the buffer with data. 
//!					To continue receiving BTBF callbacks, is mandatory to call PlayData() method.
//!					7. On timer event Pause() method.
//!					8. Wait for another timer event, call IsResumeSupported() then PlayInit()
//! @SYMTestExpectedResults		IsResumeSupported() will return ETrue.
//!					Resume()(will return KErrNone) is supported for PCM.
//!
PRINT Resume Audio Playback by calling Init - When pause playing PCM audio call PlayInit() after IsResumeSupported() 
RUN_TEST_STEP 60000, TSU_MMF_DEVSOUND_SUITE, MM-MMF-DEVSOUND-U-0199-HP, c:\tsu_mmf_truepause_devsound.ini
TEST_COMPLETE
