diff -r fcaf4606ba4e -r 9d4397b300d1 mmlibs/mmfw/tsrc/mmfintegrationtest/vclntavi/src/testvideoplayer.cpp --- a/mmlibs/mmfw/tsrc/mmfintegrationtest/vclntavi/src/testvideoplayer.cpp Thu Oct 07 23:44:30 2010 +0100 +++ b/mmlibs/mmfw/tsrc/mmfintegrationtest/vclntavi/src/testvideoplayer.cpp Mon Oct 18 12:47:26 2010 +0100 @@ -2947,3 +2947,131 @@ } } } + + +// +// RTestVclntExternalDisplayControl +// + +/** + * RTestVclntExternalDisplayControl::Constructor + */ +RTestVclntExternalDisplayControl::RTestVclntExternalDisplayControl(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError, const TBool aPlay) + : RTestVclntAviPlayerStep(aTestName, aSectName, aKeyName, aExpectedError), iPlay(aPlay) + { + iHeapSize = 2000000; //-2MB + } + +/** + * RTestVclntExternalDisplayControl::NewL + */ +RTestVclntExternalDisplayControl* RTestVclntExternalDisplayControl::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError,const TBool aPlay) + { + RTestVclntExternalDisplayControl* self = new (ELeave) RTestVclntExternalDisplayControl(aTestName, aSectName, aKeyName, aExpectedError, aPlay); + return self; + } + +/** + * RTestVclntExternalDisplayControl::DoTestStepL + */ +TVerdict RTestVclntExternalDisplayControl::DoTestStepL() + { + // read external display control + SetExternalDisplayControl(); + + // WDP:We are going to start the test now + // Ensure we set paging memory to appropriate cache size for tests which need it + //ignore other tests + TVerdict verdict=SetCacheSize(); + if(verdict!=EPass) + { + return verdict; + } + + // Call the state handler from IDLE state + FsmL(EVPIdle); + User::LeaveIfError(iError); + // Start the scheduler - Done only once ! + CActiveScheduler::Start(); + + return iTestStepResult; + } + +//Default SetCache size +TVerdict RTestVclntExternalDisplayControl::SetCacheSize() + { + //Do not try to increase cache size for tests which dont need it + return EPass; + + } + +/** + * RTestVclntExternalDisplayControl::FsmL + */ +void RTestVclntExternalDisplayControl::FsmL(TVclntTestPlayEvents aEventCode) + { + if (FsmCheck(aEventCode)) + { + //TInt err = KErrNone; + switch (aEventCode) + { + case EVPIdle: + // Open iVideoPlayer + INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename); + TRAP(iError, iVideoPlayer->OpenFileL(iFilename, ControllerUid())); + PrepareState(EVPOpenComplete, KErrNone); + break; + case EVPOpenComplete: + // set external display control + iVideoPlayer->SetExternalDisplaySwitchingL((*iScreen).GetScreenNumber(), iExternalDisplayControl); + // Prepare iVideoPlayer + INFO_PRINTF1(_L("iVideoPlayer->Prepare()")); + iVideoPlayer->Prepare(); + PrepareState(EVPPrepareComplete, KErrNone); + break; + case EVPPrepareComplete: + iTestStepResult = DoTestL(iVideoPlayer); + break; + case EVPPlayComplete: + iTestStepResult = EPass; + CActiveScheduler::Stop(); + break; + } + } + } + +/** + * RTestVclntExternalDisplayControl::DoTestL + */ +TVerdict RTestVclntExternalDisplayControl::DoTestL(CVideoPlayerUtility* /*aPlayer*/) + { + TVerdict ret = EFail; + + if(iPlay) + { + iError = KErrTimedOut; + INFO_PRINTF1(_L("iVideoPlayer->Play()")); + PrepareState(EVPPlayComplete, KErrNone); + iVideoPlayer->Play(); + } + else + { + CActiveScheduler::Stop(); + ret = EPass; + } + + return ret; + } + +TVerdict RTestVclntExternalDisplayControl::SetExternalDisplayControl() + { + if(GetBoolFromConfig(iSectName, _L("externalDisplayControl"), iExternalDisplayControl)) + { + INFO_PRINTF2(_L("External display switch control set to %d"), iExternalDisplayControl); + } + else + { + return EInconclusive; + } + return EPass; + }