os/mm/mmlibs/mmfw/tsrc/mmfintegrationtest/vclntavi/src/testvideoplayer_secdisp.cpp
Update contrib.
1 // Copyright (c) 2006-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 #include "testvideoplayer_secdisp.h"
19 // RTestVclntSetScrIdAndPlayBase
23 * RTestVclntSetScrIdAndPlayBase::Constructor
25 RTestVclntSetScrIdAndPlayBase::RTestVclntSetScrIdAndPlayBase(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber)
26 : RTestVclntAviPlayerStep(aTestName, aSectName, aKeyName, aExpectedError)
28 iHeapSize = 1000000; //1MB
29 iScreenNumber = aScreenNumber;
30 iCurrentScreenNumber = 0;
38 void RTestVclntSetScrIdAndPlayBase::FinishedL()
40 INFO_PRINTF1(_L("RTestVclntSetScrIdAndPlayBase::FinishedL"));
41 //overridden in play/stop and play/pause tests.
45 * RTestVclntAviPlayerStep::MvpuoOpenComplete
46 * Callback function for CVideoPlayerUtility
48 void RTestVclntSetScrIdAndPlayBase::MvpuoOpenComplete(TInt aError)
51 INFO_PRINTF2(_L("iVideoPlayer - Open Complete callback returned with error %d"), iError);
52 #ifdef SYMBIAN_VARIABLE_BITRATE_CODEC
53 #if defined (__EABI__) || defined(__X86GCC__) // secondary screen is not supported in HW.
54 if ((iCurrentScreenNumber != 0) && (iError == KErrNotSupported))
56 iTestStepResult = EKnownFailure;
57 INFO_PRINTF1(_L("The secondary screen is not supported in HW"));
58 CActiveScheduler::Stop();
60 else if((iCurrentScreenNumber == 0) && (iError == KErrNone))
62 TRAPD(err, FsmL(EVPOpenComplete));
70 iTestStepResult = EFail;
71 ERR_PRINTF2(_L("Unexpected error in MvpuoOpenComplete %d"), iError);
72 CActiveScheduler::Stop();
75 TRAPD(err, FsmL(EVPOpenComplete));
79 CActiveScheduler::Stop();
83 if(iError == KErrNotSupported)
85 iTestStepResult = EKnownFailure;
86 INFO_PRINTF1(_L("The AVI Play Controller is not available in this OS version, hence KNOWN FAILURE"));
90 iTestStepResult = EFail;
91 ERR_PRINTF2(_L("Unexpected error in MvpuoOpenComplete %d"), iError);
93 CActiveScheduler::Stop();
94 #endif // SYMBIAN_VARIABLE_BITRATE_CODEC
97 // RTestVclntSetScrIdAndPlayAviFile
101 * RTestVclntSetScrIdAndPlayAviFile::Constructor
103 RTestVclntSetScrIdAndPlayAviFile::RTestVclntSetScrIdAndPlayAviFile(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber)
104 : RTestVclntSetScrIdAndPlayBase(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber)
109 * RTestVclntSetScrIdAndPlayAviFile::NewL
111 RTestVclntSetScrIdAndPlayAviFile* RTestVclntSetScrIdAndPlayAviFile::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber)
113 RTestVclntSetScrIdAndPlayAviFile* self = new (ELeave) RTestVclntSetScrIdAndPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber);
118 * RTestVclntSetScrIdAndPlayAviFile::DoTestStepL
120 TVerdict RTestVclntSetScrIdAndPlayAviFile::DoTestStepL()
122 iTestStepResult = EFail;
123 // Call the state handler from IDLE state
124 TRAPD(err, FsmL(EVPIdle));
127 // Start the scheduler - Done only once !
128 CActiveScheduler::Start();
130 return iTestStepResult;
134 * RTestVclntSetScrIdAndPlayAviFile::FsmL
136 void RTestVclntSetScrIdAndPlayAviFile::FsmL(TVclntTestPlayEvents aEventCode)
138 if (FsmCheck(aEventCode))
145 iCurrentScreenNumber = iScreenNumber;
146 INFO_PRINTF2(_L("iVideoPlayer->SetInitScreenNumber(%d)"), iScreenNumber);
148 err = iVideoPlayer->SetInitScreenNumber(iScreenNumber);
149 #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
152 ERR_PRINTF2(_L("ScreenNumber failed with error : %d"), err);
156 if (err == KErrNotSupported)
158 iTestStepResult = EKnownFailure;
159 INFO_PRINTF2(_L("SetInitScreenNumber() is not supported in this OS, returned %d"), err);
163 iTestStepResult = EFail;
164 ERR_PRINTF2(_L("SetInitScreenNumber() failed with error : %d"), err);
167 #endif // SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
169 INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename);
170 if (iBinaryCompatibility)
172 iVideoPlayer->OpenFileL(iFilename, ControllerUid());
176 iVideoPlayer->OpenFileL(iFilename);
179 PrepareState(EVPOpenComplete, KErrNone);
182 case EVPOpenComplete:
184 // Prepare iVideoPlayer
185 INFO_PRINTF1(_L("iVideoPlayer->Prepare()"));
186 iVideoPlayer->Prepare();
187 PrepareState(EVPPrepareComplete, KErrNone);
190 case EVPPrepareComplete:
192 iError = KErrTimedOut;
193 INFO_PRINTF1(_L("iVideoPlayer->Play()"));
194 iVideoPlayer->Play();
195 PrepareState(EVPPlayComplete, KErrNone);
198 case EVPPlayComplete:
200 iTestStepResult = EPass;
201 CActiveScheduler::Stop();
209 // RTestVclntSetScrIdAndPlayAviDes
213 * RTestVclntSetScrIdAndPlayAviDes::Constructor
215 RTestVclntSetScrIdAndPlayAviDes::RTestVclntSetScrIdAndPlayAviDes(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber)
216 : RTestVclntSetScrIdAndPlayBase(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber)
222 * RTestVclntSetScrIdAndPlayAviDes::NewL
224 RTestVclntSetScrIdAndPlayAviDes* RTestVclntSetScrIdAndPlayAviDes::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber)
226 RTestVclntSetScrIdAndPlayAviDes* self = new (ELeave) RTestVclntSetScrIdAndPlayAviDes(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber);
231 * RTestVclntSetScrIdAndPlayAviDes::DoTestStepPreambleL
233 TVerdict RTestVclntSetScrIdAndPlayAviDes::DoTestStepPreambleL()
235 TVerdict preamRes = EPass;
237 // Base DoTestStepPreambleL
238 preamRes = RTestVclntAviPlayerStep::DoTestStepPreambleL();
239 if (preamRes != EPass)
248 // connect to file system and open file
249 User::LeaveIfError(fs.Connect());
250 CleanupClosePushL(fs);
251 User::LeaveIfError(file.Open(fs,iFilename,EFileRead));
252 CleanupClosePushL(file);
255 User::LeaveIfError(file.Size(size));
256 INFO_PRINTF2(_L("size of file = %d\n"),size);//Statement Changed under DEF105143
258 iVideo = HBufC8::NewMaxL(size);
260 // read data into Hbuf
261 TPtr8 bufferDes(iVideo->Des());
262 User::LeaveIfError(file.Read(bufferDes));
264 CleanupStack::PopAndDestroy(2, &fs); //fs, file
270 * RTestVclntSetScrIdAndPlayAviDes::DoTestStepPostambleL
272 TVerdict RTestVclntSetScrIdAndPlayAviDes::DoTestStepPostambleL()
276 return RTestVclntAviPlayerStep::DoTestStepPostambleL();
280 * Load and initialise an video descriptor.
282 TVerdict RTestVclntSetScrIdAndPlayAviDes::DoTestStepL()
284 iTestStepResult = EFail;
285 // Call the state handler from IDLE state
286 TRAPD(err, FsmL(EVPIdle));
289 // Start the scheduler - Done only once !
290 CActiveScheduler::Start();
292 return iTestStepResult;
296 * RTestVclntSetScrIdAndPlayAviDes::FsmL
298 void RTestVclntSetScrIdAndPlayAviDes::FsmL(TVclntTestPlayEvents aEventCode)
300 if (FsmCheck(aEventCode))
307 iCurrentScreenNumber = iScreenNumber;
308 INFO_PRINTF2(_L("iVideoPlayer->SetInitScreenNumber(%d)"), iScreenNumber);
310 err = iVideoPlayer->SetInitScreenNumber(iScreenNumber);
311 #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
314 ERR_PRINTF2(_L("ScreenNumber failed with error : %d"), err);
318 if (err == KErrNotSupported)
320 iTestStepResult = EKnownFailure;
321 INFO_PRINTF2(_L("SetInitScreenNumber() is not supported in this OS, returned %d"), err);
325 iTestStepResult = EFail;
326 ERR_PRINTF2(_L("SetInitScreenNumber() failed with error : %d"), err);
329 #endif // SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
331 INFO_PRINTF2(_L("iVideoPlayer->OpenDesL() %S"), &iFilename);
332 iVideoPlayer->OpenDesL(iVideo->Des());
333 PrepareState(EVPOpenComplete, KErrNone);
336 case EVPOpenComplete:
338 // Prepare iVideoPlayer
339 INFO_PRINTF1(_L("iVideoPlayer->Prepare()"));
340 iVideoPlayer->Prepare();
341 PrepareState(EVPPrepareComplete, KErrNone);
344 case EVPPrepareComplete:
346 iError = KErrTimedOut;
347 INFO_PRINTF1(_L("iVideoPlayer->Play()"));
348 iVideoPlayer->Play();
349 PrepareState(EVPPlayComplete, KErrNone);
352 case EVPPlayComplete:
354 iTestStepResult = EPass;
355 CActiveScheduler::Stop();
363 // RTestVclntSetScrIdAndPlayAviUrl
367 * RTestVclntSetScrIdAndPlayAviUrl::Constructor
370 RTestVclntSetScrIdAndPlayAviUrl::RTestVclntSetScrIdAndPlayAviUrl(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber)
371 : RTestVclntSetScrIdAndPlayBase(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber)
376 * RTestVclntSetScrIdAndPlayAviUrl::NewL
379 RTestVclntSetScrIdAndPlayAviUrl* RTestVclntSetScrIdAndPlayAviUrl::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber)
381 RTestVclntSetScrIdAndPlayAviUrl* self = new (ELeave) RTestVclntSetScrIdAndPlayAviUrl(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber);
386 * RTestVclntSetScrIdAndPlayAviUrl::Constructor
389 TVerdict RTestVclntSetScrIdAndPlayAviUrl::DoTestStepL()
391 iTestStepResult = EFail;
392 // Call the state handler from IDLE state
393 TRAPD(err, FsmL(EVPIdle));
396 // Start the scheduler - Done only once !
397 CActiveScheduler::Start();
399 return iTestStepResult;
403 * RTestVclntSetScrIdAndPlayAviUrl::FsmL
406 void RTestVclntSetScrIdAndPlayAviUrl::FsmL(TVclntTestPlayEvents aEventCode)
408 if (FsmCheck(aEventCode))
415 iCurrentScreenNumber = iScreenNumber;
416 INFO_PRINTF2(_L("iVideoPlayer->SetInitScreenNumber(%d)"), iScreenNumber);
418 err = iVideoPlayer->SetInitScreenNumber(iScreenNumber);
419 #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
422 ERR_PRINTF2(_L("ScreenNumber failed with error : %d"), err);
426 if (err == KErrNotSupported)
428 iTestStepResult = EKnownFailure;
429 INFO_PRINTF2(_L("SetInitScreenNumber() is not supported in this OS, returned %d"), err);
433 iTestStepResult = EFail;
434 ERR_PRINTF2(_L("SetInitScreenNumber() failed with error : %d"), err);
437 #endif // SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
439 INFO_PRINTF2(_L("iVideoPlayer->OpenUrlL() %S"), &iFilename);
440 iVideoPlayer->OpenUrlL(iFilename);
441 PrepareState(EVPOpenComplete, KErrNone);
444 case EVPOpenComplete:
446 // Prepare iVideoPlayer
447 INFO_PRINTF1(_L("iVideoPlayer->Prepare()"));
448 iVideoPlayer->Prepare();
449 PrepareState(EVPPrepareComplete, KErrNone);
452 case EVPPrepareComplete:
454 iError = KErrTimedOut;
455 INFO_PRINTF1(_L("iVideoPlayer->Play()"));
456 iVideoPlayer->Play();
457 PrepareState(EVPPlayComplete, KErrNone);
460 case EVPPlayComplete:
462 CActiveScheduler::Stop();
463 iTestStepResult = EPass;
471 // RTestVclntSetScrIdAndPlayStopAviFile
475 * RTestVclntSetScrIdAndPlayStopAviFile::Constructor
477 RTestVclntSetScrIdAndPlayStopAviFile::RTestVclntSetScrIdAndPlayStopAviFile(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber, TInt aScreenNumber2)
478 : RTestVclntSetScrIdAndPlayBase(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber)
480 iScreenNumber2 = aScreenNumber2;
486 * RTestVclntSetScrIdAndPlayStopAviFile::NewL
488 RTestVclntSetScrIdAndPlayStopAviFile* RTestVclntSetScrIdAndPlayStopAviFile::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber, TInt aScreenNumber2)
490 RTestVclntSetScrIdAndPlayStopAviFile* self = new (ELeave) RTestVclntSetScrIdAndPlayStopAviFile(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber, aScreenNumber2);
495 * set finished on callback from a timer
497 void RTestVclntSetScrIdAndPlayStopAviFile::FinishedL()
499 INFO_PRINTF1(_L("-- iVideoPlayer->Stop();"));
500 iVideoPlayer->Stop();
502 FsmL(EVPPlayStopped);
506 * RTestVclntSetScrIdAndPlayStopAviFile::DoTestStepL
508 TVerdict RTestVclntSetScrIdAndPlayStopAviFile::DoTestStepL()
510 iTestStepResult = EFail;
515 if(!GetStringFromConfig(iSectName, _L("filename2"), tmpFilename))
517 ERR_PRINTF1(_L("ERROR : Cannot Get value from Config."));
518 return EInconclusive;
520 GetDriveName(iFilename2);
521 iFilename2.Append(tmpFilename);
522 // Call the state handler from IDLE state
523 TRAPD(err, FsmL(EVPIdle));
526 // Start the scheduler - Done only once !
527 CActiveScheduler::Start();
529 return iTestStepResult;
533 * RTestVclntSetScrIdAndPlayStopAviFile::FsmL
535 void RTestVclntSetScrIdAndPlayStopAviFile::FsmL(TVclntTestPlayEvents aEventCode)
537 if (FsmCheck(aEventCode))
544 iCurrentScreenNumber = iScreenNumber;
545 INFO_PRINTF2(_L("iVideoPlayer->SetInitScreenNumber(%d)"), iScreenNumber);
547 err = iVideoPlayer->SetInitScreenNumber(iScreenNumber);
548 #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
551 ERR_PRINTF2(_L("ScreenNumber failed with error : %d"), err);
555 if (err == KErrNotSupported)
557 iTestStepResult = EKnownFailure;
558 INFO_PRINTF2(_L("SetInitScreenNumber() is not supported in this OS, returned %d"), err);
562 iTestStepResult = EFail;
563 ERR_PRINTF2(_L("SetInitScreenNumber() failed with error : %d"), err);
566 #endif // SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
568 INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename);
569 if (iBinaryCompatibility)
571 iVideoPlayer->OpenFileL(iFilename, ControllerUid());
575 iVideoPlayer->OpenFileL(iFilename);
578 PrepareState(EVPOpenComplete, KErrNone);
581 case EVPOpenComplete:
583 // Prepare iVideoPlayer
584 INFO_PRINTF1(_L("iVideoPlayer->Prepare()"));
585 iVideoPlayer->Prepare();
586 PrepareState(EVPPrepareComplete, KErrNone);
589 case EVPPrepareComplete:
591 INFO_PRINTF1(_L("iVideoPlayer->Play()"));
592 iVideoPlayer->Play();
593 if (iCountNumber == 0)
595 // initialise and start the timer. the file is short and so decode occur rapidly
596 // hence the short time passed to After()
597 TRAPD(err, iPlayTimer = CTestVclntAviPlayTimer::NewL(this, 2000000));
600 ERR_PRINTF2(_L("CTestVclntAviPlayTimer::NewL left with error = %d"), err);
601 CActiveScheduler::Stop();
605 // For first time we are expecting to stop the play after some second,
606 // and second time it should play till the end of file.
607 PrepareState(EVPPlayStopped, KErrNone);
611 PrepareState(EVPPlayComplete, KErrNone);
618 iPlayTimer->Cancel();
622 iCurrentScreenNumber = iScreenNumber2;
623 INFO_PRINTF2(_L("iVideoPlayer->SetInitScreenNumber(%d)"), iScreenNumber2);
625 err = iVideoPlayer->SetInitScreenNumber(iScreenNumber2);
626 #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
629 ERR_PRINTF2(_L("ScreenNumber failed with error : %d"), err);
630 CActiveScheduler::Stop();
634 if (err == KErrNotSupported)
636 iTestStepResult = EKnownFailure;
637 INFO_PRINTF2(_L("SetInitScreenNumber() is not supported in this OS, returned %d"), err);
641 iTestStepResult = EFail;
642 ERR_PRINTF2(_L("SetInitScreenNumber() failed with error : %d"), err);
644 CActiveScheduler::Stop();
646 #endif // SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
649 INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename2);
650 if (iBinaryCompatibility)
652 TRAP(iError, iVideoPlayer->OpenFileL(iFilename2, ControllerUid()));
656 TRAP(iError, iVideoPlayer->OpenFileL(iFilename2));
659 if (iError != KErrNone)
661 ERR_PRINTF2(_L("iVideoPlayer->OpenFileL() left with error = %d"), iError);
662 CActiveScheduler::Stop();
666 PrepareState(EVPOpenComplete, KErrNone);
670 case EVPPlayComplete:
672 iTestStepResult = EPass;
673 CActiveScheduler::Stop();
681 // RTestVclntSetScrIdAndPlayPauseAviFile
685 * RTestVclntSetScrIdAndPlayPauseAviFile::Constructor
687 RTestVclntSetScrIdAndPlayPauseAviFile::RTestVclntSetScrIdAndPlayPauseAviFile(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber, TInt aScreenNumber2)
688 : RTestVclntSetScrIdAndPlayBase(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber)
690 iScreenNumber2 = aScreenNumber2;
694 * RTestVclntSetScrIdAndPlayPauseAviFile::NewL
696 RTestVclntSetScrIdAndPlayPauseAviFile* RTestVclntSetScrIdAndPlayPauseAviFile::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber, TInt aScreenNumber2)
698 RTestVclntSetScrIdAndPlayPauseAviFile* self = new (ELeave) RTestVclntSetScrIdAndPlayPauseAviFile(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber, aScreenNumber2);
703 * set finished on callback from a timer
705 void RTestVclntSetScrIdAndPlayPauseAviFile::FinishedL()
707 // We cannot use the logger until after OpenL is called again in EVPPlayPaused because
708 // of the way the scheduler works. The current thread is suspended until the video is
709 // finished playing if a synchronous call is made in WINSCW.
710 TRAPD(err,iVideoPlayer->PauseL());
711 if (err != KErrNotSupported)
713 INFO_PRINTF2(_L("Pause() returns with error : %d"),err);
714 iTestStepResult = EFail;
715 CActiveScheduler::Stop();
722 * RTestVclntSetScrIdAndPlayPauseAviFile::DoTestStepL
724 TVerdict RTestVclntSetScrIdAndPlayPauseAviFile::DoTestStepL()
726 iTestStepResult = EFail;
731 if(!GetStringFromConfig(iSectName, _L("filename2"), tmpFilename))
733 ERR_PRINTF1(_L("ERROR : Cannot Get value from Config."));
734 return EInconclusive;
736 GetDriveName(iFilename2);
737 iFilename2.Append(tmpFilename);
738 // Call the state handler from IDLE state
739 TRAPD(err, FsmL(EVPIdle));
742 // Start the scheduler - Done only once !
743 CActiveScheduler::Start();
745 return iTestStepResult;
749 * RTestVclntSetScrIdAndPlayPauseAviFile::FsmL
751 void RTestVclntSetScrIdAndPlayPauseAviFile::FsmL(TVclntTestPlayEvents aEventCode)
753 if (FsmCheck(aEventCode))
760 iCurrentScreenNumber = iScreenNumber;
761 INFO_PRINTF2(_L("iVideoPlayer->SetInitScreenNumber(%d)"), iScreenNumber);
763 err = iVideoPlayer->SetInitScreenNumber(iScreenNumber);
764 #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
767 ERR_PRINTF2(_L("ScreenNumber failed with error : %d"), err);
771 if (err == KErrNotSupported)
773 iTestStepResult = EKnownFailure;
774 INFO_PRINTF2(_L("SetInitScreenNumber() is not supported in this OS, returned %d"), err);
778 iTestStepResult = EFail;
779 ERR_PRINTF2(_L("SetInitScreenNumber() failed with error : %d"), err);
782 #endif // SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
784 INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename);
785 if (iBinaryCompatibility)
787 iVideoPlayer->OpenFileL(iFilename, ControllerUid());
791 iVideoPlayer->OpenFileL(iFilename);
794 PrepareState(EVPOpenComplete, KErrNone);
797 case EVPOpenComplete:
799 // Prepare iVideoPlayer
800 INFO_PRINTF1(_L("iVideoPlayer->Prepare()"));
801 iVideoPlayer->Prepare();
802 PrepareState(EVPPrepareComplete, KErrNone);
805 case EVPPrepareComplete:
807 INFO_PRINTF1(_L("iVideoPlayer->Play()"));
808 // We cannot use the logger until after OpenL is called again in EVPPlayPaused because
809 // of the way the scheduler works. The current thread is suspended until the video is
810 // finished playing if a synchronous call is made in WINSCW.
811 iVideoPlayer->Play();
812 if (iCountNumber == 0)
814 // initialise and start the timer. the file is short and so decode occur rapidly
815 // hence the short time passed to After()
816 TRAPD(err, iPlayTimer = CTestVclntAviPlayTimer::NewL(this, 1000000));
819 ERR_PRINTF2(_L("CTestVclntAviPlayTimer::NewL left with error = %d"), err);
820 CActiveScheduler::Stop();
825 PrepareState(EVPPlayPaused, KErrNone);
829 PrepareState(EVPPlayComplete, KErrNone);
836 iPlayTimer->Cancel();
841 iCurrentScreenNumber = iScreenNumber2;
842 TInt err = iVideoPlayer->SetInitScreenNumber(iScreenNumber2);
843 #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
846 ERR_PRINTF2(_L("ScreenNumber failed with error : %d"), err);
847 CActiveScheduler::Stop();
851 if (err == KErrNotSupported)
853 iTestStepResult = EKnownFailure;
854 INFO_PRINTF2(_L("SetInitScreenNumber() is not supported in this OS, returned %d"), err);
858 iTestStepResult = EFail;
859 ERR_PRINTF2(_L("SetInitScreenNumber() failed with error : %d"), err);
861 CActiveScheduler::Stop();
863 #endif // SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
866 if (iBinaryCompatibility)
868 TRAP(iError, iVideoPlayer->OpenFileL(iFilename2, ControllerUid()));
872 TRAP(iError, iVideoPlayer->OpenFileL(iFilename2));
875 INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename2);
877 if (iError != KErrNone)
879 ERR_PRINTF2(_L("iVideoPlayer->OpenFileL() left with error = %d"), iError);
880 CActiveScheduler::Stop();
884 PrepareState(EVPOpenComplete, KErrNone);
888 case EVPPlayComplete:
890 iTestStepResult = EPass;
891 CActiveScheduler::Stop();
899 // RTestVclntSetScrIdAfterPlayAndPlayAviFile
903 * RTestVclntSetScrIdAfterPlayAndPlayAviFile::Constructor
905 RTestVclntSetScrIdAfterPlayAndPlayAviFile::RTestVclntSetScrIdAfterPlayAndPlayAviFile(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber)
906 : RTestVclntSetScrIdAndPlayBase(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber)
911 * RTestVclntSetScrIdAfterPlayAndPlayAviFile::NewL
913 RTestVclntSetScrIdAfterPlayAndPlayAviFile* RTestVclntSetScrIdAfterPlayAndPlayAviFile::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber)
915 RTestVclntSetScrIdAfterPlayAndPlayAviFile* self = new (ELeave) RTestVclntSetScrIdAfterPlayAndPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber);
920 * RTestVclntSetScrIdAfterPlayAndPlayAviFile::DoTestStepL
922 TVerdict RTestVclntSetScrIdAfterPlayAndPlayAviFile::DoTestStepL()
924 iTestStepResult = EFail;
927 // Call the state handler from IDLE state
928 TRAPD(err, FsmL(EVPIdle));
931 // Start the scheduler - Done only once !
932 CActiveScheduler::Start();
934 return iTestStepResult;
938 * RTestVclntSetScrIdAfterPlayAndPlayAviFile::FsmL
940 void RTestVclntSetScrIdAfterPlayAndPlayAviFile::FsmL(TVclntTestPlayEvents aEventCode)
942 if (FsmCheck(aEventCode))
949 INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename);
950 if (iBinaryCompatibility)
952 iVideoPlayer->OpenFileL(iFilename, ControllerUid());
956 iVideoPlayer->OpenFileL(iFilename);
959 PrepareState(EVPOpenComplete, KErrNone);
962 case EVPOpenComplete:
964 // Prepare iVideoPlayer
965 INFO_PRINTF1(_L("iVideoPlayer->Prepare()"));
966 iVideoPlayer->Prepare();
967 PrepareState(EVPPrepareComplete, KErrNone);
970 case EVPPrepareComplete:
972 iError = KErrTimedOut;
973 INFO_PRINTF1(_L("iVideoPlayer->Play()"));
974 iVideoPlayer->Play();
975 PrepareState(EVPPlayComplete, KErrNone);
978 case EVPPlayComplete:
980 if (iCountNumber == 0)
983 iCurrentScreenNumber = iScreenNumber;
984 INFO_PRINTF2(_L("iVideoPlayer->SetInitScreenNumber(%d)"), iScreenNumber);
986 err = iVideoPlayer->SetInitScreenNumber(iScreenNumber);
987 #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
990 ERR_PRINTF2(_L("ScreenNumber failed with error : %d"), err);
991 CActiveScheduler::Stop();
995 if (err == KErrNotSupported)
997 iTestStepResult = EKnownFailure;
998 INFO_PRINTF2(_L("SetInitScreenNumber() is not supported in this OS, returned %d"), err);
1002 iTestStepResult = EFail;
1003 ERR_PRINTF2(_L("SetInitScreenNumber() failed with error : %d"), err);
1005 CActiveScheduler::Stop();
1007 #endif // SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
1009 // Open iVideoPlayer
1010 INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename);
1011 if (iBinaryCompatibility)
1013 TRAP(iError, iVideoPlayer->OpenFileL(iFilename, ControllerUid()));
1017 TRAP(iError, iVideoPlayer->OpenFileL(iFilename));
1020 if (iError != KErrNone)
1022 ERR_PRINTF2(_L("iVideoPlayer->OpenFileL() left with error = %d"), iError);
1023 CActiveScheduler::Stop();
1027 PrepareState(EVPOpenComplete, KErrNone);
1033 iTestStepResult = EPass;
1034 CActiveScheduler::Stop();
1043 // RTestVclntSetScrIdAfterOpenAndPlayAviFile
1047 * RTestVclntSetScrIdAfterOpenAndPlayAviFile::Constructor
1049 RTestVclntSetScrIdAfterOpenAndPlayAviFile::RTestVclntSetScrIdAfterOpenAndPlayAviFile(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber)
1050 : RTestVclntSetScrIdAndPlayBase(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber)
1055 * RTestVclntSetScrIdAfterOpenAndPlayAviFile::NewL
1057 RTestVclntSetScrIdAfterOpenAndPlayAviFile* RTestVclntSetScrIdAfterOpenAndPlayAviFile::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber)
1059 RTestVclntSetScrIdAfterOpenAndPlayAviFile* self = new (ELeave) RTestVclntSetScrIdAfterOpenAndPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber);
1064 * RTestVclntSetScrIdAfterOpenAndPlayAviFile::DoTestStepL
1066 TVerdict RTestVclntSetScrIdAfterOpenAndPlayAviFile::DoTestStepL()
1068 iTestStepResult = EFail;
1071 // Call the state handler from IDLE state
1072 TRAPD(err, FsmL(EVPIdle));
1073 if (err == KErrNone)
1075 // Start the scheduler - Done only once !
1076 CActiveScheduler::Start();
1078 return iTestStepResult;
1082 * RTestVclntSetScrIdAfterOpenAndPlayAviFile::FsmL
1084 void RTestVclntSetScrIdAfterOpenAndPlayAviFile::FsmL(TVclntTestPlayEvents aEventCode)
1086 if (FsmCheck(aEventCode))
1092 // Open iVideoPlayer
1093 INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename);
1094 if (iBinaryCompatibility)
1096 iVideoPlayer->OpenFileL(iFilename, ControllerUid());
1100 iVideoPlayer->OpenFileL(iFilename);
1103 PrepareState(EVPOpenComplete, KErrNone);
1106 case EVPOpenComplete:
1108 if (iCountNumber == 0)
1110 // Set iScreenNumber
1111 iCurrentScreenNumber = iScreenNumber;
1112 INFO_PRINTF2(_L("iVideoPlayer->SetInitScreenNumber(%d)"), iScreenNumber);
1114 err = iVideoPlayer->SetInitScreenNumber(iScreenNumber);
1115 #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
1116 if (err != KErrNone)
1118 ERR_PRINTF2(_L("ScreenNumber failed with error : %d"), err);
1119 CActiveScheduler::Stop();
1123 if (err == KErrNotSupported)
1125 iTestStepResult = EKnownFailure;
1126 INFO_PRINTF2(_L("SetInitScreenNumber() is not supported in this OS, returned %d"), err);
1130 iTestStepResult = EFail;
1131 ERR_PRINTF2(_L("SetInitScreenNumber() failed with error : %d"), err);
1133 CActiveScheduler::Stop();
1135 #endif // SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
1137 // Prepare iVideoPlayer
1138 INFO_PRINTF1(_L("iVideoPlayer->Prepare()"));
1139 iVideoPlayer->Prepare();
1140 PrepareState(EVPPrepareComplete, KErrNone);
1143 case EVPPrepareComplete:
1145 iError = KErrTimedOut;
1146 INFO_PRINTF1(_L("iVideoPlayer->Play()"));
1147 iVideoPlayer->Play();
1148 // When playing for the first time open the file again else play till the end.
1149 if (iCountNumber == 0)
1152 // Open iVideoPlayer
1153 INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename);
1154 if (iBinaryCompatibility)
1156 TRAP(iError, iVideoPlayer->OpenFileL(iFilename, ControllerUid()));
1160 TRAP(iError, iVideoPlayer->OpenFileL(iFilename));
1163 if (iError != KErrNone)
1165 ERR_PRINTF2(_L("iVideoPlayer->OpenFileL() left with error = %d"), iError);
1166 CActiveScheduler::Stop();
1170 PrepareState(EVPOpenComplete, KErrNone);
1176 PrepareState(EVPPlayComplete, KErrNone);
1180 case EVPPlayComplete:
1182 iTestStepResult = EPass;
1183 CActiveScheduler::Stop();
1191 // RTestVclntSetScrIdDuringPlayAndPlayAviFile
1195 * RTestVclntSetScrIdDuringPlayAndPlayAviFile::Constructor
1197 RTestVclntSetScrIdDuringPlayAndPlayAviFile::RTestVclntSetScrIdDuringPlayAndPlayAviFile(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber)
1198 : RTestVclntSetScrIdAndPlayBase(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber)
1203 * RTestVclntSetScrIdDuringPlayAndPlayAviFile::NewL
1205 RTestVclntSetScrIdDuringPlayAndPlayAviFile* RTestVclntSetScrIdDuringPlayAndPlayAviFile::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber)
1207 RTestVclntSetScrIdDuringPlayAndPlayAviFile* self = new (ELeave) RTestVclntSetScrIdDuringPlayAndPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber);
1212 * RTestVclntSetScrIdDuringPlayAndPlayAviFile::DoTestStepL
1214 TVerdict RTestVclntSetScrIdDuringPlayAndPlayAviFile::DoTestStepL()
1216 iTestStepResult = EFail;
1219 // Call the state handler from IDLE state
1220 TRAPD(err, FsmL(EVPIdle));
1221 if (err == KErrNone)
1223 // Start the scheduler - Done only once !
1224 CActiveScheduler::Start();
1226 return iTestStepResult;
1230 * RTestVclntSetScrIdDuringPlayAndPlayAviFile::FsmL
1232 void RTestVclntSetScrIdDuringPlayAndPlayAviFile::FsmL(TVclntTestPlayEvents aEventCode)
1234 if (FsmCheck(aEventCode))
1240 // Open iVideoPlayer
1241 INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename);
1242 if (iBinaryCompatibility)
1244 iVideoPlayer->OpenFileL(iFilename, ControllerUid());
1248 iVideoPlayer->OpenFileL(iFilename);
1251 PrepareState(EVPOpenComplete, KErrNone);
1254 case EVPOpenComplete:
1256 // Prepare iVideoPlayer
1257 INFO_PRINTF1(_L("iVideoPlayer->Prepare()"));
1258 iVideoPlayer->Prepare();
1259 PrepareState(EVPPrepareComplete, KErrNone);
1262 case EVPPrepareComplete:
1264 iError = KErrTimedOut;
1265 INFO_PRINTF1(_L("iVideoPlayer->Play()"));
1266 iVideoPlayer->Play();
1267 if (iCountNumber == 0)
1269 // Set iScreenNumber
1270 iCurrentScreenNumber = iScreenNumber;
1271 INFO_PRINTF2(_L("iVideoPlayer->SetInitScreenNumber(%d)"), iScreenNumber);
1272 TInt err = KErrNone;
1273 err = iVideoPlayer->SetInitScreenNumber(iScreenNumber);
1274 #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
1275 if (err != KErrNone)
1277 ERR_PRINTF2(_L("ScreenNumber failed with error : %d"), err);
1278 CActiveScheduler::Stop();
1282 if (err == KErrNotSupported)
1284 iTestStepResult = EKnownFailure;
1285 INFO_PRINTF2(_L("SetInitScreenNumber() is not supported in this OS, returned %d"), err);
1289 iTestStepResult = EFail;
1290 ERR_PRINTF2(_L("SetInitScreenNumber() failed with error : %d"), err);
1292 CActiveScheduler::Stop();
1294 #endif // SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
1296 // Open iVideoPlayer
1297 INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename);
1298 if (iBinaryCompatibility)
1300 TRAP(iError, iVideoPlayer->OpenFileL(iFilename, ControllerUid()));
1304 TRAP(iError, iVideoPlayer->OpenFileL(iFilename));
1307 if (iError != KErrNone)
1309 ERR_PRINTF2(_L("iVideoPlayer->OpenFileL() left with error = %d"), iError);
1310 CActiveScheduler::Stop();
1314 PrepareState(EVPOpenComplete, KErrNone);
1320 PrepareState(EVPPlayComplete, KErrNone);
1324 case EVPPlayComplete:
1326 iTestStepResult = EPass;
1327 CActiveScheduler::Stop();
1335 // CTestVclntAviPlayTimer
1341 CTestVclntAviPlayTimer* CTestVclntAviPlayTimer::NewL(RTestVclntSetScrIdAndPlayBase* aParent, TTimeIntervalMicroSeconds32 aWaitTime)
1343 CTestVclntAviPlayTimer* self = new (ELeave) CTestVclntAviPlayTimer(aParent, aWaitTime);
1344 CleanupStack::PushL(self);
1346 CleanupStack::Pop(self);
1353 CTestVclntAviPlayTimer::CTestVclntAviPlayTimer(RTestVclntSetScrIdAndPlayBase* aParent, TTimeIntervalMicroSeconds32 aWaitTime)
1354 : CTimer(EPriorityHigh), iParent(aParent), iWaitTime(aWaitTime)
1356 CActiveScheduler::Add(this);
1360 * Start() - Start the timer
1362 void CTestVclntAviPlayTimer::Start()
1368 * RunL() - see CActive class for more info
1370 void CTestVclntAviPlayTimer::RunL()
1372 // (iParent->Finished() should call Stop() or not, as we decide)
1373 iParent->FinishedL();
1377 * RunError() - see CActive class for more info
1379 TInt CTestVclntAviPlayTimer::RunError(TInt aError)
1381 CActiveScheduler::Stop();