diff -r 000000000000 -r 96612d01cf9f tsrc/fusionmpxplayer_test/FusionMpxPlayerTestExeUi/inc/FusionMpxPlayerTester.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tsrc/fusionmpxplayer_test/FusionMpxPlayerTestExeUi/inc/FusionMpxPlayerTester.h Mon Jan 18 20:21:12 2010 +0200 @@ -0,0 +1,241 @@ +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef FUSIONMPXPLAYERTESTER_H +#define FUSIONMPXPLAYERTESTER_H + +// INCLUDES +#include + +#include +#include +#include + +// FORWARD DECLARATIONS +class CVcxConnectionUtility; +class MMPXPlaybackUtility; +class MMPXViewUtility; +class CIptvTestActiveWait; + +// DATA TYPES +const TInt KTestUndefined = 10001; +const TInt KFusionTestMsgNone = -66666; + +// CLASS DECLARATION +class TExpectedGeneralMessage + { + public: + TExpectedGeneralMessage( TInt aEvent, TInt aType, TInt aData ) + { + iEvent = aEvent; + iType = aType; + iData = aData; + } + public: + TInt iEvent; + TInt iType; + TInt iData; + }; + +class MFusionMpxPlayerTesterObserver + { + public: + /** + * Sent when expected message list is empty. + */ + virtual void TesterCommandComplete() = 0; + }; + +/** +* +*/ +class CFusionMpxPlayerTester : public CBase, + public MMPXPlaybackObserver, + public MMPXViewActivationObserver, + public MMPXPlaybackCallback + { + public: + /** + * Two-phased constructor. + */ + static CFusionMpxPlayerTester* NewL( MFusionMpxPlayerTesterObserver* aObserver ); + + /** + * C++ default constructor. + */ + CFusionMpxPlayerTester(); + + /** + * Destructor. + */ + ~CFusionMpxPlayerTester(); + + public: // New functions + + TInt OpenLocalFile( const TDesC& aFileName ); + + void OpenUrlL( const TDesC& aUrl, TInt aIapID ); + + void CreateGeneralPlaybackCommandL( TMPXPlaybackCommand aCmd, TInt aData = KTestUndefined ); + + void CreateVideoPlaybackCommandL( TMPXVideoPlaybackCommand aCmd ); + + /** + * Checks that all expected messages have been gotten. + */ + TInt CheckExpectedMessages(); + + void AddExpectedGeneralPlaybackCommandMessages( TMPXPlaybackCommand aCmd, TInt &aData ); + void AddExpectedVideoPlaybackCommandMessages( TMPXVideoPlaybackCommand aCmd ); + TInt ExpectedMessageCount() { return iExpectedGeneralMessages.Count(); }; + void PrepareCloseL(); + + private: // New functions + + void GetGeneralPlaybackCommandDes( TMPXPlaybackCommand aCmd, TDes& aDes ); + void GetVideoPlaybackCommandDes( TMPXVideoPlaybackCommand aCmd, TDes& aDes ); + void GetGeneralPlaybackEventDes( TInt aEvent, TDes& aDes ); + void GetStateDes( TMPXPlaybackState aState, TDes& aDes ); + void GetPropertyDes( TMPXPlaybackProperty aProperty, TDes& aDes ); + + private: // Constructors and destructor + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL( MFusionMpxPlayerTesterObserver* aObserver ); + + private: // Functions from base classes + + /** + * Handle playback message. + * Note: only one of HandlePlaybackMessage callback can be implemented. + * Note: change into pure virtual when all clients updated. + * + * @since S60 3.2.3 + * @param aMsg playback message, ownership not transferred. + * Please check aMsg is not NULL before using it. If aErr is not + * KErrNone, plugin might still call back with more info in the aMsg. + * @param aErr system error code. + */ + virtual void HandlePlaybackMessage( CMPXMessage* aMsg, TInt aErr ); + + void DoHandleGeneralPlaybackMessageL( const CMPXMessage& aMessage ); + + void DoHandleVideoPlaybackMessageL( const CMPXMessage& aMessage ); + + void DoHandleStateChangeL( TMPXPlaybackState aState ); + + void DoHandlePropertyChangeL( TInt aProperty, TInt aValue ); + + /** + * Handle view activation. + * + * @since S60 3.2.3 + * @param aCurrentViewType Current view type Uid. + * @param aPreviousViewType Previous view type Uid. + */ + virtual void HandleViewActivation( const TUid& aCurrentViewType, const TUid& aPreviousViewType ); + + /** + * Called in case a view plugin is added/updated/removed through a SIS install. + * + * @since S60 3.2.3 + * @param aViewUid view UID + * @param aUpdateEvent Defines the update type (addition/update/removal). + * @param aLoaded ETrue if the view plugin is loaded, EFalse otherwise. It is recommended + * that client applications exit when loaded plugins are updated or removed. + * This would normally be handled in the AppUi. + * @param aData Its meaning depends on the update event: + * EViewPluginAdd - new view plugin version + * EViewPluginUpdate - new view plugin version + * EViewPluginRemove - old view plugin version + */ + virtual void HandleViewUpdate( TUid aViewUid, TViewUpdateEvent aUpdateEvent, + TBool aLoaded, TInt aData ); + + /** + * Handle playback property. + * + * @since S60 3.2.3 + * @param aProperty the property + * @param aValue the value of the property + * @param aError error code + */ + virtual void HandlePropertyL(TMPXPlaybackProperty aProperty, + TInt aValue, + TInt aError); + + /** + * Method is called continously until aComplete=ETrue, signifying that + * it is done and there will be no more callbacks. + * Only new items are passed each time. + * + * @since S60 3.2.3 + * @param aPlayer UID of the subplayer + * @param aSubPlayers a list of sub players + * @param aComplete ETrue no more sub players. EFalse more subplayer + * expected + * @param aError error code + */ + virtual void HandleSubPlayerNamesL(TUid aPlayer, + const MDesCArray* aSubPlayers, + TBool aComplete, + TInt aError); + + /** + * Call back of media request. + * + * @since S60 3.2.3 + * @param aMedia media + * @param aError error code + */ + virtual void HandleMediaL(const CMPXMedia& aProperties, + TInt aError); + + /** + * Handle completion of a asynchronous command. + * Note: All clients should implement this callback. + * + * @since S60 3.2.3 + * @param aCommandResult result of the command, NULL if error + * @param aError error code + */ + virtual void HandlePlaybackCommandComplete( CMPXCommand* /*aCommandResult*/, + TInt /*aError*/ ); + + private: // Data + MFusionMpxPlayerTesterObserver* iObserver; + + MMPXPlaybackUtility* iPlaybackUtility; + + MMPXViewUtility* iViewUtility; + + RArray iExpectedGeneralMessages; + + TMPXPlaybackState iState; + + TInt iVolume; + TInt iVolumeBeforeMute; + + TBool iInitComplete; + + CIptvTestActiveWait* iWait; + }; + +#endif // FUSIONMPXPLAYERTESTER_H