sl@0: // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: sl@0: #ifndef TSU_MMF_AVICTRLPLAY_H sl@0: #define TSU_MMF_AVICTRLPLAY_H sl@0: sl@0: #include "tsu_mmf_avictrl_teststep.h" sl@0: sl@0: #ifdef SYMBIAN_BUILD_GCE sl@0: #include sl@0: #endif // SYMBIAN_BUILD_GCE sl@0: #define KMaxChunks 50 //The maximum chunks that can be allocated sl@0: //Has been adjusted such that we dont need higher than this sl@0: sl@0: /** sl@0: This class tests playing an avi file completely and checks for sl@0: playcompletion event with KErrNone from the aviplaycontroller. sl@0: */ sl@0: class RTestStepAviPlayCtrlPlay : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlPlay(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL( ); sl@0: }; sl@0: /** sl@0: This class tests setting the volume on AviPlayController in Stopped, Primed and Playing states sl@0: and checks if the volume set is same as the volume got. sl@0: */ sl@0: class RTestStepAviPlayCtrlVolume : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlVolume(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL( ); sl@0: }; sl@0: sl@0: /** sl@0: This class tests setting the PlayBalance on AviPlayController in Stopped, Primed and Playing states sl@0: and checks if the PlayBalance set is same as the PlayBalance got. sl@0: */ sl@0: class RTestStepAviPlayCtrlPlayBalance : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlPlayBalance(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL( ); sl@0: }; sl@0: sl@0: /** sl@0: This class tests the duration of the file using AviPlayController. sl@0: */ sl@0: class RTestStepAviPlayCtrlDuration : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlDuration(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL( ); sl@0: }; sl@0: sl@0: /** sl@0: This class tests pause functionality of AviPlayController in Stopped, Primed and Playing states and checks sl@0: if the play starts from the current position during playing state. sl@0: */ sl@0: class RTestStepAviPlayCtrlPause : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlPause(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL( ); sl@0: }; sl@0: sl@0: /** sl@0: This class tests stop functionality of AviPlayController in Stopped, Primed and Playing sl@0: states and checks if the play starts from the initial position during playing state sl@0: */ sl@0: class RTestStepAviPlayCtrlStop : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlStop(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL( ); sl@0: }; sl@0: sl@0: /** sl@0: This class tests to set and get the crop region using AviPlayController. sl@0: */ sl@0: class RTestStepAviPlayCtrlSetGetCropRegion : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlSetGetCropRegion(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL( ); sl@0: }; sl@0: sl@0: /** sl@0: This class tests to set and get the framerate of the file using AviPlayController. sl@0: */ sl@0: class RTestStepAviPlayCtrlSetGetFrameRate : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlSetGetFrameRate(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL( ); sl@0: }; sl@0: sl@0: /** sl@0: This class tests to get the frame size using AviPlayController. sl@0: */ sl@0: class RTestStepAviPlayCtrlGetFrameSize : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlGetFrameSize(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL( ); sl@0: }; sl@0: sl@0: /** sl@0: This class tests to get the audio codec installed in the file using AviPlayController. sl@0: */ sl@0: class RTestStepAviPlayCtrlGetAudioDataType : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlGetAudioDataType(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL( ); sl@0: }; sl@0: sl@0: /** sl@0: This class tests to get the video codec installed in the file using AviPlayController. sl@0: */ sl@0: class RTestStepAviPlayCtrlGetVideoDataType : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlGetVideoDataType(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL( ); sl@0: }; sl@0: sl@0: /** sl@0: This class tests metadata support of the AviPlayController. sl@0: */ sl@0: class RTestStepAviPlayCtrlMetaData : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlMetaData(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL( ); sl@0: }; sl@0: sl@0: /** sl@0: This class tests Rotation api of the AviPlayController. sl@0: */ sl@0: class RTestStepAviPlayCtrlSetGetRotation : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlSetGetRotation(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL( ); sl@0: }; sl@0: /** sl@0: This class tests Rotation api of the AviPlayController. sl@0: */ sl@0: class RTestStepAviPlayCtrlSetGetScaling : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlSetGetScaling(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL( ); sl@0: }; sl@0: sl@0: /** sl@0: This class tests Position api of the AviPlayController. sl@0: */ sl@0: class RTestStepAviPlayCtrlSetPosition : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlSetPosition(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL( ); sl@0: }; sl@0: sl@0: /** sl@0: This class tests getting video bit rate of the AviPlayController. sl@0: */ sl@0: class RTestStepAviPlayCtrlGetVideoBitrate : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlGetVideoBitrate(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL( ); sl@0: }; sl@0: sl@0: /** sl@0: This class tests getting audio bit rate of the AviPlayController. sl@0: */ sl@0: class RTestStepAviPlayCtrlGetAudioBitrate : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlGetAudioBitrate(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL( ); sl@0: }; sl@0: sl@0: /** sl@0: This class tests for direct screen access of aviplaycontroller sl@0: */ sl@0: class RTestStepAviCtrlDirectScreenAccess : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviCtrlDirectScreenAccess(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL(void); sl@0: }; sl@0: sl@0: /** sl@0: This class tests for Play window property for .avi play controller sl@0: */ sl@0: class RTestStepAviCtrlSetPlayWindow : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviCtrlSetPlayWindow(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL(void); sl@0: }; sl@0: sl@0: //Negative Tests sl@0: sl@0: /** sl@0: This class tests opening an invalid file using AviPlayController. sl@0: */ sl@0: class RTestStepAviCtrlPlayInvalid : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviCtrlPlayInvalid(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepPreambleL(void); sl@0: virtual TVerdict DoTestStepL(void); sl@0: }; sl@0: sl@0: /** sl@0: This class tests for volume and balance when audio is not enabled in the file. sl@0: */ sl@0: class RTestStepAviCtrlNotAudioEnabled : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviCtrlNotAudioEnabled(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL(void); sl@0: }; sl@0: sl@0: /** sl@0: This class tests playing an avi file on primary or secondary screen depending on the screen number set during its sl@0: construction and checks for playcompletion event with KErrNone from the aviplaycontroller. sl@0: */ sl@0: class RTestStepAviPlayCtrlSetScrnPlay : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlSetScrnPlay(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid, TInt aScreenNumber); sl@0: virtual TVerdict DoTestStepPreambleL(void); sl@0: virtual TVerdict DoTestStepL(void); sl@0: protected: sl@0: //from MMMFControllerEventMonitorObserver sl@0: void HandleEvent(const TMMFEvent& aEvent); sl@0: public: sl@0: TInt iScreenNumber; sl@0: }; sl@0: sl@0: /** sl@0: This class tests setting an invalid screen id on AviPlayController. sl@0: */ sl@0: class RTestStepAviPlayCtrlSetInvalidScrn : public RTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlSetInvalidScrn(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid, TInt aScreenNumber); sl@0: virtual TVerdict DoTestStepPreambleL(void); sl@0: virtual TVerdict DoTestStepL(void); sl@0: public: sl@0: TInt iScreenNumber; sl@0: }; sl@0: sl@0: /** sl@0: This class tests setting the invalid screen id after adding the datasink to the AviPlayController. sl@0: It resets the controller and adds the datasink for the secondtime and expects KErrNotSupported. sl@0: */ sl@0: class RTestStepAviPlayCtrlAddDataSinkTwice : public RTestStepAviPlayCtrlSetScrnPlay sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlAddDataSinkTwice(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid, TInt aScreenNumber); sl@0: virtual TVerdict DoTestStepPreambleL(void); sl@0: virtual TVerdict DoTestStepL(void); sl@0: }; sl@0: sl@0: sl@0: /** sl@0: This class tests playing an avi file when the xvid decoder finds low memory sl@0: conditions. The codec will inform back to the controlller that a fatal error sl@0: occured. After that, the memory conditions are returned back to normal and the sl@0: video playback is restarted to demonstrate that DevVideo is recreated after the sl@0: failure and that the video is played succesfully. sl@0: */ sl@0: class RTestStepAviPlayNotEnoughMemoryForXvidCodecHeap : sl@0: public RAsyncTestStepAviCtrlPlayBase, sl@0: public MMMFControllerEventMonitorObserver sl@0: sl@0: { sl@0: public: sl@0: static const TUint KMaxFreeRamForTest = 0x4fff00; // 5-32k MB, this is adjusted sl@0: // to leave just enough sl@0: // memory for the xvid sl@0: // decoder to fail sl@0: sl@0: public: sl@0: RTestStepAviPlayNotEnoughMemoryForXvidCodecHeap( sl@0: const TDesC& aTestName, const TDesC& aSectName, sl@0: const TDesC& aKeyName, TUid aControllerUid); sl@0: sl@0: // from RAsyncTestStep sl@0: void KickoffTestL(); sl@0: void CloseTest(); sl@0: sl@0: protected: sl@0: sl@0: // from MMMFControllerEventMonitorObserver sl@0: void HandleEvent(const TMMFEvent& aEvent); sl@0: sl@0: // Call backs sl@0: static TInt AllocChunkCallBack(TAny* aPtr); sl@0: void DoAllocChunkCallBack(); sl@0: static TInt PrimeControllerCallBack(TAny* aPtr); sl@0: void DoPrimeControllerCallBack(); sl@0: static TInt PlayControllerCallBack(TAny* aPtr); sl@0: void DoPlayControllerCallBack(); sl@0: static TInt ReturnChunckAndStopControllerCallBack(TAny* aPtr); sl@0: void DoReturnChunckAndStopControllerCallBack(); sl@0: sl@0: sl@0: protected: sl@0: sl@0: // Set of states for simple state machine sl@0: enum TTestState sl@0: { sl@0: EStateDefault, sl@0: EStateLoadKickoffTestLComplete, sl@0: EStateAllocChunkCallBackComplete, sl@0: EStatePrimeControllerCallBackComplete1, sl@0: EStatePlayControllerCallBackComplete1, sl@0: EStateReturnChunckAndStopControllerCallBackComplete, sl@0: EStatePrimeControllerCallBackComplete2, sl@0: EStatePlayControllerCallBackComplete2 sl@0: }; sl@0: sl@0: TTestState iTestState; sl@0: RChunk iRChunk[KMaxChunks]; sl@0: TInt iNumAllocatedChunks; sl@0: CAsyncCallBack* iKickoff01; sl@0: CAsyncCallBack* iKickoff02; sl@0: CAsyncCallBack* iKickoff03; sl@0: CAsyncCallBack* iKickoff04; sl@0: CAsyncCallBack* iKickoff05; sl@0: CAsyncCallBack* iKickoff06; sl@0: }; sl@0: sl@0: /** sl@0: This class tests OOM situation on several controller functions. sl@0: (e.g. AddSource/Sink) sl@0: */ sl@0: class RTestStepAviPlayCtrlMemAlloc1 : public RTestStepAviCtrlBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlMemAlloc1(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL( ); sl@0: protected: sl@0: //from MMMFControllerEventMonitorObserver sl@0: void HandleEvent(const TMMFEvent& aEvent); sl@0: }; sl@0: sl@0: /** sl@0: This class tests OOM situation on several controller functions. sl@0: (e.g. Prime) sl@0: */ sl@0: class RTestStepAviPlayCtrlMemAlloc2 : public RTestStepAviCtrlBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlMemAlloc2(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL( ); sl@0: protected: sl@0: //from MMMFControllerEventMonitorObserver sl@0: void HandleEvent(const TMMFEvent& aEvent); sl@0: }; sl@0: sl@0: /** sl@0: This class tests OOM situation on several controller functions. sl@0: (e.g. Prime) sl@0: */ sl@0: class RTestStepAviPlayCtrlMemAlloc3 : public RTestStepAviCtrlBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlMemAlloc3(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: virtual TVerdict DoTestStepL( ); sl@0: protected: sl@0: //from MMMFControllerEventMonitorObserver sl@0: void HandleEvent(const TMMFEvent& aEvent); sl@0: }; sl@0: sl@0: #ifdef SYMBIAN_BUILD_GCE sl@0: // Surface support positive tests: sl@0: sl@0: /** sl@0: Test surface support in the AVI play controller. It enables surfaces, adds a rendering sl@0: target display, gets the surface parameter, updates the display and finally removes the display. sl@0: */ sl@0: class RTestStepAviPlayCtrlSurfaceSupport : public RAsyncTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlSurfaceSupport(const TDesC& aTestName, const TDesC& aSecName, const TDesC& aKeyName, TUid aControllerUid); sl@0: sl@0: // from RAsyncTestStep sl@0: virtual void KickoffTestL(); sl@0: virtual void CloseTest(); sl@0: sl@0: // from MMMFControllerEventMonitorObserver sl@0: virtual void HandleEvent(const TMMFEvent& aEvent); sl@0: sl@0: private: sl@0: virtual TVerdict CheckTestResult(); sl@0: sl@0: // Call back functions sl@0: static TInt UseSurfacesCallBack(TAny* aPtr); sl@0: void DoUseSurfacesCallBack(); sl@0: sl@0: static TInt PrimeControllerCallBack(TAny* aPtr); sl@0: void DoPrimeControllerCallBack(); sl@0: sl@0: static TInt PlayControllerCallBack(TAny* aPtr); sl@0: void DoPlayControllerCallBack(); sl@0: sl@0: private: sl@0: TBool iSurfaceCreated; sl@0: TSurfaceId iSurfaceId; sl@0: sl@0: CAsyncCallBack* iKickoffUseSurfaces; sl@0: CAsyncCallBack* iKickoffUseSurfaces2; sl@0: CAsyncCallBack* iKickoffPrimeController; sl@0: CAsyncCallBack* iKickoffPlayController; sl@0: sl@0: RMMFVideoPlaySurfaceSupportCustomCommands iVpsCommands; sl@0: }; sl@0: sl@0: // Surface support negative tests: sl@0: sl@0: /** sl@0: Test surface support in the AVI play controller. We expect a failure when we call surface removed sl@0: without first callng UseSurfaces. sl@0: */ sl@0: class RTestStepAviPlayCtrlSurfaceRemovedNoUS : public RAsyncTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlSurfaceRemovedNoUS(const TDesC& aTestName, const TDesC& aSecName, const TDesC& aKeyName, TUid aControllerUid); sl@0: sl@0: // from RAsyncTestStep sl@0: virtual void KickoffTestL(); sl@0: virtual void CloseTest(); sl@0: sl@0: private: sl@0: // Call back functions sl@0: static TInt SurfaceRemovedCallBack(TAny* aPtr); sl@0: void DoSurfaceRemovedCallBack(); sl@0: sl@0: private: sl@0: CAsyncCallBack* iKickoffSurfaceRemoved; sl@0: sl@0: TSurfaceId iSurfaceId; sl@0: sl@0: RMMFVideoPlaySurfaceSupportCustomCommands iVpsCommands; sl@0: }; sl@0: sl@0: /** sl@0: Test surface support in the AVI play controller. We expect a failure when we get the surface parameters sl@0: without first callng UseSurfaces. sl@0: */ sl@0: class RTestStepAviPlayCtrlGetSurfaceParametersNoUS : public RAsyncTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlGetSurfaceParametersNoUS(const TDesC& aTestName, const TDesC& aSecName, const TDesC& aKeyName, TUid aControllerUid); sl@0: sl@0: // from RAsyncTestStep sl@0: virtual void KickoffTestL(); sl@0: virtual void CloseTest(); sl@0: sl@0: private: sl@0: // Call back functions sl@0: static TInt GetSurfaceParametersCallBack(TAny* aPtr); sl@0: void DoGetSurfaceParametersCallBack(); sl@0: sl@0: private: sl@0: CAsyncCallBack* iKickoffGetSurfaceParameters; sl@0: sl@0: RMMFVideoPlaySurfaceSupportCustomCommands iVpsCommands; sl@0: }; sl@0: sl@0: /** sl@0: Test surface support in the AVI play controller. We expect a failure when we call surface removed sl@0: after callng UseSurfaces with a null surface Id sl@0: */ sl@0: class RTestStepAviPlayCtrlSurfaceRemovedNullSurfaceId : public RAsyncTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlSurfaceRemovedNullSurfaceId(const TDesC& aTestName, const TDesC& aSecName, const TDesC& aKeyName, TUid aControllerUid); sl@0: sl@0: // from RAsyncTestStep sl@0: virtual void KickoffTestL(); sl@0: virtual void CloseTest(); sl@0: sl@0: private: sl@0: // Call back functions sl@0: static TInt SurfaceRemovedCallBack(TAny* aPtr); sl@0: void DoSurfaceRemovedCallBack(); sl@0: static TInt UseSurfacesCallBack(TAny* aPtr); sl@0: void DoUseSurfacesCallBack(); sl@0: sl@0: private: sl@0: CAsyncCallBack* iKickoffSurfaceRemoved; sl@0: CAsyncCallBack* iKickoffUseSurfaces; sl@0: sl@0: TSurfaceId iSurfaceId; sl@0: sl@0: RMMFVideoPlaySurfaceSupportCustomCommands iVpsCommands; sl@0: }; sl@0: sl@0: /** sl@0: Test surface support in the AVI play controller. We expect a failure when we call surface removed sl@0: after calling UseSurfaces with an invalid surface Id sl@0: */ sl@0: class RTestStepAviPlayCtrlSurfaceRemovedInvalidSurfaceId : public RAsyncTestStepAviCtrlPlayBase sl@0: { sl@0: public: sl@0: RTestStepAviPlayCtrlSurfaceRemovedInvalidSurfaceId(const TDesC& aTestName, const TDesC& aSecName, const TDesC& aKeyName, TUid aControllerUid); sl@0: sl@0: // from RAsyncTestStep sl@0: virtual void KickoffTestL(); sl@0: virtual void CloseTest(); sl@0: sl@0: private: sl@0: // Call back functions sl@0: static TInt SurfaceRemovedCallBack(TAny* aPtr); sl@0: void DoSurfaceRemovedCallBack(); sl@0: static TInt UseSurfacesCallBack(TAny* aPtr); sl@0: void DoUseSurfacesCallBack(); sl@0: sl@0: private: sl@0: CAsyncCallBack* iKickoffSurfaceRemoved; sl@0: CAsyncCallBack* iKickoffUseSurfaces; sl@0: sl@0: TSurfaceId iSurfaceId; sl@0: sl@0: RMMFVideoPlaySurfaceSupportCustomCommands iVpsCommands; sl@0: }; sl@0: sl@0: #endif // SYMBIAN_BUILD_GCE sl@0: sl@0: #ifdef SYMBIAN_MULTIMEDIA_SUBTITLE_SUPPORT sl@0: sl@0: /** sl@0: * MM-MMF-AVICTRL-U-0100-HP sl@0: */ sl@0: class RAsyncTestSubtitlePlay : public RAsyncTestStepSubtitleBase sl@0: { sl@0: public: sl@0: RAsyncTestSubtitlePlay(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: sl@0: private: sl@0: // From RAsyncTestStepSubtitleBase sl@0: void OnOpenCompleteL(); sl@0: void OnPlayCompleteL(); sl@0: }; sl@0: sl@0: /** sl@0: * MM-MMF-AVICTRL-U-0101-HP sl@0: */ sl@0: class RAsyncTestSubtitleUpdateConfig : public RAsyncTestStepSubtitleBase sl@0: { sl@0: public: sl@0: RAsyncTestSubtitleUpdateConfig(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: sl@0: private: sl@0: // From RAsyncTestStepSubtitleBase sl@0: void OnOpenCompleteL(); sl@0: void OnPlayCompleteL(); sl@0: }; sl@0: sl@0: class CCallBackTimer : public CTimer sl@0: { sl@0: public: sl@0: static CCallBackTimer* NewL(const TCallBack& aCallBack, TInt aPriority); sl@0: sl@0: protected: sl@0: void RunL(); sl@0: sl@0: private: sl@0: CCallBackTimer(const TCallBack& aCallBack, TInt aPriority); sl@0: sl@0: private: sl@0: TCallBack iCallBack; sl@0: }; sl@0: sl@0: /** sl@0: * MM-MMF-AVICTRL-U-0102-HP sl@0: */ sl@0: class RAsyncTestSubtitleUpdateDuring : public RAsyncTestStepSubtitleBase sl@0: { sl@0: public: sl@0: RAsyncTestSubtitleUpdateDuring(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: sl@0: //From RAsyncTestStep sl@0: void KickoffTestL(); sl@0: void CloseTest(); sl@0: sl@0: private: sl@0: // From RAsyncTestStepSubtitleBase sl@0: void OnOpenCompleteL(); sl@0: void OnPlayCompleteL(); sl@0: sl@0: static TInt DuringPlaybackCallBack(TAny* aPtr); sl@0: void OnDuringPlayback(); sl@0: sl@0: private: sl@0: CCallBackTimer* iCallBackTimer; sl@0: TBool iHasUpdated; sl@0: }; sl@0: sl@0: /** sl@0: * MM-MMF-AVICTRL-U-0103-HP sl@0: */ sl@0: class RAsyncTestSubtitleRemoveAdd : public RAsyncTestStepSubtitleBase sl@0: { sl@0: public: sl@0: RAsyncTestSubtitleRemoveAdd(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: sl@0: private: sl@0: // From RAsyncTestStepSubtitleBase sl@0: void OnOpenCompleteL(); sl@0: void OnPlayCompleteL(); sl@0: }; sl@0: sl@0: /** sl@0: * MM-MMF-AVICTRL-U-0200-HP sl@0: */ sl@0: class RAsyncTestSubtitleNotEnabled : public RAsyncTestStepSubtitleBase sl@0: { sl@0: public: sl@0: RAsyncTestSubtitleNotEnabled(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: sl@0: private: sl@0: // From RAsyncTestStepSubtitleBase sl@0: void OnOpenCompleteL(); sl@0: void OnPlayCompleteL(); sl@0: }; sl@0: sl@0: /** sl@0: * MM-MMF-AVICTRL-U-0201-HP sl@0: */ sl@0: class RAsyncTestSubtitleNotAvailable : public RAsyncTestStepSubtitleBase sl@0: { sl@0: public: sl@0: RAsyncTestSubtitleNotAvailable(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: sl@0: private: sl@0: // From RAsyncTestStepSubtitleBase sl@0: void OnOpenCompleteL(); sl@0: void OnPlayCompleteL(); sl@0: }; sl@0: sl@0: /** sl@0: * MM-MMF-AVICTRL-U-0202-HP sl@0: */ sl@0: class RAsyncTestSubtitleMismatchedId : public RAsyncTestStepSubtitleBase sl@0: { sl@0: public: sl@0: RAsyncTestSubtitleMismatchedId(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: sl@0: private: sl@0: // From RAsyncTestStepSubtitleBase sl@0: void OnOpenCompleteL(); sl@0: }; sl@0: sl@0: /** sl@0: * MM-MMF-AVICTRL-U-0203-HP sl@0: */ sl@0: class RAsyncTestSubtitleDoubleCall : public RAsyncTestStepSubtitleBase sl@0: { sl@0: public: sl@0: RAsyncTestSubtitleDoubleCall(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: sl@0: private: sl@0: // From RAsyncTestStepSubtitleBase sl@0: void OnOpenCompleteL(); sl@0: void OnPlayCompleteL(); sl@0: }; sl@0: sl@0: /** sl@0: * MM-MMF-AVICTRL-U-0204-HP sl@0: */ sl@0: class RAsyncTestSubtitleMultipleConfigs : public RAsyncTestStepSubtitleBase sl@0: { sl@0: public: sl@0: RAsyncTestSubtitleMultipleConfigs(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TUid aControllerUid); sl@0: sl@0: private: sl@0: // From RAsyncTestStepSubtitleBase sl@0: void OnOpenCompleteL(); sl@0: }; sl@0: sl@0: #endif //SYMBIAN_MULTIMEDIA_SUBTITLE_SUPPORT sl@0: #endif //(tsu_mmf_avictrlplay.h)