videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxplaybackutilityimpl.h
changeset 39 f6d44a0cd476
parent 38 ff53afa8ad05
child 40 13331705e488
--- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/stub/inc/mpxplaybackutilityimpl.h	Fri May 14 15:14:51 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,656 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "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:  Implementation of interface for playbackutility
-*
-*/
-
-// Version : %version:  3 %
-
-#ifndef CMPXPLAYBACKUTILITY_H
-#define CMPXPLAYBACKUTILITY_H
-
-#include <e32base.h>
-#include <f32file.h>
-#include <mpxplaybackobserver.h>
-#include <mpxplaybackmessage.h>
-#include <mpxsession.h>
-#include <mpxmessageobserver.h>
-#include "mpxplaybackutility.h"
-
-class CMPXMessageMonitor;
-class CMPXTaskQueue;
-
-NONSHARABLE_STRUCT( TMPXPlaybackUtilityStruct )
-    {
-    // Default mode playback utility
-    MMPXPlaybackUtility* iDefaultPlaybackUtility;
-    };
-
-/**
-*  Implementation of playback utility interface
-*  this interface:
-*/
-NONSHARABLE_CLASS(CMPXPlaybackUtility) : public MMPXPlaybackUtility,
-                                         public MMPXSource,
-                                         public MMPXPlayerManager
-    {
-public:
-    /**
-    * Two-phased constructor
-    *
-    * @param aModeId playback mode id
-    * @param aObs observer
-	* @param aCategory category of client / engine
-    * @return object of constructed
-    */
-    static CMPXPlaybackUtility* NewL(const TUid& aModeId,
-                                     MMPXPlaybackObserver* aObs,
-                                     const TMPXCategory aCategory);
-
-    /**
-    * Gets the interface for the client, or creates a new one.
-    * This interface could be a singleton
-    */
-    static MMPXPlaybackUtility* UtilityL( const TUid& aModeId,
-                                        const TMPXCategory aCategory);										
-
-private:
-    /**
-    * Destructor
-    */
-    ~CMPXPlaybackUtility();
-
-    /**
-    * C++ constructor
-    */
-    CMPXPlaybackUtility();
-
-    /**
-    * Second phase constructor
-    *
-    * @param aModeId playback mode id
-    * @param aObs observer
-	* @param aCategory category of client / engine
-    */
-    void ConstructL(const TUid& aModeId, MMPXPlaybackObserver* aObs, const TMPXCategory aCategory);
-    /**
-    * Second phase constructor
-    *
-    * @param aObs observer
-    */
-    void ConstructL(MMPXPlaybackObserver* aObs);
-
-    /**
-    *  From MMPXPlaybackUtility
-    *  Add a Observer. Clients only receive events from the engine corresponding
-    *  to the specific mode the interface was created in
-    *
-    *  @param aObs, observer to be added
-    */
-    void AddObserverL(MMPXPlaybackObserver& aObs);
-
-    /**
-    *  From MMPXPlaybackUtility
-    *  Remove a observer.
-    *
-    *  @param aObs, observer to be removed
-    */
-    void RemoveObserverL(MMPXPlaybackObserver& aObs);
-
-    /**
-    *  From MMPXPlaybackUtility
-    *  Returns PIds of clients that are using the engine in the mode this
-    *  interface was created in. For example, if a client was interested in all
-    *  the clients' pids with an active engine, they would:
-    *
-    *       MMPXPlaybackUtility* m=MMPXPlaybackUtility::NewL(EActivePlayer);
-    *       RArray<TProcessId> pids;
-    *       m->GetClients(pids);
-    *       .........
-    *       pids->Close();
-    *       m->Close();
-    *
-    *  @param aClients Array of Pids returned.
-    */
-    void GetClientsL(RArray<TProcessId>& aClients);
-
-    /**
-    *  From MMPXPlaybackUtility
-    *  Initializes a track given by aCollectionPath
-    *
-    *  @param aCollectionPath collection path
-    *  @param aPlay Whether to initialize for playback, or
-    *               else just to setup the engine first
-    */
-    virtual void InitL(const CMPXCollectionPlaylist& aPlaylist,
-                       TBool aPlay=ETrue);
-
-    /**
-    *  From MMPXPlaybackUtility
-    *  Inititialises with a single item, may not be part of any collection
-    *
-    *  @param aUri URI of the item
-    *  @param aType the mime type of the item
-    */
-    void InitL(const TDesC& aUri,const TDesC8* aType=NULL);
-
-    /**
-    *  From MMPXPlaybackUtility
-    *  Inititialises with a single item, may not be part of any collection
-    *  Before this function can be called, the file server session which owns
-    *  this file handle must first be marked as shareable by calling
-    *  RFs::ShareProtected().
-    *
-    *  @param aFile file handle
-    */
-    void InitL(RFile& aShareableFile);
-
-    /**
-    *  From MMPXPlaybackUtility
-    *  Frees up client side resources only; a player is freed when there are no
-    *  clients using it, and all resources are freed when the last client closed
-    */
-    void Close();
-
-    /**
-    *  From MMPXPlaybackUtility
-    *  Stops any async operations that are currently under way
-    */
-    void CancelRequest();
-
-    /**
-    *  From MMPXPlaybackUtility
-    *  Issue player commands, with optional data. ECommandReceived and
-    *  ECommandComplete events should follow
-    *
-    *  @param aCmd the command
-    *  @param aData optional data
-    */
-    void CommandL(TMPXPlaybackCommand aCmd,TInt aData=0);
-
-    /**
-     *  From MMPXPlaybackUtility
-     *  Send a command to the playback server
-     *
-     *  @param aCmd, reference to command object
-     *  @param aCallback, call back when command exection completed.
-     *                    Asynchronously command only
-     */
-    void CommandL(CMPXCommand& aCmd, MMPXPlaybackCallback* aCallback=NULL);
-
-    /**
-    *  From MMPXPlaybackUtility
-    *  Current state of player
-    *  @return current state
-    */
-    TMPXPlaybackState StateL() const;
-
-    /**
-    *  From MMPXPlaybackUtility
-    *  Current source being played, NULL if none was supplied
-    *
-    *  @return source object
-    */
-    MMPXSource* Source();
-
-    /**
-    *  From MMPXPlaybackUtility
-    *  Player manager
-    *
-    *  @return reference to player manager
-    */
-    MMPXPlayerManager& PlayerManager();
-
-    /**
-    *  From MMPXPlaybackUtility
-    *  Set playback property, EPropertyChanged event when complete
-    *
-    *  @param aProperty the property to be set
-    *  @param aValue the the value of the property
-    */
-    void SetL(TMPXPlaybackProperty aProperty,TInt aValue);
-
-    /**
-    *  From MMPXPlaybackUtility
-    *  Get value of a playback property, Asyc
-    *
-    *  @param aCallback playback callback
-    *  @param aProperty the property
-    */
-    void ValueL(MMPXPlaybackCallback& aCallback,TMPXPlaybackProperty aProperty);
-
-    /**
-     *  Get value of a playback property, Asyc
-     *  Result will be called back in HandleProperty
-     *
-     *  @param aCallback playback callback
-     *  @param aProperty the property
-     */
-    void PropertyL(MMPXPlaybackCallback& aCallback,
-                   TMPXPlaybackProperty aProperty);
-
-    /**
-    *  From MMPXPlaybackUtility
-    *  Return a list of mime types supported by playback framework
-    *
-    *  @return an array of mime types
-    */
-    virtual CDesCArray* SupportedMimeTypes();
-
-    /**
-    *  From MMPXPlaybackUtility
-    *  Return a list of file extensions supported by playback framework
-    *
-    *  @return an array of extensions
-    */
-    virtual CDesCArray* SupportedExtensions();
-
-    /**
-    *  From MMPXPlaybackUtility
-    *  Return a list of schemas supported by playback framework
-    *
-    *  @return an array of schemas
-    */
-    virtual CDesCArray* SupportedSchemas();
-
-    /**
-    *  Sets the priority of the playback utility
-    *
-    *  @param aPriority Priority to set
-    */
-    virtual void SetPriority( TInt aPriority );
-
-    /**
-    * Adds a message subscription for this client.
-    * @param aSubscription subscription to be added
-    */
-    void AddSubscriptionL(const CMPXSubscription& aSubscription);
-
-    /**
-    * Removes a message subscription for this client.
-    * @param aSubscription subscription to be removed.
-    */
-    void RemoveSubscriptionL(const CMPXSubscription& aSubscription);
-
-    /**
-    * Removes all message subscriptions for this client.
-    */
-    void ClearSubscriptionsL();
-
-    /**
-    *  From MMPXPlayerManager
-    *  Typically, a client will obtain the list of all the (non-duplicated)
-    *  player 'types' in the system from GetPlayerTypesL and present localized
-    *  type names (e.g. "Local","Home network", if possible, else if
-    *  non-standard type,should use PlayerTypeDisplayNameL to get text from
-    *  player).
-    *
-    *  User should be given opportunity to choose IF there is more than one
-    *  type available, or if there is one type but more than one sub players,
-    *  the user could be presented with the sub player list.
-    *
-    *  @param aTypes the list of player types
-    */
-    void GetPlayerTypesL(RArray<TMPXPlaybackPlayerType>& aTypes);
-
-    /**
-    *  From MMPXPlayerManager
-    *  Returns display name for custom types; standard types should be
-    *  recognized by client and localized - calling this method would then not
-    *  be required
-    *
-    *  @param aType playback type
-    */
-    HBufC* PlayerTypeDisplayNameL(TMPXPlaybackPlayerType aType);
-
-    /**
-    *  From MMPXPlayerManager
-    *  Get the list of UIDs of all players
-    *
-    *  @param aPlayers All the players' uids in the system
-    */
-    void GetPlayerListL(RArray<TUid>& aPlayers);
-
-    /**
-    *  From MMPXPlayerManager
-    *  Get the list of UIDs of players with the specific type
-    *
-    *  @param aPlayers All the players' uids with the same type
-    *  @param aType the type of players
-    */
-    void GetPlayerListL(RArray<TUid>& aPlayers,TMPXPlaybackPlayerType aType);
-
-    /**
-    *  From MMPXPlayerManager
-    *  Get the list of sub player names, Async
-    *
-    *  @param aCallback sub players returned in call back interface
-    *  @param aPlayer UID of the player
-    */
-    void SubPlayerNamesL(MMPXPlaybackCallback& aCallback,TUid aPlayer);
-
-    /**
-    *  From MMPXPlayerManager
-    *  Client selects all players with the type aType, the specific player used
-    *  then being resolved on the basis of the content.
-    *
-    *  @param aType the type of player
-    */
-    void SelectPlayersL(TMPXPlaybackPlayerType aType);
-
-    /**
-    *  From MMPXPlayerManager
-    *  Client selects specific player aPlayer and sub player aSubPlayerIndex
-    *  from array returned by SubPlayerNamesL
-    *
-    *  @param aPlayer the UID of player
-    *  @param aSubPlayerIndex the index of the sub player
-    */
-    void SelectSubPlayerL(TUid aPlayer,TInt aSubPlayerIndex);
-
-    /**
-    *  From MMPXPlayerManager
-    *  Client selects a specific player
-    *
-    *  @param aPlayer the UID of the player
-    */
-    void SelectPlayerL(TUid aPlayer);
-
-    /**
-    *  From MMPXPlayerManager
-    *  Clears all selection criteria. Essentially the same as
-    *  SelectPlayersL(EPbLocal).
-    */
-    void ClearSelectPlayersL();
-
-    /**
-    *  From MMPXPlayerManager
-    *  Retreives the current selection: KNullUid and KErrNotFound are possible
-    *  return values for aPlayer and aSubPlayerIndex respectively if none are
-    *  explicitly selected
-    *
-    *  @param aType player type
-    *  @param aPlayer the UID of player
-    *  @param aSubPlayerIndex index of the subplayer
-    *  @param aSubPlayerName friendly name of the subplayer
-    *         Notes: Client owns the returned aSubPlayerName object.
-    */
-    void GetSelectionL(TMPXPlaybackPlayerType& aType,
-                       TUid& aPlayer,
-                       TInt& aSubPlayerIndex,
-                       HBufC*& aSubPlayerName);
-
-    /**
-    *  From MMPXPlayerManager
-    *  The current player, may change with each item, NULL if none found
-    *
-    *  @return object of current player
-    */
-    MMPXPlayer* CurrentPlayer();
-
-    /**
-    *  From MMPXPlayer
-    *  The 'type' of the player. Built-in types are EPbLocal and EPbRemote, but
-    *  the plug-ins could extend this if they desire to be a different type
-    *  which can be selected by the user
-    *
-    *  @return player type
-    */
-    TMPXPlaybackPlayerType TypeL();
-
-    /**
-    *  From MMPXPlayer
-    *  If TypeL returns a value that is not known to the UI (and therefore
-    *  can't localize it),then TypeNameL can be used for unlocalized display
-    *  purposes.
-    *
-    *  @return player name.
-    */
-    HBufC* TypeNameL();
-
-    /**
-    *  From MMPXPlayer
-    *  If the player supports other 'players', else array count == 0.
-    *
-    *  @param aCallback sub players returned in the callback
-    */
-    void SubPlayerNamesL(MMPXPlaybackCallback& aCallback);
-
-    /**
-    *  From MMPXPlayer
-    *  Selected sub player index, corresponding to sub player names array.
-    *
-    *  @return sub player index. KErrNotFound if none
-    */
-    TInt SubPlayerL() const;
-
-    /**
-    *  From MMPXPlayer
-    *  The UID identifying this player
-    *
-    *  @return UID of the player
-    */
-    TUid UidL() const;
-
-    /**
-    *  From MMPXSource
-    *  Path to the collection, or NULL if not in any collection
-    *  Ownership transferred
-    *
-    *  @return collection path
-    */
-    CMPXCollectionPlaylist* PlaylistL();
-
-    /**
-    *  From MMPXSource
-    *  File passed in, or NULL if none passed in
-    *
-    *  @return pointer to file handle
-    */
-    RFile* FileL();
-
-    /**
-    *  From MMPXSource
-    *  URI of current item
-    *
-    *  @return URI of the item
-    */
-    HBufC* UriL();
-
-    /**
-    *  From MMPXSource
-    *
-    *  DEPRECATED
-    *
-    *  Media request
-    *  HandleMediaL of the callback
-    *
-    *  @param aAttrs attributes requested
-    *  @param aCallback playback callback
-    */
-    void MediaL(const TArray<TMPXAttribute>& aAttrs,
-                MMPXPlaybackCallback& aCallback);
-
-    /**
-    *  From MMPXSource
-    *  Media request
-    *  HandleMediaL of the callback
-    *
-    *  @param aAttrs attributes requested
-    *  @param aCallback playback callback
-    *  @param aSpecs, specifications for attributes
-    */
-    void MediaL(const TArray<TMPXAttribute>& aAttrs,
-                MMPXPlaybackCallback& aCallback,
-                CMPXAttributeSpecs* aSpecs);
-
-#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
-    /**
-    *  From MMPXSource
-    *  File passed in, or NULL if none passed in
-    *
-    *  @return pointer to file handle
-    */
-    RFile64* File64L();
-#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
-
-    /**
-    * From CActive
-    * Handles an active object's request completion event
-    */
-    void RunL();
-
-    /**
-    * From CActive
-    * Implements cancellation of an outstanding request.
-    */
-    void DoCancel();
-
-    /**
-    * From CActive
-    * Handles a leave occurring in the request completion event handler RunL()
-    *
-    * @param aError error code
-    */
-    TInt RunError(TInt aError);
-
-    /**
-     * From MMPXMessageObserver
-     * Message received
-     * @param aMsgData message data
-     * @param aError error code
-     */
-    void MessageReceived(TInt aMsgData, TInt aError);
-    
-    /**
-    *  Inititialises for streaming with URI and Access Point
-    *
-    *  @since S60 9.2
-    *  @param aUri URI of the item
-    *  @param aType the mime type of the item
-    *  @param aAccessPoint the access point of the item
-    */
-    virtual void InitStreamingL(const TDesC& aUri, const TDesC8* aType, const TInt aAccessPoint);
-
-    /**
-    *  Inititialises for streaming with URI and Access Point, the file may not be part of any collection
-    *  Before this function can be called, the file server session which owns
-    *  this file handle must first be marked as shareable by calling
-    *  RFs::ShareProtected().
-    *
-    *  @since S60 9.2
-    *  @param aShareableFile shareable file handle
-    *  @param aAccessPoint the access point of the item
-    */
-    virtual void InitStreamingL(RFile& aShareableFile, const TInt aAccessPoint); 
-
-#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
-    /** 
-    *  Inititialises with a single item, may not be part of any collection 
-    *  Before this function can be called, the file server session which owns 
-    *  this file handle must first be marked as shareable by calling 
-    *  RFs::ShareProtected(). 
-    * 
-    *  @since S60 9.2 
-    *  @param aShareableFile shareable RFile64 file handle 
-    */ 
-    virtual void Init64L(RFile64& aShareableFile);
-     
-    /** 
-     *  Inititialises for streaming with URI and Access Point, the file may not be part of any collection 
-     *  Before this function can be called, the file server session which owns 
-     *  this file handle must first be marked as shareable by calling 
-     *  RFs::ShareProtected(). 
-     * 
-     *  @since S60 9.2 
-     *  @param aShareableFile shareable RFile64 file handle 
-     *  @param aAccessPoint the access point of the item 
-     */ 
-    virtual void InitStreaming64L(RFile64& aShareableFile, const TInt aAccessPoint);
-#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
-    
-private:
-
-
-    /**
-    * Helper to return a descriptor buffer
-    *
-    * @param aSize size of the buffer
-    */
-    HBufC* DesL(TInt aSize);
-
-    /**
-    *  Add a request
-    *
-    *  @param aFunction function code
-    *  @param aCallback callback
-    *  @param aParamData data
-    *  @param aBuf buffer data, ownership transferred
-    *  @param aPtr, pointer to a object
-    *  @param aAlivePtr1, object to keep alive for a task
-    *                     ownership transferred
-    *  @leave leave with system error code when failed
-    */
-    void AddRequestL(TMPXPlaybackServerOp aFunction,
-                     MMPXPlaybackCallback* aCallback=NULL,
-                     TInt aParamData=0,
-                     CBufBase* aBuf=NULL,
-                     TAny* aPtr=NULL,
-                     CBase* aAlivePtr=NULL);
-
-    /**
-    *  Send next request to server
-    */
-    void ExecuteNextRequest();
-
-    /**
-     *  Handle message from message queue
-     *  @param aMsgData message data
-     *  @param aError error code
-     */
-    void HandleMessageL(TInt aMsgData, TInt aError);
-
-    /**
-     * Handles error in RunL
-     *
-     * @param aError error code
-     */
-    void HandleRunErrorL(TInt aError);
-
-
-public:
-	
-	TMPXPlaybackState iState;
-
-    RArray<MMPXPlaybackObserver*> iObservers;
-    CMPXMessageMonitor* iMsgMonitor;
-    CMPXTaskQueue* iTaskQueue;
-    RMPXSession iPbs;
-    CBufBase* iBuffer;
-    TPckgBuf<TInt> iPropertyValuePckg;
-    TPckgBuf<TBool> iCompletePckg;
-    TPckgBuf<TInt> iResultSizePckg;
-    RFile iFile;
-    TBool iCallbackOngoing; // whether client is processing callback or not
-#ifdef _ENABLE_GUARD_TIMER
-    CPeriodic* iGuardTimer; // guard timer for async request
-#endif
-    CMPXMedia* iMediaOnError; // media object while handling error
-    TInt iRefCount;
-#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
-    RFile64 iFile64;
-#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
-    };
-
-#endif // CMPXPLAYBACKUTILITY_H