vtengines/videoteleng/Inc/Media/CVtEngMediaHandler.h
changeset 18 d9b6a8729acd
parent 4 6dc066157ed4
child 23 c378a0498b84
child 27 dcbddbbaf8fd
--- a/vtengines/videoteleng/Inc/Media/CVtEngMediaHandler.h	Tue Jan 26 12:01:21 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1299 +0,0 @@
-/*
-* Copyright (c) 2004-2007 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:  Video session interface.
-*
-*/
-
-
-
-#ifndef CVTENGMEDIAHANDLER_H
-#define CVTENGMEDIAHANDLER_H
-
-//  INCLUDES
-#include <e32base.h>
-#include <mvtprotocolhandler.h>
-#include "MVtEngMedia.h"
-#include "vtengcommands.h"
-#include "CVtEngLocalVideo.h"
-#include "MVtEngSettingObserver.h"
-
-// FORWARD DECLARATIONS
-class CVtEngLocalVideo;
-class CVtEngRemoteVideo;
-class MVtEngFrameObserver;
-class CVtEngOperation;
-class CVtEngExtensionBase;
-
-// CLASS DECLARATION
-
-/**
-*  Media control.
-*
-*  @lib videoteleng.lib
-*  @since Series 60 2.6
-*/
-NONSHARABLE_CLASS( CVtEngMediaHandler ) :
-    public CBase,
-    public MVtEngMedia,
-    public MVtEngSettingObserver,
-    public MVtProtocolHandler
-    {
-    public: // Constructor and destructor.
-
-        /**
-        * Symbian two-phase constructor.
-        * @return media handler instance
-        */
-        static CVtEngMediaHandler* NewL();
-
-        /**
-        * Destructor.
-        */
-        ~CVtEngMediaHandler();
-
-    public: // From MVtEngMedia.
-
-        /**
-        * @see MVtEngMedia
-        */
-        virtual TInt GetMediaState(
-            const TMediaDirection aMediaDirection,
-            TInt& aActiveMedia ) const;
-
-        /**
-        * @see MVtEngMedia
-        */
-        virtual TBool RenderingStarted(
-            const TMediaDirection
-            aDirection ) const;
-
-        /**
-        * @see MVtEngMedia
-        */
-        virtual TInt GetSource( TMediaSource& aSource ) const;
-
-        /**
-        * @see MVtEngMedia
-        */
-        virtual TInt GetSourcesCaps( TInt& aCaps ) const;
-
-        /**
-        * @see MVtEngMedia
-        */
-        virtual TInt GetCurrentCameraId( TCameraId& aId ) const;
-
-        /**
-        * @see MVtEngMedia
-        */
-        virtual TInt GetCameraInfo(
-            const TCameraId aId,
-            TCameraInfo& aInfo ) const;
-
-        /**
-        * @see MVtEngMedia
-        */
-        virtual TInt GetCurrentZoomStep( TInt& aCurrentStep );
-
-        /**
-        * @see MVtEngMedia
-        */
-        virtual TInt GetMaxZoomStep( TInt& aMaxZoomStep );
-
-        /**
-        * @see MVtEngMedia
-        */
-        virtual TInt GetMajorZoomStepCount( TInt& aCount );
-
-        /**
-        * @see MVtEngMedia
-        */
-        virtual void GetMajorZoomStep( TInt aIndex, TInt& aStep );
-
-        /**
-        * @see MVtEngMedia
-        */
-        virtual TInt GetFreezeSupported( TBool& aFreezeSupported ) const;
-
-        /**
-        * @see MVtEngMedia
-        */
-        virtual TInt GetFreezeState( TBool& aFrozen ) const;
-
-        /**
-        * @see MVtEngMedia
-        */
-        virtual TInt GetDsaState(
-            const TMediaDirection aMediaDirection,
-            TBool& aActive ) const;
-
-        /**
-        * @see MVtEngMedia
-        */
-        virtual TBool VideoCallConnected () const;
-        
-        /**
-        * @see MVtEngMedia
-        */
-        virtual void GetVideoQuality( TVideoQuality& aVideoQuality ) const;
-
-        /**
-        * @see MVtEngMedia
-        */
-        virtual void GetObjectSharingState(
-            TShareObjectState& aObjectSharingState ) const;
-
-        /**
-        * @ see MVtEngMedia
-        */
-        virtual void GetCameraOrientations(
-            TCameraOrientation& aPrimaryCameraOrientation,
-            TCameraOrientation& aSecondaryCameraOrientation ) const;
-
-public: // New functions.
-
-        /**
-        * Tells if the Protocol initialization has completed.
-        * @return ETrue if initialized
-        */
-        TBool ProtoInitialized() const;
-
-        /**
-        * Performs an operation in the handler.
-        * @param operation to be performed on the handler
-        */
-        virtual void HandleL( CVtEngOperation& aOperation );
-
-        /**
-        * Returns if command can be performed by media handler.
-        * @return KErrNone if a command can be perfomed
-        *         KErrNotReady if not in appropriate state
-        *         KErrNotSupported if command is not for media handler
-        */
-        TInt ValidateCommand( const TVtEngCommandId aCommand ) const;
-
-        /**
-        * Returns ETrue if video channel is closed.
-        */
-        TBool IsVideoChannelClosed() const;
-        
-        /**
-         * Request update last remote video frame through MVtEngFrameObserver::vtSetFrame
-         */
-        void RequestLastRemoteFrame();        
-
-    public: // from MVtProtocolHandler
-
-        /**
-        * Handles callback from protocol.
-        * @param aResponse response
-        */
-        virtual void HandleSessionCommandEventL(const TVtCommandResponse& aResponse);
-
-    public: // From MVtProtocolHandler.
-
-        /**
-        * Handles callback from protocol audiocontroller.
-        * @param aId which command
-        * @param aCmd which audio command
-        * @param aContextData any additional data
-        * @param aStatus how did it end up with
-        */
-        virtual void HandleAudioOutputControlCommandComplete(TInt aId,
-            TVtAudioOutputControlCommand aCmd,
-            TAny *aContextData,
-            TInt aStatus);
-
-    public: // From MVtProtocolHandler.
-
-        /**
-        * Handles event from protocol.
-        * @param aEvent event
-        */
-        virtual void HandleSessionInformationalEventL(
-            const TVtIndicationEvent& aEvent);
-
-    public: // from MVtProtocolHandler
-
-        /**
-        * Handles error event from protocol.
-        * @param aEvent error event
-        */
-        virtual void HandleSessionErrorEventL(const TVtErrorEvent& aEvent);
-
-    public: // from MVtEngSettingObserver
-
-        /**
-        * Handles shared data setting change.
-        * @param aId setting id
-        * @param aValue setting value
-        */
-        virtual void HandleSettingChangedL(
-            CVtEngSettings::TSettingId aId,
-            const TDesC& aValue );
-
-    public: // From MVtProtocolHandler.
-
-        /**
-        * @see MVtProtocolHandler.
-        */
-        void HandleVideoEncoderCommandCompletedL(
-            const TVtCommandResponse& aResponse );
-
-        /**
-        * @see MVtProtocolHandler.
-        */
-        void HandleVideoEncoderInformationalEventL(
-            const TVtIndicationEvent& aEvent);
-
-    public: // From MVtProtocolHandler
-
-        /**
-        * @see MVtProtocolHandler.
-        * @since 3.1
-        */
-        void HandleH324MConfigCommandCompletedL( const TVtCommandResponse& aResponse );
-
-        /**
-        * @see MVtProtocolHandler.
-        * @since 3.1
-        */
-        void HandleH324MConfigInformationalEventL(
-            const TVtIndicationEvent& aEvent );
-
-    public: // New functions.
-
-        /**
-        * Initializes media handler.
-        * @param aStatus signaling handle
-        */
-        void InitializeL( TRequestStatus& aStatus );
-
-        /**
-        * Cancels media handler initialization.
-        */
-        void CancelInitialize();
-
-        /**
-        * Initializes default blank provider.
-        * @param aStatus signaling handle
-        */
-        void InitializeProviderL( TRequestStatus& aStatus );
-
-        /**
-        * Cancel Image sharing initialization.         
-        */        
-        void CancelInitializeShareImage();
-        
-        /**
-        * Sets protocol interface.
-        * aProto2Way protocol interface
-        */
-        void SetSessionCommand( MVtSessionCommand* aProto2Way );
-
-        /**
-        * Unitializes media handler.
-        * @param aStatus request semaphore to complete
-        * when uninitialization is complete
-        */
-        void Uninitialize( TRequestStatus& aStatus );
-
-        /**
-        * Goes to next step of uninitialization process, it can
-        * be one of following
-        * - Cancel all Protocol commands
-        * - Protocol disconnect
-        * - Protocol reset
-        * - Switch blank provider.
-        */
-        void UninitializeNextStep();
-
-        /**
-        * Sets selected camera ID.
-        * @param aId camera ID (primary or secondary)
-        * @param aUpdateRequired if ETrue switch could not be performed
-        *        Switch will be done when engine has been initialized.
-        */
-        void SetSelectedCameraId(
-            const TCameraId aId,
-            TBool aUpdateRequired = EFalse );
-
-        /**
-        * Handles source initialization or switch.
-        * @param aResult Symbian OS error code
-        */
-        void HandleLocalVideoOperationCompleteL( const TInt aResult );
-
-        /**
-        * SDK init info.
-        * @return Protocol initialization info
-        */
-        TVtInitInfo& SdkInitInfo();
-
-        /**
-        * Returns protocol state maintained by VTEngine, not by Protocol.
-        * @return state
-        */
-        MVtProtocolCommand::TVtProtocolState ProtoState();
-
-        /**
-        * Sets up video connection to remote terminal.
-        * @return Symbian OS error code
-        */
-        TInt Connect();
-
-        /**
-        * Disconnects session.
-        * @return Symbian OS error code
-        */
-        TInt Disconnect();
-
-        /**
-        * Adds video data source to protocol engine.
-		* @param Video channel logical channel ID number.
-        * @return Symbian OS error code
-        */
-        TInt AddVideoSource( TUint aChannelId );
-
-        /**
-        * Adds audio data source to protocol engine.
-		* @param Audio channel logical channel ID number.
-        * @return Symbian OS error code
-        */
-        TInt AddAudioSource( TUint aChannelId );
-
-        /**
-        * Adds video sink.
-		* @param Video channel logical channel ID number.
-        * @return Symbian OS error code
-        */
-        TInt AddVideoSink( TUint aChannelId );
-
-        /**
-        * Adds audio sink.
-		* @param Audio channel logical channel ID number.
-        * @return Symbian OS error code
-        */
-        TInt AddAudioSink( TUint aChannelId );
-
-        /**
-        * Sets the output volume for Protocol.
-        * @param aVolume the level of the volume
-        * @return Symbian OS error code
-        */
-        TInt SetVolume( const TInt aVolume,
-            CVtEngOperation* aOperation = NULL );
-
-        /**
-        * Enables video when primary camera becomes available.
-        * @param aEnable do we enable or disable
-        * @return Symbian OS error code
-        */
-        TInt AutoEnableVideo( TBool aEnable = ETrue );
-
-        /**
-        * Deletes protocol instance and associated Protocol interfaces.
-        */
-        void FinalizeUninitialization();
-
-        /**
-        * Creates extension according to API Uid.
-        * @since S60 v3.2
-        * @param aUid extension API Uid.
-        * @return Extension pointer
-        * @exeption Leaves if creation fails
-        *
-        */
-        CVtEngExtensionBase* CreateExtensionsL( const TUid& aUid );
-        
-        /**
-        * Checks if there is already an operation pending.
-        * @return KVtEngCommandNone if no operation is pending or Command identifier
-        */
-        TVtEngCommandId GetPendingCommand();
-
-    private: // new functions
-
-        /**
-        * Sends a sync message to Protocol after provider switch.
-        */
-        void RequestFrame( );
-
-        /**
-        * Sets video quality
-        */
-        void SetVideoQualityL(
-            const TVideoQuality aVideoQuality,
-            const TBool aSetPeerVideoQuality );
-
-        /**
-        * Sets peer video quality
-        */
-        void SetPeerVideoQuality( const TVideoQuality aVideoQuality );
-
-        /**
-        * Check's flag's validity. If not valid, panic's in debug mode.
-        * @param aFlag flag to check.
-        */
-        void AssertFlag( const TInt aFlag ) const;
-
-        /**
-        * Gets the version information from SysUtil
-        * and sets it into Protocol.
-        */
-        void SetVersionInfoL();
-
-        /**
-        * Sets supported resolutions to Protocol.
-        */
-        void SetSupportedResolutions();
-
-		/**
-        * Sets used call setup enhancement parameters.
-        */
-		void SetFastCsupOptions();
-
-        /**
-        * Does Protocol reset.
-        */
-        void ResetProtoL();
-
-        /**
-        * Does the actual disconnecting with Protocol.
-        */
-        void DisconnectProtoL();
-
-        /**
-        * Sets the defaults for volumes.
-        */
-        void InitializeVolume();
-
-        /**
-        * Checks if a flag in iProtoInitFlags is set.
-        * @return ETrue if flag is set
-        */
-        TBool IsFlag( const TInt aFlag ) const;
-
-        /**
-        * Sets a flag in iProtoInitFlags.
-        * @param aFlag flag to set
-        */
-        inline void SetFlag( const TInt aFlag );
-
-        /**
-        * Clears a flag in iProtoInitFlags.
-        * @param aFlag flag to clear
-        */
-        inline void ClearFlag( const TInt aFlag );
-
-        /**
-        * Requests the volume controller.
-        * @return ETrue if retrieved ok
-        */
-        TBool RequestAudioControllerL();
-
-        /**
-        * Spatial trade off indication handling method. Indication is
-        * sent by the peer every time when its spatial trade off is updated.
-        * @param aLogicalChannelId Indication's logical channel Id.
-        * @param aTradeOff Indication trade off value.
-        */
-        void HandleSpatialTradeoffIndication(
-            const TUint16 aLogicalChannelId, const TUint8 aTradeOff );
-
-        /**
-        * Spatial trade off command handling method. Spatial trade off
-        * command is sent by the peer whenever peer wants to adjust our
-        * video quality.
-        * @param aLogicalChannelId Command's logical channel Id.
-        * @param aTradeOff New trade off value.
-        */
-        void HandleSpatialTradeoffCommandL(
-            const TUint16 aLogicalChannelId, const TUint8 aTradeOff );
-
-    private: // constructor and destructor
-
-        /**
-        * C++ default constructor.
-        */
-        CVtEngMediaHandler();
-
-        /**
-        * Symbian constructor that may leave.
-        */
-        void ConstructL();
-
-    private:
-        /**
-        * Operation values
-        */
-        enum TOperation
-            {
-            /**
-            * No-op.
-            * 0
-            */
-            ENone,
-
-            /**
-            * Add video source to protocol.
-            * 1
-            */
-            EAddVideoSource,
-
-            /**
-            * Add video source to protocol.
-            * 2
-            */
-            EAddVideoSink,
-
-            /**
-            * Add audio source to protocol.
-            * 3
-            */
-            EAddAudioSource,
-
-            /**
-            * Add audio source to protocol.
-            * 4
-            */
-            EAddAudioSink,
-
-            /**
-            * Connect protocol.
-            * 5
-            */
-            EConnectProto,
-
-            /**
-            * Mute audio.
-            * 6
-            */
-            EMuteAudio,
-
-            /**
-            * Resume audio sending.
-            * 7
-            */
-            EUnmuteAudio,
-
-            /**
-            * Enable video for peer.
-            * 8
-            */
-            EEnableVideo,
-
-            /**
-            * Disable video for peer.
-            * 9
-            */
-            EDisableVideo,
-
-            /**
-            * Cancel ongoing request to Protocol
-            * as part of uninitiazation process.
-            * 10
-            */
-            EUninitializeCancelAllProto,
-
-            /**
-            * Disconnect protocol.
-            * 11
-            */
-            EDisconnectProto,
-
-            /**
-            * Destructs local/remote video and VS instances.
-            * 12
-            */
-            EDestructInternals,
-
-            /**
-            * Terminates H.324 session.
-            * 13
-            */
-            ETerminateSession,
-
-            /**
-            * Removing sinks and sources.
-            * 14
-            */
-            ERemovingSinksAndSources,
-
-            /**
-            * Request 324 control interface from protocol.
-            * 15
-            */
-            EGet324CtrlInterface,
-
-            /**
-            * Set volume.
-            * 16
-            */
-            ESetAudioVolume,
-
-            /**
-            * Gets the maximum volume for Protocol.
-            * 17
-            */
-            EGetAudioGetMaxVolume,
-
-            /**
-            * Reset protocol.
-            * 18
-            */
-            EDestructProtoPhaseDisconnect,
-
-            /**
-            * Destruct switch blank.
-            * 19
-            */
-            EDestructSwitchBlank,
-
-            /**
-            * Reset protocol.
-            * 20
-            */
-            EDestructProtoPhaseReset,
-
-            /**
-            * Check Protocol state.
-            * 21
-            */
-            ECheckProtoState,
-
-            /**
-            * Enables video internally (not originated by UI).
-            * 22
-            */
-            EEnableVideoInternal,
-
-            /**
-            * Disables video internally (not originated by UI).
-            * 23
-            */
-            EDisableVideoInternal,
-
-            /**
-            * Request H263Enc interface from protocol.
-            * 24
-            */
-            EGetH263EncInterface,
-
-            /**
-            * Requests an intra frame.
-            * 25
-            */
-            ESendIntraframe,
-
-            /**
-            * Set supported resolutions.
-            * 26
-            */
-            ESetSupportedResolutions,
-
-            /**
-            * Set video quality (by changing framerate)
-            * 27
-            */
-            ESetVideoQuality,
-
-			/**
-            * Remove H324 interface
-            * 28
-            */
-			ERemove324CtrlInterface,
-
-			/**
-            * Remove video encoder interface
-            * 29
-            */
-			ERemoveH263EncInterface,
-
-			/**
-            * Sends Video Temporal-spatial trade off command
-            * 30
-            */
-			ESendVTSTO,
-
-			/**
-            * Sets fast call setup options
-            * 31
-            */
-			ESetFastCsupOptions,
-
-            /**
-            * Sets vendor id
-            * 32
-            */
-			ESetVendorId,
-
-            /**
-            * Set interval when I-frames are sent
-            * 33
-            */
-			ESetIFrameInterval
-            };
-
-        /**
-        * Operation and related command id.
-        */
-        struct TCmdOpPair
-            {
-            // Operation
-            TOperation   iOp;
-            // Command id returned by proto2way asynch request
-            TInt iProtoCmdId;
-            };
-
-        /**
-        * Enables/Disables video sending.
-        * @param aEnable ETrue if video is to be enabled
-        * @param aOp operation to be added
-        * NOTE. Valid only for enabling video, not when disabled.
-        * @see void AutoEnableVideo
-        * @return started operation or ENone
-        */
-        TOperation EnableVideoL(
-            const TBool aEnable,
-            const TOperation aOp = EEnableVideo );
-
-        /**
-        * Calls Protocol pausing and acts according to the result.
-        * @return operation id for performed operation
-        */
-        TOperation DoPauseVideo();
-
-        /**
-        * Continues to next step of uninitialization.
-        * @param aOp operation to perform
-        * @return command id
-        */
-        void ContinueUninitializeL( const TOperation aOp );
-
-        /**
-        * Cancels all the running commands within Protocol.
-        * @param operation to be returned
-        *       EUninitializeCancelAllProto if cancellation is ongoing
-        *       (either because was already or just started)
-        *       ENone if cancellation is not ongoing
-        * @return error code
-        *        KErrNotReady if engine not in suitable state
-        *        KErrAlreadyExists if cancel was already pending
-        *        KErrNone if cancellation request succeeded
-        *        other Symbian OS error code if cancellation fails
-        */
-        TInt CancelAllProtoCommands( TOperation &aOp );
-
-        /**
-        * Stops view finder and remote video rendering.
-        */
-        void StopRendering();
-
-        /**
-        * Updates volume to Protocol (if possible).
-        */
-        void UpdateVolume();
-
-        /**
-        * Initiates protocol engine reset.
-        */
-        void ResetProto2WayL();
-
-        /**
-        * Removes operation from pending operations array.
-        * @param aOp TOperation
-        * @return ETrue if operation was found (and hence removed)
-        */
-        template<class T>
-        TBool RemoveOperation( const T& aOp );
-
-        /**
-        * Adds operation pending for callback.
-        * @param aOp operation value
-        * @param aCmdId protocol commd id or 0 if not Protocol cmd
-        * @param aResetExisting if ETrue removes existing operations
-        *        from array
-        * @return index of the operation in array (i.e. >= 0 )
-        */
-        TInt AddOperation(
-            const TOperation aOp,
-            TInt aCmdId,	
-            const TBool aResetExisting = EFalse );
-
-        /**
-        * Checks if an operation is pending.
-        * @param aOp operation
-        * @return index if operation is pending or KErrNotFound
-        */
-        TInt IsPending( const TOperation aOp ) const;
-
-        /**
-        * Checks if an operation is pending.
-        * @param aCmdId command id
-        * @return index if operation is pending or KErrNotFound
-        */
-        TInt IsPending( const TInt aCmdId ) const;
-
-        /**
-        * Completes asynchronous operation.
-        * @param aResult
-        * @return KErrNotFound if no operation else KErrNone
-        */
-        TInt CompleteOp( const TInt aResult );
-
-        /**
-        * Completes asynchronous operation asynchronously.
-        * @param aResult
-        * @return KErrNotFound if no operation else KErrNone
-        */
-        void AsyncCompleteOp( const TInt aResult = KErrNone );
-
-        /**
-        * Checks if specific operation matches to response from protocol.
-        * @param aProtoCmdId command id returned by protocol
-        * @param aOperation operation to search for in pending commands
-        * @param aIndex index in iPendingOps array if found
-        * @return ETrue if there's corrensponding entry in pending ops
-        */
-        TBool MatchResponseToPendingOps(
-            const TInt aProtoCmdId,
-            const TOperation aOperation,
-            TInt* aIndex = NULL );
-
-        /**
-        * Starts "self-destruction" timer.
-        */
-        void StartDisconnectTimerL();
-
-        /**
-        * Assigns new pending operation. Only one can be pending at a time
-        * so if there already is pending operation it is completed with error.
-        * @param aOperation operation to assign as pending
-        * @param aReplaceError error code to complete penging operation if
-        *        one exists. If KErrNone is passed, replacement is not done.
-        * @return KErrNone if assignment done successfully i.e. there was
-                  not pending operation that was completed.
-        *         KErrCancel if some other operation was pending and was
-        *                     completed with aReplaceError. Operation is
-        *                     still assigned successfully.
-        *         KErrGeneral if operation was not assigned.
-        */
-        TInt AssignPendingOp(
-            CVtEngOperation& aOperation,
-            TInt aReplaceError = KErrCancel );
-
-        /**
-        * Callback function that completes ongoing operation.
-        * @param aAny pointer to an instance of the class.
-        * @return always KErrNone.
-        */
-        static TInt DoCompleteOp( TAny* aAny );
-
-        /**
-        * Implementation of self-destruction timer activity.
-        * Causes a panic.
-        * @param aAny pointer to an instance of the class
-        *   Not used.
-        * @return KErrNone;
-        */
-        static TInt TimerCallback( TAny* aAny );
-
-        /**
-        * Creates and enques async callback for uninitialization.
-        * @see iNextStepCallback
-        */
-        void NextUninitStepCallbackL();
-
-        /**
-        * Callback method for async uninitialization step.
-        * @seeiNextStepCallback
-        * @return KErrNone;
-        */
-        static TInt UninitCallback( TAny* aAny );
-
-		/**
-        * Query 2-way's additional interfaces, encoder and H324
-        * @return KErrNone;
-        */
-        void QueryProtoInterfacesL();
-
-		/**
-        * Release 2-way's additional interfaces, encoder and H324
-        * @return KErrNone;
-        */
-        void ReleaseProtoInterfacesL();
-
-        /**
-        * Check for pending Protocol extension interface commands.
-        * @return ETrue if one or more extension command is pending
-        */
-        TBool ExtensionCommandsPending() const;
-
-        /**
-        * Checks is it possible to add sink / source from session 
-        * state point of view.
-        * @return ETrue if adding is allowed.
-        */
-        TBool MediaAddingValidity() const;
-        
-        /**
-        * Provider initialization state
-        */
-        enum TInitState
-            {
-            /**
-            * Initialization not ongoing.
-            */
-            EInitStateNone,
-
-            /**
-            * Initialize still image.
-            */
-            EStateInitStillImage,
-
-            /**
-            * Initilize default blank provider.
-            */
-            EStateInitProvider,
-
-            /**
-            * Provider is set to none.
-            */
-            EStateWaitingProviderChangeForUninit,
-
-            /**
-            * Initialization has been cancelled.
-            */
-            EStateInitCanceled
-            };
-
-        /**
-        * State flags.
-        */
-        enum
-            {
-            // Protocol state flags
-            // Sink/source added
-            EProtoAudioSourceAdded   = 0x000001,
-            EProtoVideoSourceAdded   = 0x000002,
-            EProtoAudioSinkAdded     = 0x000004,
-            EProtoVideoSinkAdded     = 0x000008,
-            // Track paused
-            EProtoAudioTrackPaused   = 0x000040,
-            EProtoVideoTrackPaused   = 0x000080,
-
-            // Pause/resume related flags.
-            ETwoStageOperation    = 0x000100,
-            ESourceUpdateNeeded   = 0x000200,
-            EProtoPauseVideoRequested= 0x000400,
-            EProtoPauseVideoBlankProv= 0x000800,
-            EProtoContVideoBlankProv = 0x001000,
-            EProtoContVideoBlankInit = 0x002000,
-
-            // Must send intra
-            EProtoSendIntraFrame     = 0x004000,
-
-            // 324 interface acquired
-            EProto324IFAcquired      = 0x008000,
-
-            // Cancel all command is called on Protocol
-            // or there's nothing to cancel
-            EProtoCancelProtoCmdsOk     = 0x010000,
-
-            // NON Protocol related flags
-
-            EVideoQualitySetByPeer= 0x020000,
-
-            // Outgoing video channel closed (after being open)
-            // Used for preventing video pause/resume when
-            // the channel is not open
-            EOutVideoChannelClosed = 0x040000,
-
-            // Outgoing audio channel closed (after being open)
-            // Used for preventing audio pause/resume
-            // the channel is not open
-            EOutAudioChannelClosed = 0x080000
-            };
-
-
-        /**
-        * Defines actions that can be taken when sharing started
-        * and/or stopped
-        */
-        enum TVideoEngAction
-            {
-            EVideoActionNone,
-            EVideoActionEnable,
-            EVideoActionDisable
-            };
-
-        /**
-        * Helper class for handling video quality manipulation.
-        */
-        class TVtEngVideoQuality
-            {
-
-        public:
-
-            // Forward for inner class
-            class TVQSParams;
-
-        public:
-
-            /**
-            * Constructor.
-            */
-            TVtEngVideoQuality();
-
-            /**
-            * Destructor.
-            */
-            ~TVtEngVideoQuality();
-
-            /**
-            * Sets new local video quality setting.
-            * @param aId Operation id.
-            * @param aSetPeer ETrue if peer video quality needs to be set,
-            * EFalse otherwise.
-            */
-            void SettingVideoQuality( TInt aId, const TVideoQuality aValue,
-                TBool aSetPeer );
-
-            /**
-            * Get current local video quality setting.
-            * @return Current local video quality setting.
-            */
-                TVideoQuality VideoQuality() const;
-
-            /**
-            * Setting video quality succeeded.
-            * @return ETrue if record with given id was found, EFalse other
-            * wise.
-            */
-            TBool SettingSucceeded( TInt aId, TVQSParams& aParams );
-
-            /**
-            * Setting video quality failed.
-            */
-            void SettingFailed( TInt aId );
-
-            /**
-            * Called when video quality indication is received from peer.
-            */
-            void UpdateVideoQuality( const TVideoQuality aVideoQuality );
-
-            /**
-            * Converts given trade off value to video quality enum.
-            */
-            TVideoQuality FromTradeOff( const TInt aTradeOff ) const;
-
-            /**
-            * Converts given video quality enum to trade off value.
-            */
-            TInt ToFrameRate( const TVideoQuality aVideoQuality ) const;
-
-            /**
-            * Converts given video quality value to frame rate.
-            */
-            TUint8 ToTradeOff( const TVideoQuality aVideoQuality ) const;
-
-            /**
-            * Finds id of setting param and returns index to it.
-            */
-            TInt FindVQSParam( TInt aId ) const;
-
-        public:
-
-            /**
-            * Video quality parameters.
-            */
-            struct TVQSParams
-                {
-
-            public:
-
-                // Default constructor
-                TVQSParams();
-
-                // Constructor with initializing parameters
-                TVQSParams( TInt aId, const TVideoQuality aValue,
-                    TBool aSetPeer );
-
-            public: // data
-
-                // Operation id
-                TInt iId;
-
-                // VideoQuality value to be set
-                TVideoQuality iValue;
-
-                // Defines whether peer video quality needs to be set or not
-                TBool iSetPeer;
-
-                };
-
-        private:
-
-            // Current local video quality
-            TVideoQuality iCurrent;
-
-            // Qued params
-            RArray< TVQSParams > iParamList;
-            };
-
-		// Class for handling different kind of H.245 logical
-		// channels and their state in different MONA call setup
-		// scenarios
-		class TLogicalChannel
-			{
-		public:
-
-			// H.245 logical channel ID to be established or
-			// already active
-			TUint iLogicalChannelId;
-
-			// H.245 logical channel ID that is currently closing.
-			TUint iLogicalChannelIdClosing;
-
-			// Variable to tell is same type (video or audio, incoming or outgoing)
-			// channel already started to close but not closed yet. If closing is pending
-			// same type channel cannot be opened until closing has finished or sink/source
-			// addition has failed for some reason.
-			TBool iSameTypeClosingPending;
-
-			// Variable to tell is same type (video or audio, incoming or outgoing)
-			// channel ready to be opened.
-			TBool iSameTypeChannelReadyToOpen;
-
-			};
-
-    private:    // Data members.
-
-        // Protocol engine pointer.
-        MVtSessionCommand* iSessionCommand;
-
-        // Local video configuration.
-        CVtEngLocalVideo*   iLocalVideo;
-
-        // Remote video configuration.
-        CVtEngRemoteVideo*  iRemoteVideo;
-
-        // Pending internal operations.
-        TInt               iCmdId;
-        CArrayFixFlat<TCmdOpPair>* iPendingOps;
-
-        // Video Source initialization state.
-        TInitState          iVSInitState;
-
-        // Flags used to determine if audio and video sink/source
-        // is added to protocol and media state.
-        TInt                iProtoStateFlags;
-
-        // protocol state.
-        MVtProtocolCommand::TVtProtocolState        iProtoState;
-
-        // Initialization flag.
-        TBool               iInitialized;
-
-        // Remote media state.
-        TInt                iRemoteMediaState;
-
-        // Pending operation from client.
-        CVtEngOperation*    iPendingOp;
-
-        // Protocol initialization information.
-        TVtInitInfo     iSdkInitInfo;
-
-
-        // Request status for (un)initialization.
-        TRequestStatus*     iRequestStatus;
-
-        // Audio controller handle.
-        MVtAudioConfigCommand* iAudioCtrl;
-
-        // Timer to detect failure in disconnection.
-        CPeriodic* iTimer;
-
-        // Protocol max volume.
-        TInt iProtoMaxVolume;
-
-        // Selected camera is not necessary activated also.
-        TCameraId           iSelectedCameraId;
-
-        // ETrue when it is allowed to update volume.
-        TBool iUpdateVolumeAllowed;
-
-        // ETrue when it is needed to update volume.
-        TBool iUpdateVolumeRequired;
-
-        // Owned asynch callback.
-        CIdle* iAsyncCallback;
-
-        // Pending volume operation.
-        CVtEngOperation*    iPendingVolumeOp;
-
-        // Used for various connection related operations.
-        TInt iConnectionStates;
-
-        // Used while pausing and resuming video.
-        CVtEngLocalVideo::TVtEngProviderType iTempProviderInfo;
-
-        // Used for setting the vendor info.
-        MVtH324ConfigCommand* iH324Config;
-
-
-        // Used H263 interface.
-        MVtVideoConfigCommand* iH263Encoder;
-
-        // Video quality
-        TVtEngVideoQuality iVideoQuality;
-
-        // Sharing object while video is disable will set this flag
-        TVideoEngAction iVideoAction;
-
-		// Logical channel structure for outgoing video channel(s).
-		TLogicalChannel iVideoOutgoingLogicalChannel;
-
-		// Logical channel structure for outgoing audio channel(s).
-		TLogicalChannel iAudioOutgoingLogicalChannel;
-
-		// Logical channel structure for incoming video channel(s).
-		TLogicalChannel iVideoIncomingLogicalChannel;
-
-		// Logical channel structure for incoming audio channel(s).
-		TLogicalChannel iAudioIncomingLogicalChannel;
-
-		/* For proceeding to next uninit step asynchronously.
-		 * Needed because Proto extension interface cannot be released within
-		 * callback 
-		 */
-		 CAsyncCallBack* iNextStepCallback;
-
-
-        /* Do not complete operation on pause command. This flag
-         * is used when image sharing is stopped and video was disabled
-         * when sharing was initially started to prevent black frame sending
-         * during blank switch.
-         */
-        TBool iPauseNoCompleteOp;
-
-        /**
-        * Result for asynchronous operation completion.
-        */
-        TInt iAsyncCompleteOpResult;
-    };
-
-#endif      // CVTENGMEDIAHANDLER_H
-
-// End of File