sl@0: // Copyright (c) 2005-2010 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.h" sl@0: sl@0: #include sl@0: #include sl@0: #include "u32hal.h" sl@0: sl@0: #ifdef SYMBIAN_BUILD_GCE sl@0: #include sl@0: #endif sl@0: sl@0: const TInt KFrameWidth = 100; sl@0: const TInt KFrameHeight = 50; sl@0: sl@0: const TInt KCropRegionRectTop = 1; sl@0: const TInt KCropRegionRectLeft = 3; sl@0: const TInt KCropRegionRectRight = 5; sl@0: const TInt KCropRegionRectBottom = 7; sl@0: const TUint KCacheSize = 1000000; //1MB sl@0: const TUint KMaxCacheSize = 30000000; //30MB sl@0: sl@0: // sl@0: // RTestVclntPlayAviFile sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntPlayAviFile::Constructor sl@0: */ sl@0: RTestVclntPlayAviFile::RTestVclntPlayAviFile(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError, const TBool aPlay) sl@0: : RTestVclntAviPlayerStep(aTestName, aSectName, aKeyName, aExpectedError), iPlay(aPlay) sl@0: { sl@0: iHeapSize = 2000000; //-2MB sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayAviFile::NewL sl@0: */ sl@0: RTestVclntPlayAviFile* RTestVclntPlayAviFile::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError,const TBool aPlay) sl@0: { sl@0: RTestVclntPlayAviFile* self = new (ELeave) RTestVclntPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, aPlay); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayAviFile::NewLC sl@0: */ sl@0: RTestVclntPlayAviFile* RTestVclntPlayAviFile::NewLC(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError,const TBool aPlay) sl@0: { sl@0: RTestVclntPlayAviFile* self = new (ELeave) RTestVclntPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, aPlay); sl@0: CleanupStack::PushL(self); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayAviFile::DoTestStepL sl@0: */ sl@0: TVerdict RTestVclntPlayAviFile::DoTestStepL() sl@0: { sl@0: // WDP:We are going to start the test now sl@0: // Ensure we set paging memory to appropriate cache size for tests which need it sl@0: //ignore other tests sl@0: TVerdict verdict=SetCacheSize(); sl@0: if(verdict!=EPass) sl@0: { sl@0: return verdict; sl@0: } sl@0: sl@0: // Call the state handler from IDLE state sl@0: FsmL(EVPIdle); sl@0: User::LeaveIfError(iError); sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: //Default SetCache size sl@0: TVerdict RTestVclntPlayAviFile::SetCacheSize() sl@0: { sl@0: //Do not try to increase cache size for tests which dont need it sl@0: return EPass; sl@0: sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayAviFile::FsmL sl@0: */ sl@0: void RTestVclntPlayAviFile::FsmL(TVclntTestPlayEvents aEventCode) sl@0: { sl@0: if (FsmCheck(aEventCode)) sl@0: { sl@0: //TInt err = KErrNone; sl@0: switch (aEventCode) sl@0: { sl@0: case EVPIdle: sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename); sl@0: TRAP(iError, iVideoPlayer->OpenFileL(iFilename, ControllerUid())); sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: break; sl@0: case EVPOpenComplete: 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: case EVPPrepareComplete: sl@0: iTestStepResult = DoTestL(iVideoPlayer); sl@0: break; sl@0: case EVPPlayComplete: sl@0: iTestStepResult = EPass; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayAviFile::DoTestL sl@0: */ sl@0: TVerdict RTestVclntPlayAviFile::DoTestL(CVideoPlayerUtility* /*aPlayer*/) sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: if(iPlay) sl@0: { sl@0: iError = KErrTimedOut; sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: iVideoPlayer->Play(); sl@0: } sl@0: else sl@0: { sl@0: CActiveScheduler::Stop(); sl@0: ret = EPass; sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: // sl@0: // RTestVclntPlayAviDes sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntPlayAviDes::Constructor sl@0: */ sl@0: RTestVclntPlayAviDes::RTestVclntPlayAviDes(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, const TBool aPlay) sl@0: : RTestVclntAviPlayerStep(aTestName, aSectName, aKeyName, aExpectedError), iPlay(aPlay) sl@0: { sl@0: iHeapSize = 500000; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayAviDes::NewL sl@0: */ sl@0: RTestVclntPlayAviDes* RTestVclntPlayAviDes::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError,const TBool aPlay) sl@0: { sl@0: RTestVclntPlayAviDes* self = new (ELeave) RTestVclntPlayAviDes(aTestName, aSectName, aKeyName, aExpectedError, aPlay); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayAviDes::NewLC sl@0: */ sl@0: RTestVclntPlayAviDes* RTestVclntPlayAviDes::NewLC(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError,const TBool aPlay) sl@0: { sl@0: RTestVclntPlayAviDes* self = new (ELeave) RTestVclntPlayAviDes(aTestName, aSectName, aKeyName, aExpectedError, aPlay); sl@0: CleanupStack::PushL(self); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayAviDes::DoTestStepPreambleL sl@0: */ sl@0: TVerdict RTestVclntPlayAviDes::DoTestStepPreambleL() sl@0: { sl@0: TVerdict preamRes; sl@0: 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, file sl@0: sl@0: return preamRes; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayAviDes::DoTestStepPostambleL sl@0: */ sl@0: TVerdict RTestVclntPlayAviDes::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 RTestVclntPlayAviDes::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: CActiveScheduler::Start(); sl@0: } sl@0: // Start the scheduler - Done only once ! sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayAviDes::FsmL sl@0: */ sl@0: void RTestVclntPlayAviDes::FsmL(TVclntTestPlayEvents aEventCode) sl@0: { sl@0: if (FsmCheck(aEventCode)) sl@0: { sl@0: //TInt err = KErrNone; sl@0: switch (aEventCode) sl@0: { sl@0: case EVPIdle: sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenDesL() %S"), &iFilename); sl@0: TRAP(iError, iVideoPlayer->OpenDesL(iVideo->Des(), ControllerUid())); sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: break; sl@0: case EVPOpenComplete: 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: case EVPPrepareComplete: sl@0: iTestStepResult = DoTestL(iVideoPlayer); sl@0: break; sl@0: case EVPPlayComplete: sl@0: iTestStepResult = EPass; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayAviDes::DoTestL sl@0: */ sl@0: TVerdict RTestVclntPlayAviDes::DoTestL(CVideoPlayerUtility* aPlayer) sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: if(iPlay) sl@0: { sl@0: iError = KErrTimedOut; sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: aPlayer->Play(); sl@0: } sl@0: else sl@0: { sl@0: CActiveScheduler::Stop(); sl@0: ret = EPass; sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: sl@0: // sl@0: // RTestVclntPlayAviUrl sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntPlayAviUrl::Constructor sl@0: */ sl@0: sl@0: RTestVclntPlayAviUrl::RTestVclntPlayAviUrl(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError,const TBool aPlay) sl@0: : RTestVclntAviPlayerStep(aTestName, aSectName, aKeyName, aExpectedError), iPlay(aPlay) sl@0: { sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayAviUrl::NewL sl@0: */ sl@0: sl@0: RTestVclntPlayAviUrl* RTestVclntPlayAviUrl::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError,const TBool aPlay) sl@0: { sl@0: RTestVclntPlayAviUrl* self = RTestVclntPlayAviUrl::NewLC(aTestName, aSectName, aKeyName, aExpectedError, aPlay); sl@0: CleanupStack::Pop(); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayAviUrl::NewLC sl@0: */ sl@0: sl@0: RTestVclntPlayAviUrl* RTestVclntPlayAviUrl::NewLC(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError,const TBool aPlay) sl@0: { sl@0: RTestVclntPlayAviUrl* self = new (ELeave) RTestVclntPlayAviUrl(aTestName, aSectName, aKeyName, aExpectedError, aPlay); sl@0: CleanupStack::PushL(self); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayAviUrl::Constructor sl@0: */ sl@0: sl@0: TVerdict RTestVclntPlayAviUrl::DoTestStepL() sl@0: { sl@0: // Call the state handler from IDLE state sl@0: FsmL(EVPIdle); 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: * RTestVclntPlayAviUrl::FsmL sl@0: */ sl@0: sl@0: void RTestVclntPlayAviUrl::FsmL(TVclntTestPlayEvents aEventCode) sl@0: { sl@0: if (FsmCheck(aEventCode)) sl@0: { sl@0: switch (aEventCode) sl@0: { sl@0: case EVPIdle: sl@0: // Open iVideoPlayer sl@0: sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenUrlL() %S"), &iFilename); sl@0: TRAP(iError,iVideoPlayer->OpenUrlL(iFilename, KUseDefaultIap, KNullDesC8, ControllerUid())); sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: break; sl@0: case EVPOpenComplete: 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: case EVPPrepareComplete: sl@0: iTestStepResult = DoTestL(iVideoPlayer); sl@0: break; sl@0: case EVPPlayComplete: sl@0: CActiveScheduler::Stop(); sl@0: iTestStepResult = EPass; sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayAviUrl::Constructor sl@0: */ sl@0: sl@0: TVerdict RTestVclntPlayAviUrl::DoTestL(CVideoPlayerUtility* aPlayer) sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: if(iPlay) sl@0: { sl@0: iError = KErrTimedOut; sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: aPlayer->Play(); sl@0: } sl@0: else sl@0: { sl@0: CActiveScheduler::Stop(); sl@0: ret = EPass; sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: sl@0: // sl@0: // RTestVclntEnqFrameRate sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntEnqFrameRate::Constructor sl@0: */ sl@0: RTestVclntEnqFrameRate::RTestVclntEnqFrameRate(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, const TInt aFrameRate) sl@0: : RTestVclntPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, EFalse) sl@0: { sl@0: iFrameRate = aFrameRate; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntEnqFrameRate::Constructor sl@0: */ sl@0: RTestVclntEnqFrameRate* RTestVclntEnqFrameRate::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, const TInt aFrameRate) sl@0: { sl@0: RTestVclntEnqFrameRate* self = new (ELeave) RTestVclntEnqFrameRate(aTestName, aSectName, aKeyName, aExpectedError, aFrameRate); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntEnqFrameRate::Constructor sl@0: */ sl@0: TVerdict RTestVclntEnqFrameRate::DoTestL(CVideoPlayerUtility* aPlayer) sl@0: { sl@0: INFO_PRINTF1(_L("Test : Video Player - Enquire Frame Rate")); sl@0: sl@0: TVerdict ret = EFail; sl@0: sl@0: TReal32 theFrameRate = 0.0; sl@0: TRAPD(err, theFrameRate = aPlayer->VideoFrameRateL()); sl@0: INFO_PRINTF3(_L("iVideoPlayer->VideoFrameRateL() = %d...error =%d"), TInt(theFrameRate), err); sl@0: sl@0: // if we get here, we pass. The iVideoPlayer does not have a SetVideoFrameRate() sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: aPlayer->Play(); sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: sl@0: // sl@0: // RTestVclntPosition sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntPosition::Constructor sl@0: */ sl@0: RTestVclntPosition::RTestVclntPosition(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, const TTimeIntervalMicroSeconds aPosition) sl@0: : RTestVclntPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, EFalse) sl@0: { sl@0: iPosition = aPosition; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPosition::NewL sl@0: */ sl@0: RTestVclntPosition* RTestVclntPosition::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, const TTimeIntervalMicroSeconds aPosition) sl@0: { sl@0: RTestVclntPosition* self = new (ELeave) RTestVclntPosition(aTestName, aSectName, aKeyName, aExpectedError, aPosition); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPosition::DoTestL sl@0: */ sl@0: TVerdict RTestVclntPosition::DoTestL(CVideoPlayerUtility* aPlayer) sl@0: { sl@0: // NB test video controller is stubbing certain functions. May have to rewrite this sl@0: // for AVI Controller sl@0: sl@0: TVerdict ret = EFail; sl@0: TInt err = KErrNone; sl@0: TTimeIntervalMicroSeconds pos; sl@0: sl@0: INFO_PRINTF1(_L("Test : Video Player - Position")); sl@0: INFO_PRINTF3(_L("Set Position = %d, Duration = %d"), I64INT(iPosition.Int64()), I64INT(aPlayer->DurationL().Int64())); sl@0: sl@0: // Set position: middle of clip. sl@0: if (I64INT(iPosition.Int64()) == 0) sl@0: { sl@0: iPosition = I64INT(aPlayer->DurationL().Int64()) / 2; sl@0: } sl@0: sl@0: // Set position: end of clip. sl@0: if (I64INT(iPosition.Int64()) == -1) sl@0: { sl@0: iPosition = aPlayer->DurationL(); sl@0: } sl@0: sl@0: // Position is beyond the end of the clips duration, so check that the value is clipped. sl@0: if(aPlayer->DurationL() < iPosition) sl@0: { sl@0: INFO_PRINTF2(_L("Longer than duration : Setting position to %d"), I64INT(iPosition.Int64())); sl@0: TRAP(err, aPlayer->SetPositionL(iPosition)); sl@0: if (err == KErrNotSupported) sl@0: { sl@0: INFO_PRINTF1(_L("SetPositionL() left with Error - KErrNotSupported")); sl@0: } sl@0: TRAP(err, pos = aPlayer->PositionL()); sl@0: if (err == KErrNotReady) sl@0: { sl@0: INFO_PRINTF1(_L("PositionL() left with Error - KErrNotReady")); sl@0: } sl@0: INFO_PRINTF3(_L("Set Position = %d (if clipped : %d)"), I64INT(pos.Int64()), I64INT(aPlayer->DurationL().Int64())); sl@0: } sl@0: sl@0: // Position is negative, so check that the value is clipped. sl@0: else if (I64INT(iPosition.Int64()) < 0) sl@0: { sl@0: INFO_PRINTF2(_L("Negative value : Setting position to %d"), I64INT(iPosition.Int64())); sl@0: TRAP(err, aPlayer->SetPositionL(iPosition)); sl@0: if (err == KErrNotSupported) sl@0: { sl@0: INFO_PRINTF1(_L("SetPositionL() left with Error - KErrNotSupported")); sl@0: } sl@0: TRAP(err, pos = aPlayer->PositionL()); sl@0: if (err == KErrNotReady) sl@0: { sl@0: INFO_PRINTF1(_L("PositionL() left with Error - KErrNotReady")); sl@0: } sl@0: INFO_PRINTF2(_L("Set : position = %d (if clipped : 0)"), I64INT(pos.Int64())); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Normal : Setting position to %d"), I64INT(iPosition.Int64())); sl@0: TRAP(err, aPlayer->SetPositionL(iPosition)); sl@0: if (err == KErrNotSupported) sl@0: { sl@0: INFO_PRINTF1(_L("SetPositionL() left with Error - KErrNotSupported")); sl@0: } sl@0: TRAP(err, pos = aPlayer->PositionL()); sl@0: if (err == KErrNotReady) sl@0: { sl@0: INFO_PRINTF1(_L("PositionL() left with Error - KErrNotReady")); sl@0: } sl@0: INFO_PRINTF3(_L("Set : position = %d (if clipped : %d)"), I64INT(pos.Int64()), I64INT(iPosition.Int64())); sl@0: } sl@0: sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: aPlayer->Play(); sl@0: sl@0: sl@0: TRAP(err, pos = aPlayer->PositionL()); sl@0: if (err != KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("PositionL() left with Error - %d"), err); sl@0: ret = EFail; sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: sl@0: // sl@0: // RTestVclntPriority sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntPriority::Constructor sl@0: */ sl@0: RTestVclntPriority::RTestVclntPriority(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, const TInt aPriority) sl@0: : RTestVclntPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, EFalse) sl@0: { sl@0: iPriority = aPriority; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntRecordAviFile::Constructor sl@0: */ sl@0: RTestVclntPriority* RTestVclntPriority::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, const TInt aPriority) sl@0: { sl@0: RTestVclntPriority* self = new (ELeave) RTestVclntPriority(aTestName, aSectName, aKeyName, aExpectedError, aPriority); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntRecordAviFile::Constructor sl@0: */ sl@0: TVerdict RTestVclntPriority::DoTestL(CVideoPlayerUtility* aPlayer) sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("Test : Video Player - Priority")); sl@0: sl@0: aPlayer->SetPriorityL(iPriority, EMdaPriorityPreferenceNone); sl@0: TInt thePriority = 0; sl@0: TMdaPriorityPreference thePref; sl@0: aPlayer->PriorityL(thePriority, thePref); sl@0: INFO_PRINTF3(_L("Priority = %d (expecting %d)"), thePriority, iPriority); sl@0: INFO_PRINTF3(_L("Pref = %d (expecting %d)"), thePref, EMdaPriorityPreferenceNone); sl@0: sl@0: if( (thePriority == iPriority) && (thePref == EMdaPriorityPreferenceNone) ) sl@0: { sl@0: ret = EPass; sl@0: } sl@0: sl@0: CActiveScheduler::Stop(); sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: sl@0: // sl@0: // RTestVclntDuration sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntDuration::Constructor sl@0: */ sl@0: RTestVclntDuration::RTestVclntDuration(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, const TTimeIntervalMicroSeconds aDuration) sl@0: : RTestVclntPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, EFalse) sl@0: { sl@0: iDuration = aDuration; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntDuration::Constructor sl@0: */ sl@0: RTestVclntDuration* RTestVclntDuration::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, const TTimeIntervalMicroSeconds aDuration) sl@0: { sl@0: RTestVclntDuration* self = new (ELeave) RTestVclntDuration(aTestName, aSectName, aKeyName, aExpectedError, aDuration); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntDuration::Constructor sl@0: */ sl@0: TVerdict RTestVclntDuration::DoTestL(CVideoPlayerUtility* aPlayer) sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("Test : Video Player - Duration")); sl@0: sl@0: if (I64INT(iDuration.Int64()) == 0) sl@0: { sl@0: TInt duration = I64INT(aPlayer->DurationL().Int64()); sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: aPlayer->Play(); sl@0: TTime start; sl@0: start.HomeTime(); sl@0: CActiveScheduler::Start(); sl@0: TTime stop; sl@0: stop.HomeTime(); sl@0: sl@0: TUint actualDuration = I64INT(stop.MicroSecondsFrom(start).Int64()); sl@0: sl@0: INFO_PRINTF6(_L("Error : %d Start = %d Stop = %d Duration = %d ActualDuration = %d"), sl@0: iError, I64INT(start.Int64()), I64INT(stop.Int64()), duration, actualDuration); sl@0: if((iError == KErrNone) && (TimeComparison(actualDuration, duration, KExpectedDeviation))) sl@0: { sl@0: ret = EPass; sl@0: } sl@0: } sl@0: else sl@0: { sl@0: if(aPlayer->DurationL() == iDuration) sl@0: { sl@0: ret = EPass; sl@0: } sl@0: } sl@0: sl@0: CActiveScheduler::Stop(); sl@0: TInt error=UserSvr::HalFunction(EHalGroupVM,EVMHalSetCacheSize,(TAny*)iCurrentCacheSize.iMinSize,(TAny*)iCurrentCacheSize.iMaxSize); sl@0: if(CheckCacheError(error)==EInconclusive) sl@0: { sl@0: return EInconclusive; sl@0: } sl@0: INFO_PRINTF3(_L("Setting Cache Min Size to %d,Setting Cache Max Size is %d"),iCurrentCacheSize.iMinSize,iCurrentCacheSize.iMaxSize); sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict RTestVclntDuration::SetCacheSize() sl@0: { sl@0: TVerdict ret=EPass; sl@0: //save the default cache sizes, set the cache size back these values after the test sl@0: TInt error=UserSvr::HalFunction(EHalGroupVM,EVMHalGetCacheSize,&iCurrentCacheSize,0); sl@0: ret=CheckCacheError(error); sl@0: if(ret==EPass) sl@0: { sl@0: error=UserSvr::HalFunction(EHalGroupVM,EVMHalSetCacheSize,(TAny*)KCacheSize,(TAny*)KMaxCacheSize); sl@0: ret=CheckCacheError(error); sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: TVerdict RTestVclntDuration::CheckCacheError(TInt aError) sl@0: { sl@0: TVerdict verdict=EPass; 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: return EInconclusive; 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: return EInconclusive; sl@0: } sl@0: #endif sl@0: return verdict; sl@0: } sl@0: sl@0: // sl@0: // RTestVclntVolume sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntVolume::Constructor sl@0: */ sl@0: RTestVclntVolume::RTestVclntVolume(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, const TInt aVolume) sl@0: : RTestVclntPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, EFalse) sl@0: { sl@0: iVolume = aVolume; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntVolume::Constructor sl@0: */ sl@0: RTestVclntVolume* RTestVclntVolume::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, const TInt aVolume) sl@0: { sl@0: RTestVclntVolume* self = new (ELeave) RTestVclntVolume(aTestName, aSectName, aKeyName, aExpectedError, aVolume); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntVolume::Constructor sl@0: */ sl@0: TVerdict RTestVclntVolume::DoTestL(CVideoPlayerUtility* aPlayer) sl@0: { sl@0: TVerdict ret = EFail; sl@0: TInt err; sl@0: sl@0: INFO_PRINTF1(_L("Test : Video Player - Volume")); sl@0: sl@0: // see if audio is enabled sl@0: if (aPlayer->AudioEnabledL()) sl@0: { sl@0: INFO_PRINTF1(_L("AudioEnabledL() returned True")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("AudioEnabledL() returned False")); sl@0: } sl@0: sl@0: // Check maxvolume function sl@0: if(iVolume == -1) sl@0: { sl@0: iVolume = aPlayer->MaxVolume(); sl@0: TRAP(err, aPlayer->SetVolumeL(iVolume)); sl@0: INFO_PRINTF2(_L("Volume should be set to Max Volume. Returned with %d"), err); sl@0: INFO_PRINTF3(_L("Volume = %d (expecting %d)"), aPlayer->Volume(), aPlayer->MaxVolume()); sl@0: if(aPlayer->Volume() == aPlayer->MaxVolume()) sl@0: { sl@0: ret = EPass; sl@0: } sl@0: } sl@0: // Volume should truncated to maxvolume sl@0: else if(iVolume > aPlayer->MaxVolume()) sl@0: { sl@0: TRAP(err, aPlayer->SetVolumeL(iVolume)); sl@0: INFO_PRINTF2(_L("Volume should be set to Max Volume. Returned with %d"), err); sl@0: INFO_PRINTF3(_L("Volume = %d, MaxVolume = %d"), aPlayer->Volume(), aPlayer->MaxVolume()); sl@0: if(aPlayer->Volume() == aPlayer->MaxVolume()) sl@0: { sl@0: ret = EPass; sl@0: } sl@0: } sl@0: // Volume is truncated to 0 sl@0: else if(iVolume < 0) sl@0: { sl@0: TRAP(err, aPlayer->SetVolumeL(iVolume)); sl@0: INFO_PRINTF2(_L("Volume should be set to Min Volume.Returned with %d"), err); sl@0: INFO_PRINTF2(_L("Volume = %d (expecting 0)"), aPlayer->Volume()); sl@0: if(aPlayer->Volume() == 0) sl@0: { sl@0: ret = EPass; sl@0: } sl@0: } sl@0: // Set volume and check sl@0: else sl@0: { sl@0: TRAP(err, aPlayer->SetVolumeL(iVolume)); sl@0: INFO_PRINTF2(_L("Volume should be set to the desired value. Retuned with %d"), err); sl@0: INFO_PRINTF3(_L("Volume = %d (expecting %d)"), aPlayer->Volume(), iVolume); sl@0: if(aPlayer->Volume() == iVolume) sl@0: { sl@0: ret = EPass; sl@0: } sl@0: } sl@0: sl@0: CActiveScheduler::Stop(); sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: // sl@0: // RTestVclntCloseOpen sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntCloseOpen::Constructor sl@0: */ sl@0: RTestVclntCloseOpen::RTestVclntCloseOpen(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: : RTestVclntPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, EFalse) sl@0: { sl@0: iOpenCount = 1; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntCloseOpen::Constructor sl@0: */ sl@0: RTestVclntCloseOpen* RTestVclntCloseOpen::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: { sl@0: RTestVclntCloseOpen* self = new (ELeave) RTestVclntCloseOpen(aTestName, aSectName, aKeyName, aExpectedError); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntCloseOpen::DoTestStepL sl@0: */ sl@0: TVerdict RTestVclntCloseOpen::DoTestStepL() sl@0: { sl@0: // Call the state handler from IDLE state sl@0: FsmL(EVPIdle); 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: * RTestVclntCloseOpen::FsmL sl@0: */ sl@0: void RTestVclntCloseOpen::FsmL(TVclntTestPlayEvents aEventCode) sl@0: { sl@0: if (FsmCheck(aEventCode)) sl@0: { sl@0: switch (aEventCode) sl@0: { sl@0: case EVPIdle: sl@0: // Open iVideoPlayer First time sl@0: iOpenCount = 1; sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL(%S)"), &iFilename); sl@0: TRAP(iError,iVideoPlayer->OpenFileL(iFilename, ControllerUid())); sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: break; sl@0: case EVPOpenComplete: sl@0: if (iOpenCount == 1) sl@0: { sl@0: // Prepare iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Prepare()")); sl@0: iVideoPlayer->Prepare(); sl@0: PrepareState(EVPPrepareComplete, KErrNone); sl@0: } sl@0: else sl@0: { sl@0: CActiveScheduler::Stop(); sl@0: iTestStepResult = EPass; sl@0: break; sl@0: } sl@0: break; sl@0: case EVPPrepareComplete: sl@0: // Close iVideoPlayer sl@0: CActiveScheduler::Stop(); sl@0: INFO_PRINTF1(_L("iVideoPlayer->Close()")); sl@0: iVideoPlayer->Close(); sl@0: User::After(KOneSecond); sl@0: // Open iVideoPlayer Second time sl@0: iOpenCount = 2; sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL(%S)"), &iFilename); sl@0: iVideoPlayer->OpenFileL(iFilename, ControllerUid()); sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: CActiveScheduler::Start(); sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: sl@0: // sl@0: // RTestVclntPause sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntPause::Constructor sl@0: */ sl@0: RTestVclntPause::RTestVclntPause(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: : RTestVclntPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError,EFalse) sl@0: {} sl@0: sl@0: /** sl@0: * RTestVclntPause::NewL sl@0: */ sl@0: RTestVclntPause* RTestVclntPause::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: { sl@0: RTestVclntPause* self = new (ELeave) RTestVclntPause(aTestName, aSectName, aKeyName, aExpectedError); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPause::DoTestStepL sl@0: */ sl@0: TVerdict RTestVclntPause::DoTestStepL() sl@0: { sl@0: // Call the state handler from IDLE state sl@0: FsmL(EVPIdle); 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: * RTestVclntPause::FsmL sl@0: */ sl@0: void RTestVclntPause::FsmL(TVclntTestPlayEvents aEventCode) sl@0: { sl@0: TTime stop; sl@0: TTime start = NULL; sl@0: sl@0: if (FsmCheck(aEventCode)) sl@0: { sl@0: switch (aEventCode) sl@0: { sl@0: case EVPIdle: sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename); sl@0: TRAP(iError, iVideoPlayer->OpenFileL(iFilename, ControllerUid())); sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: break; sl@0: case EVPOpenComplete: 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: case EVPPrepareComplete: sl@0: // Play iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: iVideoPlayer->Play(); sl@0: // Pause iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Pause()")); sl@0: TRAPD(err,iVideoPlayer->PauseL()); sl@0: if (err == KErrNotSupported) sl@0: { sl@0: INFO_PRINTF1(_L("Pause not supported presently")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Pause() returns with error : %d"),err); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: // Stop iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Stop()")); sl@0: iVideoPlayer->Stop(); sl@0: // Get the duration of the file. sl@0: iPlayerDuration = I64INT(iVideoPlayer->DurationL().Int64()); sl@0: // Resume play iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: iVideoPlayer->Play(); sl@0: // Note the start time sl@0: start.HomeTime(); sl@0: break; sl@0: case EVPPlayComplete: sl@0: // Note the stop time sl@0: stop.HomeTime(); sl@0: // Get the actual duration sl@0: iActualDuration = I64INT(stop.MicroSecondsFrom(start).Int64()); sl@0: INFO_PRINTF6(_L("Error : %d Start = %d Stop = %d PlayerDuration = %d ActualDuration = %d"), sl@0: iError, I64INT(start.Int64()), I64INT(stop.Int64()), iPlayerDuration, iActualDuration); sl@0: // Check the results sl@0: if((iError == KErrNone) && (TimeComparison(iActualDuration, iPlayerDuration, KExpectedDeviation))) sl@0: { sl@0: iTestStepResult = EPass; sl@0: } sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: sl@0: // sl@0: // RTestVclntBalance sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntBalance::Constructor sl@0: */ sl@0: RTestVclntBalance::RTestVclntBalance(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, const TInt aBalance) sl@0: : RTestVclntPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, EFalse) sl@0: { sl@0: iBalance = aBalance; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntBalance::NewL sl@0: */ sl@0: RTestVclntBalance* RTestVclntBalance::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, const TInt aBalance) sl@0: { sl@0: RTestVclntBalance* self = new (ELeave) RTestVclntBalance(aTestName, aSectName, aKeyName, aExpectedError, aBalance); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntBalance::DoTestL sl@0: */ sl@0: TVerdict RTestVclntBalance::DoTestL(CVideoPlayerUtility* aPlayer) sl@0: { sl@0: TVerdict ret = EFail; sl@0: TInt err = KErrNone; sl@0: sl@0: INFO_PRINTF1(_L("Test : Video Player - Balance")); sl@0: sl@0: // see if audio is enabled sl@0: if (aPlayer->AudioEnabledL()) sl@0: { sl@0: INFO_PRINTF1(_L("AudioEnabledL() returned True")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("AudioEnabledL() returned False")); sl@0: } sl@0: sl@0: // set the balance sl@0: TRAP(err, aPlayer->SetBalanceL(iBalance)); sl@0: INFO_PRINTF2(_L("SetBalanceL() left with Error - %d"), err); sl@0: sl@0: // check for the valid balance sl@0: if (iBalance < KMinBalance) sl@0: { sl@0: INFO_PRINTF3(_L("Balance = %d (expecting %d)"), aPlayer->Balance(), KMinBalance); sl@0: if(aPlayer->Balance() == KMinBalance) sl@0: { sl@0: ret = EPass; sl@0: } sl@0: } sl@0: else if (iBalance > KMaxBalance) sl@0: { sl@0: INFO_PRINTF3(_L("Balance = %d (expecting %d)"), aPlayer->Balance(), KMaxBalance); sl@0: if(aPlayer->Balance() == KMaxBalance) sl@0: { sl@0: ret = EPass; sl@0: } sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF3(_L("Balance = %d (expecting %d)"), aPlayer->Balance(), iBalance); sl@0: if(aPlayer->Balance() == iBalance) sl@0: { sl@0: ret = EPass; sl@0: } sl@0: } sl@0: sl@0: CActiveScheduler::Stop(); sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: sl@0: // sl@0: // RTestVclntPlayWindow sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntPlayWindow::Constructor sl@0: */ sl@0: RTestVclntPlayWindow::RTestVclntPlayWindow(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, const TTimeIntervalMicroSeconds aStart, const TTimeIntervalMicroSeconds aEnd) sl@0: : RTestVclntPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, EFalse) sl@0: { sl@0: iStart = aStart; sl@0: iEnd = aEnd; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayWindow::Constructor sl@0: */ sl@0: RTestVclntPlayWindow* RTestVclntPlayWindow::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, const TTimeIntervalMicroSeconds aStart, const TTimeIntervalMicroSeconds aEnd) sl@0: { sl@0: RTestVclntPlayWindow* self = new (ELeave) RTestVclntPlayWindow(aTestName, aSectName, aKeyName, aExpectedError, aStart, aEnd); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayWindow::Constructor sl@0: */ sl@0: TVerdict RTestVclntPlayWindow::DoTestL(CVideoPlayerUtility* aPlayer) sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("Test : Video Player - Window")); sl@0: sl@0: TPoint rectOrigin(10, 10); sl@0: TSize rectSize(176, 144); sl@0: TRect rect(rectOrigin, rectSize); sl@0: sl@0: TPoint clipOrigin(10, 10); sl@0: TSize clipSize(176, 144); sl@0: TRect clipRect(clipOrigin, clipSize); sl@0: sl@0: // first call tests creation of display instance sl@0: TRAPD(err, aPlayer->SetDisplayWindowL(iWs, *iScreen, *iWindow, rect, clipRect)); sl@0: INFO_PRINTF1(_L("Test : Made first call to SetDisplayWindowL()")); sl@0: if(err) sl@0: { sl@0: ERR_PRINTF2(_L("First call to SetDisplayWindowL() failed, error %d"), err); sl@0: CActiveScheduler::Stop(); sl@0: return EFail; sl@0: } sl@0: sl@0: // second call tests update of display instance sl@0: TRAP(err, aPlayer->SetDisplayWindowL(iWs, *iScreen, *iWindow, rect, clipRect)); sl@0: INFO_PRINTF1(_L("Test : Made second call to SetDisplayWindowL()")); sl@0: if(err) sl@0: { sl@0: ERR_PRINTF2(_L("Second call to SetDisplayWindowL() failed, error %d"), err); sl@0: ret = EFail; sl@0: } sl@0: else sl@0: { sl@0: ret = EPass; sl@0: } sl@0: sl@0: CActiveScheduler::Stop(); sl@0: return ret; sl@0: } sl@0: sl@0: sl@0: // sl@0: // RTestVclntMeta sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntMeta::Constructor sl@0: */ sl@0: RTestVclntMeta::RTestVclntMeta(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: : RTestVclntPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, EFalse) sl@0: {} sl@0: sl@0: /** sl@0: * RTestVclntMeta::Constructor sl@0: */ sl@0: RTestVclntMeta* RTestVclntMeta::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: { sl@0: RTestVclntMeta* self = new (ELeave) RTestVclntMeta(aTestName, aSectName, aKeyName, aExpectedError); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntMeta::Constructor sl@0: */ sl@0: TVerdict RTestVclntMeta::DoTestL(CVideoPlayerUtility* aPlayer) sl@0: { sl@0: INFO_PRINTF1(_L("Test : Video Player - Metadata")); sl@0: sl@0: CActiveScheduler::Stop(); sl@0: sl@0: // there are zero meta entries now. sl@0: TInt numOfMeta = -1; sl@0: TRAPD(err, numOfMeta = aPlayer->NumberOfMetaDataEntriesL() ); sl@0: INFO_PRINTF3(_L("Error : %d Entries = %d"), err, numOfMeta); sl@0: if (err != KErrNotSupported || numOfMeta != -1) sl@0: { sl@0: return EFail; sl@0: } sl@0: sl@0: // attempt to get an entry when no entry exists. sl@0: CMMFMetaDataEntry* theEntry=NULL; sl@0: TRAP(err, theEntry = aPlayer->MetaDataEntryL(1)); sl@0: INFO_PRINTF2(_L("Error : %d"), err); sl@0: if (err != KErrNotSupported) sl@0: { sl@0: return EFail; sl@0: } sl@0: else sl@0: { sl@0: delete theEntry; sl@0: return EPass; sl@0: } sl@0: } sl@0: sl@0: sl@0: // sl@0: // RTestVclntFrameSize sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntFrameSize::Constructor sl@0: */ sl@0: RTestVclntFrameSize::RTestVclntFrameSize(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: : RTestVclntPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, EFalse) sl@0: { sl@0: iFrameSize.iWidth = 0; sl@0: iFrameSize.iHeight = 0; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntFrameSize::NewL sl@0: */ sl@0: RTestVclntFrameSize* RTestVclntFrameSize::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: { sl@0: RTestVclntFrameSize* self = new (ELeave) RTestVclntFrameSize(aTestName, aSectName, aKeyName, aExpectedError); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntFrameSize::DoTestL sl@0: */ sl@0: TVerdict RTestVclntFrameSize::DoTestL(CVideoPlayerUtility* aPlayer) sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("Test : Video Player - Get Frame Size")); sl@0: TInt err; sl@0: TRAP(err, aPlayer->VideoFrameSizeL(iFrameSize)); sl@0: sl@0: INFO_PRINTF4(_L("Error : %d, Frame size : (%d, %d)"), err, iFrameSize.iWidth, iFrameSize.iHeight); sl@0: if (err == KErrNone && iFrameSize.iWidth >= 0 && iFrameSize.iHeight >= 0 ) sl@0: { sl@0: ret = EPass; sl@0: } sl@0: sl@0: CActiveScheduler::Stop(); sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: // sl@0: // RTestVclntMimeType sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntMimeType::Constructor sl@0: */ sl@0: RTestVclntMimeType::RTestVclntMimeType(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: : RTestVclntPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError,EFalse) sl@0: { sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntMimeType::Constructor sl@0: */ sl@0: RTestVclntMimeType* RTestVclntMimeType::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: { sl@0: RTestVclntMimeType* self = new (ELeave) RTestVclntMimeType(aTestName, aSectName, aKeyName, aExpectedError); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntMimeType::Constructor sl@0: */ sl@0: TVerdict RTestVclntMimeType::DoTestL(CVideoPlayerUtility* aPlayer) sl@0: { sl@0: sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("Test : Video Player - MimeType")); sl@0: sl@0: // Get the Video Mime type sl@0: TPtrC8 mimeType = aPlayer->VideoFormatMimeType(); sl@0: sl@0: // take it to a 16-bit string sl@0: TBuf<64> mimeType16; sl@0: mimeType16.Copy(mimeType); sl@0: INFO_PRINTF2(_L("Mime type : \'%S\'"), &mimeType16); sl@0: sl@0: // Check if its valid sl@0: if (mimeType16.Compare(_L("XVID")) == 0) sl@0: { sl@0: INFO_PRINTF1(_L("MIME Types match")); sl@0: ret = EPass; sl@0: } sl@0: sl@0: CActiveScheduler::Stop(); sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: // sl@0: // RTestVclntScale sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntScale::Constructor sl@0: */ sl@0: RTestVclntScale::RTestVclntScale(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: : RTestVclntPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError,EFalse) sl@0: { sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntScale::Constructor sl@0: */ sl@0: RTestVclntScale* RTestVclntScale::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: { sl@0: RTestVclntScale* self = new (ELeave) RTestVclntScale(aTestName, aSectName, aKeyName, aExpectedError); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntScale::Constructor sl@0: */ sl@0: TVerdict RTestVclntScale::DoTestL(CVideoPlayerUtility* aPlayer) sl@0: { sl@0: INFO_PRINTF1(_L("Test : Video Player - Scale Values test")); sl@0: sl@0: CActiveScheduler::Stop(); sl@0: sl@0: // Set the scale factor using values set #1 sl@0: INFO_PRINTF1(_L("iVideoPlayer->SetScaleFactorL() #1")); sl@0: TRAPD(err, aPlayer->SetScaleFactorL(100, 100, ETrue)); sl@0: sl@0: #ifdef SYMBIAN_BUILD_GCE sl@0: TInt expected = iBinaryCompatibility || !GCEAvailable() ? KErrNotSupported : KErrNone; sl@0: #else sl@0: TInt expected = KErrNotSupported; sl@0: #endif sl@0: sl@0: if (err != expected) sl@0: { sl@0: ERR_PRINTF2(_L("iVideoPlayer->SetScaleFactorL() encountered error : %d"), err); sl@0: return EFail; sl@0: } sl@0: sl@0: return EPass; sl@0: } sl@0: sl@0: // sl@0: // RTestVclntCrop sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntCrop::Constructor sl@0: */ sl@0: RTestVclntCrop::RTestVclntCrop(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: : RTestVclntPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError,EFalse) sl@0: { sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntCrop::Constructor sl@0: */ sl@0: RTestVclntCrop* RTestVclntCrop::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: { sl@0: RTestVclntCrop* self = new (ELeave) RTestVclntCrop(aTestName, aSectName, aKeyName, aExpectedError); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntCrop::Constructor sl@0: */ sl@0: TVerdict RTestVclntCrop::DoTestL(CVideoPlayerUtility* aPlayer) sl@0: { sl@0: TRect cropRegion(KCropRegionRectLeft, KCropRegionRectTop, KCropRegionRectRight, KCropRegionRectBottom); sl@0: TRect region; sl@0: sl@0: INFO_PRINTF1(_L("Test : Video Player - Crop Values")); sl@0: sl@0: CActiveScheduler::Stop(); sl@0: sl@0: // Set the Crop Region sl@0: INFO_PRINTF1(_L("iVideoPlayer->SetCropRegionL()")); sl@0: TRAPD(err, aPlayer->SetCropRegionL(cropRegion)); sl@0: sl@0: #ifdef SYMBIAN_BUILD_GCE sl@0: TInt expected = iBinaryCompatibility || !GCEAvailable() ? KErrNotSupported : KErrNone; sl@0: #else sl@0: TInt expected = KErrNotSupported; sl@0: #endif sl@0: sl@0: if (err != expected) sl@0: { sl@0: ERR_PRINTF2(_L("iVideoPlayer->SetCropRegionL() encountered error : %d"), err); sl@0: return EFail; sl@0: } sl@0: sl@0: return EPass; sl@0: } sl@0: sl@0: #ifdef SYMBIAN_BUILD_GCE sl@0: sl@0: RTestVclntAutoScale::RTestVclntAutoScale(const TDesC& aTestName) sl@0: : RTestVclntPlayAviFile(aTestName, KNullDesC, KNullDesC, KErrNone, EFalse) sl@0: { sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntCrop::Constructor sl@0: */ sl@0: RTestVclntAutoScale* RTestVclntAutoScale::NewL(const TDesC& aTestName) sl@0: { sl@0: RTestVclntAutoScale* self = new (ELeave) RTestVclntAutoScale(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntCrop::Constructor sl@0: */ sl@0: TVerdict RTestVclntAutoScale::DoTestL(CVideoPlayerUtility* aPlayer) sl@0: { sl@0: INFO_PRINTF1(_L("Test : Video Player - AutoScale Values")); sl@0: sl@0: CActiveScheduler::Stop(); sl@0: sl@0: // Set auto scale sl@0: INFO_PRINTF1(_L("iVideoPlayer->SetAutoScaleL()")); sl@0: TRAPD(err, aPlayer->SetAutoScaleL(EAutoScaleBestFit)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("iVideoPlayer->SetAutoScaleL() encountered error : %d"), err); sl@0: return EFail; sl@0: } sl@0: sl@0: TRAP(err, aPlayer->SetAutoScaleL(EAutoScaleNone)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("iVideoPlayer->SetAutoScaleL() encountered error : %d"), err); sl@0: return EFail; sl@0: } sl@0: sl@0: TRAP(err, aPlayer->SetAutoScaleL(EAutoScaleClip)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("iVideoPlayer->SetAutoScaleL() encountered error : %d"), err); sl@0: return EFail; sl@0: } sl@0: sl@0: TRAP(err, aPlayer->SetAutoScaleL(EAutoScaleStretch, EHorizontalAlignLeft, EVerticalAlignBottom)); sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("iVideoPlayer->SetAutoScaleL() encountered error : %d"), err); sl@0: return EFail; sl@0: } sl@0: sl@0: return EPass; sl@0: } sl@0: sl@0: #endif // SYMBIAN_BUILD_GCE sl@0: sl@0: // sl@0: // RTestVclntGetFrame sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntGetFrame::Constructor sl@0: */ sl@0: RTestVclntGetFrame::RTestVclntGetFrame(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TBool aUseIntentAPI) sl@0: : RTestVclntPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError, EFalse), iUseIntentAPI(aUseIntentAPI) sl@0: { sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntGetFrame::Constructor sl@0: */ sl@0: RTestVclntGetFrame* RTestVclntGetFrame::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TBool aUseIntentAPI) sl@0: { sl@0: RTestVclntGetFrame* self = new (ELeave) RTestVclntGetFrame(aTestName, aSectName, aKeyName, aExpectedError, aUseIntentAPI); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntGetFrame::DoTestStepL sl@0: */ sl@0: TVerdict RTestVclntGetFrame::DoTestStepL() sl@0: { sl@0: // Call the state handler from IDLE state sl@0: FsmL(EVPIdle); 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: * RTestVclntGetFrame::FsmL sl@0: */ sl@0: void RTestVclntGetFrame::FsmL(TVclntTestPlayEvents aEventCode) sl@0: { sl@0: if (FsmCheck(aEventCode)) sl@0: { sl@0: switch (aEventCode) sl@0: { sl@0: case EVPIdle: sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL(%S)"), &iFilename); sl@0: TRAP(iError,iVideoPlayer->OpenFileL(iFilename, ControllerUid())); sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: break; sl@0: case EVPOpenComplete: 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: case EVPPrepareComplete: sl@0: // Play iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: iVideoPlayer->Play(); sl@0: // Call GetFrameL sl@0: if (iUseIntentAPI) sl@0: { sl@0: INFO_PRINTF1(_L("iVideoPlayer->GetFrameL() with EPeek Intent")); sl@0: TRAP(iError, iVideoPlayer->GetFrameL(EColor16M, ContentAccess::EPeek)); sl@0: INFO_PRINTF2(_L("iVideoPlayer->GetFrameL() left with error - %d"), iError); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("iVideoPlayer->GetFrameL()")); sl@0: TRAP(iError, iVideoPlayer->GetFrameL(EColor16M)); sl@0: INFO_PRINTF2(_L("iVideoPlayer->GetFrameL() left with error - %d"), iError); sl@0: } sl@0: PrepareState(EVPFrameReady, KErrNone); sl@0: case EVPFrameReady: sl@0: // Stop iVideoPlayer sl@0: iVideoPlayer->Stop(); sl@0: CActiveScheduler::Stop(); sl@0: iTestStepResult = EPass; sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntGetFrame::MvpuoFrameReady sl@0: * Overriding the callback method here, to check the bitmap.. sl@0: */ sl@0: void RTestVclntGetFrame::MvpuoFrameReady(CFbsBitmap& aFrame, TInt aError) sl@0: { sl@0: if (aError!=KErrNone) sl@0: { sl@0: iError = aError; sl@0: } sl@0: else if (aFrame.Handle() == NULL || aFrame.SizeInPixels() != TSize(KFrameWidth, KFrameHeight) ) sl@0: { sl@0: iError = KErrArgument; sl@0: ERR_PRINTF1(_L("The Frame returned is either NULL or there is a mismatch in the size..")); sl@0: } sl@0: TRAP(iError, FsmL(EVPFrameReady)); sl@0: INFO_PRINTF2(_L("Error code : %d"),iError); sl@0: } sl@0: sl@0: sl@0: // sl@0: // RTestVclntRebuffering sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntRebuffering::Constructor sl@0: */ sl@0: RTestVclntRebuffering::RTestVclntRebuffering(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: : RTestVclntPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError,EFalse) sl@0: { sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntRebuffering::NewL sl@0: */ sl@0: RTestVclntRebuffering* RTestVclntRebuffering::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: { sl@0: RTestVclntRebuffering* self = new (ELeave) RTestVclntRebuffering(aTestName, aSectName, aKeyName, aExpectedError); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntRebuffering::DoTestL sl@0: */ sl@0: TVerdict RTestVclntRebuffering::DoTestL(CVideoPlayerUtility* aPlayer) sl@0: { sl@0: INFO_PRINTF1(_L("Test : Video Player - Rebuffering")); sl@0: sl@0: aPlayer->RegisterForVideoLoadingNotification(*this); sl@0: sl@0: INFO_PRINTF1(_L("Rebuffering request completed")); sl@0: sl@0: CActiveScheduler::Stop(); sl@0: sl@0: return EPass; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntRebuffering::MvloLoadingStarted sl@0: */ sl@0: void RTestVclntRebuffering::MvloLoadingStarted() sl@0: { sl@0: INFO_PRINTF1(_L("RTestVclntRebuffering::MvloLoadingStarted")); sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntRebuffering::MvloLoadingComplete sl@0: */ sl@0: void RTestVclntRebuffering::MvloLoadingComplete() sl@0: { sl@0: INFO_PRINTF1(_L("RTestVclntRebuffering::MvloLoadingComplete")); sl@0: } sl@0: sl@0: // sl@0: // RTestVclntRepeat sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntRepeat::Constructor sl@0: */ sl@0: RTestVclntRepeat::RTestVclntRepeat(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError,const TInt aRepeat) sl@0: : RTestVclntPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError,EFalse) sl@0: { sl@0: iRepeat = aRepeat; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntRepeat::NewL sl@0: */ sl@0: RTestVclntRepeat* RTestVclntRepeat::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError,const TInt aRepeat) sl@0: { sl@0: RTestVclntRepeat* self = new (ELeave) RTestVclntRepeat(aTestName, aSectName, aKeyName, aExpectedError, aRepeat); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntRepeat::DoTestL sl@0: */ sl@0: //The commented lines are kept for future implementation sl@0: sl@0: TVerdict RTestVclntRepeat::DoTestL(CVideoPlayerUtility* aPlayer) sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("Test : Video Player - Repeats")); sl@0: iRepeat = 1; sl@0: INFO_PRINTF1(_L("Warning : SetRepeats() does not exist in iVideoPlayer API. Repeat count set to 1")); sl@0: sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: aPlayer->Play(); sl@0: sl@0: CActiveScheduler::Start(); sl@0: sl@0: if(iError == KErrNotSupported || iRepeat == 1) sl@0: { sl@0: ret = EPass; sl@0: INFO_PRINTF2(_L("Repeat not supported currently : err : %d"),iError); sl@0: } sl@0: else sl@0: { sl@0: ret = EFail; sl@0: INFO_PRINTF2(_L("Returned with : err : %d"),iError); sl@0: } sl@0: sl@0: CActiveScheduler::Stop(); sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: // sl@0: // RTestVclntDelete sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntDelete::Constructor sl@0: */ sl@0: RTestVclntDelete::RTestVclntDelete(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: : RTestVclntPlayAviFile(aTestName, aSectName, aKeyName, aExpectedError,EFalse) sl@0: {} sl@0: sl@0: /** sl@0: * RTestVclntDelete::NewL sl@0: */ sl@0: RTestVclntDelete* RTestVclntDelete::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: { sl@0: RTestVclntDelete* self = new (ELeave) RTestVclntDelete(aTestName, aSectName, aKeyName, aExpectedError); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntDelete::DoTestStepL sl@0: */ sl@0: TVerdict RTestVclntDelete::DoTestStepL() sl@0: { sl@0: // Call the state handler from IDLE state sl@0: FsmL(EVPIdle); 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: * RTestVclntDelete::FsmL sl@0: */ sl@0: void RTestVclntDelete::FsmL(TVclntTestPlayEvents aEventCode) sl@0: { sl@0: if (FsmCheck(aEventCode)) sl@0: { sl@0: switch (aEventCode) sl@0: { sl@0: case EVPIdle: sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL(%S)"), &iFilename); sl@0: TRAP(iError,iVideoPlayer->OpenFileL(iFilename, ControllerUid())); sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: break; sl@0: case EVPOpenComplete: 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: case EVPPrepareComplete: sl@0: // Play iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: iVideoPlayer->Play(); sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: INFO_PRINTF1(_L("delete iVideoPlayer before Play completes")); sl@0: sl@0: iVideoPlayer = NULL; sl@0: delete iVideoPlayer; // destroy iVideoPlayer before play has completed 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: // RTestVclntPlayAviFileHandle sl@0: // sl@0: sl@0: /** sl@0: * RTestVclntPlayAviFileHandle::Constructor sl@0: */ sl@0: RTestVclntPlayAviFileHandle::RTestVclntPlayAviFileHandle(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError, const TBool aAlloc) sl@0: : RTestVclntAviPlayerStep(aTestName, aSectName, aKeyName, aExpectedError), iAlloc(aAlloc) sl@0: { sl@0: iIsOpen = EFalse; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayAviFileHandle::NewL sl@0: */ sl@0: RTestVclntPlayAviFileHandle* RTestVclntPlayAviFileHandle::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, const TBool aAlloc) sl@0: { sl@0: RTestVclntPlayAviFileHandle* self = new (ELeave) RTestVclntPlayAviFileHandle(aTestName, aSectName, aKeyName, aExpectedError, aAlloc); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayAviFileHandle::NewLC sl@0: */ sl@0: RTestVclntPlayAviFileHandle* RTestVclntPlayAviFileHandle::NewLC(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, const TBool aAlloc) sl@0: { sl@0: RTestVclntPlayAviFileHandle* self = new (ELeave) RTestVclntPlayAviFileHandle(aTestName, aSectName, aKeyName, aExpectedError, aAlloc); sl@0: CleanupStack::PushL(self); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayAviFileHandle::DoTestStepL() sl@0: */ sl@0: TVerdict RTestVclntPlayAviFileHandle::DoTestStepL() sl@0: { sl@0: if(SetCacheSize()!=KErrNone) sl@0: { sl@0: return EInconclusive; sl@0: } sl@0: sl@0: if (iAlloc) sl@0: { sl@0: TVerdict iAllocTestStepResult=EPass; sl@0: TInt err = KErrNone; sl@0: TBool result = EFalse; sl@0: sl@0: //>>>>>>>>>>>>>>>>>>>>>>>>Test Method Call<<<<<<<<<<<<<<<<<<<<<<<<<< sl@0: if( PerformTestStepL() != EPass ) sl@0: { sl@0: err = iError; sl@0: } sl@0: sl@0: if (err != KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("Test error, returned error code = %d"), err); sl@0: User::Leave(err); sl@0: } sl@0: else sl@0: { sl@0: //Check the iAllocTestStepResult sl@0: if (iAllocTestStepResult != EPass) sl@0: { sl@0: result = ETrue; sl@0: } sl@0: } sl@0: sl@0: TInt failCount = 1; sl@0: TBool completed = EFalse; sl@0: iAllocTestStepResult = EPass; // XXX check?? assume pass sl@0: TBool reachedEnd = EFalse; // Note: declare outside loop to help with debugging sl@0: for(;;) sl@0: { sl@0: __UHEAP_SETFAIL(RHeap::EFailNext, failCount); sl@0: __MM_HEAP_MARK; sl@0: sl@0: //INFO_PRINTF2(_L("CVideoPlayerUtility: Alloc Test Loop: %d"), failCount); sl@0: //>>>>>>>>>>>>>>>>>>>>>>>>Test Method Call<<<<<<<<<<<<<<<<<<<<<<<<<< sl@0: TVerdict verdict = EFail; sl@0: TRAP(err, verdict = PerformTestStepL()); sl@0: if (err == KErrNone && verdict != EPass) sl@0: { sl@0: err = iError; sl@0: } 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 == NULL) sl@0: { sl@0: reachedEnd = ETrue; sl@0: failCount -= 1; sl@0: } sl@0: else sl@0: { sl@0: User::Free(testAlloc); sl@0: } sl@0: sl@0: //Check the iAllocTestStepResult sl@0: if (iAllocTestStepResult != EPass) sl@0: { sl@0: result = ETrue; sl@0: } sl@0: sl@0: completed = reachedEnd || result; sl@0: } sl@0: else if (err != KErrNoMemory) // bad error code sl@0: { sl@0: completed = ETrue; sl@0: result = 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; // exit loop sl@0: } sl@0: sl@0: failCount++; sl@0: } sl@0: sl@0: failCount -= 1; // Failcount of 1 equates to 0 successful allocs, etc sl@0: sl@0: if (err != KErrNone || result) sl@0: { sl@0: iAllocTestStepResult = EFail; sl@0: TBuf<80> format; sl@0: if (result) sl@0: { sl@0: format.Format(_L(" Bad result with %d memory allocations tested\n"), failCount); sl@0: } sl@0: else sl@0: { sl@0: format.Format(_L(" Error(%d) with %d memory allocations tested\n"), err, failCount); sl@0: } sl@0: Log(format); sl@0: } sl@0: else sl@0: { sl@0: TBuf<80> format; sl@0: format.Format(_L(" Completed OK with %d memory allocations tested\n"), failCount); sl@0: Log(format); 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)!=KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Could not revert the cache size to default")); sl@0: iAllocTestStepResult=EInconclusive; sl@0: } sl@0: return iAllocTestStepResult; sl@0: } sl@0: else sl@0: { sl@0: return( PerformTestStepL() ); sl@0: } sl@0: } sl@0: sl@0: /** sl@0: * RTestVclntPlayAviFileHandle::PerformTestStepL() sl@0: */ sl@0: TVerdict RTestVclntPlayAviFileHandle::PerformTestStepL() sl@0: { sl@0: INFO_PRINTF1(_L("Test : Video Player - OpenFileL(RFile&)")); sl@0: sl@0: // Connect to RFs sl@0: User::LeaveIfError(iFs.Connect()); sl@0: User::LeaveIfError(iFs.ShareProtected()); sl@0: CleanupClosePushL(iFs); sl@0: sl@0: // Open RFile sl@0: User::LeaveIfError(iFile.Open(iFs, iFilename, EFileRead)); sl@0: CleanupClosePushL(iFile); sl@0: sl@0: // Call the state handler from IDLE state sl@0: iError = KErrNone; sl@0: PrepareState(EVPIdle, KErrNone); sl@0: FsmL(EVPIdle); sl@0: sl@0: // Start the scheduler - Done only once ! sl@0: CActiveScheduler::Start(); sl@0: sl@0: CleanupStack::PopAndDestroy(2); sl@0: sl@0: // Leave if the Expected error is KErrNone sl@0: if (iTestExpectedError == KErrNone) sl@0: { sl@0: User::LeaveIfError(iError); sl@0: } sl@0: sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: sl@0: /** sl@0: * RTestVclntPlayAviFileHandle::FsmL() sl@0: */ sl@0: void RTestVclntPlayAviFileHandle::FsmL(TVclntTestPlayEvents aEventCode) sl@0: { sl@0: if (FsmCheck(aEventCode)) sl@0: { sl@0: switch (aEventCode) sl@0: { sl@0: case EVPIdle: sl@0: // Open iVideoPlayer sl@0: if ((iTestStepName.Compare(_L("MM-MMF-VCLNTAVI-I-1013-HP")) == 0) || sl@0: (iTestStepName.Compare(_L("MM-MMF-VCLNTAVI-I-9113-HP")) == 0)) sl@0: { sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S with Invalid Controller UID"), &iFilename); sl@0: TRAP(iError, iVideoPlayer->OpenFileL(iFile, KVideoInvalidControllerUid)); sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() returned error - %d"), iError); sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename); sl@0: iVideoPlayer->OpenFileL(iFile, ControllerUid()); sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: } sl@0: break; sl@0: case EVPOpenComplete: sl@0: iIsOpen = ETrue; //-set iIsOpen flag (for closing Player, in case of Underflow)... sl@0: // Prepare iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Prepare()")); sl@0: PrepareState(EVPPrepareComplete, KErrNone); sl@0: iVideoPlayer->Prepare(); sl@0: break; sl@0: case EVPPrepareComplete: sl@0: // Play iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: iVideoPlayer->Play(); sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: break; sl@0: case EVPPlayComplete: sl@0: iVideoPlayer->Stop(); sl@0: iVideoPlayer->Close(); sl@0: CActiveScheduler::Stop(); sl@0: iTestStepResult = EPass; sl@0: break; sl@0: } sl@0: } sl@0: else if(iIsOpen) sl@0: { sl@0: iVideoPlayer->Close(); sl@0: } sl@0: } sl@0: sl@0: TInt RTestVclntPlayAviFileHandle::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 RTestVclntPlayAviFileHandle::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: // RTestVideoPlayCapabilityVelocity sl@0: // sl@0: sl@0: /** sl@0: RTestVideoPlayCapabilityVelocity::Constructor sl@0: */ sl@0: RTestVideoPlayCapabilityVelocity::RTestVideoPlayCapabilityVelocity(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError) sl@0: : RTestVclntAviPlayerStep(aTestName, aSectName, aKeyName, aExpectedError) sl@0: { ; sl@0: } sl@0: sl@0: /** sl@0: RTestVideoPlayCapabilityVelocity::NewL sl@0: */ sl@0: RTestVideoPlayCapabilityVelocity* RTestVideoPlayCapabilityVelocity::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: { sl@0: RTestVideoPlayCapabilityVelocity* self = new (ELeave) RTestVideoPlayCapabilityVelocity(aTestName, aSectName, aKeyName, aExpectedError); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: RTestVideoPlayCapabilityVelocity::DoTestStepL() sl@0: */ sl@0: TVerdict RTestVideoPlayCapabilityVelocity::DoTestStepL() sl@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: RTestVideoPlayCapabilityVelocity::FsmL() sl@0: */ sl@0: void RTestVideoPlayCapabilityVelocity::FsmL(TVclntTestPlayEvents aEventCode) sl@0: { sl@0: const TUint KVelocityDefault = 100; sl@0: const TUint KVelocityMinPositive = 1; sl@0: const TInt KVelocityMinNegative = -1; sl@0: const TUint KVelocityPositive = 200; sl@0: const TUint KVelocityBigPositive = 500; sl@0: const TInt KVelocityNegative = -200; sl@0: const TInt KVelocityBigNegative= -500; sl@0: //Set default value for PlayRateCapability sl@0: iVideoPlayRateCapabilities.iStepForward = 1; sl@0: iVideoPlayRateCapabilities.iPlayBackward = 0; sl@0: if (FsmCheck(aEventCode)) sl@0: { sl@0: TInt err; sl@0: switch (aEventCode) sl@0: { sl@0: case EVPIdle: sl@0: //Calling GetPlayRateCapabilitiesL() before opening should return KErrNotReady. sl@0: INFO_PRINTF1(_L("iVideoPlayer->GetPlayRateCapabilitiesL()")); sl@0: TRAP(err,iVideoPlayer->GetPlayRateCapabilitiesL(iVideoPlayRateCapabilities)); sl@0: if( err != KErrNotReady) sl@0: { sl@0: INFO_PRINTF2(_L("GetPlayRateCapabilitiesL returned wrong err= %d"), err); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: iPlayVelocity = KVelocityDefault; sl@0: //Calling SetPlayVelocityL() before opening should return KErrNotReady. sl@0: INFO_PRINTF2(_L("iVideoPlayer->SetPlayVelocityL(%d)"),iPlayVelocity); sl@0: TRAP(err, iVideoPlayer->SetPlayVelocityL(iPlayVelocity)); sl@0: if(KErrNotReady != err) sl@0: { sl@0: INFO_PRINTF2(_L("SetPlayVelocityL returned wrong err= %d"), err); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: sl@0: //calling PlayVelocityL before opening should result in error KErrNotReady sl@0: INFO_PRINTF1(_L("iVideoPlayer->PlayVelocityL()")); sl@0: TRAP(err, iPlayVelocity = iVideoPlayer->PlayVelocityL()); sl@0: if( err != KErrNotReady) sl@0: { sl@0: INFO_PRINTF2(_L("PlayVelocityL returned wrong err= %d"), err); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename); sl@0: iVideoPlayer->OpenFileL(iFilename); sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: break; sl@0: case EVPOpenComplete: sl@0: //Get playrate capabilities sl@0: INFO_PRINTF1(_L("iVideoPlayer->GetPlayRateCapabilitiesL()")); sl@0: TRAP(err,iVideoPlayer->GetPlayRateCapabilitiesL(iVideoPlayRateCapabilities)); sl@0: if( err != KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("GetPlayRateCapabilitiesL returned err= %d"), err); sl@0: INFO_PRINTF1(_L("invalid TPlayRateCapabilities")); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: INFO_PRINTF2(_L("iVideoPlayRateCapabilities.iPlayForward= %d"), iVideoPlayRateCapabilities.iPlayForward); sl@0: INFO_PRINTF2(_L("iVideoPlayRateCapabilities.iPlayBackward= %d"), iVideoPlayRateCapabilities.iPlayBackward); sl@0: INFO_PRINTF2(_L("iVideoPlayRateCapabilities.iStepForward= %d"), iVideoPlayRateCapabilities.iStepForward); sl@0: INFO_PRINTF2(_L("iVideoPlayRateCapabilities.iStepBackward= %d"), iVideoPlayRateCapabilities.iStepBackward); sl@0: if ((iVideoPlayRateCapabilities.iPlayForward != 0) && (iVideoPlayRateCapabilities.iPlayForward != 1)|| sl@0: (iVideoPlayRateCapabilities.iPlayBackward != 0) && (iVideoPlayRateCapabilities.iPlayBackward != 1)|| sl@0: (iVideoPlayRateCapabilities.iStepForward != 0) && (iVideoPlayRateCapabilities.iStepForward != 1)|| sl@0: (iVideoPlayRateCapabilities.iStepBackward != 0) && (iVideoPlayRateCapabilities.iStepBackward != 1) ) sl@0: { sl@0: INFO_PRINTF1(_L("invalid TPlayRateCapabilities")); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: sl@0: //Get default play velocity, it shall be 100. sl@0: INFO_PRINTF1(_L("iVideoPlayer->PlayVelocityL()")); sl@0: TRAP(err, iPlayVelocity = iVideoPlayer->PlayVelocityL()); sl@0: if( err != KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("PlayVelocityL returned err= %d"), err); sl@0: INFO_PRINTF1(_L("invalid TPlayRateCapabilities")); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: sl@0: if( iPlayVelocity != KVelocityDefault ) sl@0: { sl@0: INFO_PRINTF2(_L("invalid default play velocity =%d"), iPlayVelocity); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: sl@0: // Prepare iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Prepare()")); sl@0: PrepareState(EVPPrepareComplete, KErrNone); sl@0: iVideoPlayer->Prepare(); sl@0: break; sl@0: case EVPPrepareComplete: sl@0: //Try to set different play velocities and play. sl@0: INFO_PRINTF2(_L("iVideoPlayer->SetPlayVelocityL(%d)"),iPlayVelocity); sl@0: TRAP(err, iVideoPlayer->SetPlayVelocityL(iPlayVelocity)); sl@0: if(KErrNotSupported == err) sl@0: { sl@0: if(iVideoPlayRateCapabilities.iPlayForward || iVideoPlayRateCapabilities.iPlayBackward) sl@0: { sl@0: INFO_PRINTF2(_L("SetPlayVelocityL returned err= %d"), err); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: INFO_PRINTF1(_L("SetPlayVelocityL returned err KErrNotSupported")); sl@0: } sl@0: else if( err != KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("SetPlayVelocityL returned err= %d"), err); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: // Play iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: iVideoPlayer->Play(); sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: break; sl@0: case EVPPlayComplete: sl@0: //Try to set different play velocities and play. sl@0: if (iVideoPlayRateCapabilities.iPlayForward ) sl@0: { sl@0: if (iPlayVelocity == KVelocityDefault) sl@0: { sl@0: iPlayVelocity = KVelocityMinPositive; sl@0: } sl@0: else if(iPlayVelocity == KVelocityMinPositive) sl@0: { sl@0: iPlayVelocity = KVelocityPositive; sl@0: } sl@0: else if(iPlayVelocity == KVelocityPositive) sl@0: { sl@0: iPlayVelocity = KVelocityBigPositive; sl@0: } sl@0: } sl@0: if (iVideoPlayRateCapabilities.iPlayBackward ) sl@0: { sl@0: if (iPlayVelocity == KVelocityBigPositive) sl@0: { sl@0: iPlayVelocity = KVelocityMinNegative; sl@0: } sl@0: else if(iPlayVelocity == KVelocityMinNegative) sl@0: { sl@0: iPlayVelocity = KVelocityNegative; sl@0: } sl@0: else if(iPlayVelocity == KVelocityNegative) sl@0: { sl@0: iPlayVelocity = KVelocityBigNegative; sl@0: } sl@0: else if(iPlayVelocity == KVelocityBigNegative) sl@0: { sl@0: iVideoPlayer->Close(); sl@0: CActiveScheduler::Stop(); sl@0: iTestStepResult = EPass; sl@0: return; sl@0: } sl@0: } sl@0: sl@0: //Set next velocity sl@0: INFO_PRINTF2(_L("iVideoPlayer->SetPlayVelocityL(%d)"),iPlayVelocity); sl@0: TRAP(err,iVideoPlayer->SetPlayVelocityL(iPlayVelocity)); sl@0: if ( err == KErrNotSupported ) sl@0: { sl@0: INFO_PRINTF1(_L("iVideoPlayer->SetPlayVelocityL returned KErrNotSupported")); sl@0: if( (iPlayVelocity >0) && iVideoPlayRateCapabilities.iPlayForward) sl@0: { sl@0: INFO_PRINTF1(_L("PlayVelocity and capabilities are valid, still returned KErrNotSupported!!")); sl@0: User::Leave(err); sl@0: } sl@0: else if( (iPlayVelocity <0) && iVideoPlayRateCapabilities.iPlayBackward) sl@0: { sl@0: INFO_PRINTF1(_L("PlayVelocity and capabilities are valid still returned KErrNotSupported!!")); sl@0: User::Leave(err); sl@0: } sl@0: else sl@0: { sl@0: // Play The file once again to test with different play velocity. sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: iVideoPlayer->Play(); sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: } sl@0: } sl@0: else if (err != KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("iVideoPlayer->SetPlayVelocityL returned (%d)"),err); sl@0: User::Leave(err); sl@0: } sl@0: else //Success case sl@0: { sl@0: // Play The file once again to test with different play velocity. sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: iVideoPlayer->Play(); sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: } sl@0: sl@0: if ((!iVideoPlayRateCapabilities.iPlayForward ) && (!iVideoPlayRateCapabilities.iPlayBackward )) sl@0: { sl@0: INFO_PRINTF1(_L("Both forward and backward is not supported")); sl@0: INFO_PRINTF1(_L("Pass the test, error checking for API SetPlayVelocity is already done.")); sl@0: iVideoPlayer->Close(); sl@0: CActiveScheduler::Stop(); sl@0: iTestStepResult = EPass; sl@0: return; sl@0: } sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: sl@0: sl@0: // sl@0: // RTestVideoPlayStepFrame sl@0: // sl@0: sl@0: /** sl@0: RTestVideoPlayStepFrame::Constructor sl@0: */ sl@0: RTestVideoPlayStepFrame::RTestVideoPlayStepFrame(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError) sl@0: : RTestVclntAviPlayerStep(aTestName, aSectName, aKeyName, aExpectedError), iTimer(NULL) sl@0: { sl@0: } sl@0: sl@0: /** sl@0: RTestVideoPlayStepFrame::NewL sl@0: */ sl@0: RTestVideoPlayStepFrame* RTestVideoPlayStepFrame::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: { sl@0: RTestVideoPlayStepFrame* self = new (ELeave) RTestVideoPlayStepFrame(aTestName, aSectName, aKeyName, aExpectedError); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: RTestVideoPlayStepFrame::DoTestStepL() sl@0: */ sl@0: TVerdict RTestVideoPlayStepFrame::DoTestStepL() sl@0: { sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); 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: delete iTimer; sl@0: return iTestStepResult; sl@0: } sl@0: sl@0: /** sl@0: RTestVideoPlayStepFrame::FsmL() sl@0: */ sl@0: void RTestVideoPlayStepFrame::FsmL(TVclntTestPlayEvents aEventCode) sl@0: { sl@0: if (FsmCheck(aEventCode)) sl@0: { sl@0: TInt err = KErrNone; sl@0: TInt frame = 0xff; sl@0: TBool pauseSupported = ETrue; sl@0: const TUint KStepForwardZeroFrame = 0; sl@0: const TUint KStepForwardOneFrame = 1; sl@0: const TInt KStepBackwardOneFrame = -1; sl@0: const TUint KStepForwardFourFrames = 4; sl@0: const TInt KStepBackwardFourFrames = -4; sl@0: sl@0: switch (aEventCode) sl@0: { sl@0: case EVPIdle: sl@0: // Calling StepFrameL() before Opeing file should result KErrNotReady. sl@0: INFO_PRINTF2(_L("iVideoPlayer->StepFrameL(%d)"),1); sl@0: TRAP(err,iVideoPlayer->StepFrameL(1)); sl@0: if(err != KErrNotReady) sl@0: { sl@0: INFO_PRINTF2(_L("StepFrameL returned wrong err= %d"), KErrNotReady); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename); sl@0: iVideoPlayer->OpenFileL(iFilename); sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: break; sl@0: case EVPOpenComplete: sl@0: //Get playrate capabilities sl@0: INFO_PRINTF1(_L("iVideoPlayer->GetPlayRateCapabilitiesL()")); sl@0: TRAP(err,iVideoPlayer->GetPlayRateCapabilitiesL(iVideoPlayRateCapabilities)); sl@0: if( err != KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("GetPlayRateCapabilitiesL returned err= %d"), err); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: // Calling StepFrameL() in non-pause state should result KErrNotReady. sl@0: INFO_PRINTF2(_L("iVideoPlayer->StepFrameL(%d)"),1); sl@0: TRAP(err,iVideoPlayer->StepFrameL(1)); sl@0: if(err != KErrNotReady) sl@0: { sl@0: INFO_PRINTF2(_L("StepFrameL returned wrong err= %d"), KErrNotReady); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: sl@0: // Prepare iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Prepare()")); sl@0: PrepareState(EVPPrepareComplete, KErrNone); sl@0: iVideoPlayer->Prepare(); sl@0: break; sl@0: case EVPPrepareComplete: sl@0: // Play iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: iVideoPlayer->Play(); sl@0: sl@0: //wait for 1Second to pause the playback. sl@0: INFO_PRINTF1(_L("calling User::After(KOneSecond);")); sl@0: User::After(KOneSecond); sl@0: sl@0: /* sl@0: Pause the playback, if pause is not supported wait for play to complete. sl@0: In case of any other err fail the test with appropriate error code. sl@0: */ sl@0: TRAP(err, iVideoPlayer->PauseL()); sl@0: sl@0: if( err == KErrNotSupported) sl@0: { sl@0: pauseSupported = EFalse; sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: } sl@0: else if( err != KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("PauseL has returned error =%d"), err); sl@0: iVideoPlayer->Stop(); sl@0: iVideoPlayer->Close(); sl@0: CActiveScheduler::Stop(); sl@0: iTestStepResult = EFail; sl@0: return; sl@0: } sl@0: sl@0: INFO_PRINTF1(_L("Playback paused")); sl@0: sl@0: //Call StepFrameL with different step values. sl@0: while(1) sl@0: { sl@0: if( frame == 0xff) sl@0: frame = KStepForwardZeroFrame; sl@0: else if (frame == KStepForwardZeroFrame) sl@0: frame = KStepForwardOneFrame; sl@0: else if (frame == KStepForwardOneFrame) sl@0: frame = KStepForwardFourFrames; sl@0: else if (frame == KStepForwardFourFrames) sl@0: frame = KStepBackwardOneFrame; sl@0: else if (frame == KStepBackwardOneFrame) sl@0: frame = KStepBackwardFourFrames; sl@0: else if (frame == KStepBackwardFourFrames) sl@0: { sl@0: INFO_PRINTF1(_L("iVideoPlayer->Stop")); sl@0: iVideoPlayer->Stop(); sl@0: iVideoPlayer->Close(); sl@0: CActiveScheduler::Stop(); sl@0: iTestStepResult = EPass; sl@0: return; //Break the while loop sl@0: } sl@0: INFO_PRINTF2(_L("iVideoPlayer->StepFrameL(%d)"),frame); sl@0: TRAP(err,iVideoPlayer->StepFrameL(frame)); sl@0: if(err == KErrNotSupported) sl@0: { sl@0: if( ((iVideoPlayRateCapabilities.iStepForward) && (frame>0)) || sl@0: ((iVideoPlayRateCapabilities.iStepBackward) && (frame<0)) ) sl@0: { sl@0: INFO_PRINTF2(_L("StepFrameL returned wrong err= %d"), err); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: INFO_PRINTF1(_L("StepFrameL returned KErrNotSupported")); sl@0: continue; sl@0: } sl@0: else if( (err == KErrNotReady) && (!pauseSupported) ) sl@0: { sl@0: INFO_PRINTF1(_L("pause is not supported in controller plugin. Returned correct err(KErrNotReady)")); sl@0: continue; sl@0: } sl@0: else if( err != KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("StepFrameL returned err= %d"), err); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: break; sl@0: } sl@0: } sl@0: break; sl@0: case EVPPlayComplete: sl@0: INFO_PRINTF1(_L("Plyback completed before pausing!!")); sl@0: INFO_PRINTF1(_L("Video clip is too small to run this test step")); sl@0: INFO_PRINTF1(_L("iVideoPlayer->Stop")); sl@0: iVideoPlayer->Stop(); sl@0: iVideoPlayer->Close(); sl@0: CActiveScheduler::Stop(); sl@0: iTestStepResult = EInconclusive; sl@0: return; sl@0: } sl@0: } sl@0: } sl@0: sl@0: // sl@0: // RTestVideoPlayAudVidEnable. sl@0: // sl@0: sl@0: /** sl@0: * RTestVideoPlayAudVidEnable::Constructor sl@0: */ sl@0: RTestVideoPlayAudVidEnable::RTestVideoPlayAudVidEnable(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError) sl@0: : RTestVclntAviPlayerStep(aTestName, aSectName, aKeyName, aExpectedError) sl@0: { sl@0: } sl@0: sl@0: /** sl@0: * RTestVideoPlayAudVidEnable::NewL sl@0: */ sl@0: RTestVideoPlayAudVidEnable* RTestVideoPlayAudVidEnable::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: { sl@0: RTestVideoPlayAudVidEnable* self = new (ELeave) RTestVideoPlayAudVidEnable(aTestName, aSectName, aKeyName, aExpectedError); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVideoPlayAudVidEnable::DoTestStepL() sl@0: */ sl@0: TVerdict RTestVideoPlayAudVidEnable::DoTestStepL() sl@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: * RTestVideoPlayAudVidEnable::FsmL() sl@0: */ sl@0: void RTestVideoPlayAudVidEnable::FsmL(TVclntTestPlayEvents aEventCode) sl@0: { sl@0: if (FsmCheck(aEventCode)) sl@0: { sl@0: TInt err = KErrNone; sl@0: TBool enableFlag = EFalse; sl@0: sl@0: switch (aEventCode) sl@0: { sl@0: case EVPIdle: sl@0: //Calling SetAudioEnabledL() before opening file should return KErrNotReady sl@0: INFO_PRINTF1(_L("iVideoPlayer->SetAudioEnabledL()")); sl@0: TRAP(err, iVideoPlayer->SetAudioEnabledL(ETrue)); sl@0: if (err != KErrNotReady) sl@0: { sl@0: INFO_PRINTF2(_L("SetAudioEnabledL returned wrong error code= %d"), err); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: //Calling SetVideoEnabledL() before opening file should return KErrNotReady sl@0: INFO_PRINTF1(_L("iVideoPlayer->SetVideoEnabledL()")); sl@0: TRAP(err, iVideoPlayer->SetVideoEnabledL(ETrue)); sl@0: if (err != KErrNotReady) sl@0: { sl@0: INFO_PRINTF2(_L("SetVideoEnabledL returned wrong error code= %d"), err); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: //Calling VideoEnabledL() before opening file should return KErrNotReady sl@0: INFO_PRINTF1(_L("iVideoPlayer->VideoEnabledL()")); sl@0: TRAP(err, iVideoPlayer->VideoEnabledL()); sl@0: if(err != KErrNotReady) sl@0: { sl@0: INFO_PRINTF2(_L("VideoEnabledL returned wrong error code= %d"), err); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename); sl@0: iVideoPlayer->OpenFileL(iFilename); sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: break; sl@0: case EVPOpenComplete: sl@0: //Check that by default audio is enabled. sl@0: INFO_PRINTF1(_L("iVideoPlayer->AudioEnabledL()")); sl@0: TRAP(err,enableFlag = iVideoPlayer->AudioEnabledL()); sl@0: if( (err != KErrNone) || (enableFlag != (TBool)ETrue) ) sl@0: { sl@0: INFO_PRINTF3(_L("AudioEnabledL Leave err= %d, returned:%d"), err,enableFlag); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: sl@0: //Check that by default video is enabled. sl@0: INFO_PRINTF1(_L("iVideoPlayer->VideoEnabledL()")); sl@0: TRAP(err,enableFlag = iVideoPlayer->VideoEnabledL()); sl@0: if( (err != KErrNone) || (enableFlag != (TBool)ETrue) ) sl@0: { sl@0: INFO_PRINTF3(_L("VideoEnabledL Leave err= %d, returned:%d"), err,enableFlag); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: sl@0: //Try to disable audio, It shall leave with notsupported error. sl@0: INFO_PRINTF1(_L("iVideoPlayer->SetAudioEnabledL()")); sl@0: TRAP(err, iVideoPlayer->SetAudioEnabledL(ETrue)); sl@0: if (err != KErrNotSupported) sl@0: { sl@0: INFO_PRINTF2(_L("SetAudioEnabledL returned wrong error code= %d"), err); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: sl@0: //Try to disable video, It shall leave with notsupported error. sl@0: INFO_PRINTF1(_L("iVideoPlayer->SetVideoEnabledL()")); sl@0: TRAP(err, iVideoPlayer->SetVideoEnabledL(ETrue)); sl@0: if (err != KErrNotSupported) sl@0: { sl@0: INFO_PRINTF2(_L("SetVideoEnabledL returned wrong error code= %d"), err); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: sl@0: // Prepare iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Prepare()")); sl@0: PrepareState(EVPPrepareComplete, KErrNone); sl@0: iVideoPlayer->Prepare(); sl@0: break; sl@0: case EVPPrepareComplete: sl@0: //Enabling/disabling audio after prepare() shall return KErrNotSupported error. sl@0: INFO_PRINTF1(_L("iVideoPlayer->SetAudioEnabledL()")); sl@0: TRAP(err, iVideoPlayer->SetAudioEnabledL(ETrue)); sl@0: if(err != KErrNotSupported) sl@0: { sl@0: INFO_PRINTF2(_L("SetAudioEnabledL returned wrong error code= %d"), err); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: sl@0: //Enabling/disabling video after prepare() shll return KErrNotSupported error. sl@0: INFO_PRINTF1(_L("iVideoPlayer->SetVideoEnabledL()")); sl@0: TRAP(err, iVideoPlayer->SetVideoEnabledL(ETrue)); sl@0: if(err != KErrNotSupported) sl@0: { sl@0: INFO_PRINTF2(_L("SetVideoEnabledL returned wrong error code= %d"), err); sl@0: iTestStepResult = EFail; sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: sl@0: // Play iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: iVideoPlayer->Play(); sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: sl@0: //calling SetAudioEnabledL while playing should return KErrNotReady sl@0: INFO_PRINTF1(_L("iVideoPlayer->SetAudioEnabledL()")); sl@0: TRAP(err, iVideoPlayer->SetAudioEnabledL(ETrue)); sl@0: if (err != KErrNotReady) sl@0: { sl@0: INFO_PRINTF2(_L("SetAudioEnabledL returned wrong error code= %d"), err); sl@0: iTestStepResult = EFail; sl@0: iVideoPlayer->Stop(); sl@0: iVideoPlayer->Close(); sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: sl@0: //calling SetVideoEnabledL while playing should return KErrNotReady sl@0: INFO_PRINTF1(_L("iVideoPlayer->SetVideoEnabledL()")); sl@0: TRAP(err, iVideoPlayer->SetVideoEnabledL(ETrue)); sl@0: if (err != KErrNotReady) sl@0: { sl@0: INFO_PRINTF2(_L("SetVideoEnabledL returned wrong error code= %d"), err); sl@0: iTestStepResult = EFail; sl@0: iVideoPlayer->Stop(); sl@0: iVideoPlayer->Close(); sl@0: CActiveScheduler::Stop(); sl@0: return; sl@0: } sl@0: sl@0: break; sl@0: case EVPPlayComplete: sl@0: INFO_PRINTF1(_L("iVideoPlayer->Stop")); sl@0: iVideoPlayer->Stop(); sl@0: iVideoPlayer->Close(); 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: // RTestVideoPlayAutoScale. sl@0: // sl@0: sl@0: /** sl@0: * RTestVideoPlayAutoScale::Constructor sl@0: */ sl@0: RTestVideoPlayAutoScale::RTestVideoPlayAutoScale(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError) sl@0: : RTestVclntAviPlayerStep(aTestName, aSectName, aKeyName, aExpectedError) sl@0: { sl@0: } sl@0: sl@0: /** sl@0: * RTestVideoPlayAutoScale::NewL sl@0: */ sl@0: RTestVideoPlayAutoScale* RTestVideoPlayAutoScale::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) sl@0: { sl@0: RTestVideoPlayAutoScale* self = new (ELeave) RTestVideoPlayAutoScale(aTestName, aSectName, aKeyName, aExpectedError); sl@0: return self; sl@0: } sl@0: sl@0: /** sl@0: * RTestVideoPlayAutoScale::DoTestStepL() sl@0: */ sl@0: TVerdict RTestVideoPlayAutoScale::DoTestStepL() sl@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: * RTestVideoPlayAutoScale::FsmL() sl@0: */ sl@0: void RTestVideoPlayAutoScale::FsmL(TVclntTestPlayEvents aEventCode) sl@0: { sl@0: if (FsmCheck(aEventCode)) sl@0: { sl@0: TInt err = KErrNone; sl@0: TAutoScaleType scaleType = EAutoScaleNone; sl@0: THorizontalAlign horizontalAlign = EHorizontalAlignCenter; sl@0: TVerticalAlign verticalAlign = EVerticalAlignCenter; sl@0: sl@0: switch (aEventCode) sl@0: { sl@0: case EVPIdle: sl@0: //Calling SetAutoScaleL() before opening file should return KErrNotReady error. sl@0: INFO_PRINTF1(_L("Calling SetAutoScaleL(EAutoScaleNone);")); sl@0: TRAP(err, iVideoPlayer->SetAutoScaleL(EAutoScaleNone)); sl@0: if( err != KErrNotReady) sl@0: { sl@0: INFO_PRINTF2(_L("SetAutoScaleL() returned wrong error=%d"),err); sl@0: CActiveScheduler::Stop(); sl@0: iTestStepResult = EFail; sl@0: return; sl@0: } sl@0: sl@0: // Open iVideoPlayer sl@0: INFO_PRINTF2(_L("iVideoPlayer->OpenFileL() %S"), &iFilename); sl@0: iVideoPlayer->OpenFileL(iFilename); sl@0: PrepareState(EVPOpenComplete, KErrNone); sl@0: break; sl@0: case EVPOpenComplete: sl@0: // Prepare iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Prepare()")); sl@0: PrepareState(EVPPrepareComplete, KErrNone); sl@0: iVideoPlayer->Prepare(); sl@0: break; sl@0: case EVPPrepareComplete: sl@0: // Play iVideoPlayer sl@0: INFO_PRINTF1(_L("iVideoPlayer->Play()")); sl@0: iVideoPlayer->Play(); sl@0: PrepareState(EVPPlayComplete, KErrNone); sl@0: sl@0: /* sl@0: Wait for 1/4th of a second each time and call SetAutoScaleL multiple times sl@0: with different scale parameters. sl@0: This loop tests only "void SetAutoScaleL(TAutoScaleType aScaleType);" sl@0: */ sl@0: sl@0: while(1) sl@0: { sl@0: switch(scaleType) sl@0: { sl@0: case EAutoScaleNone: sl@0: scaleType = EAutoScaleBestFit; sl@0: break; sl@0: case EAutoScaleBestFit: sl@0: scaleType = EAutoScaleClip; sl@0: break; sl@0: case EAutoScaleClip: sl@0: scaleType = EAutoScaleStretch; sl@0: break; sl@0: case EAutoScaleStretch: sl@0: scaleType = EAutoScaleNone; sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("calling User::After(KOneSecond/4);")); sl@0: User::After(KOneSecond/4); sl@0: sl@0: INFO_PRINTF1(_L("Calling SetAutoScaleL();")); sl@0: TRAP(err, iVideoPlayer->SetAutoScaleL(scaleType)); sl@0: sl@0: #ifdef SYMBIAN_BUILD_GCE sl@0: const TInt KExpected = GCEAvailable() ? KErrNone : KErrNotSupported; sl@0: #else sl@0: const TInt KExpected = KErrNotSupported; sl@0: #endif sl@0: sl@0: if( err == KExpected) sl@0: { sl@0: INFO_PRINTF3(_L("SetAutoScaleL(%d) successfully returned %d"), scaleType, err); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF4(_L("SetAutoScaleL(%d) returned error= %d. Expected %d"),scaleType, err, KExpected); sl@0: INFO_PRINTF1(_L("iVideoPlayer->Stop")); sl@0: iVideoPlayer->Stop(); sl@0: iVideoPlayer->Close(); sl@0: CActiveScheduler::Stop(); sl@0: iTestStepResult = EFail; sl@0: return; sl@0: } sl@0: if( scaleType == EAutoScaleNone ) sl@0: { sl@0: break;//Break the forever while loop; sl@0: } sl@0: } sl@0: sl@0: /* sl@0: Wait for half second each time and call SetAutoScaleL multiple times sl@0: with all combinations of TAutoScaleType, THorizontalAlign, and TVerticalAlign. sl@0: */ sl@0: sl@0: while(1) sl@0: { sl@0: switch(scaleType) sl@0: { sl@0: case EAutoScaleNone: sl@0: scaleType = EAutoScaleBestFit; sl@0: break; sl@0: case EAutoScaleBestFit: sl@0: scaleType = EAutoScaleClip; sl@0: break; sl@0: case EAutoScaleClip: sl@0: scaleType = EAutoScaleStretch; sl@0: break; sl@0: case EAutoScaleStretch: sl@0: scaleType = EAutoScaleNone; sl@0: break; sl@0: } sl@0: while(1) sl@0: { sl@0: if( horizontalAlign == EHorizontalAlignCenter) sl@0: { sl@0: horizontalAlign = EHorizontalAlignLeft; sl@0: } sl@0: else if( horizontalAlign == EHorizontalAlignLeft) sl@0: { sl@0: horizontalAlign = EHorizontalAlignRight; sl@0: } sl@0: else if( horizontalAlign == EHorizontalAlignRight) sl@0: { sl@0: horizontalAlign = EHorizontalAlignCenter; sl@0: } sl@0: while(1) sl@0: { sl@0: if( verticalAlign == EVerticalAlignCenter) sl@0: { sl@0: verticalAlign = EVerticalAlignTop; sl@0: } sl@0: else if( verticalAlign == EVerticalAlignTop) sl@0: { sl@0: verticalAlign = EVerticalAlignBottom; sl@0: } sl@0: else if( verticalAlign == EVerticalAlignBottom) sl@0: { sl@0: verticalAlign = EVerticalAlignCenter; sl@0: } sl@0: sl@0: INFO_PRINTF1(_L("calling User::After(KOneSecond/4);")); sl@0: User::After(KOneSecond/4); sl@0: err = KErrNone; sl@0: sl@0: INFO_PRINTF1(_L("Calling SetAutoScaleL();")); sl@0: TRAP(err, iVideoPlayer->SetAutoScaleL(scaleType,horizontalAlign,verticalAlign)); sl@0: if( err == KErrNotSupported) sl@0: { sl@0: INFO_PRINTF4(_L("SetAutoScaleL(%d,%d, %d) returned KErrNotSupported"),scaleType, horizontalAlign,verticalAlign); sl@0: } sl@0: else if( err == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Success calling SetAutoScaleL()")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF3(_L("SetAutoScaleL(%d) returned error= %d"),scaleType, err); sl@0: INFO_PRINTF1(_L("iVideoPlayer->Stop")); sl@0: iVideoPlayer->Stop(); sl@0: iVideoPlayer->Close(); sl@0: CActiveScheduler::Stop(); sl@0: iTestStepResult = EFail; sl@0: return; sl@0: } sl@0: sl@0: if( verticalAlign == EVerticalAlignCenter ) sl@0: { sl@0: break;//Break the forever while loop; sl@0: } sl@0: } sl@0: if( horizontalAlign == EHorizontalAlignCenter ) sl@0: { sl@0: break;//Break the forever while loop; sl@0: } sl@0: } sl@0: if( scaleType == EAutoScaleNone ) sl@0: { sl@0: break;//Break the forever while loop; sl@0: } sl@0: } sl@0: sl@0: INFO_PRINTF1(_L("iVideoPlayer->Stop")); sl@0: iVideoPlayer->Stop(); sl@0: iVideoPlayer->Close(); sl@0: CActiveScheduler::Stop(); sl@0: iTestStepResult = EPass; sl@0: break; sl@0: case EVPPlayComplete: sl@0: INFO_PRINTF1(_L("Clip is too small to run the test")); sl@0: INFO_PRINTF1(_L("iVideoPlayer->Stop")); sl@0: iVideoPlayer->Stop(); sl@0: iVideoPlayer->Close(); sl@0: CActiveScheduler::Stop(); sl@0: iTestStepResult = EInconclusive; sl@0: break; sl@0: } sl@0: } sl@0: }