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: // CPP file: Audio Resource Notification tests for Video Player. sl@0: // sl@0: // sl@0: sl@0: /** sl@0: @file testvideoplayer_apr.cpp sl@0: */ sl@0: sl@0: #include "testvideoplayer_apr.h" sl@0: const TUint KCacheSize = 1000000; //1MB sl@0: const TUint KMaxCacheSize = 30000000; //20MB sl@0: sl@0: sl@0: //------------------------------------------------------------------------------ sl@0: //******************** CR 0805 - Auto Pause Resume for video client******************** sl@0: //------------------------------------------------------------------------------ sl@0: sl@0: /** sl@0: * Standard static NewL() taking a callback function sl@0: */ sl@0: CCallBackTimer* CCallBackTimer::NewL(TCallBack aCallBack, TPriority aPriority) sl@0: { sl@0: CCallBackTimer* self = new(ELeave) CCallBackTimer(aCallBack, aPriority); 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: * Private c'tor sl@0: */ sl@0: CCallBackTimer::CCallBackTimer(TCallBack aCallBack, TPriority aPriority) sl@0: : CTimer(aPriority), sl@0: iCallBack(aCallBack) sl@0: { sl@0: CActiveScheduler::Add(this); sl@0: } sl@0: sl@0: /* sl@0: * Callback on timer complete sl@0: */ sl@0: void CCallBackTimer::RunL() sl@0: { sl@0: iCallBack.CallBack(); sl@0: } sl@0: sl@0: // sl@0: //CTestAVPlayerAPRCallbackSupport sl@0: // sl@0: sl@0: /** sl@0: * NewL sl@0: */ sl@0: CTestAVPlayerAPRCallbackSupport* CTestAVPlayerAPRCallbackSupport::NewL(MTestAVPlayerAPRCallback& aCallback) sl@0: { sl@0: return new(ELeave) CTestAVPlayerAPRCallbackSupport(aCallback); sl@0: } sl@0: sl@0: /** sl@0: * MvpuoOpenComplete sl@0: */ sl@0: void CTestAVPlayerAPRCallbackSupport::MvpuoOpenComplete(TInt aError) sl@0: { sl@0: iCallback.MvpuoOpenCompleteTest(aError, *this); sl@0: } sl@0: sl@0: /** sl@0: * MvpuoPrepareComplete sl@0: */ sl@0: void CTestAVPlayerAPRCallbackSupport::MvpuoPrepareComplete(TInt aError) sl@0: { sl@0: iCallback.MvpuoPrepareCompleteTest(aError, *this); sl@0: } sl@0: sl@0: /* sl@0: * MvpuoFrameReady sl@0: */ sl@0: void CTestAVPlayerAPRCallbackSupport::MvpuoFrameReady(CFbsBitmap &aFrame, TInt aError) sl@0: { sl@0: iCallback.MvpuoFrameReadyTest(aFrame, aError, *this); sl@0: } sl@0: sl@0: /* sl@0: * MvpuoPlayComplete sl@0: */ sl@0: void CTestAVPlayerAPRCallbackSupport::MvpuoPlayComplete(TInt aError) sl@0: { sl@0: iCallback.MvpuoPlayCompleteTest(aError, *this); sl@0: } sl@0: sl@0: /* sl@0: * MvpuoEvent sl@0: */ sl@0: void CTestAVPlayerAPRCallbackSupport::MvpuoEvent(const TMMFEvent &aEvent) sl@0: { sl@0: iCallback.MvpuoEventTest(aEvent, *this); sl@0: } sl@0: sl@0: /* sl@0: * MapcInitComplete sl@0: */ sl@0: void CTestAVPlayerAPRCallbackSupport::MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds &aDuration) sl@0: { sl@0: iCallback.MapcInitCompleteTest(aError, aDuration, *this); sl@0: } sl@0: sl@0: /* sl@0: * MapcPlayComplete sl@0: */ sl@0: void CTestAVPlayerAPRCallbackSupport::MapcPlayComplete(TInt aError) sl@0: { sl@0: iCallback.MapcPlayCompleteTest(aError, *this); sl@0: } sl@0: sl@0: /** sl@0: * MarncResourceAvailable sl@0: */ sl@0: void CTestAVPlayerAPRCallbackSupport::MarncResourceAvailable(TUid aNotificationEventId, const TDesC8& aNotificationData) sl@0: { sl@0: iCallback.MarncResourceAvailableTest(aNotificationEventId, aNotificationData, *this); sl@0: } sl@0: sl@0: /** sl@0: * Constructor sl@0: */ sl@0: CTestAVPlayerAPRCallbackSupport::CTestAVPlayerAPRCallbackSupport(MTestAVPlayerAPRCallback& aCallback):iCallback(aCallback) sl@0: { sl@0: sl@0: } sl@0: sl@0: // sl@0: //RTestMmfVclntVideoPlayerAPR sl@0: // sl@0: sl@0: /** sl@0: * Constructor sl@0: */ sl@0: RTestMmfVclntVideoPlayerAPR::RTestMmfVclntVideoPlayerAPR(const TDesC& aTestName, const TDesC& aSectName) sl@0: :RTestMmfVclntAviStep(aTestName, aSectName, _L(""), KErrNone) sl@0: { sl@0: iHeapSize = 1000000; sl@0: iExpEventCount = 1; sl@0: iActEventCount = 0; sl@0: } sl@0: sl@0: /** sl@0: * MvpuoOpenCompleteTest sl@0: */ sl@0: void RTestMmfVclntVideoPlayerAPR::MvpuoOpenCompleteTest(TInt aError, CTestAVPlayerAPRCallbackSupport& aVideoPlayerCallbackSupport) sl@0: { sl@0: if (&aVideoPlayerCallbackSupport == iVideoPlayerCallbackSupport1) sl@0: { sl@0: INFO_PRINTF2(_L("iVideoPlayer -> MMdaVideoPlayerCallback OpenComplete (%d)"), aError); sl@0: Fsm(EMvpuoOpenComplete, aError); sl@0: } sl@0: } sl@0: sl@0: /** sl@0: * MvpuoPrepareCompleteTest sl@0: */ sl@0: void RTestMmfVclntVideoPlayerAPR::MvpuoPrepareCompleteTest(TInt aError, CTestAVPlayerAPRCallbackSupport& aVideoPlayerCallbackSupport) sl@0: { sl@0: if (&aVideoPlayerCallbackSupport == iVideoPlayerCallbackSupport1) sl@0: { sl@0: INFO_PRINTF2(_L("iVideoPlayer -> MMdaVideoPlayerCallback PrepareComplete (%d)"), aError); sl@0: Fsm(EMvpuoPrepareComplete, aError); sl@0: } sl@0: } sl@0: /** sl@0: * MvpuoFrameReadyTest sl@0: */ sl@0: void RTestMmfVclntVideoPlayerAPR::MvpuoFrameReadyTest(CFbsBitmap &/*aFrame*/, TInt aError, CTestAVPlayerAPRCallbackSupport& aVideoPlayerCallbackSupport) sl@0: { sl@0: if (&aVideoPlayerCallbackSupport == iVideoPlayerCallbackSupport1) sl@0: { sl@0: INFO_PRINTF2(_L("iVideoPlayer -> MMdaVideoPlayerCallback FrameReady (%d)"), aError); sl@0: Fsm(EMvpuoFrameReady, aError); sl@0: } sl@0: } sl@0: /** sl@0: * MvpuoPlayCompleteTest sl@0: */ sl@0: void RTestMmfVclntVideoPlayerAPR::MvpuoPlayCompleteTest(TInt aError, CTestAVPlayerAPRCallbackSupport& aVideoPlayerCallbackSupport) sl@0: { sl@0: if (&aVideoPlayerCallbackSupport == iVideoPlayerCallbackSupport1) sl@0: { sl@0: Fsm(EMvpuoPlayComplete, aError); sl@0: } sl@0: } sl@0: /** sl@0: * MvpuoEventTest sl@0: */ sl@0: void RTestMmfVclntVideoPlayerAPR::MvpuoEventTest(const TMMFEvent &aEvent, CTestAVPlayerAPRCallbackSupport& aVideoPlayerCallbackSupport) sl@0: { sl@0: if (&aVideoPlayerCallbackSupport == iVideoPlayerCallbackSupport1) sl@0: { sl@0: INFO_PRINTF2(_L("iVideoPlayer -> MMdaVideoPlayerCallback Event (%d)"), aEvent.iErrorCode); sl@0: Fsm(EMvpuoEvent, aEvent.iErrorCode); sl@0: } sl@0: } sl@0: sl@0: /** sl@0: * MapcInitCompleteTest sl@0: */ sl@0: void RTestMmfVclntVideoPlayerAPR::MapcInitCompleteTest(TInt aError, const TTimeIntervalMicroSeconds &/*aDuration*/, CTestAVPlayerAPRCallbackSupport& aMdaVideoPlayerCallbackSupport) sl@0: { sl@0: if (&aMdaVideoPlayerCallbackSupport == iAudioPlayerCallbackSupport1) sl@0: { sl@0: Fsm(EMapcInitComplete1, aError); sl@0: } sl@0: else if (&aMdaVideoPlayerCallbackSupport == iAudioPlayerCallbackSupport2) sl@0: { sl@0: Fsm(EMapcInitComplete2, aError); sl@0: } sl@0: } sl@0: sl@0: /** sl@0: * MapcPlayCompleteTest sl@0: */ sl@0: void RTestMmfVclntVideoPlayerAPR::MapcPlayCompleteTest(TInt aError, CTestAVPlayerAPRCallbackSupport& aMdaVideoPlayerCallbackSupport) sl@0: { sl@0: if (&aMdaVideoPlayerCallbackSupport == iAudioPlayerCallbackSupport1) sl@0: { sl@0: Fsm(EMapcPlayComplete1, aError); sl@0: } sl@0: else if (&aMdaVideoPlayerCallbackSupport == iAudioPlayerCallbackSupport2) sl@0: { sl@0: Fsm(EMapcPlayComplete2, aError); sl@0: } sl@0: } sl@0: sl@0: /** sl@0: * MarncResourceAvailableTest sl@0: */ sl@0: void RTestMmfVclntVideoPlayerAPR::MarncResourceAvailableTest(TUid aNotificationEventId, const TDesC8& aNotificationData, CTestAVPlayerAPRCallbackSupport& aVideoPlayerCallbackSupport) sl@0: { sl@0: if (aNotificationEventId == KMMFEventCategoryAudioResourceAvailable) sl@0: { sl@0: //Convert TDesc8 to TInt64 sl@0: TMMFTimeIntervalMicroSecondsPckg timeIntvbuf; sl@0: timeIntvbuf.Copy(aNotificationData); sl@0: TTimeIntervalMicroSeconds intPos = timeIntvbuf(); sl@0: iPosition = intPos; sl@0: sl@0: if (&aVideoPlayerCallbackSupport == iVideoPlayerCallbackSupport1) sl@0: { sl@0: Fsm(EMarncResourceAvailable1, KErrNone); sl@0: } sl@0: else if (&aVideoPlayerCallbackSupport == iAudioPlayerCallbackSupport1) sl@0: { sl@0: Fsm(EMarncResourceAvailable2, KErrNone); sl@0: } sl@0: else if (&aVideoPlayerCallbackSupport == iAudioPlayerCallbackSupport2) sl@0: { sl@0: Fsm(EMarncResourceAvailable3, KErrNone); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("MMMFAudioResourceNotificationCallback, but NOT KMMFEventCategoryAudioResourceAvailable")); sl@0: } sl@0: } sl@0: sl@0: /** sl@0: * DoTestStepCreateL sl@0: */ sl@0: TVerdict RTestMmfVclntVideoPlayerAPR::DoTestStepCreateL() sl@0: { sl@0: TPtrC filename; sl@0: TVerdict ret = EPass; sl@0: TRect rect, clipRect; sl@0: //WDP::Increase cache size for paging, else we spend time thrashing sl@0: if(SetCacheSize()) sl@0: { sl@0: return EInconclusive; sl@0: } sl@0: sl@0: // Get Video file name sl@0: if(!GetStringFromConfig(iSectName, _L("VideoFile1"), filename)) sl@0: { sl@0: return EInconclusive; sl@0: } sl@0: GetDriveName(iFilename1); sl@0: iFilename1.Append(filename); sl@0: sl@0: // Initialise Video Player sl@0: INFO_PRINTF2(_L("Initialise CVideoPlayerUtility : %S, EMdaPriorityNormal"), &iFilename1); sl@0: iVideoPlayerCallbackSupport1 = CTestAVPlayerAPRCallbackSupport::NewL(*this); sl@0: CleanupStack::PushL(iVideoPlayerCallbackSupport1); sl@0: iTestVideoPlayer = CVideoPlayerUtility::NewL(*iVideoPlayerCallbackSupport1, EMdaPriorityNormal, EMdaPriorityPreferenceTimeAndQuality, iWs, *iScreen, *iWindow, rect, clipRect); sl@0: CleanupStack::PushL(iTestVideoPlayer); sl@0: sl@0: // Get 1st Audio file name sl@0: if(!GetStringFromConfig(iSectName, _L("AudioFile1"), filename)) sl@0: { sl@0: return EInconclusive; sl@0: } sl@0: GetDriveName(iFilename2); sl@0: iFilename2.Append(filename); sl@0: sl@0: // Initialise 1st Audio Player sl@0: INFO_PRINTF2(_L("Initialise CMdaAudioPlayerUtility1 : %S, EMdaPriorityMax"), &iFilename2); sl@0: iAudioPlayerCallbackSupport1 = CTestAVPlayerAPRCallbackSupport::NewL(*this); sl@0: CleanupStack::PushL(iAudioPlayerCallbackSupport1); sl@0: iTestAudioPlayer1 = CMdaAudioPlayerUtility::NewL(*iAudioPlayerCallbackSupport1, EMdaPriorityMax); sl@0: CleanupStack::PushL(iTestAudioPlayer1); sl@0: sl@0: // Get 2nd Audio file name sl@0: if(!GetStringFromConfig(iSectName, _L("AudioFile2"), filename)) sl@0: { sl@0: return EInconclusive; sl@0: } sl@0: GetDriveName(iFilename3); sl@0: iFilename3.Append(filename); sl@0: sl@0: // Initialise 2nd Audio Player sl@0: INFO_PRINTF2(_L("Initialise CMdaAudioPlayerUtility2 : %S, EMdaPriorityMin"), &iFilename3); sl@0: iAudioPlayerCallbackSupport2 = CTestAVPlayerAPRCallbackSupport::NewL(*this); sl@0: CleanupStack::PushL(iAudioPlayerCallbackSupport2); sl@0: iTestAudioPlayer2 = CMdaAudioPlayerUtility::NewL(*iAudioPlayerCallbackSupport2, EMdaPriorityMin); sl@0: CleanupStack::PushL(iTestAudioPlayer2); sl@0: sl@0: // Initialise the CCallBackTimer. sl@0: iCallBackTimer = CCallBackTimer::NewL(TCallBack(stopActiveScheduler)); sl@0: sl@0: // pop all the items from the stack in case of no errors.# sl@0: CleanupStack::Pop(6); sl@0: return ret; sl@0: } sl@0: sl@0: /** sl@0: * DoTestStepDeleteL sl@0: */ sl@0: TVerdict RTestMmfVclntVideoPlayerAPR::DoTestStepDeleteL() sl@0: { sl@0: // Delete all the AudioPlayer and VideoPlayer utilities. sl@0: iTestVideoPlayer->Close(); sl@0: delete iTestVideoPlayer; sl@0: iTestVideoPlayer=NULL; sl@0: iTestAudioPlayer1->Close(); sl@0: delete iTestAudioPlayer1; sl@0: iTestAudioPlayer1=NULL; sl@0: iTestAudioPlayer2->Close(); sl@0: delete iTestAudioPlayer2; sl@0: iTestAudioPlayer2=NULL; sl@0: // Delete CTestAVPlayerAPRCallbackSupport sl@0: delete iVideoPlayerCallbackSupport1; sl@0: delete iAudioPlayerCallbackSupport1; sl@0: delete iAudioPlayerCallbackSupport2; sl@0: // Delete the CCallBackTimer. sl@0: delete iCallBackTimer; sl@0: iCallBackTimer=NULL; sl@0: // return Pass sl@0: return EPass; sl@0: } sl@0: sl@0: /** sl@0: * DoTestStepL sl@0: */ sl@0: TVerdict RTestMmfVclntVideoPlayerAPR::DoTestStepL() sl@0: { sl@0: TVerdict ret = EPass; sl@0: DoTestStepCreateL(); sl@0: ret = DoTestL(); sl@0: sl@0: TUint defaultCacheSize = 0; sl@0: //Done with the test. Setting 0 makes the cache size revert back to boot up values sl@0: TInt error=UserSvr::HalFunction(EHalGroupVM,EVMHalSetCacheSize,(TAny*)defaultCacheSize,(TAny*)defaultCacheSize); sl@0: if(CheckCacheError(error)) sl@0: { sl@0: INFO_PRINTF1(_L("Could not revert the cache size to default")); sl@0: ret=EInconclusive; sl@0: } sl@0: sl@0: DoTestStepDeleteL(); sl@0: return ret; sl@0: } sl@0: sl@0: /** sl@0: * StateInit sl@0: */ sl@0: void RTestMmfVclntVideoPlayerAPR::StateInit() sl@0: { sl@0: iCanStateChange = EFalse; sl@0: for (TInt i=0; i< KMaxEvents; i++) sl@0: { sl@0: iExpectedEvent[i] = EIdlePlayer; sl@0: iExpectedError[i] = KErrNone; sl@0: } sl@0: iState = EStateBegin; sl@0: } sl@0: sl@0: /** sl@0: * StateChange sl@0: */ sl@0: void RTestMmfVclntVideoPlayerAPR::StateChange(TAVPlayerAPRState aState, TAVPlayerAPREvents aExpectedEvent, TInt aExpectedError, TInt aEventIndex) sl@0: { sl@0: iCanStateChange = EFalse; sl@0: iExpectedEvent[aEventIndex-1] = aExpectedEvent; sl@0: iExpectedError[aEventIndex-1] = aExpectedError; sl@0: iState = aState; sl@0: iActEventCount = 0; sl@0: } sl@0: sl@0: /** sl@0: * FsmCheck sl@0: */ sl@0: TBool RTestMmfVclntVideoPlayerAPR::FsmCheck(TAVPlayerAPREvents aEventCode, TInt aError) sl@0: { sl@0: TBool retFsmCheck = EFalse; sl@0: #ifndef SYMBIAN_VARIABLE_BITRATE_CODEC sl@0: if((aEventCode == EMvpuoOpenComplete) && (aError == 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: CActiveScheduler::Stop(); sl@0: return retFsmCheck; sl@0: } sl@0: #endif sl@0: if (aError == KErrNoMemory) sl@0: { sl@0: // Added to enable Alloc tests with Use Client heap... sl@0: iError = aError; sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: } sl@0: else sl@0: { sl@0: // analyse if we can go to the next state. sl@0: TInt analysisError = 0; sl@0: analysisError = AnalyseInput(aEventCode, aError); sl@0: if (analysisError == -1) sl@0: { sl@0: iError = aError; sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: } sl@0: else sl@0: { sl@0: retFsmCheck = ETrue; sl@0: } sl@0: } sl@0: return retFsmCheck; sl@0: } sl@0: sl@0: /** sl@0: * AnalyseInput sl@0: * returns 1 = it can move to a new state sl@0: * returns 0 = still waiting for more events sl@0: * returns -1 = some error has occured sl@0: */ sl@0: TInt RTestMmfVclntVideoPlayerAPR::AnalyseInput(TAVPlayerAPREvents aEventCode, TInt aError) sl@0: { sl@0: TInt res = 0; sl@0: TBool matchFound = EFalse; sl@0: for(TInt i = 0; i < iExpEventCount; i++) sl@0: { sl@0: //check for client and event. sl@0: if((iExpectedEvent[i] == aEventCode) && (iExpectedError[i] == aError)) sl@0: { sl@0: iActEventCount++; sl@0: matchFound = ETrue; sl@0: break; sl@0: } sl@0: } sl@0: sl@0: if(matchFound == EFalse) sl@0: { sl@0: for(TInt i = 0; i < iExpEventCount; i++) sl@0: { sl@0: //check for client and event. sl@0: ERR_PRINTF5(_L("Expectedevent[%d]=%d, Actualevent[%d]=%d"), i, iExpectedEvent[i], i, aEventCode); sl@0: ERR_PRINTF5(_L("Expectederror[%d]=%d, Actualerror[%d]=%d"), i, iExpectedError[i], i, aError); sl@0: } sl@0: return -1; sl@0: } sl@0: sl@0: if(iActEventCount == iExpEventCount) sl@0: { sl@0: iCanStateChange = ETrue; sl@0: // Reset the event counters, for processing next event. sl@0: iExpEventCount = 1; sl@0: iActEventCount = 0; sl@0: } sl@0: else sl@0: { sl@0: iCanStateChange = EFalse; sl@0: } sl@0: sl@0: return res; sl@0: } sl@0: sl@0: TInt RTestMmfVclntVideoPlayerAPR::SetCacheSize() sl@0: { sl@0: TInt error=UserSvr::HalFunction(EHalGroupVM,EVMHalSetCacheSize,(TAny*)KCacheSize,(TAny*)KMaxCacheSize); sl@0: TInt ret=CheckCacheError(error); sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: TInt RTestMmfVclntVideoPlayerAPR::CheckCacheError(TInt aError) sl@0: { sl@0: TInt ret=KErrNone; sl@0: #ifdef __WINSCW__ sl@0: //Winscw does not support getting cache size. Ignoring -5 error sl@0: if(aError!=KErrNone) sl@0: { sl@0: if(aError!=KErrNotSupported) sl@0: { sl@0: INFO_PRINTF2(_L("Could not get the cache size %d"),aError); sl@0: ret=aError; sl@0: } sl@0: } sl@0: #else sl@0: if(aError!=KErrNone) sl@0: {//For ARMV5 we stop for all errors sl@0: INFO_PRINTF2(_L("Could not get the cache size %d"),aError); sl@0: ret=aError; sl@0: } sl@0: #endif sl@0: return ret; sl@0: } sl@0: sl@0: sl@0: // sl@0: //POSITIVE TESTS// sl@0: // sl@0: sl@0: // sl@0: //RTestVclntAprRegOnce4SameEvent (MM-MMF-VCLNTAVIAPR-I-0001-HP) sl@0: // sl@0: sl@0: /** sl@0: * Constructor sl@0: */ sl@0: RTestVclntAprRegOnce4SameEvent::RTestVclntAprRegOnce4SameEvent(const TDesC& aTestName, const TDesC& aSectName) sl@0: : RTestMmfVclntVideoPlayerAPR(aTestName, aSectName) sl@0: {} sl@0: sl@0: /** sl@0: * NewL sl@0: */ sl@0: RTestVclntAprRegOnce4SameEvent* RTestVclntAprRegOnce4SameEvent::NewL(const TDesC& aTestName, const TDesC& aSectName) sl@0: { sl@0: RTestVclntAprRegOnce4SameEvent* self = new (ELeave) RTestVclntAprRegOnce4SameEvent(aTestName, aSectName); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * DoTestL sl@0: */ sl@0: TVerdict RTestVclntAprRegOnce4SameEvent::DoTestL() sl@0: { sl@0: TVerdict testResult = EFail; sl@0: TRAPD(err, testResult = PerformTestL()); sl@0: User::LeaveIfError(err); sl@0: return testResult; sl@0: } sl@0: sl@0: /** sl@0: * FsmL sl@0: */ sl@0: void RTestVclntAprRegOnce4SameEvent::Fsm(TAVPlayerAPREvents aEventCode, TInt aError) sl@0: { sl@0: if ((FsmCheck(aEventCode, aError)) && iCanStateChange) sl@0: { sl@0: TInt retErr = KErrNone; sl@0: switch (iState) sl@0: { sl@0: case EStateBegin: sl@0: { sl@0: // Open iTestVideoPlayer sl@0: if (iBinaryCompatibility) sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1, ControllerUid())); sl@0: } sl@0: else sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1)); sl@0: } sl@0: sl@0: if( iError != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->OpenFileL - Failed with Error : %d"), iError); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: StateChange(EStateOpenVideoPlayer, EMvpuoOpenComplete); sl@0: break; sl@0: } sl@0: case EStateOpenVideoPlayer: sl@0: { sl@0: // Prepare iTestVideoPlayer sl@0: iTestVideoPlayer->Prepare(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Prepare()")); sl@0: StateChange(EStatePrepareVideoPlayer, EMvpuoPrepareComplete); sl@0: break; sl@0: } sl@0: case EStatePrepareVideoPlayer: sl@0: { sl@0: // Play iTestVideoPlayer sl@0: iTestVideoPlayer->Play(); sl@0: // Open iTestAudioPlayer1 sl@0: TRAP(iError, iTestAudioPlayer1->OpenFileL(iFilename2)); sl@0: if( iError != KErrNone ) sl@0: { sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: StateChange(EStateOpenAudioPlayer1, EMapcInitComplete1); sl@0: break; sl@0: } sl@0: case EStateOpenAudioPlayer1: sl@0: { sl@0: // Play iTestAudioPlayer#1 sl@0: iTestAudioPlayer1->Play(); sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateErrInUseVideoPlayer, EMvpuoPlayComplete, KErrInUse); sl@0: break; sl@0: } sl@0: case EStateErrInUseVideoPlayer: sl@0: { sl@0: // Register iTestVideoPlayer for Notification sl@0: retErr = iTestVideoPlayer->RegisterAudioResourceNotification(*iVideoPlayerCallbackSupport1, KMMFEventCategoryAudioResourceAvailable); sl@0: if( retErr != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->RegisterAudioResourceNotification - Failed with Error : %d"), retErr); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Set ExpectedEvent and change the State sl@0: iExpEventCount = 2; sl@0: StateChange(EStateNotifiedVideoPlayer, EMarncResourceAvailable1, KErrNone, 1); sl@0: StateChange(EStateEndAudioPlay1, EMapcPlayComplete1, KErrNone, 2); sl@0: break; sl@0: } sl@0: case EStateEndAudioPlay1: sl@0: { sl@0: INFO_PRINTF1(_L("iTestVideoPlayer-> Received Notification 1st time")); sl@0: iTestVideoPlayer->Play(); sl@0: #ifndef __EABI__ sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Play() - Again")); sl@0: #endif sl@0: iTestAudioPlayer1->Play(); sl@0: StateChange(EStateErrInUseVideoPlayer1A, EMvpuoPlayComplete, KErrInUse); sl@0: break; sl@0: } sl@0: case EStateErrInUseVideoPlayer1A: sl@0: { sl@0: // Set ExpectedEvent and change the State sl@0: iExpEventCount = 2; sl@0: StateChange(EStateNotifiedVideoPlayer1A, EMarncResourceAvailable1, KErrNone, 1); sl@0: StateChange(EStateEndAudioPlay1A, EMapcPlayComplete1, KErrNone, 2); sl@0: break; sl@0: } sl@0: case EStateEndAudioPlay1A: sl@0: { sl@0: // we have received all the events, so pass the test sl@0: INFO_PRINTF1(_L("iTestVideoPlayer-> Received Notification 2nd time")); 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: * PerformTestL sl@0: */ sl@0: TVerdict RTestVclntAprRegOnce4SameEvent::PerformTestL() sl@0: { sl@0: INFO_PRINTF1(_L("Register Once for same event")); sl@0: iTestStepResult = EFail; sl@0: sl@0: // Initialise the state variables sl@0: StateInit(); sl@0: sl@0: // Begin the process sl@0: Fsm(EIdlePlayer, KErrNone); sl@0: sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: sl@0: User::LeaveIfError(iError); sl@0: sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: // sl@0: //RTestVclntAprRegB4Open (MM-MMF-VCLNTAVIAPR-I-0002-HP) sl@0: // sl@0: sl@0: /** sl@0: * Constructor sl@0: */ sl@0: RTestVclntAprRegB4Open::RTestVclntAprRegB4Open(const TDesC& aTestName, const TDesC& aSectName) sl@0: : RTestMmfVclntVideoPlayerAPR(aTestName, aSectName) sl@0: {} sl@0: sl@0: /** sl@0: * NewL sl@0: */ sl@0: RTestVclntAprRegB4Open* RTestVclntAprRegB4Open::NewL(const TDesC& aTestName, const TDesC& aSectName) sl@0: { sl@0: RTestVclntAprRegB4Open* self = new (ELeave) RTestVclntAprRegB4Open(aTestName, aSectName); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * DoTestL sl@0: */ sl@0: TVerdict RTestVclntAprRegB4Open::DoTestL() sl@0: { sl@0: TVerdict testResult = EFail; sl@0: TRAPD(err, testResult = PerformTestL()); sl@0: User::LeaveIfError(err); sl@0: return testResult; sl@0: } sl@0: sl@0: /** sl@0: * FsmL sl@0: */ sl@0: void RTestVclntAprRegB4Open::Fsm(TAVPlayerAPREvents aEventCode, TInt aError) sl@0: { sl@0: if ((FsmCheck(aEventCode, aError)) && iCanStateChange) sl@0: { sl@0: TInt retErr = KErrNone; sl@0: switch (iState) sl@0: { sl@0: case EStateBegin: sl@0: { sl@0: // Register iTestVideoPlayer for Notification sl@0: retErr = iTestVideoPlayer->RegisterAudioResourceNotification(*iVideoPlayerCallbackSupport1, KMMFEventCategoryAudioResourceAvailable); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->RegisterAudioResourceNotification()")); sl@0: if( retErr != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->RegisterAudioResourceNotification - Failed with Error : %d"), retErr); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Open iTestVideoPlayer sl@0: if (iBinaryCompatibility) sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1, ControllerUid())); sl@0: } sl@0: else sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1)); sl@0: } sl@0: sl@0: if( iError != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->OpenFileL - Failed with Error : %d"), iError); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: StateChange(EStateOpenVideoPlayer, EMvpuoOpenComplete); sl@0: break; sl@0: } sl@0: case EStateOpenVideoPlayer: sl@0: { sl@0: // Prepare iTestVideoPlayer sl@0: iTestVideoPlayer->Prepare(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Prepare()")); sl@0: StateChange(EStatePrepareVideoPlayer, EMvpuoPrepareComplete); sl@0: break; sl@0: } sl@0: case EStatePrepareVideoPlayer: sl@0: { sl@0: // Open iTestAudioPlayer1 sl@0: TRAP(iError, iTestAudioPlayer1->OpenFileL(iFilename2)); sl@0: INFO_PRINTF2(_L("iTestAudioPlayer1->OpenFileL(), returned %d"), iError); sl@0: if( iError != KErrNone ) sl@0: { sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateOpenAudioPlayer1, EMapcInitComplete1); sl@0: break; sl@0: } sl@0: case EStateOpenAudioPlayer1: sl@0: { sl@0: // Play iTestAudioPlayer#1 sl@0: iTestAudioPlayer1->Play(); sl@0: INFO_PRINTF1(_L("iTestAudioPlayer1->Play()")); sl@0: // Play iTestVideoPlayer sl@0: iTestVideoPlayer->Play(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Play()")); sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateErrInUseVideoPlayer, EMvpuoPlayComplete, KErrInUse); sl@0: break; sl@0: } sl@0: case EStateErrInUseVideoPlayer: sl@0: { sl@0: // Set ExpectedEvent and change the State sl@0: iExpEventCount = 2; sl@0: StateChange(EStateNotifiedVideoPlayer, EMarncResourceAvailable1, KErrNone, 1); sl@0: StateChange(EStateEndAudioPlay1, EMapcPlayComplete1, KErrNone, 2); sl@0: break; sl@0: } sl@0: case EStateEndAudioPlay1: sl@0: { sl@0: // we have received all the events, so pass the test sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->NotificationReceived")); 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: /** sl@0: * PerformTestL sl@0: */ sl@0: TVerdict RTestVclntAprRegB4Open::PerformTestL() sl@0: { sl@0: INFO_PRINTF1(_L("Register before opening video player")); sl@0: iTestStepResult = EFail; sl@0: sl@0: // Initialise the state variables sl@0: StateInit(); sl@0: sl@0: // Begin the process sl@0: Fsm(EIdlePlayer, KErrNone); sl@0: sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: sl@0: User::LeaveIfError(iError); sl@0: sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: // sl@0: //RTestVclntAprRegAftrOpenAndB4Play (MM-MMF-VCLNTAVIAPR-I-0003-HP) sl@0: // sl@0: sl@0: /** sl@0: * Constructor sl@0: */ sl@0: RTestVclntAprRegAftrOpenAndB4Play::RTestVclntAprRegAftrOpenAndB4Play(const TDesC& aTestName, const TDesC& aSectName) sl@0: : RTestMmfVclntVideoPlayerAPR(aTestName, aSectName) sl@0: { sl@0: iVidPosition = 0; sl@0: } sl@0: sl@0: /** sl@0: * NewL sl@0: */ sl@0: RTestVclntAprRegAftrOpenAndB4Play* RTestVclntAprRegAftrOpenAndB4Play::NewL(const TDesC& aTestName, const TDesC& aSectName) sl@0: { sl@0: RTestVclntAprRegAftrOpenAndB4Play* self = new (ELeave) RTestVclntAprRegAftrOpenAndB4Play(aTestName, aSectName); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * DoTestL sl@0: */ sl@0: TVerdict RTestVclntAprRegAftrOpenAndB4Play::DoTestL() sl@0: { sl@0: TVerdict testResult = EFail; sl@0: TRAPD(err, testResult = PerformTestL()); sl@0: User::LeaveIfError(err); sl@0: return testResult; sl@0: } sl@0: sl@0: /** sl@0: * FsmL sl@0: */ sl@0: void RTestVclntAprRegAftrOpenAndB4Play::Fsm(TAVPlayerAPREvents aEventCode, TInt aError) sl@0: { sl@0: if ((FsmCheck(aEventCode, aError)) && iCanStateChange) sl@0: { sl@0: TInt retErr = KErrNone; sl@0: switch (iState) sl@0: { sl@0: case EStateBegin: sl@0: { sl@0: // Open iTestVideoPlayer sl@0: if (iBinaryCompatibility) sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1, ControllerUid())); sl@0: } sl@0: else sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1)); sl@0: } sl@0: sl@0: if( iError != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->OpenFileL - Failed with Error : %d"), iError); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: StateChange(EStateOpenVideoPlayer, EMvpuoOpenComplete); sl@0: break; sl@0: } sl@0: case EStateOpenVideoPlayer: sl@0: { sl@0: // Register iTestVideoPlayer for Notification sl@0: retErr = iTestVideoPlayer->RegisterAudioResourceNotification(*iVideoPlayerCallbackSupport1, KMMFEventCategoryAudioResourceAvailable); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->RegisterAudioResourceNotification()")); sl@0: if( retErr != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->RegisterAudioResourceNotification - Failed with Error : %d"), retErr); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Prepare iTestVideoPlayer sl@0: iTestVideoPlayer->Prepare(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Prepare()")); sl@0: StateChange(EStatePrepareVideoPlayer, EMvpuoPrepareComplete); sl@0: break; sl@0: } sl@0: case EStatePrepareVideoPlayer: sl@0: { sl@0: // Play iTestVideoPlayer sl@0: iTestVideoPlayer->Play(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Play()")); sl@0: // Open iTestAudioPlayer1 sl@0: TRAP(iError, iTestAudioPlayer1->OpenFileL(iFilename2)); sl@0: INFO_PRINTF2(_L("iTestAudioPlayer1->OpenFileL(), returned %d"), iError); sl@0: if( iError != KErrNone ) sl@0: { sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateOpenAudioPlayer1, EMapcInitComplete1); sl@0: break; sl@0: } sl@0: case EStateOpenAudioPlayer1: sl@0: { sl@0: // Get position for iTestVideoPlayer sl@0: TRAP(iError, iVidPosition = iTestVideoPlayer->PositionL()); sl@0: INFO_PRINTF3(_L("iTestVideoPlayer->Position returned %d, error %d"), I64LOW(iVidPosition.Int64()), iError); sl@0: if( iError != KErrNone ) sl@0: { sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Play iTestAudioPlayer#1 sl@0: iTestAudioPlayer1->Play(); sl@0: INFO_PRINTF1(_L("iTestAudioPlayer1->Play()")); sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateErrInUseVideoPlayer, EMvpuoPlayComplete, KErrInUse); sl@0: break; sl@0: } sl@0: case EStateErrInUseVideoPlayer: sl@0: { sl@0: // Set ExpectedEvent and change the State sl@0: iExpEventCount = 2; sl@0: StateChange(EStateNotifiedVideoPlayer, EMarncResourceAvailable1, KErrNone, 1); sl@0: StateChange(EStateEndAudioPlay1, EMapcPlayComplete1, KErrNone, 2); sl@0: break; sl@0: } sl@0: case EStateEndAudioPlay1: sl@0: { sl@0: INFO_PRINTF2(_L("iTestVideoPlayer->Position returned after receiving Notification = %d"), I64LOW(iPosition.Int64())); sl@0: // we have received all the events, so pass the test sl@0: // Check the position sl@0: CActiveScheduler::Stop(); sl@0: // check the difference with a time dalay sl@0: if(TimeComparison(I64INT(iPosition.Int64()), I64INT(iVidPosition.Int64()), KExpectedDeviation)) sl@0: { sl@0: INFO_PRINTF1(_L("Position matches...")); sl@0: iTestStepResult = EPass; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("Position does not match...")); sl@0: iTestStepResult = EFail; sl@0: } sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: } sl@0: sl@0: sl@0: /** sl@0: * PerformTestL sl@0: */ sl@0: TVerdict RTestVclntAprRegAftrOpenAndB4Play::PerformTestL() sl@0: { sl@0: INFO_PRINTF1(_L("Register after opening and before playing video player")); sl@0: iTestStepResult = EFail; sl@0: sl@0: // Initialise the state variables sl@0: StateInit(); sl@0: sl@0: // Begin the process sl@0: Fsm(EIdlePlayer, KErrNone); sl@0: sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: sl@0: User::LeaveIfError(iError); sl@0: sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: // sl@0: //RTestVclntAprRegAftrHpClntCompltPlay (MM-MMF-VCLNTAVIAPR-I-0004-HP) sl@0: // sl@0: sl@0: /** sl@0: * Constructor sl@0: */ sl@0: RTestVclntAprRegAftrHpClntCompltPlay::RTestVclntAprRegAftrHpClntCompltPlay(const TDesC& aTestName, const TDesC& aSectName) sl@0: : RTestMmfVclntVideoPlayerAPR(aTestName, aSectName) sl@0: {} sl@0: sl@0: /** sl@0: * NewL sl@0: */ sl@0: RTestVclntAprRegAftrHpClntCompltPlay* RTestVclntAprRegAftrHpClntCompltPlay::NewL(const TDesC& aTestName, const TDesC& aSectName) sl@0: { sl@0: RTestVclntAprRegAftrHpClntCompltPlay* self = new (ELeave) RTestVclntAprRegAftrHpClntCompltPlay(aTestName, aSectName); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * DoTestL sl@0: */ sl@0: TVerdict RTestVclntAprRegAftrHpClntCompltPlay::DoTestL() sl@0: { sl@0: TVerdict testResult = EFail; sl@0: TRAPD(err, testResult = PerformTestL()); sl@0: User::LeaveIfError(err); sl@0: return testResult; sl@0: } sl@0: sl@0: /** sl@0: * FsmL sl@0: */ sl@0: void RTestVclntAprRegAftrHpClntCompltPlay::Fsm(TAVPlayerAPREvents aEventCode, TInt aError) sl@0: { sl@0: if ((FsmCheck(aEventCode, aError)) && iCanStateChange) sl@0: { sl@0: TInt retErr = KErrNone; sl@0: switch (iState) sl@0: { sl@0: case EStateBegin: sl@0: { sl@0: // Open iTestVideoPlayer sl@0: if (iBinaryCompatibility) sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1, ControllerUid())); sl@0: } sl@0: else sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1)); sl@0: } sl@0: sl@0: if( iError != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->OpenFileL - Failed with Error : %d"), iError); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: StateChange(EStateOpenVideoPlayer, EMvpuoOpenComplete); sl@0: break; sl@0: } sl@0: case EStateOpenVideoPlayer: sl@0: { sl@0: // Prepare iTestVideoPlayer sl@0: iTestVideoPlayer->Prepare(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Prepare()")); sl@0: StateChange(EStatePrepareVideoPlayer, EMvpuoPrepareComplete); sl@0: break; sl@0: } sl@0: case EStatePrepareVideoPlayer: sl@0: { sl@0: // Play iTestVideoPlayer sl@0: iTestVideoPlayer->Play(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Play()")); sl@0: // Open iTestAudioPlayer1 sl@0: TRAP(iError, iTestAudioPlayer1->OpenFileL(iFilename2)); sl@0: INFO_PRINTF2(_L("iTestAudioPlayer1->OpenFileL(), returned %d"), iError); sl@0: if( iError != KErrNone ) sl@0: { sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateOpenAudioPlayer1, EMapcInitComplete1); sl@0: break; sl@0: } sl@0: case EStateOpenAudioPlayer1: sl@0: { sl@0: // Play iTestAudioPlayer#1 sl@0: iTestAudioPlayer1->Play(); sl@0: INFO_PRINTF1(_L("iTestAudioPlayer1->Play()")); sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateErrInUseVideoPlayer, EMvpuoPlayComplete, KErrInUse); sl@0: break; sl@0: } sl@0: case EStateErrInUseVideoPlayer: sl@0: { sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateEndAudioPlay1, EMapcPlayComplete1); sl@0: break; sl@0: } sl@0: case EStateEndAudioPlay1: sl@0: { sl@0: // Register iTestVideoPlayer for Notification sl@0: retErr = iTestVideoPlayer->RegisterAudioResourceNotification(*iVideoPlayerCallbackSupport1, KMMFEventCategoryAudioResourceAvailable); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->RegisterAudioResourceNotification()")); sl@0: if( retErr != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->RegisterAudioResourceNotification - Failed with Error : %d"), retErr); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Play iTestVideoPlayer again sl@0: iTestVideoPlayer->Play(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Play() - Again")); sl@0: // Play iTestAudioPlayer1 again sl@0: iTestAudioPlayer1->Play(); sl@0: INFO_PRINTF1(_L("iTestAudioPlayer1->Play() - Again")); sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateErrInUseVideoPlayer1A, EMvpuoPlayComplete, KErrInUse); sl@0: break; sl@0: } sl@0: case EStateErrInUseVideoPlayer1A: sl@0: { sl@0: iCallBackTimer->Cancel(); // in case some other event (apart from Notification is received) sl@0: // Set ExpectedEvent and change the State sl@0: iExpEventCount = 2; sl@0: StateChange(EStateNotifiedVideoPlayer1A, EMarncResourceAvailable1, KErrNone, 1); sl@0: StateChange(EStateEndAudioPlay1A, EMapcPlayComplete1, KErrNone, 2); sl@0: break; sl@0: } sl@0: case EStateEndAudioPlay1A: sl@0: { sl@0: // we have received all the events, so pass the test sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->NotificationReceived")); 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: /** sl@0: * PerformTestL sl@0: */ sl@0: TVerdict RTestVclntAprRegAftrHpClntCompltPlay::PerformTestL() sl@0: { sl@0: INFO_PRINTF1(_L("Registration after the the High priority client completes play")); sl@0: iTestStepResult = EFail; sl@0: sl@0: // Initialise the state variables sl@0: StateInit(); sl@0: sl@0: // Begin the process sl@0: Fsm(EIdlePlayer, KErrNone); sl@0: sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: sl@0: User::LeaveIfError(iError); sl@0: sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: // sl@0: //RTestVclntAprRegSamePriorityPlayers (MM-MMF-VCLNTAVIAPR-I-0005-HP) sl@0: // sl@0: sl@0: /** sl@0: * Constructor sl@0: */ sl@0: RTestVclntAprRegSamePriorityPlayers::RTestVclntAprRegSamePriorityPlayers(const TDesC& aTestName, const TDesC& aSectName) sl@0: : RTestMmfVclntVideoPlayerAPR(aTestName, aSectName) sl@0: {} sl@0: sl@0: /** sl@0: * NewL sl@0: */ sl@0: RTestVclntAprRegSamePriorityPlayers* RTestVclntAprRegSamePriorityPlayers::NewL(const TDesC& aTestName, const TDesC& aSectName) sl@0: { sl@0: RTestVclntAprRegSamePriorityPlayers* self = new (ELeave) RTestVclntAprRegSamePriorityPlayers(aTestName, aSectName); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * DoTestL sl@0: */ sl@0: TVerdict RTestVclntAprRegSamePriorityPlayers::DoTestL() sl@0: { sl@0: TVerdict testResult = EFail; sl@0: TRAPD(err, testResult = PerformTestL()); sl@0: User::LeaveIfError(err); sl@0: return testResult; sl@0: } sl@0: sl@0: /** sl@0: * FsmL sl@0: */ sl@0: void RTestVclntAprRegSamePriorityPlayers::Fsm(TAVPlayerAPREvents aEventCode, TInt aError) sl@0: { sl@0: if ((FsmCheck(aEventCode, aError)) && iCanStateChange) sl@0: { sl@0: TInt retErr = KErrNone; sl@0: TInt retErr1 = KErrNone; sl@0: switch (iState) sl@0: { sl@0: case EStateBegin: sl@0: { sl@0: // Open iTestVideoPlayer sl@0: if (iBinaryCompatibility) sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1, ControllerUid())); sl@0: } sl@0: else sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1)); sl@0: } sl@0: sl@0: if( iError != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->OpenFileL - Failed with Error : %d"), iError); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: StateChange(EStateOpenVideoPlayer, EMvpuoOpenComplete); sl@0: break; sl@0: } sl@0: case EStateOpenVideoPlayer: sl@0: { sl@0: // Prepare iTestVideoPlayer sl@0: iTestVideoPlayer->Prepare(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Prepare()")); sl@0: StateChange(EStatePrepareVideoPlayer, EMvpuoPrepareComplete); sl@0: break; sl@0: } sl@0: case EStatePrepareVideoPlayer: sl@0: { sl@0: // Play iTestVideoPlayer sl@0: iTestVideoPlayer->Play(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Play()")); sl@0: // Open iTestAudioPlayer1 sl@0: TRAP(iError, iTestAudioPlayer1->OpenFileL(iFilename2)); sl@0: INFO_PRINTF2(_L("iTestAudioPlayer1->OpenFileL(), returned %d"), iError); sl@0: if( iError != KErrNone ) sl@0: { sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateOpenAudioPlayer1, EMapcInitComplete1); sl@0: break; sl@0: } sl@0: case EStateOpenAudioPlayer1: sl@0: { sl@0: // Play iTestAudioPlayer#1 sl@0: iTestAudioPlayer1->Play(); sl@0: INFO_PRINTF1(_L("iTestAudioPlayer1->Play()")); sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateErrInUseVideoPlayer, EMvpuoPlayComplete, KErrInUse); sl@0: break; sl@0: } sl@0: case EStateErrInUseVideoPlayer: sl@0: { sl@0: // Register iTestVideoPlayer for Notification sl@0: retErr = iTestVideoPlayer->RegisterAudioResourceNotification(*iVideoPlayerCallbackSupport1, KMMFEventCategoryAudioResourceAvailable); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->RegisterAudioResourceNotification()")); sl@0: if( retErr != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->RegisterAudioResourceNotification - Failed with Error : %d"), retErr); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Open iTestAudioPlayer2 sl@0: TRAP(iError, iTestAudioPlayer2->OpenFileL(iFilename3)); sl@0: INFO_PRINTF2(_L("iTestAudioPlayer2->OpenFileL(), returned %d"), iError); sl@0: if( iError != KErrNone ) sl@0: { sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateOpenAudioPlayer2, EMapcInitComplete2); sl@0: break; sl@0: } sl@0: case EStateOpenAudioPlayer2: sl@0: { sl@0: // Play iTestAudioPlayer#2 sl@0: iTestAudioPlayer2->Play(); sl@0: INFO_PRINTF1(_L("iTestAudioPlayer2->Play()")); sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateErrInUseAudioPlayer2, EMapcPlayComplete2, KErrInUse); sl@0: break; sl@0: } sl@0: case EStateErrInUseAudioPlayer2: sl@0: { sl@0: // Register iTestAudioPlayer2 for Notification sl@0: retErr1 = iTestAudioPlayer2->RegisterAudioResourceNotification(*iAudioPlayerCallbackSupport2, KMMFEventCategoryAudioResourceAvailable); sl@0: INFO_PRINTF1(_L("iTestAudioPlayer2->RegisterAudioResourceNotification()")); sl@0: if( retErr1 != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestAudioPlayer2->RegisterAudioResourceNotification - Failed with Error : %d"), retErr1); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Set ExpectedEvent and change the State sl@0: iExpEventCount = 2; sl@0: StateChange(EStateNotifiedVideoPlayer, EMarncResourceAvailable1, KErrNone, 1); sl@0: StateChange(EStateEndAudioPlay1, EMapcPlayComplete1, KErrNone, 2); sl@0: break; sl@0: } sl@0: case EStateEndAudioPlay1: sl@0: { sl@0: // we have received all the events, so pass the test sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->NotificationReceived")); 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: /** sl@0: * PerformTestL sl@0: */ sl@0: TVerdict RTestVclntAprRegSamePriorityPlayers::PerformTestL() sl@0: { sl@0: INFO_PRINTF1(_L("Receive notification by same priority players in the order of registration")); sl@0: iTestStepResult = EFail; sl@0: sl@0: // Initialise the state variables sl@0: StateInit(); sl@0: sl@0: // Begin the process sl@0: Fsm(EIdlePlayer, KErrNone); sl@0: sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: sl@0: User::LeaveIfError(iError); sl@0: sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: // sl@0: //RTestVclntAprRegAtPlayAndCancelNfn (MM-MMF-VCLNTAVIAPR-I-0006-HP) sl@0: // sl@0: sl@0: /** sl@0: * Constructor sl@0: */ sl@0: RTestVclntAprRegAtPlayAndCancelNfn::RTestVclntAprRegAtPlayAndCancelNfn(const TDesC& aTestName, const TDesC& aSectName) sl@0: : RTestMmfVclntVideoPlayerAPR(aTestName, aSectName) sl@0: {} sl@0: sl@0: /** sl@0: * NewL sl@0: */ sl@0: RTestVclntAprRegAtPlayAndCancelNfn* RTestVclntAprRegAtPlayAndCancelNfn::NewL(const TDesC& aTestName, const TDesC& aSectName) sl@0: { sl@0: RTestVclntAprRegAtPlayAndCancelNfn* self = new (ELeave) RTestVclntAprRegAtPlayAndCancelNfn(aTestName, aSectName); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * DoTestL sl@0: */ sl@0: TVerdict RTestVclntAprRegAtPlayAndCancelNfn::DoTestL() sl@0: { sl@0: TVerdict testResult = EFail; sl@0: TRAPD(err, testResult = PerformTestL()); sl@0: User::LeaveIfError(err); sl@0: return testResult; sl@0: } sl@0: sl@0: /** sl@0: * FsmL sl@0: */ sl@0: void RTestVclntAprRegAtPlayAndCancelNfn::Fsm(TAVPlayerAPREvents aEventCode, TInt aError) sl@0: { sl@0: if (FsmCheck(aEventCode, aError)) sl@0: { sl@0: TInt retErr = KErrNone; sl@0: TInt retErr1 = KErrNone; sl@0: switch (iState) sl@0: { sl@0: case EStateBegin: sl@0: { sl@0: // Open iTestVideoPlayer sl@0: if (iBinaryCompatibility) sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1, ControllerUid())); sl@0: } sl@0: else sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1)); sl@0: } sl@0: sl@0: if( iError != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->OpenFileL - Failed with Error : %d"), iError); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: StateChange(EStateOpenVideoPlayer, EMvpuoOpenComplete); sl@0: break; sl@0: } sl@0: case EStateOpenVideoPlayer: sl@0: { sl@0: // Prepare iTestVideoPlayer sl@0: iTestVideoPlayer->Prepare(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Prepare()")); sl@0: StateChange(EStatePrepareVideoPlayer, EMvpuoPrepareComplete); sl@0: break; sl@0: } sl@0: case EStatePrepareVideoPlayer: sl@0: { sl@0: // Play iTestVideoPlayer sl@0: iTestVideoPlayer->Play(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Play()")); sl@0: // Open iTestAudioPlayer1 sl@0: TRAP(iError, iTestAudioPlayer1->OpenFileL(iFilename2)); sl@0: INFO_PRINTF2(_L("iTestAudioPlayer1->OpenFileL(), returned %d"), iError); sl@0: if( iError != KErrNone ) sl@0: { sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateOpenAudioPlayer1, EMapcInitComplete1); sl@0: break; sl@0: } sl@0: case EStateOpenAudioPlayer1: sl@0: { sl@0: // Play iTestAudioPlayer#1 sl@0: iTestAudioPlayer1->Play(); sl@0: INFO_PRINTF1(_L("iTestAudioPlayer1->Play()")); sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateErrInUseVideoPlayer, EMvpuoPlayComplete, KErrInUse); sl@0: break; sl@0: } sl@0: case EStateErrInUseVideoPlayer: sl@0: { sl@0: // Register iTestVideoPlayer for Notification sl@0: retErr = iTestVideoPlayer->RegisterAudioResourceNotification(*iVideoPlayerCallbackSupport1, KMMFEventCategoryAudioResourceAvailable); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->RegisterAudioResourceNotification()")); sl@0: if( retErr != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->RegisterAudioResourceNotification - Failed with Error : %d"), retErr); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: retErr1 = iTestVideoPlayer->CancelRegisterAudioResourceNotification(KMMFEventCategoryAudioResourceAvailable); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->CancelRegisterAudioResourceNotification()")); sl@0: if (retErr1 == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("iTestVideoPlayer should not receive Notification as registration is cancelled.")); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->CancelRegisterAudioResourceNotification - Failed with Error : %d"), retErr); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateEndAudioPlay1, EMapcPlayComplete1); sl@0: break; sl@0: } sl@0: case EStateEndAudioPlay1: sl@0: { sl@0: // Timer to check if Notification Event Occurs. sl@0: iCallBackTimer->After(2000000); sl@0: iTestStepResult = EPass; sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateNotifiedVideoPlayer, EMarncResourceAvailable1); sl@0: break; sl@0: } sl@0: case EStateNotifiedVideoPlayer: sl@0: { sl@0: iCallBackTimer->Cancel(); // in case something else stopped the AS sl@0: // we have received the notification event (unexpected), so fail the test sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->NotificationReceived")); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: } sl@0: sl@0: sl@0: /** sl@0: * PerformTestL sl@0: */ sl@0: TVerdict RTestVclntAprRegAtPlayAndCancelNfn::PerformTestL() sl@0: { sl@0: INFO_PRINTF1(_L("Cancellation of the notification request")); sl@0: iTestStepResult = EFail; sl@0: sl@0: // Initialise the state variables sl@0: StateInit(); sl@0: sl@0: // Begin the process sl@0: Fsm(EIdlePlayer, KErrNone); sl@0: sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: sl@0: User::LeaveIfError(iError); sl@0: sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: // sl@0: //RTestVclntAprTestWillResumePlay (MM-MMF-VCLNTAVIAPR-I-0007-HP) sl@0: // sl@0: sl@0: /** sl@0: * Constructor sl@0: */ sl@0: RTestVclntAprTestWillResumePlay::RTestVclntAprTestWillResumePlay(const TDesC& aTestName, const TDesC& aSectName) sl@0: : RTestMmfVclntVideoPlayerAPR(aTestName, aSectName) sl@0: {} sl@0: sl@0: /** sl@0: * NewL sl@0: */ sl@0: RTestVclntAprTestWillResumePlay* RTestVclntAprTestWillResumePlay::NewL(const TDesC& aTestName, const TDesC& aSectName) sl@0: { sl@0: RTestVclntAprTestWillResumePlay* self = new (ELeave) RTestVclntAprTestWillResumePlay(aTestName, aSectName); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * DoTestL sl@0: */ sl@0: TVerdict RTestVclntAprTestWillResumePlay::DoTestL() sl@0: { sl@0: TVerdict testResult = EFail; sl@0: TRAPD(err, testResult = PerformTestL()); sl@0: User::LeaveIfError(err); sl@0: return testResult; sl@0: } sl@0: sl@0: /** sl@0: * FsmL sl@0: */ sl@0: void RTestVclntAprTestWillResumePlay::Fsm(TAVPlayerAPREvents aEventCode, TInt aError) sl@0: { sl@0: if ((FsmCheck(aEventCode, aError)) && iCanStateChange) sl@0: { sl@0: TInt retErr = KErrNone; sl@0: TInt retErr1 = KErrNone; sl@0: switch (iState) sl@0: { sl@0: case EStateBegin: sl@0: { sl@0: // Open iTestAudioPlayer2 - Low priority sl@0: TRAP(iError, iTestAudioPlayer2->OpenFileL(iFilename3)); sl@0: if( iError != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestAudioPlayer2->OpenFileL - Failed with Error : %d"), iError); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateOpenAudioPlayer2, EMapcInitComplete2); sl@0: break; sl@0: } sl@0: case EStateOpenAudioPlayer2: sl@0: { sl@0: // Play iTestAudioPlayer#2 sl@0: iTestAudioPlayer2->Play(); sl@0: INFO_PRINTF1(_L("iTestAudioPlayer2->Play()")); sl@0: // Open iTestVideoPlayer sl@0: if (iBinaryCompatibility) sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1, ControllerUid())); sl@0: } sl@0: else sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1)); sl@0: } sl@0: sl@0: INFO_PRINTF2(_L("iTestVideoPlayer->OpenFileL(), returned %d"), iError); sl@0: if( iError != KErrNone ) sl@0: { sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: StateChange(EStateOpenVideoPlayer, EMvpuoOpenComplete); sl@0: break; sl@0: } sl@0: case EStateOpenVideoPlayer: sl@0: { sl@0: // Prepare iTestVideoPlayer sl@0: iTestVideoPlayer->Prepare(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Prepare()")); sl@0: StateChange(EStatePrepareVideoPlayer, EMvpuoPrepareComplete); sl@0: break; sl@0: } sl@0: case EStatePrepareVideoPlayer: sl@0: { sl@0: // Play iTestVideoPlayer sl@0: iTestVideoPlayer->Play(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Play()")); sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateErrInUseAudioPlayer2, EMapcPlayComplete2, KErrInUse); sl@0: break; sl@0: } sl@0: case EStateErrInUseAudioPlayer2: sl@0: { sl@0: // Register iTestAudioPlayer2 for Notification sl@0: retErr = iTestAudioPlayer2->RegisterAudioResourceNotification(*iAudioPlayerCallbackSupport2, KMMFEventCategoryAudioResourceAvailable); sl@0: INFO_PRINTF1(_L("iTestAudioPlayer2->RegisterAudioResourceNotification()")); sl@0: if( retErr != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestAudioPlayer2->RegisterAudioResourceNotification - Failed with Error : %d"), retErr); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Open iTestAudioPlayer1 sl@0: TRAP(iError, iTestAudioPlayer1->OpenFileL(iFilename2)); sl@0: INFO_PRINTF2(_L("iTestAudioPlayer1->OpenFileL(), returned %d"), iError); sl@0: if( iError != KErrNone ) sl@0: { sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateOpenAudioPlayer1, EMapcInitComplete1); sl@0: break; sl@0: } sl@0: case EStateOpenAudioPlayer1: sl@0: { sl@0: // Play iTestAudioPlayer#1 sl@0: iTestAudioPlayer1->Play(); sl@0: INFO_PRINTF1(_L("iTestAudioPlayer1->Play()")); sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateErrInUseVideoPlayer, EMvpuoPlayComplete, KErrInUse); sl@0: break; sl@0: } sl@0: case EStateErrInUseVideoPlayer: sl@0: { sl@0: // Register iTestVideoPlayer for Notification sl@0: retErr1 = iTestVideoPlayer->RegisterAudioResourceNotification(*iVideoPlayerCallbackSupport1, KMMFEventCategoryAudioResourceAvailable); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->RegisterAudioResourceNotification()")); sl@0: if( retErr1 != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->RegisterAudioResourceNotification - Failed with Error : %d"), retErr1); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Set ExpectedEvent and change the State sl@0: iExpEventCount = 2; sl@0: StateChange(EStateNotifiedVideoPlayer, EMarncResourceAvailable1, KErrNone, 1); sl@0: StateChange(EStateEndAudioPlay1, EMapcPlayComplete1, KErrNone, 2); sl@0: break; sl@0: } sl@0: case EStateEndAudioPlay1: sl@0: { sl@0: iCallBackTimer->Cancel(); // in case something else stopped the AS sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->NotificationReceived")); sl@0: retErr = iTestVideoPlayer->WillResumePlay(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->WillResumePlay()")); sl@0: if( retErr != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->WillResumePlay() - Failed with Error : %d"), retErr); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // initialise and start the timer (5 Sec), just to check if no other event occurs. sl@0: TRAPD(err, iWillResumePlayTimer = CVclntAviAprWillResumeTimer::NewL(this, 5000000)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CVclntAviAprWillResumeTimer::NewL left with error = %d"), err); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: iWillResumePlayTimer->Start(); sl@0: // Check if No other client is notified in 5 seconds. sl@0: StateChange(EStateNoOtherPlayerNotified, EIdlePlayer); sl@0: break; sl@0: } sl@0: case EStateNoOtherPlayerNotified: sl@0: { sl@0: INFO_PRINTF1(_L("No other client has been notified in 5 seconds after calling WillResumePlay()")); sl@0: iTestVideoPlayer->Play(); // directly calling play, without setting position. sl@0: iExpEventCount = 2; sl@0: StateChange(EStateNotifiedAudioPlayer2, EMarncResourceAvailable3, KErrNone, 1); sl@0: StateChange(EStateEndVideoPlay, EMvpuoPlayComplete, KErrNone, 2); sl@0: break; sl@0: } sl@0: case EStateEndVideoPlay: sl@0: { sl@0: INFO_PRINTF1(_L("iTestAudioPlayer2->NotificationReceived")); 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: /** sl@0: * PerformTestL sl@0: */ sl@0: TVerdict RTestVclntAprTestWillResumePlay::PerformTestL() sl@0: { sl@0: INFO_PRINTF1(_L("WillResumePlay Implementation with three clients")); sl@0: iTestStepResult = EFail; sl@0: sl@0: // Initialise the state variables sl@0: StateInit(); sl@0: sl@0: // Begin the process sl@0: Fsm(EIdlePlayer, KErrNone); sl@0: sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: sl@0: User::LeaveIfError(iError); sl@0: sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: /** sl@0: * set finished on callback from a timer sl@0: */ sl@0: void RTestVclntAprTestWillResumePlay::FinishedL() sl@0: { sl@0: // say that no events have occured after calling WillResumePlay() sl@0: // and can proceed to the next step sl@0: Fsm(EIdlePlayer, KErrNone); sl@0: } sl@0: sl@0: // sl@0: // CVclntAviAprWillResumeTimer sl@0: // sl@0: sl@0: /** sl@0: * NewL sl@0: */ sl@0: CVclntAviAprWillResumeTimer* CVclntAviAprWillResumeTimer::NewL(RTestVclntAprTestWillResumePlay* aParent, TTimeIntervalMicroSeconds32 aWaitTime) sl@0: { sl@0: CVclntAviAprWillResumeTimer* self = new (ELeave) CVclntAviAprWillResumeTimer(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: CVclntAviAprWillResumeTimer::CVclntAviAprWillResumeTimer(RTestVclntAprTestWillResumePlay* aParent, TTimeIntervalMicroSeconds32 aWaitTime) sl@0: : CTimer(EPriorityNormal), 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 CVclntAviAprWillResumeTimer::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 CVclntAviAprWillResumeTimer::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 CVclntAviAprWillResumeTimer::RunError(TInt aError) sl@0: { sl@0: CActiveScheduler::Stop(); sl@0: return aError; sl@0: } sl@0: sl@0: // sl@0: //RTestVclntAprAllocUsingSharedHeap (MM-MMF-VCLNTAVIAPR-I-0008-HP) sl@0: // sl@0: sl@0: /** sl@0: * Constructor sl@0: */ sl@0: RTestVclntAprAllocUsingSharedHeap::RTestVclntAprAllocUsingSharedHeap(const TDesC& aTestName, const TDesC& aSectName) sl@0: : RTestMmfVclntVideoPlayerAPR(aTestName, aSectName) sl@0: { sl@0: } sl@0: sl@0: /** sl@0: * NewL sl@0: */ sl@0: RTestVclntAprAllocUsingSharedHeap* RTestVclntAprAllocUsingSharedHeap::NewL(const TDesC& aTestName, const TDesC& aSectName) sl@0: { sl@0: RTestVclntAprAllocUsingSharedHeap* self = new (ELeave) RTestVclntAprAllocUsingSharedHeap(aTestName, aSectName); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * DoTestStepL sl@0: */ sl@0: TVerdict RTestVclntAprAllocUsingSharedHeap::DoTestStepL() sl@0: { sl@0: TVerdict ret = EPass; sl@0: ret = DoTestL(); sl@0: return ret; sl@0: } sl@0: sl@0: /** sl@0: * DoTestL sl@0: */ sl@0: TVerdict RTestVclntAprAllocUsingSharedHeap::DoTestL() sl@0: { sl@0: TVerdict testResult = EFail; sl@0: TRAPD(err, testResult = PerformTestL()); sl@0: User::LeaveIfError(err); sl@0: return testResult; sl@0: } sl@0: sl@0: /** sl@0: * FsmL sl@0: */ sl@0: sl@0: void RTestVclntAprAllocUsingSharedHeap::Fsm(TAVPlayerAPREvents aEventCode, TInt aError) sl@0: { sl@0: if ((FsmCheck(aEventCode, aError)) && iCanStateChange) sl@0: { sl@0: TInt retErr = KErrNone; sl@0: switch (iState) sl@0: { sl@0: case EStateBegin: sl@0: { sl@0: // Open iTestVideoPlayer sl@0: if (iBinaryCompatibility) sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1, ControllerUid())); sl@0: } sl@0: else sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1)); sl@0: } sl@0: sl@0: if( iError != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->OpenFileL - Failed with Error : %d"), iError); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: StateChange(EStateOpenVideoPlayer, EMvpuoOpenComplete); sl@0: break; sl@0: } sl@0: case EStateOpenVideoPlayer: sl@0: { sl@0: // Prepare iTestVideoPlayer sl@0: iTestVideoPlayer->Prepare(); sl@0: StateChange(EStatePrepareVideoPlayer, EMvpuoPrepareComplete); sl@0: break; sl@0: } sl@0: case EStatePrepareVideoPlayer: sl@0: { sl@0: // Play iTestVideoPlayer sl@0: iTestVideoPlayer->Play(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Play()")); sl@0: // Open iTestAudioPlayer1 sl@0: TRAP(iError, iTestAudioPlayer1->OpenFileL(iFilename2)); sl@0: if( iError != KErrNone ) sl@0: { sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateOpenAudioPlayer1, EMapcInitComplete1); sl@0: break; sl@0: } sl@0: case EStateOpenAudioPlayer1: sl@0: { sl@0: // Play iTestAudioPlayer#1 sl@0: iTestAudioPlayer1->Play(); sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateErrInUseVideoPlayer, EMvpuoPlayComplete, KErrInUse); sl@0: break; sl@0: } sl@0: case EStateErrInUseVideoPlayer: sl@0: { sl@0: // Register iTestVideoPlayer for Notification sl@0: retErr = iTestVideoPlayer->RegisterAudioResourceNotification(*iVideoPlayerCallbackSupport1, KMMFEventCategoryAudioResourceAvailable); sl@0: if( retErr != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->RegisterAudioResourceNotification - Failed with Error : %d"), retErr); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Set ExpectedEvent and change the State sl@0: iExpEventCount = 2; sl@0: StateChange(EStateNotifiedVideoPlayer, EMarncResourceAvailable1, KErrNone, 1); sl@0: StateChange(EStateEndAudioPlay1, EMapcPlayComplete1, KErrNone, 2); sl@0: break; sl@0: } sl@0: case EStateEndAudioPlay1: sl@0: { sl@0: iCallBackTimer->Cancel(); // in case something else stopped the AS sl@0: iTestVideoPlayer->Play(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Play() - Again")); sl@0: iTestAudioPlayer1->Play(); sl@0: StateChange(EStateErrInUseVideoPlayer1A, EMvpuoPlayComplete, KErrInUse); sl@0: break; sl@0: } sl@0: case EStateErrInUseVideoPlayer1A: sl@0: { sl@0: // Set ExpectedEvent and change the State sl@0: iExpEventCount = 2; sl@0: StateChange(EStateNotifiedVideoPlayer1A, EMarncResourceAvailable1, KErrNone, 1); sl@0: StateChange(EStateEndAudioPlay1A, EMapcPlayComplete1, KErrNone, 2); sl@0: break; sl@0: } sl@0: case EStateEndAudioPlay1A: sl@0: { sl@0: iCallBackTimer->Cancel(); // in case something else stopped the AS 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: * sl@0: * Play video by marking heap. sl@0: * sl@0: */ sl@0: void RTestVclntAprAllocUsingSharedHeap::VideoPlayAllocL() sl@0: { sl@0: __MM_HEAP_MARK; sl@0: // create new instance of video player sl@0: TInt startAllocCount = User::CountAllocCells(); sl@0: sl@0: DoTestStepCreateL(); sl@0: sl@0: // call the state handler and start the test sl@0: iError = KErrNone; sl@0: // Initialise the state variables sl@0: StateInit(); sl@0: sl@0: // Begin the process sl@0: Fsm(EIdlePlayer, KErrNone); sl@0: sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: sl@0: DoTestStepDeleteL(); sl@0: sl@0: // check for errors sl@0: if (iError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("Opening/playing the video file failed, unexpected error : %d."), iError); sl@0: User::Leave(iError); sl@0: } sl@0: sl@0: TInt endAllocCount = User::CountAllocCells(); sl@0: __MM_HEAP_MARKEND; sl@0: } sl@0: sl@0: /** sl@0: * sl@0: * PerformTestL() sl@0: * sl@0: */ sl@0: TVerdict RTestVclntAprAllocUsingSharedHeap::PerformTestL() sl@0: { sl@0: INFO_PRINTF1(_L("<<< APR alloc test using VideoPlayer utility.>>>")); sl@0: iTestStepResult = EFail; sl@0: sl@0: TRAPD(err, VideoPlayAllocL()); sl@0: if ((err != KErrNone) || (iTestStepResult != EPass)) sl@0: { sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: iTestStepResult = EFail; sl@0: sl@0: TInt failCount = 1; sl@0: TBool completed = EFalse; sl@0: TBool badResult = EFalse; sl@0: TBool reachedEnd = EFalse; sl@0: sl@0: for(;;) sl@0: { sl@0: INFO_PRINTF2(_L("ALLOC Test Loop #%d."), failCount); sl@0: __UHEAP_SETFAIL(RHeap::EFailNext, failCount); sl@0: __MM_HEAP_MARK; sl@0: sl@0: TInt err = KErrNone; sl@0: TRAP(err, VideoPlayAllocL()); sl@0: ERR_PRINTF2(_L("Tracing the error = %d."), err); sl@0: sl@0: completed = EFalse; sl@0: if (err == KErrNone) sl@0: { sl@0: TAny *testAlloc = User::Alloc(1); // when this fails, we passed through all allocs within test sl@0: if (!testAlloc) sl@0: { sl@0: reachedEnd = ETrue; sl@0: failCount--; sl@0: } sl@0: else sl@0: { sl@0: User::Free(testAlloc); sl@0: testAlloc = NULL; sl@0: } sl@0: sl@0: if (iTestStepResult != EPass) sl@0: { sl@0: badResult = ETrue; sl@0: } sl@0: sl@0: completed = reachedEnd || badResult; sl@0: } sl@0: else if (err != KErrNoMemory) sl@0: { sl@0: __UHEAP_SETFAIL(RHeap::ENone, 0); sl@0: ERR_PRINTF2(_L("Bad error code %d"), err); sl@0: completed = ETrue; sl@0: badResult = EFail; sl@0: } sl@0: sl@0: __MM_HEAP_MARKEND; sl@0: __UHEAP_SETFAIL(RHeap::ENone, 0); sl@0: sl@0: if (completed) sl@0: { sl@0: break; sl@0: } sl@0: sl@0: failCount++; sl@0: } sl@0: sl@0: if (err != KErrNone || badResult) sl@0: { sl@0: if (badResult) sl@0: { sl@0: ERR_PRINTF3(_L("Bad result with %d memory allocations tested. The Error returned is %d."), failCount, err); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF3(_L("Error(%d) with %d memory allocations tested."), failCount, err); sl@0: } sl@0: sl@0: iTestStepResult = EFail; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Completed OK with %d memory allocations tested.\n"), failCount); sl@0: iTestStepResult = EPass; sl@0: } sl@0: sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: // sl@0: //RTestVclntAprMultRegAtPlay (MM-MMF-VCLNTAVIAPR-I-0101-HP) sl@0: // sl@0: sl@0: /** sl@0: * Constructor sl@0: */ sl@0: RTestVclntAprMultRegAtPlay::RTestVclntAprMultRegAtPlay(const TDesC& aTestName, const TDesC& aSectName) sl@0: : RTestMmfVclntVideoPlayerAPR(aTestName, aSectName) sl@0: {} sl@0: sl@0: /** sl@0: * NewL sl@0: */ sl@0: RTestVclntAprMultRegAtPlay* RTestVclntAprMultRegAtPlay::NewL(const TDesC& aTestName, const TDesC& aSectName) sl@0: { sl@0: RTestVclntAprMultRegAtPlay* self = new (ELeave) RTestVclntAprMultRegAtPlay(aTestName, aSectName); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * DoTestL sl@0: */ sl@0: TVerdict RTestVclntAprMultRegAtPlay::DoTestL() sl@0: { sl@0: TVerdict testResult = EFail; sl@0: TRAPD(err, testResult = PerformTestL()); sl@0: User::LeaveIfError(err); sl@0: return testResult; sl@0: } sl@0: sl@0: /** sl@0: * FsmL sl@0: */ sl@0: void RTestVclntAprMultRegAtPlay::Fsm(TAVPlayerAPREvents aEventCode, TInt aError) sl@0: { sl@0: if (FsmCheck(aEventCode, aError)) sl@0: { sl@0: TInt retErr = KErrNone; sl@0: switch (iState) sl@0: { sl@0: case EStateBegin: sl@0: { sl@0: // Open iTestVideoPlayer sl@0: if (iBinaryCompatibility) sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1, ControllerUid())); sl@0: } sl@0: else sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1)); sl@0: } sl@0: sl@0: if( iError != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->OpenFileL - Failed with Error : %d"), iError); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: StateChange(EStateOpenVideoPlayer, EMvpuoOpenComplete); sl@0: break; sl@0: } sl@0: case EStateOpenVideoPlayer: sl@0: { sl@0: // Prepare iTestVideoPlayer sl@0: iTestVideoPlayer->Prepare(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Prepare()")); sl@0: StateChange(EStatePrepareVideoPlayer, EMvpuoPrepareComplete); sl@0: break; sl@0: } sl@0: case EStatePrepareVideoPlayer: sl@0: { sl@0: // Play iTestVideoPlayer sl@0: iTestVideoPlayer->Play(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Play()")); sl@0: // Register iTestVideoPlayer for Notification sl@0: retErr = iTestVideoPlayer->RegisterAudioResourceNotification(*iVideoPlayerCallbackSupport1, KMMFEventCategoryAudioResourceAvailable); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->RegisterAudioResourceNotification() - First Regn")); sl@0: if( retErr != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->RegisterAudioResourceNotification - Failed with Error : %d"), retErr); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Open iTestAudioPlayer1 sl@0: TRAP(iError, iTestAudioPlayer1->OpenFileL(iFilename2)); sl@0: INFO_PRINTF2(_L("iTestAudioPlayer1->OpenFileL(), returned %d"), iError); sl@0: if( iError != KErrNone ) sl@0: { sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateOpenAudioPlayer1, EMapcInitComplete1); sl@0: break; sl@0: } sl@0: case EStateOpenAudioPlayer1: sl@0: { sl@0: // Play iTestAudioPlayer#1 sl@0: iTestAudioPlayer1->Play(); sl@0: INFO_PRINTF1(_L("iTestAudioPlayer1->Play()")); sl@0: // Set ExpectedEvent and change the State sl@0: StateChange(EStateErrInUseVideoPlayer, EMvpuoPlayComplete, KErrInUse); sl@0: break; sl@0: } sl@0: case EStateErrInUseVideoPlayer: sl@0: { sl@0: // Register iTestVideoPlayer for Notification sl@0: retErr = iTestVideoPlayer->RegisterAudioResourceNotification(*iVideoPlayerCallbackSupport1, KMMFEventCategoryAudioResourceAvailable); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->RegisterAudioResourceNotification() - Second Regn")); sl@0: if( retErr == KErrAlreadyExists ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->RegisterAudioResourceNotification (2nd Time) - Failed with Error : %d"), retErr); sl@0: iTestStepResult = EPass; sl@0: } sl@0: else if( retErr != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->RegisterAudioResourceNotification - Failed with Error : %d"), retErr); sl@0: iTestStepResult = EFail; sl@0: } sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: } sl@0: sl@0: sl@0: /** sl@0: * PerformTestL sl@0: */ sl@0: TVerdict RTestVclntAprMultRegAtPlay::PerformTestL() sl@0: { sl@0: INFO_PRINTF1(_L("Multiple registration at the time of play")); sl@0: iTestStepResult = EFail; sl@0: sl@0: // Initialise the state variables sl@0: StateInit(); sl@0: sl@0: // Begin the process sl@0: Fsm(EIdlePlayer, KErrNone); sl@0: sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: sl@0: User::LeaveIfError(iError); sl@0: sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: sl@0: // sl@0: //RTestVclntAprCancelNoResourceNfn (MM-MMF-VCLNTAVIAPR-I-0102-HP) sl@0: // sl@0: sl@0: /** sl@0: * Constructor sl@0: */ sl@0: RTestVclntAprCancelNoResourceNfn::RTestVclntAprCancelNoResourceNfn(const TDesC& aTestName, const TDesC& aSectName) sl@0: : RTestMmfVclntVideoPlayerAPR(aTestName, aSectName) sl@0: {} sl@0: sl@0: /** sl@0: * NewL sl@0: */ sl@0: RTestVclntAprCancelNoResourceNfn* RTestVclntAprCancelNoResourceNfn::NewL(const TDesC& aTestName, const TDesC& aSectName) sl@0: { sl@0: RTestVclntAprCancelNoResourceNfn* self = new (ELeave) RTestVclntAprCancelNoResourceNfn(aTestName, aSectName); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * DoTestL sl@0: */ sl@0: TVerdict RTestVclntAprCancelNoResourceNfn::DoTestL() sl@0: { sl@0: TVerdict testResult = EFail; sl@0: TRAPD(err, testResult = PerformTestL()); sl@0: User::LeaveIfError(err); sl@0: return testResult; sl@0: } sl@0: sl@0: /** sl@0: * FsmL sl@0: */ sl@0: void RTestVclntAprCancelNoResourceNfn::Fsm(TAVPlayerAPREvents aEventCode, TInt aError) sl@0: { sl@0: if (FsmCheck(aEventCode, aError)) sl@0: { sl@0: TInt retErr = KErrNone; sl@0: switch (iState) sl@0: { sl@0: case EStateBegin: sl@0: { sl@0: // Open iTestVideoPlayer sl@0: if (iBinaryCompatibility) sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1, ControllerUid())); sl@0: } sl@0: else sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1)); sl@0: } sl@0: sl@0: INFO_PRINTF2(_L("iTestVideoPlayer->OpenFileL(), returned %d"), iError); sl@0: if( iError != KErrNone ) sl@0: { sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: StateChange(EStateOpenVideoPlayer, EMvpuoOpenComplete); sl@0: break; sl@0: } sl@0: case EStateOpenVideoPlayer: sl@0: { sl@0: // Prepare iTestVideoPlayer sl@0: iTestVideoPlayer->Prepare(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Prepare()")); sl@0: StateChange(EStatePrepareVideoPlayer, EMvpuoPrepareComplete); sl@0: break; sl@0: } sl@0: case EStatePrepareVideoPlayer: sl@0: { sl@0: // Play iTestVideoPlayer sl@0: iTestVideoPlayer->Play(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Play()")); sl@0: retErr = iTestVideoPlayer->CancelRegisterAudioResourceNotification(KMMFEventCategoryAudioResourceAvailable); sl@0: if (retErr == KErrCancel) sl@0: { sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->CancelRegisterAudioResourceNotification() returned KErrCancel - Successful")); sl@0: iTestStepResult = EPass; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->CancelRegisterAudioResourceNotification - Failed with Error : %d"), retErr); sl@0: iTestStepResult = EFail; sl@0: } sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: } sl@0: sl@0: sl@0: /** sl@0: * PerformTestL sl@0: */ sl@0: TVerdict RTestVclntAprCancelNoResourceNfn::PerformTestL() sl@0: { sl@0: INFO_PRINTF1(_L("Cancel when no resource Notification is requested")); sl@0: iTestStepResult = EFail; sl@0: sl@0: // Initialise the state variables sl@0: StateInit(); sl@0: sl@0: // Begin the process sl@0: Fsm(EIdlePlayer, KErrNone); sl@0: sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: sl@0: User::LeaveIfError(iError); sl@0: sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: // sl@0: //RTestVclntAprRegUnsupportedEvent (MM-MMF-VCLNTAVIAPR-I-0103-HP) sl@0: // sl@0: sl@0: /** sl@0: * Constructor sl@0: */ sl@0: RTestVclntAprRegUnsupportedEvent::RTestVclntAprRegUnsupportedEvent(const TDesC& aTestName, const TDesC& aSectName) sl@0: : RTestMmfVclntVideoPlayerAPR(aTestName, aSectName) sl@0: {} sl@0: sl@0: /** sl@0: * NewL sl@0: */ sl@0: RTestVclntAprRegUnsupportedEvent* RTestVclntAprRegUnsupportedEvent::NewL(const TDesC& aTestName, const TDesC& aSectName) sl@0: { sl@0: RTestVclntAprRegUnsupportedEvent* self = new (ELeave) RTestVclntAprRegUnsupportedEvent(aTestName, aSectName); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * DoTestL sl@0: */ sl@0: TVerdict RTestVclntAprRegUnsupportedEvent::DoTestL() sl@0: { sl@0: TVerdict testResult = EFail; sl@0: TRAPD(err, testResult = PerformTestL()); sl@0: User::LeaveIfError(err); sl@0: return testResult; sl@0: } sl@0: sl@0: /** sl@0: * FsmL sl@0: */ sl@0: void RTestVclntAprRegUnsupportedEvent::Fsm(TAVPlayerAPREvents aEventCode, TInt aError) sl@0: { sl@0: if (FsmCheck(aEventCode, aError)) sl@0: { sl@0: TInt retErr = KErrNone; sl@0: switch (iState) sl@0: { sl@0: case EStateBegin: sl@0: { sl@0: // Open iTestVideoPlayer sl@0: if (iBinaryCompatibility) sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1, ControllerUid())); sl@0: } sl@0: else sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1)); sl@0: } sl@0: sl@0: INFO_PRINTF2(_L("iTestVideoPlayer->OpenFileL(), returned %d"), iError); sl@0: if( iError != KErrNone ) sl@0: { sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: StateChange(EStateOpenVideoPlayer, EMvpuoOpenComplete); sl@0: break; sl@0: } sl@0: case EStateOpenVideoPlayer: sl@0: { sl@0: // Prepare iTestVideoPlayer sl@0: iTestVideoPlayer->Prepare(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Prepare()")); sl@0: StateChange(EStatePrepareVideoPlayer, EMvpuoPrepareComplete); sl@0: break; sl@0: } sl@0: case EStatePrepareVideoPlayer: sl@0: { sl@0: // Play iTestVideoPlayer sl@0: iTestVideoPlayer->Play(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Play()")); sl@0: // Register iTestVideoPlayer for Notification sl@0: retErr = iTestVideoPlayer->RegisterAudioResourceNotification(*iVideoPlayerCallbackSupport1, KMMFEventCategoryVideoPrepareComplete); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->RegisterAudioResourceNotification()")); sl@0: if( retErr == KErrNotSupported ) sl@0: { sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->RegisterAudioResourceNotification() with an Unsupported Event")); sl@0: iTestStepResult = EPass; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->RegisterAudioResourceNotification with Error : %d"), retErr); sl@0: iTestStepResult = EFail; sl@0: } sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: } sl@0: sl@0: sl@0: /** sl@0: * PerformTestL sl@0: */ sl@0: TVerdict RTestVclntAprRegUnsupportedEvent::PerformTestL() sl@0: { sl@0: INFO_PRINTF1(_L("Register with Unsupported event")); sl@0: iTestStepResult = EFail; sl@0: sl@0: // Initialise the state variables sl@0: StateInit(); sl@0: sl@0: // Begin the process sl@0: Fsm(EIdlePlayer, KErrNone); sl@0: sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: sl@0: User::LeaveIfError(iError); sl@0: sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: // sl@0: //RTestVclntAprCancelUnsupportedEvent (MM-MMF-VCLNTAVIAPR-I-0104-HP) sl@0: // sl@0: sl@0: /** sl@0: * Constructor sl@0: */ sl@0: RTestVclntAprCancelUnsupportedEvent::RTestVclntAprCancelUnsupportedEvent(const TDesC& aTestName, const TDesC& aSectName) sl@0: : RTestMmfVclntVideoPlayerAPR(aTestName, aSectName) sl@0: {} sl@0: sl@0: /** sl@0: * NewL sl@0: */ sl@0: RTestVclntAprCancelUnsupportedEvent* RTestVclntAprCancelUnsupportedEvent::NewL(const TDesC& aTestName, const TDesC& aSectName) sl@0: { sl@0: RTestVclntAprCancelUnsupportedEvent* self = new (ELeave) RTestVclntAprCancelUnsupportedEvent(aTestName, aSectName); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * DoTestL sl@0: */ sl@0: TVerdict RTestVclntAprCancelUnsupportedEvent::DoTestL() sl@0: { sl@0: TVerdict testResult = EFail; sl@0: TRAPD(err, testResult = PerformTestL()); sl@0: User::LeaveIfError(err); sl@0: return testResult; sl@0: } sl@0: sl@0: /** sl@0: * FsmL sl@0: */ sl@0: void RTestVclntAprCancelUnsupportedEvent::Fsm(TAVPlayerAPREvents aEventCode, TInt aError) sl@0: { sl@0: if (FsmCheck(aEventCode, aError)) sl@0: { sl@0: TInt retErr = KErrNone; sl@0: TInt retErr1 = KErrNone; sl@0: switch (iState) sl@0: { sl@0: case EStateBegin: sl@0: { sl@0: // Open iTestVideoPlayer sl@0: if (iBinaryCompatibility) sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1, ControllerUid())); sl@0: } sl@0: else sl@0: { sl@0: TRAP(iError, iTestVideoPlayer->OpenFileL(iFilename1)); sl@0: } sl@0: sl@0: INFO_PRINTF2(_L("iTestVideoPlayer->OpenFileL(), returned %d"), iError); sl@0: if( iError != KErrNone ) sl@0: { sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: StateChange(EStateOpenVideoPlayer, EMvpuoOpenComplete); sl@0: break; sl@0: } sl@0: case EStateOpenVideoPlayer: sl@0: { sl@0: // Prepare iTestVideoPlayer sl@0: iTestVideoPlayer->Prepare(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Prepare()")); sl@0: StateChange(EStatePrepareVideoPlayer, EMvpuoPrepareComplete); sl@0: break; sl@0: } sl@0: case EStatePrepareVideoPlayer: sl@0: { sl@0: // Play iTestVideoPlayer sl@0: iTestVideoPlayer->Play(); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->Play()")); sl@0: // Register iTestVideoPlayer for Notification sl@0: retErr = iTestVideoPlayer->RegisterAudioResourceNotification(*iVideoPlayerCallbackSupport1, KMMFEventCategoryAudioResourceAvailable); sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->RegisterAudioResourceNotification()")); sl@0: if( retErr != KErrNone ) sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->RegisterAudioResourceNotification - Failed with Error : %d"), retErr1); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: retErr1 = iTestVideoPlayer->CancelRegisterAudioResourceNotification(KMMFEventCategoryVideoRecorderGeneralError); sl@0: if (retErr1 == KErrNotSupported) sl@0: { sl@0: INFO_PRINTF1(_L("iTestVideoPlayer->CancelRegisterAudioResourceNotification - Unsuccessful due to Unsupported event")); sl@0: iTestStepResult = EPass; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("iTestVideoPlayer->CancelRegisterAudioResourceNotification - Failed with Error : %d"), retErr1); sl@0: iTestStepResult = EFail; sl@0: } sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: } sl@0: sl@0: sl@0: /** sl@0: * PerformTestL sl@0: */ sl@0: TVerdict RTestVclntAprCancelUnsupportedEvent::PerformTestL() sl@0: { sl@0: INFO_PRINTF1(_L("Cancel registration with unsupported event type")); sl@0: iTestStepResult = EFail; sl@0: sl@0: // Initialise the state variables sl@0: StateInit(); sl@0: sl@0: // Begin the process sl@0: Fsm(EIdlePlayer, KErrNone); sl@0: sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: sl@0: User::LeaveIfError(iError); sl@0: sl@0: return iTestStepResult; sl@0: }