sl@0: // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #include "testvideoplayer_secdisp.h" sl@0: sl@0: // sl@0: // RTestVclntSetScrIdAndPlayBase sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayBase::Constructor sl@0: */ sl@0: RTestVclntSetScrIdAndPlayBase::RTestVclntSetScrIdAndPlayBase(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber) sl@0: : RTestVclntAviPlayerStep(aTestName, aSectName, aKeyName, aExpectedError) sl@0: { sl@0: iHeapSize = 1000000; //1MB sl@0: iScreenNumber = aScreenNumber; sl@0: iCurrentScreenNumber = 0; sl@0: } sl@0: sl@0: /** sl@0: * sl@0: * Finished() sl@0: * sl@0: */ sl@0: void RTestVclntSetScrIdAndPlayBase::FinishedL() sl@0: { sl@0: INFO_PRINTF1(_L("RTestVclntSetScrIdAndPlayBase::FinishedL")); sl@0: //overridden in play/stop and play/pause tests. sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntAviPlayerStep::MvpuoOpenComplete sl@0: * Callback function for CVideoPlayerUtility sl@0: */ sl@0: void RTestVclntSetScrIdAndPlayBase::MvpuoOpenComplete(TInt aError) sl@0: { sl@0: iError = aError; sl@0: INFO_PRINTF2(_L("iVideoPlayer - Open Complete callback returned with error %d"), iError); sl@0: #ifdef SYMBIAN_VARIABLE_BITRATE_CODEC sl@0: #if defined (__EABI__) || defined(__X86GCC__) // secondary screen is not supported in HW. sl@0: if ((iCurrentScreenNumber != 0) && (iError == KErrNotSupported)) sl@0: { sl@0: iTestStepResult = EKnownFailure; sl@0: INFO_PRINTF1(_L("The secondary screen is not supported in HW")); sl@0: CActiveScheduler::Stop(); sl@0: } sl@0: else if((iCurrentScreenNumber == 0) && (iError == KErrNone)) sl@0: { sl@0: TRAPD(err, FsmL(EVPOpenComplete)); sl@0: if (err != KErrNone) sl@0: { sl@0: iError = err; sl@0: } sl@0: } sl@0: else sl@0: { sl@0: iTestStepResult = EFail; sl@0: ERR_PRINTF2(_L("Unexpected error in MvpuoOpenComplete %d"), iError); sl@0: CActiveScheduler::Stop(); sl@0: } sl@0: #else sl@0: TRAPD(err, FsmL(EVPOpenComplete)); sl@0: if (err != KErrNone) sl@0: { sl@0: iError = err; sl@0: CActiveScheduler::Stop(); sl@0: } sl@0: #endif // __EABI__ sl@0: #else sl@0: if(iError == KErrNotSupported) sl@0: { sl@0: iTestStepResult = EKnownFailure; sl@0: INFO_PRINTF1(_L("The AVI Play Controller is not available in this OS version, hence KNOWN FAILURE")); sl@0: } sl@0: else sl@0: { sl@0: iTestStepResult = EFail; sl@0: ERR_PRINTF2(_L("Unexpected error in MvpuoOpenComplete %d"), iError); sl@0: } sl@0: CActiveScheduler::Stop(); sl@0: #endif // SYMBIAN_VARIABLE_BITRATE_CODEC sl@0: } sl@0: // sl@0: // RTestVclntSetScrIdAndPlayAviFile sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayAviFile::Constructor sl@0: */ sl@0: RTestVclntSetScrIdAndPlayAviFile::RTestVclntSetScrIdAndPlayAviFile(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber) sl@0: : RTestVclntSetScrIdAndPlayBase(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber) sl@0: { sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayAviFile::NewL sl@0: */ sl@0: RTestVclntSetScrIdAndPlayAviFile* RTestVclntSetScrIdAndPlayAviFile::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber) sl@0: { sl@0: RTestVclntSetScrIdAndPlayAviFile* self = new (ELeave) RTestVclntSetScrIdAndPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayAviFile::DoTestStepL sl@0: */ sl@0: TVerdict RTestVclntSetScrIdAndPlayAviFile::DoTestStepL() sl@0: { sl@0: iTestStepResult = EFail; sl@0: // Call the state handler from IDLE state sl@0: TRAPD(err, FsmL(EVPIdle)); sl@0: if (err == KErrNone) sl@0: { sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: } sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayAviFile::FsmL sl@0: */ sl@0: void RTestVclntSetScrIdAndPlayAviFile::FsmL(TVclntTestPlayEvents aEventCode) sl@0: { sl@0: if (FsmCheck(aEventCode)) sl@0: { sl@0: switch (aEventCode) sl@0: { sl@0: case EVPIdle: sl@0: { sl@0: // Set iScreenNumber sl@0: iCurrentScreenNumber = iScreenNumber; sl@0: INFO_PRINTF2(_L("iVideoPlayer->SetInitScreenNumber(%d)"), iScreenNumber); sl@0: TInt err = KErrNone; sl@0: err = iVideoPlayer->SetInitScreenNumber(iScreenNumber); sl@0: #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("ScreenNumber failed with error : %d"), err); sl@0: User::Leave(err); sl@0: } sl@0: #else sl@0: if (err == KErrNotSupported) sl@0: { sl@0: iTestStepResult = EKnownFailure; sl@0: INFO_PRINTF2(_L("SetInitScreenNumber() is not supported in this OS, returned %d"), err); sl@0: } sl@0: else sl@0: { sl@0: iTestStepResult = EFail; sl@0: ERR_PRINTF2(_L("SetInitScreenNumber() failed with error : %d"), err); sl@0: } sl@0: User::Leave(err); sl@0: #endif // SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename); sl@0: if (iBinaryCompatibility) sl@0: { sl@0: iVideoPlayer->OpenFileL(iFilename, ControllerUid()); sl@0: } sl@0: else sl@0: { sl@0: iVideoPlayer->OpenFileL(iFilename); sl@0: } sl@0: sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: break; sl@0: } sl@0: case EVPOpenComplete: sl@0: { sl@0: // Prepare iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Prepare()")); sl@0: iVideoPlayer->Prepare(); sl@0: PrepareState(EVPPrepareComplete, KErrNone); sl@0: break; sl@0: } sl@0: case EVPPrepareComplete: sl@0: { sl@0: iError = KErrTimedOut; sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: iVideoPlayer->Play(); sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: break; sl@0: } sl@0: case EVPPlayComplete: sl@0: { sl@0: iTestStepResult = EPass; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: } sl@0: sl@0: // sl@0: // RTestVclntSetScrIdAndPlayAviDes sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayAviDes::Constructor sl@0: */ sl@0: RTestVclntSetScrIdAndPlayAviDes::RTestVclntSetScrIdAndPlayAviDes(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber) sl@0: : RTestVclntSetScrIdAndPlayBase(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber) sl@0: { sl@0: iHeapSize = 500000; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayAviDes::NewL sl@0: */ sl@0: RTestVclntSetScrIdAndPlayAviDes* RTestVclntSetScrIdAndPlayAviDes::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber) sl@0: { sl@0: RTestVclntSetScrIdAndPlayAviDes* self = new (ELeave) RTestVclntSetScrIdAndPlayAviDes(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayAviDes::DoTestStepPreambleL sl@0: */ sl@0: TVerdict RTestVclntSetScrIdAndPlayAviDes::DoTestStepPreambleL() sl@0: { sl@0: TVerdict preamRes = EPass; sl@0: sl@0: // Base DoTestStepPreambleL sl@0: preamRes = RTestVclntAviPlayerStep::DoTestStepPreambleL(); sl@0: if (preamRes != EPass) sl@0: { sl@0: return preamRes; sl@0: } sl@0: sl@0: RFs fs; sl@0: RFile file; sl@0: TInt size = 0; sl@0: sl@0: // connect to file system and open file sl@0: User::LeaveIfError(fs.Connect()); sl@0: CleanupClosePushL(fs); sl@0: User::LeaveIfError(file.Open(fs,iFilename,EFileRead)); sl@0: CleanupClosePushL(file); sl@0: sl@0: // Set HBuf size sl@0: User::LeaveIfError(file.Size(size)); sl@0: INFO_PRINTF2(_L("size of file = %d\n"),size);//Statement Changed under DEF105143 sl@0: sl@0: iVideo = HBufC8::NewMaxL(size); sl@0: sl@0: // read data into Hbuf sl@0: TPtr8 bufferDes(iVideo->Des()); sl@0: User::LeaveIfError(file.Read(bufferDes)); sl@0: sl@0: CleanupStack::PopAndDestroy(2, &fs); //fs, file sl@0: sl@0: return preamRes; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayAviDes::DoTestStepPostambleL sl@0: */ sl@0: TVerdict RTestVclntSetScrIdAndPlayAviDes::DoTestStepPostambleL() sl@0: { sl@0: delete iVideo; sl@0: iVideo = NULL; sl@0: return RTestVclntAviPlayerStep::DoTestStepPostambleL(); sl@0: } sl@0: sl@0: /** sl@0: * Load and initialise an video descriptor. sl@0: */ sl@0: TVerdict RTestVclntSetScrIdAndPlayAviDes::DoTestStepL() sl@0: { sl@0: iTestStepResult = EFail; sl@0: // Call the state handler from IDLE state sl@0: TRAPD(err, FsmL(EVPIdle)); sl@0: if (err == KErrNone) sl@0: { sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: } sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayAviDes::FsmL sl@0: */ sl@0: void RTestVclntSetScrIdAndPlayAviDes::FsmL(TVclntTestPlayEvents aEventCode) sl@0: { sl@0: if (FsmCheck(aEventCode)) sl@0: { sl@0: switch (aEventCode) sl@0: { sl@0: case EVPIdle: sl@0: { sl@0: // Set iScreenNumber sl@0: iCurrentScreenNumber = iScreenNumber; sl@0: INFO_PRINTF2(_L("iVideoPlayer->SetInitScreenNumber(%d)"), iScreenNumber); sl@0: TInt err = KErrNone; sl@0: err = iVideoPlayer->SetInitScreenNumber(iScreenNumber); sl@0: #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("ScreenNumber failed with error : %d"), err); sl@0: User::Leave(err); sl@0: } sl@0: #else sl@0: if (err == KErrNotSupported) sl@0: { sl@0: iTestStepResult = EKnownFailure; sl@0: INFO_PRINTF2(_L("SetInitScreenNumber() is not supported in this OS, returned %d"), err); sl@0: } sl@0: else sl@0: { sl@0: iTestStepResult = EFail; sl@0: ERR_PRINTF2(_L("SetInitScreenNumber() failed with error : %d"), err); sl@0: } sl@0: User::Leave(err); sl@0: #endif // SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenDesL() %S"), &iFilename); sl@0: iVideoPlayer->OpenDesL(iVideo->Des()); sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: break; sl@0: } sl@0: case EVPOpenComplete: sl@0: { sl@0: // Prepare iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Prepare()")); sl@0: iVideoPlayer->Prepare(); sl@0: PrepareState(EVPPrepareComplete, KErrNone); sl@0: break; sl@0: } sl@0: case EVPPrepareComplete: sl@0: { sl@0: iError = KErrTimedOut; sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: iVideoPlayer->Play(); sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: break; sl@0: } sl@0: case EVPPlayComplete: sl@0: { sl@0: iTestStepResult = EPass; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: } sl@0: sl@0: // sl@0: // RTestVclntSetScrIdAndPlayAviUrl sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayAviUrl::Constructor sl@0: */ sl@0: sl@0: RTestVclntSetScrIdAndPlayAviUrl::RTestVclntSetScrIdAndPlayAviUrl(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber) sl@0: : RTestVclntSetScrIdAndPlayBase(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber) sl@0: { sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayAviUrl::NewL sl@0: */ sl@0: sl@0: RTestVclntSetScrIdAndPlayAviUrl* RTestVclntSetScrIdAndPlayAviUrl::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber) sl@0: { sl@0: RTestVclntSetScrIdAndPlayAviUrl* self = new (ELeave) RTestVclntSetScrIdAndPlayAviUrl(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayAviUrl::Constructor sl@0: */ sl@0: sl@0: TVerdict RTestVclntSetScrIdAndPlayAviUrl::DoTestStepL() sl@0: { sl@0: iTestStepResult = EFail; sl@0: // Call the state handler from IDLE state sl@0: TRAPD(err, FsmL(EVPIdle)); sl@0: if (err == KErrNone) sl@0: { sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: } sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayAviUrl::FsmL sl@0: */ sl@0: sl@0: void RTestVclntSetScrIdAndPlayAviUrl::FsmL(TVclntTestPlayEvents aEventCode) sl@0: { sl@0: if (FsmCheck(aEventCode)) sl@0: { sl@0: switch (aEventCode) sl@0: { sl@0: case EVPIdle: sl@0: { sl@0: // Set iScreenNumber sl@0: iCurrentScreenNumber = iScreenNumber; sl@0: INFO_PRINTF2(_L("iVideoPlayer->SetInitScreenNumber(%d)"), iScreenNumber); sl@0: TInt err = KErrNone; sl@0: err = iVideoPlayer->SetInitScreenNumber(iScreenNumber); sl@0: #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("ScreenNumber failed with error : %d"), err); sl@0: User::Leave(err); sl@0: } sl@0: #else sl@0: if (err == KErrNotSupported) sl@0: { sl@0: iTestStepResult = EKnownFailure; sl@0: INFO_PRINTF2(_L("SetInitScreenNumber() is not supported in this OS, returned %d"), err); sl@0: } sl@0: else sl@0: { sl@0: iTestStepResult = EFail; sl@0: ERR_PRINTF2(_L("SetInitScreenNumber() failed with error : %d"), err); sl@0: } sl@0: User::Leave(err); sl@0: #endif // SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenUrlL() %S"), &iFilename); sl@0: iVideoPlayer->OpenUrlL(iFilename); sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: break; sl@0: } sl@0: case EVPOpenComplete: sl@0: { sl@0: // Prepare iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Prepare()")); sl@0: iVideoPlayer->Prepare(); sl@0: PrepareState(EVPPrepareComplete, KErrNone); sl@0: break; sl@0: } sl@0: case EVPPrepareComplete: sl@0: { sl@0: iError = KErrTimedOut; sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: iVideoPlayer->Play(); sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: break; sl@0: } sl@0: case EVPPlayComplete: sl@0: { sl@0: CActiveScheduler::Stop(); sl@0: iTestStepResult = EPass; sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: } sl@0: sl@0: // sl@0: // RTestVclntSetScrIdAndPlayStopAviFile sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayStopAviFile::Constructor sl@0: */ sl@0: RTestVclntSetScrIdAndPlayStopAviFile::RTestVclntSetScrIdAndPlayStopAviFile(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber, TInt aScreenNumber2) sl@0: : RTestVclntSetScrIdAndPlayBase(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber) sl@0: { sl@0: iScreenNumber2 = aScreenNumber2; sl@0: iPlayTimer = NULL; sl@0: iRestarted = EFalse; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayStopAviFile::NewL sl@0: */ sl@0: RTestVclntSetScrIdAndPlayStopAviFile* RTestVclntSetScrIdAndPlayStopAviFile::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber, TInt aScreenNumber2) sl@0: { sl@0: RTestVclntSetScrIdAndPlayStopAviFile* self = new (ELeave) RTestVclntSetScrIdAndPlayStopAviFile(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber, aScreenNumber2); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * set finished on callback from a timer sl@0: */ sl@0: void RTestVclntSetScrIdAndPlayStopAviFile::FinishedL() sl@0: { sl@0: INFO_PRINTF1(_L("-- iVideoPlayer->Stop();")); sl@0: iVideoPlayer->Stop(); sl@0: iRestarted = EFalse; sl@0: FsmL(EVPPlayStopped); sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayStopAviFile::DoTestStepL sl@0: */ sl@0: TVerdict RTestVclntSetScrIdAndPlayStopAviFile::DoTestStepL() sl@0: { sl@0: iTestStepResult = EFail; sl@0: iCountNumber = 0; sl@0: iError = 0; sl@0: // Get the filename sl@0: TPtrC tmpFilename; sl@0: if(!GetStringFromConfig(iSectName, _L("filename2"), tmpFilename)) sl@0: { sl@0: ERR_PRINTF1(_L("ERROR : Cannot Get value from Config.")); sl@0: return EInconclusive; sl@0: } sl@0: GetDriveName(iFilename2); sl@0: iFilename2.Append(tmpFilename); sl@0: // Call the state handler from IDLE state sl@0: TRAPD(err, FsmL(EVPIdle)); sl@0: if (err == KErrNone) sl@0: { sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: } sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayStopAviFile::FsmL sl@0: */ sl@0: void RTestVclntSetScrIdAndPlayStopAviFile::FsmL(TVclntTestPlayEvents aEventCode) sl@0: { sl@0: if (FsmCheck(aEventCode)) sl@0: { sl@0: switch (aEventCode) sl@0: { sl@0: case EVPIdle: sl@0: { sl@0: // Set iScreenNumber sl@0: iCurrentScreenNumber = iScreenNumber; sl@0: INFO_PRINTF2(_L("iVideoPlayer->SetInitScreenNumber(%d)"), iScreenNumber); sl@0: TInt err = KErrNone; sl@0: err = iVideoPlayer->SetInitScreenNumber(iScreenNumber); sl@0: #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("ScreenNumber failed with error : %d"), err); sl@0: User::Leave(err); sl@0: } sl@0: #else sl@0: if (err == KErrNotSupported) sl@0: { sl@0: iTestStepResult = EKnownFailure; sl@0: INFO_PRINTF2(_L("SetInitScreenNumber() is not supported in this OS, returned %d"), err); sl@0: } sl@0: else sl@0: { sl@0: iTestStepResult = EFail; sl@0: ERR_PRINTF2(_L("SetInitScreenNumber() failed with error : %d"), err); sl@0: } sl@0: User::Leave(err); sl@0: #endif // SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename); sl@0: if (iBinaryCompatibility) sl@0: { sl@0: iVideoPlayer->OpenFileL(iFilename, ControllerUid()); sl@0: } sl@0: else sl@0: { sl@0: iVideoPlayer->OpenFileL(iFilename); sl@0: } sl@0: sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: break; sl@0: } sl@0: case EVPOpenComplete: sl@0: { sl@0: // Prepare iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Prepare()")); sl@0: iVideoPlayer->Prepare(); sl@0: PrepareState(EVPPrepareComplete, KErrNone); sl@0: break; sl@0: } sl@0: case EVPPrepareComplete: sl@0: { sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: iVideoPlayer->Play(); sl@0: if (iCountNumber == 0) sl@0: { sl@0: // initialise and start the timer. the file is short and so decode occur rapidly sl@0: // hence the short time passed to After() sl@0: TRAPD(err, iPlayTimer = CTestVclntAviPlayTimer::NewL(this, 2000000)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CTestVclntAviPlayTimer::NewL left with error = %d"), err); sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: iPlayTimer->Start(); sl@0: // For first time we are expecting to stop the play after some second, sl@0: // and second time it should play till the end of file. sl@0: PrepareState(EVPPlayStopped, KErrNone); sl@0: } sl@0: else sl@0: { sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: } sl@0: break; sl@0: } sl@0: case EVPPlayStopped: sl@0: { sl@0: // Cancel the timer sl@0: iPlayTimer->Cancel(); sl@0: delete iPlayTimer; sl@0: iPlayTimer = NULL; sl@0: // Set iScreenNumber sl@0: iCurrentScreenNumber = iScreenNumber2; sl@0: INFO_PRINTF2(_L("iVideoPlayer->SetInitScreenNumber(%d)"), iScreenNumber2); sl@0: TInt err = KErrNone; sl@0: err = iVideoPlayer->SetInitScreenNumber(iScreenNumber2); sl@0: #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("ScreenNumber failed with error : %d"), err); sl@0: CActiveScheduler::Stop(); sl@0: User::Leave(err); sl@0: } sl@0: #else sl@0: if (err == KErrNotSupported) sl@0: { sl@0: iTestStepResult = EKnownFailure; sl@0: INFO_PRINTF2(_L("SetInitScreenNumber() is not supported in this OS, returned %d"), err); sl@0: } sl@0: else sl@0: { sl@0: iTestStepResult = EFail; sl@0: ERR_PRINTF2(_L("SetInitScreenNumber() failed with error : %d"), err); sl@0: } sl@0: CActiveScheduler::Stop(); sl@0: User::Leave(err); sl@0: #endif // SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT sl@0: iCountNumber++; sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename2); sl@0: if (iBinaryCompatibility) sl@0: { sl@0: TRAP(iError, iVideoPlayer->OpenFileL(iFilename2, ControllerUid())); sl@0: } sl@0: else sl@0: { sl@0: TRAP(iError, iVideoPlayer->OpenFileL(iFilename2)); sl@0: } sl@0: sl@0: if (iError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("iVideoPlayer->OpenFileL() left with error = %d"), iError); sl@0: CActiveScheduler::Stop(); sl@0: } sl@0: else sl@0: { sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: } sl@0: break; sl@0: } sl@0: case EVPPlayComplete: sl@0: { sl@0: iTestStepResult = EPass; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: } sl@0: sl@0: // sl@0: // RTestVclntSetScrIdAndPlayPauseAviFile sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayPauseAviFile::Constructor sl@0: */ sl@0: RTestVclntSetScrIdAndPlayPauseAviFile::RTestVclntSetScrIdAndPlayPauseAviFile(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber, TInt aScreenNumber2) sl@0: : RTestVclntSetScrIdAndPlayBase(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber) sl@0: { sl@0: iScreenNumber2 = aScreenNumber2; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayPauseAviFile::NewL sl@0: */ sl@0: RTestVclntSetScrIdAndPlayPauseAviFile* RTestVclntSetScrIdAndPlayPauseAviFile::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber, TInt aScreenNumber2) sl@0: { sl@0: RTestVclntSetScrIdAndPlayPauseAviFile* self = new (ELeave) RTestVclntSetScrIdAndPlayPauseAviFile(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber, aScreenNumber2); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * set finished on callback from a timer sl@0: */ sl@0: void RTestVclntSetScrIdAndPlayPauseAviFile::FinishedL() sl@0: { sl@0: // We cannot use the logger until after OpenL is called again in EVPPlayPaused because sl@0: // of the way the scheduler works. The current thread is suspended until the video is sl@0: // finished playing if a synchronous call is made in WINSCW. sl@0: TRAPD(err,iVideoPlayer->PauseL()); sl@0: if (err != KErrNotSupported) sl@0: { sl@0: INFO_PRINTF2(_L("Pause() returns with error : %d"),err); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: } sl@0: iRestarted = EFalse; sl@0: FsmL(EVPPlayPaused); sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayPauseAviFile::DoTestStepL sl@0: */ sl@0: TVerdict RTestVclntSetScrIdAndPlayPauseAviFile::DoTestStepL() sl@0: { sl@0: iTestStepResult = EFail; sl@0: iCountNumber = 0; sl@0: iError = 0; sl@0: // Get the filename sl@0: TPtrC tmpFilename; sl@0: if(!GetStringFromConfig(iSectName, _L("filename2"), tmpFilename)) sl@0: { sl@0: ERR_PRINTF1(_L("ERROR : Cannot Get value from Config.")); sl@0: return EInconclusive; sl@0: } sl@0: GetDriveName(iFilename2); sl@0: iFilename2.Append(tmpFilename); sl@0: // Call the state handler from IDLE state sl@0: TRAPD(err, FsmL(EVPIdle)); sl@0: if (err == KErrNone) sl@0: { sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: } sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAndPlayPauseAviFile::FsmL sl@0: */ sl@0: void RTestVclntSetScrIdAndPlayPauseAviFile::FsmL(TVclntTestPlayEvents aEventCode) sl@0: { sl@0: if (FsmCheck(aEventCode)) sl@0: { sl@0: switch (aEventCode) sl@0: { sl@0: case EVPIdle: sl@0: { sl@0: // Set iScreenNumber sl@0: iCurrentScreenNumber = iScreenNumber; sl@0: INFO_PRINTF2(_L("iVideoPlayer->SetInitScreenNumber(%d)"), iScreenNumber); sl@0: TInt err = KErrNone; sl@0: err = iVideoPlayer->SetInitScreenNumber(iScreenNumber); sl@0: #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("ScreenNumber failed with error : %d"), err); sl@0: User::Leave(err); sl@0: } sl@0: #else sl@0: if (err == KErrNotSupported) sl@0: { sl@0: iTestStepResult = EKnownFailure; sl@0: INFO_PRINTF2(_L("SetInitScreenNumber() is not supported in this OS, returned %d"), err); sl@0: } sl@0: else sl@0: { sl@0: iTestStepResult = EFail; sl@0: ERR_PRINTF2(_L("SetInitScreenNumber() failed with error : %d"), err); sl@0: } sl@0: User::Leave(err); sl@0: #endif // SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename); sl@0: if (iBinaryCompatibility) sl@0: { sl@0: iVideoPlayer->OpenFileL(iFilename, ControllerUid()); sl@0: } sl@0: else sl@0: { sl@0: iVideoPlayer->OpenFileL(iFilename); sl@0: } sl@0: sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: break; sl@0: } sl@0: case EVPOpenComplete: sl@0: { sl@0: // Prepare iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Prepare()")); sl@0: iVideoPlayer->Prepare(); sl@0: PrepareState(EVPPrepareComplete, KErrNone); sl@0: break; sl@0: } sl@0: case EVPPrepareComplete: sl@0: { sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: // We cannot use the logger until after OpenL is called again in EVPPlayPaused because sl@0: // of the way the scheduler works. The current thread is suspended until the video is sl@0: // finished playing if a synchronous call is made in WINSCW. sl@0: iVideoPlayer->Play(); sl@0: if (iCountNumber == 0) sl@0: { sl@0: // initialise and start the timer. the file is short and so decode occur rapidly sl@0: // hence the short time passed to After() sl@0: TRAPD(err, iPlayTimer = CTestVclntAviPlayTimer::NewL(this, 1000000)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CTestVclntAviPlayTimer::NewL left with error = %d"), err); sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: sl@0: iPlayTimer->Start(); sl@0: PrepareState(EVPPlayPaused, KErrNone); sl@0: } sl@0: else sl@0: { sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: } sl@0: break; sl@0: } sl@0: case EVPPlayPaused: sl@0: { sl@0: // Cancel the timer sl@0: iPlayTimer->Cancel(); sl@0: delete iPlayTimer; sl@0: iPlayTimer = NULL; sl@0: sl@0: // Set iScreenNumber sl@0: iCurrentScreenNumber = iScreenNumber2; sl@0: TInt err = iVideoPlayer->SetInitScreenNumber(iScreenNumber2); sl@0: #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("ScreenNumber failed with error : %d"), err); sl@0: CActiveScheduler::Stop(); sl@0: User::Leave(err); sl@0: } sl@0: #else sl@0: if (err == KErrNotSupported) sl@0: { sl@0: iTestStepResult = EKnownFailure; sl@0: INFO_PRINTF2(_L("SetInitScreenNumber() is not supported in this OS, returned %d"), err); sl@0: } sl@0: else sl@0: { sl@0: iTestStepResult = EFail; sl@0: ERR_PRINTF2(_L("SetInitScreenNumber() failed with error : %d"), err); sl@0: } sl@0: CActiveScheduler::Stop(); sl@0: User::Leave(err); sl@0: #endif // SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT sl@0: iCountNumber++; sl@0: // Open iVideoPlayer sl@0: if (iBinaryCompatibility) sl@0: { sl@0: TRAP(iError, iVideoPlayer->OpenFileL(iFilename2, ControllerUid())); sl@0: } sl@0: else sl@0: { sl@0: TRAP(iError, iVideoPlayer->OpenFileL(iFilename2)); sl@0: } sl@0: sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename2); sl@0: sl@0: if (iError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("iVideoPlayer->OpenFileL() left with error = %d"), iError); sl@0: CActiveScheduler::Stop(); sl@0: } sl@0: else sl@0: { sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: } sl@0: break; sl@0: } sl@0: case EVPPlayComplete: sl@0: { sl@0: iTestStepResult = EPass; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: } sl@0: sl@0: // sl@0: // RTestVclntSetScrIdAfterPlayAndPlayAviFile sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAfterPlayAndPlayAviFile::Constructor sl@0: */ sl@0: RTestVclntSetScrIdAfterPlayAndPlayAviFile::RTestVclntSetScrIdAfterPlayAndPlayAviFile(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber) sl@0: : RTestVclntSetScrIdAndPlayBase(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber) sl@0: { sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAfterPlayAndPlayAviFile::NewL sl@0: */ sl@0: RTestVclntSetScrIdAfterPlayAndPlayAviFile* RTestVclntSetScrIdAfterPlayAndPlayAviFile::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber) sl@0: { sl@0: RTestVclntSetScrIdAfterPlayAndPlayAviFile* self = new (ELeave) RTestVclntSetScrIdAfterPlayAndPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAfterPlayAndPlayAviFile::DoTestStepL sl@0: */ sl@0: TVerdict RTestVclntSetScrIdAfterPlayAndPlayAviFile::DoTestStepL() sl@0: { sl@0: iTestStepResult = EFail; sl@0: iCountNumber = 0; sl@0: iError = 0; sl@0: // Call the state handler from IDLE state sl@0: TRAPD(err, FsmL(EVPIdle)); sl@0: if (err == KErrNone) sl@0: { sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: } sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAfterPlayAndPlayAviFile::FsmL sl@0: */ sl@0: void RTestVclntSetScrIdAfterPlayAndPlayAviFile::FsmL(TVclntTestPlayEvents aEventCode) sl@0: { sl@0: if (FsmCheck(aEventCode)) sl@0: { sl@0: switch (aEventCode) sl@0: { sl@0: case EVPIdle: sl@0: { sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename); sl@0: if (iBinaryCompatibility) sl@0: { sl@0: iVideoPlayer->OpenFileL(iFilename, ControllerUid()); sl@0: } sl@0: else sl@0: { sl@0: iVideoPlayer->OpenFileL(iFilename); sl@0: } sl@0: sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: break; sl@0: } sl@0: case EVPOpenComplete: sl@0: { sl@0: // Prepare iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Prepare()")); sl@0: iVideoPlayer->Prepare(); sl@0: PrepareState(EVPPrepareComplete, KErrNone); sl@0: break; sl@0: } sl@0: case EVPPrepareComplete: sl@0: { sl@0: iError = KErrTimedOut; sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: iVideoPlayer->Play(); sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: break; sl@0: } sl@0: case EVPPlayComplete: sl@0: { sl@0: if (iCountNumber == 0) sl@0: { sl@0: // Set iScreenNumber sl@0: iCurrentScreenNumber = iScreenNumber; sl@0: INFO_PRINTF2(_L("iVideoPlayer->SetInitScreenNumber(%d)"), iScreenNumber); sl@0: TInt err = KErrNone; sl@0: err = iVideoPlayer->SetInitScreenNumber(iScreenNumber); sl@0: #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("ScreenNumber failed with error : %d"), err); sl@0: CActiveScheduler::Stop(); sl@0: User::Leave(err); sl@0: } sl@0: #else sl@0: if (err == KErrNotSupported) sl@0: { sl@0: iTestStepResult = EKnownFailure; sl@0: INFO_PRINTF2(_L("SetInitScreenNumber() is not supported in this OS, returned %d"), err); sl@0: } sl@0: else sl@0: { sl@0: iTestStepResult = EFail; sl@0: ERR_PRINTF2(_L("SetInitScreenNumber() failed with error : %d"), err); sl@0: } sl@0: CActiveScheduler::Stop(); sl@0: User::Leave(err); sl@0: #endif // SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT sl@0: iCountNumber++; sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename); sl@0: if (iBinaryCompatibility) sl@0: { sl@0: TRAP(iError, iVideoPlayer->OpenFileL(iFilename, ControllerUid())); sl@0: } sl@0: else sl@0: { sl@0: TRAP(iError, iVideoPlayer->OpenFileL(iFilename)); sl@0: } sl@0: sl@0: if (iError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("iVideoPlayer->OpenFileL() left with error = %d"), iError); sl@0: CActiveScheduler::Stop(); sl@0: } sl@0: else sl@0: { sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: } sl@0: break; sl@0: } sl@0: else sl@0: { sl@0: iTestStepResult = EPass; sl@0: CActiveScheduler::Stop(); sl@0: } sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: } sl@0: sl@0: // sl@0: // RTestVclntSetScrIdAfterOpenAndPlayAviFile sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAfterOpenAndPlayAviFile::Constructor sl@0: */ sl@0: RTestVclntSetScrIdAfterOpenAndPlayAviFile::RTestVclntSetScrIdAfterOpenAndPlayAviFile(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber) sl@0: : RTestVclntSetScrIdAndPlayBase(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber) sl@0: { sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAfterOpenAndPlayAviFile::NewL sl@0: */ sl@0: RTestVclntSetScrIdAfterOpenAndPlayAviFile* RTestVclntSetScrIdAfterOpenAndPlayAviFile::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber) sl@0: { sl@0: RTestVclntSetScrIdAfterOpenAndPlayAviFile* self = new (ELeave) RTestVclntSetScrIdAfterOpenAndPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAfterOpenAndPlayAviFile::DoTestStepL sl@0: */ sl@0: TVerdict RTestVclntSetScrIdAfterOpenAndPlayAviFile::DoTestStepL() sl@0: { sl@0: iTestStepResult = EFail; sl@0: iCountNumber = 0; sl@0: iError = 0; sl@0: // Call the state handler from IDLE state sl@0: TRAPD(err, FsmL(EVPIdle)); sl@0: if (err == KErrNone) sl@0: { sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: } sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdAfterOpenAndPlayAviFile::FsmL sl@0: */ sl@0: void RTestVclntSetScrIdAfterOpenAndPlayAviFile::FsmL(TVclntTestPlayEvents aEventCode) sl@0: { sl@0: if (FsmCheck(aEventCode)) sl@0: { sl@0: switch (aEventCode) sl@0: { sl@0: case EVPIdle: sl@0: { sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename); sl@0: if (iBinaryCompatibility) sl@0: { sl@0: iVideoPlayer->OpenFileL(iFilename, ControllerUid()); sl@0: } sl@0: else sl@0: { sl@0: iVideoPlayer->OpenFileL(iFilename); sl@0: } sl@0: sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: break; sl@0: } sl@0: case EVPOpenComplete: sl@0: { sl@0: if (iCountNumber == 0) sl@0: { sl@0: // Set iScreenNumber sl@0: iCurrentScreenNumber = iScreenNumber; sl@0: INFO_PRINTF2(_L("iVideoPlayer->SetInitScreenNumber(%d)"), iScreenNumber); sl@0: TInt err = 0; sl@0: err = iVideoPlayer->SetInitScreenNumber(iScreenNumber); sl@0: #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("ScreenNumber failed with error : %d"), err); sl@0: CActiveScheduler::Stop(); sl@0: User::Leave(err); sl@0: } sl@0: #else sl@0: if (err == KErrNotSupported) sl@0: { sl@0: iTestStepResult = EKnownFailure; sl@0: INFO_PRINTF2(_L("SetInitScreenNumber() is not supported in this OS, returned %d"), err); sl@0: } sl@0: else sl@0: { sl@0: iTestStepResult = EFail; sl@0: ERR_PRINTF2(_L("SetInitScreenNumber() failed with error : %d"), err); sl@0: } sl@0: CActiveScheduler::Stop(); sl@0: User::Leave(err); sl@0: #endif // SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT sl@0: } sl@0: // Prepare iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Prepare()")); sl@0: iVideoPlayer->Prepare(); sl@0: PrepareState(EVPPrepareComplete, KErrNone); sl@0: break; sl@0: } sl@0: case EVPPrepareComplete: sl@0: { sl@0: iError = KErrTimedOut; sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: iVideoPlayer->Play(); sl@0: // When playing for the first time open the file again else play till the end. sl@0: if (iCountNumber == 0) sl@0: { sl@0: iCountNumber++; sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename); sl@0: if (iBinaryCompatibility) sl@0: { sl@0: TRAP(iError, iVideoPlayer->OpenFileL(iFilename, ControllerUid())); sl@0: } sl@0: else sl@0: { sl@0: TRAP(iError, iVideoPlayer->OpenFileL(iFilename)); sl@0: } sl@0: sl@0: if (iError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("iVideoPlayer->OpenFileL() left with error = %d"), iError); sl@0: CActiveScheduler::Stop(); sl@0: } sl@0: else sl@0: { sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: } sl@0: break; sl@0: } sl@0: else sl@0: { sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: } sl@0: break; sl@0: } sl@0: case EVPPlayComplete: sl@0: { sl@0: iTestStepResult = EPass; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: } sl@0: sl@0: // sl@0: // RTestVclntSetScrIdDuringPlayAndPlayAviFile sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdDuringPlayAndPlayAviFile::Constructor sl@0: */ sl@0: RTestVclntSetScrIdDuringPlayAndPlayAviFile::RTestVclntSetScrIdDuringPlayAndPlayAviFile(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber) sl@0: : RTestVclntSetScrIdAndPlayBase(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber) sl@0: { sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdDuringPlayAndPlayAviFile::NewL sl@0: */ sl@0: RTestVclntSetScrIdDuringPlayAndPlayAviFile* RTestVclntSetScrIdDuringPlayAndPlayAviFile::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TInt aScreenNumber) sl@0: { sl@0: RTestVclntSetScrIdDuringPlayAndPlayAviFile* self = new (ELeave) RTestVclntSetScrIdDuringPlayAndPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, aScreenNumber); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdDuringPlayAndPlayAviFile::DoTestStepL sl@0: */ sl@0: TVerdict RTestVclntSetScrIdDuringPlayAndPlayAviFile::DoTestStepL() sl@0: { sl@0: iTestStepResult = EFail; sl@0: iCountNumber = 0; sl@0: iError = 0; sl@0: // Call the state handler from IDLE state sl@0: TRAPD(err, FsmL(EVPIdle)); sl@0: if (err == KErrNone) sl@0: { sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: } sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntSetScrIdDuringPlayAndPlayAviFile::FsmL sl@0: */ sl@0: void RTestVclntSetScrIdDuringPlayAndPlayAviFile::FsmL(TVclntTestPlayEvents aEventCode) sl@0: { sl@0: if (FsmCheck(aEventCode)) sl@0: { sl@0: switch (aEventCode) sl@0: { sl@0: case EVPIdle: sl@0: { sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename); sl@0: if (iBinaryCompatibility) sl@0: { sl@0: iVideoPlayer->OpenFileL(iFilename, ControllerUid()); sl@0: } sl@0: else sl@0: { sl@0: iVideoPlayer->OpenFileL(iFilename); sl@0: } sl@0: sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: break; sl@0: } sl@0: case EVPOpenComplete: sl@0: { sl@0: // Prepare iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Prepare()")); sl@0: iVideoPlayer->Prepare(); sl@0: PrepareState(EVPPrepareComplete, KErrNone); sl@0: break; sl@0: } sl@0: case EVPPrepareComplete: sl@0: { sl@0: iError = KErrTimedOut; sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: iVideoPlayer->Play(); sl@0: if (iCountNumber == 0) sl@0: { sl@0: // Set iScreenNumber sl@0: iCurrentScreenNumber = iScreenNumber; sl@0: INFO_PRINTF2(_L("iVideoPlayer->SetInitScreenNumber(%d)"), iScreenNumber); sl@0: TInt err = KErrNone; sl@0: err = iVideoPlayer->SetInitScreenNumber(iScreenNumber); sl@0: #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("ScreenNumber failed with error : %d"), err); sl@0: CActiveScheduler::Stop(); sl@0: User::Leave(err); sl@0: } sl@0: #else sl@0: if (err == KErrNotSupported) sl@0: { sl@0: iTestStepResult = EKnownFailure; sl@0: INFO_PRINTF2(_L("SetInitScreenNumber() is not supported in this OS, returned %d"), err); sl@0: } sl@0: else sl@0: { sl@0: iTestStepResult = EFail; sl@0: ERR_PRINTF2(_L("SetInitScreenNumber() failed with error : %d"), err); sl@0: } sl@0: CActiveScheduler::Stop(); sl@0: User::Leave(err); sl@0: #endif // SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT sl@0: iCountNumber++; sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename); sl@0: if (iBinaryCompatibility) sl@0: { sl@0: TRAP(iError, iVideoPlayer->OpenFileL(iFilename, ControllerUid())); sl@0: } sl@0: else sl@0: { sl@0: TRAP(iError, iVideoPlayer->OpenFileL(iFilename)); sl@0: } sl@0: sl@0: if (iError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("iVideoPlayer->OpenFileL() left with error = %d"), iError); sl@0: CActiveScheduler::Stop(); sl@0: } sl@0: else sl@0: { sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: } sl@0: break; sl@0: } sl@0: else sl@0: { sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: } sl@0: break; sl@0: } sl@0: case EVPPlayComplete: sl@0: { sl@0: iTestStepResult = EPass; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: } sl@0: sl@0: // sl@0: // CTestVclntAviPlayTimer sl@0: // sl@0: sl@0: /** sl@0: * NewL sl@0: */ sl@0: CTestVclntAviPlayTimer* CTestVclntAviPlayTimer::NewL(RTestVclntSetScrIdAndPlayBase* aParent, TTimeIntervalMicroSeconds32 aWaitTime) sl@0: { sl@0: CTestVclntAviPlayTimer* self = new (ELeave) CTestVclntAviPlayTimer(aParent, aWaitTime); sl@0: CleanupStack::PushL(self); sl@0: self->ConstructL(); sl@0: CleanupStack::Pop(self); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * Constructor sl@0: */ sl@0: CTestVclntAviPlayTimer::CTestVclntAviPlayTimer(RTestVclntSetScrIdAndPlayBase* aParent, TTimeIntervalMicroSeconds32 aWaitTime) sl@0: : CTimer(EPriorityHigh), iParent(aParent), iWaitTime(aWaitTime) sl@0: { sl@0: CActiveScheduler::Add(this); sl@0: } sl@0: sl@0: /** sl@0: * Start() - Start the timer sl@0: */ sl@0: void CTestVclntAviPlayTimer::Start() sl@0: { sl@0: After(iWaitTime); sl@0: } sl@0: sl@0: /** sl@0: * RunL() - see CActive class for more info sl@0: */ sl@0: void CTestVclntAviPlayTimer::RunL() sl@0: { sl@0: // (iParent->Finished() should call Stop() or not, as we decide) sl@0: iParent->FinishedL(); sl@0: } sl@0: sl@0: /** sl@0: * RunError() - see CActive class for more info sl@0: */ sl@0: TInt CTestVclntAviPlayTimer::RunError(TInt aError) sl@0: { sl@0: CActiveScheduler::Stop(); sl@0: return aError; sl@0: }