diff -r f15ac8e65a02 -r 779871d1e4f4 vtuis/lcvtplugin/inc/base/clcvtsession.h --- a/vtuis/lcvtplugin/inc/base/clcvtsession.h Tue Aug 31 15:16:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,572 +0,0 @@ -/* -* ========================================================================== -* Name : lcvtsession.h -* Description : -* Version : -* -* Copyright ?2005 Nokia Corporation. -* This material, including documentation and any related -* computer programs, is protected by copyright controlled by -* Nokia Corporation. All rights are reserved. Copying, -* including reproducing, storing, adapting or translating, any -* or all of this material requires the prior written consent of -* Nokia Corporation. This material also contains confidential -* information which may not be disclosed to others without the -* prior written consent of Nokia Corporation. -* ========================================================================== -*/ - -#ifndef LCVTSESSION_H -#define LCVTSESSION_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - - -#include "tlcvtcamerahandler.h" -#include "clcvtactiveexec.h" -#include "tlcvtstatebase.h" -#include "lcvtindicatorcontroller.h" - -#define NGA_VIDEO_RENDER - -class CVtEngModel; -class CLcVtLocalVideoPlayer; -class CLcVtRemoteVideoPlayer; -class TLcVtStates; -class CLcVtCmdExecutor; - - -class CLcVtSession : public CBase, - public MLcSession, - public MLcAudioControl, - public MLcVtActiveExec, - public MLcVtStateContext - { -public: - - static CLcVtSession* NewL(); - - ~CLcVtSession(); - -public: // From MLcSession - - TLcSessionState LcSessionState() const; - - void EstablishLcSessionL(); - - void TerminateLcSessionL(); - - void SetLcSessionObserver( MLcSessionObserver* aObserver ); - - void SetLcUiProvider( MLcUiProvider* aUiProvider ); - - TBool IsBackgroundStartup(); - - MLcVideoPlayer* RemoteVideoPlayer(); - - MLcVideoPlayer* LocalVideoPlayer(); - - const TDesC& LocalDisplayName(); - - const TDesC& RemoteDisplayName(); - - TInt SetParameter( TInt aId, TInt aValue ); - - TInt ParameterValue( TInt aId ); - - TInt SetForegroundStatus( TBool aIsForeground ); - - const TDesC& RemoteDetails(); - - void UpdateLcSessionL(); - - TBool SendDialTone( TChar aKey ); - -public: // from MLcAudioControl - - TBool IsLcAudioMutedL(); - - void MuteLcAudioL( TBool aMute ); - - TBool IsLcMicMutedL(); - - void MuteLcMicL( TBool aMute ); - - TBool IsEnablingLcLoudspeakerAllowed(); - - void EnableLcLoudspeakerL( TBool aEnabled ); - - TBool IsLcLoudspeakerEnabled(); - - TInt LcVolumeL(); - - void SetLcVolumeL( TInt aValue ); - - void IncreaseLcVolumeL(); - - void DecreaseLcVolumeL(); - -public: //from MLcVtActiveExec - /** - * @see MLcVtActiveExec::ActiveExecExecuteL. - */ - TBool ActiveExecExecuteL( - CLcVtActiveExec& aActiveExec, - const TInt aState, - TInt& aNextState, - TRequestStatus& aRequest ); - - /** - * @see MLcVtActiveExec::ActiveExecContinue. - */ - TBool ActiveExecContinue( - CLcVtActiveExec& aActiveExec, - TInt& aState, - const TInt aError ); - - /** - * @see MLcVtActiveExec::ActiveExecCancel. - */ - void ActiveExecCancel( - CLcVtActiveExec& aActiveExec, - const TInt aState ); - - /** - * @see MLcVtActiveExec::ActiveExecDone. - */ - virtual void ActiveExecDone( - CLcVtActiveExec& aActiveExec, - const TInt aInitialState ); - -public: //new function - /** - * @see MLcVtActiveExec::ActiveExecExecuteL. - */ - TBool ActiveExecInitExecuteL( - const TInt aState, - TInt& aNextState, - TRequestStatus& aRequest ); - - /** - * @see MLcVtActiveExec::ActiveExecContinue. - */ - TBool ActiveExecInitContinue( - TInt& aState, - const TInt aError ); - - /** - * @see MLcVtActiveExec::ActiveExecCancel. - */ - void ActiveExecInitCancel( - const TInt aState ); - - /** - * @see MLcVtActiveExec::ActiveExecDone. - */ - void ActiveExecInitDone( - const TInt aInitialState ); - - /** - * Executes command taking no parameters. - * @param aCommand command to be performed. - * @param aRequest request status. - */ - void ActiveExecInitExecuteCommandL( - const TVtEngCommandId aCommand, - TRequestStatus& aRequest ); - - /** - * Executes command taking no parameters. - * @param aCommand command to be performed. - * @param aParam command parameters. - * @param aRequest request status. - */ - template < class T > - void ActiveExecInitExecuteCommandL( - const TVtEngCommandId aCommand, - T& aParam, - TRequestStatus& aRequest ); - - /** - * Executes prepare viewfinder command. - * @param aRequest request status to be completed when finished. - */ - void ActiveExecInitPrepareViewFinderL( - TRequestStatus& aRequest ); - - /** - * Executes prepare remote render command. - * @param aRequest request status to be completed when finished. - */ - void ActiveExecInitPrepareRemoteRenderL( - TRequestStatus& aRequest ); - - /** - * Executes 'prepare camera' command. - * @param aSource source to be prepared. - * @param aRequest request status. - */ - void ActiveExecInitPrepareCameraL( - const MVtEngMedia::TMediaSource aSource, - TRequestStatus& aRequest ); - - /** - * Executes 'set source' command. - * @param aSource source to be selected. - * @param aRequest request status. - */ - void ActiveExecInitSetSourceL( - const MVtEngMedia::TMediaSource aSource, - TRequestStatus& aRequest ); - - /** - * Performs a command without any parameters. - * @param aCommand command to be performed. - */ - void ExecuteCmdL( const TVtEngCommandId aCommand ); - - /** - * Performs a command with a parameter. - * @param aCommmand command to be performed. - * @param aParam parameter. - */ - template< class T > - void ExecuteCmdL( - const TVtEngCommandId aCommand, - T& aParam ); - - // ASYNCHRONOUS EXECUTION: - - /** - * Performs a command without any parameters. - * @param aExecutorPtr pointer to which returned value is stored. - * @param aCommand command to be performed. - * @param aStatus request status. - * @return dialog. - */ - CLcVtCmdExecutor* ExecuteCmdAsyncL( - CLcVtCmdExecutor** aExecutorPtr, - const TVtEngCommandId aCommand, - TRequestStatus& aStatus ); - - /** - * Performs a command with a parameter. - * @param aExecutorPtr pointer to which returned value is stored. - * @param aCommmand command to be performed. - * @param aParam parameter. - * @param aStatus request status. - * @return dialog. - */ - template< class T > - CLcVtCmdExecutor* ExecuteCmdAsyncL( - CLcVtCmdExecutor** aExecutorPtr, - const TVtEngCommandId aCommand, - T& aParam, - TRequestStatus& aStatus ); - - /** - * Performs a command. - * @param aExecutorPtr pointer to which returned value is stored. - * @param aCommand command. - * @param aParams parameter, optional. - * @param aStatus request status. - * @return dialog. - */ - CLcVtCmdExecutor* DoExecuteCmdAsyncL( - CLcVtCmdExecutor** aExecutorPtr, - const TVtEngCommandId aCommand, - TDesC8* aParams, - TRequestStatus& aStatus ); - - /** - * Executes command in TRAP harnness. - * @param aCommand command identifier. - * @param aParam optional, parameters. - * @return error code. - */ - TInt Execute( const TVtEngCommandId aCommand, TDesC8* aParam ); - - /** - * Handles layout changes basically calling HandleLayoutChangedL - * in trap harness. - * @return error code. - */ - //TInt HandleLayoutChanged(); - - /** - * Handles layout changes. - */ - void HandleLayoutChangedL(); - -public: //from MLcVtStateContext - - /** @see MLcVtStateContext::StartupPhase1L */ - void StartupPhase1L(); - - /** @see MLcVtStateContext::ShutdownL */ - void ShutdownL(); - - /** @see MLcVtStateContext::StartupPhase2L */ - void StartupPhase2L(); - - /** @see MLcVtStateContext::ChangeApplicationFocus */ - void ChangeApplicationFocus( const TBool aForeground ); - - /** @see MLcVtStateContext::ChangeState */ - void ChangeState( TLcVtStateBase* aState ); - - /** @see MLcVtStateContext::StartTone */ - //void StartDtmfTone( const TChar& aTone ); - - /** @see MLcVtStateContext::StopTone */ - //void StopDtmfTone(); - - /** @see MLcVtStateContext::Model */ - CVtEngModel& Model(); - - /** @see MLcVtStateContext::NumberSource*/ - TDesC* NumberSource() const; - - /** @see MLcVtStateContext::RefreshL */ - void RefreshL( const TInt aRefreshFlags ); - - /** @see MLcVtStateContext::RefreshStatesL */ - void RefreshStatesL(); - - /** @see MLcVtStateContext::DoExecuteCmdL */ - void DoExecuteCmdL( - const TVtEngCommandId aCommand, - TDesC8* aParams ); - - /** @see MLcVtStateContext::DoHandleLayoutChangedL */ - void DoHandleLayoutChangedL(); - - /** From MLcVtShutterObserver via MLcVtStateContext - * Exits the application. - */ - void HandleShutdownReady(); - - /** @see MLcVtStateContext::SetCallIdL */ - void SetCallIdL( const TInt aCallId ); - - /** @see MLcVtStateContext::SetCallNameL */ - TBool SetCallNameL( const TDesC& aName ); - - /** @see MLcVtStateContext::SetCallNumberL */ - void SetCallNumberL( const TDesC& aNumber ); - - /** @see MLcVtStateContext::StartShutdown */ - void StartShutdown(); - -public: //new functions - - /** - * Static async callback for handling layout change. - */ - //static TInt DelayedHandleLayoutChanged( TAny* aPtr ); - - /** - * Callback function to exit. - * @param aAny pointer to instance of this class. - * @return KErrNone always. - */ - static TInt DoExit( TAny* aAny ); - - /** - * Close UI Application. - */ - void CloseApp(); - - /** - * Handles engine reset. - */ - void HandleEngineResetL(); - - /** - * Handle plugin command. - */ - void HandleCommandL(const TInt acommand); - - /** - * Sets given zoom step, if it allowed. - * @param aZoomStep New zoom step to be set. - */ - void SetZoomFactorL( TInt aZoomStep ); - - /** - * Updates rendering parameters. - */ - void UpdateRenderingParametersL(); - - inline TLcVtStates& LcVtStates(); - -#ifndef NGA_VIDEO_RENDER - void vtHandleFrameL( CFbsBitmap* aBitmap ); -#endif - TBool IsFeatureSupported( CLcEngine::TLcFeature aLcFeature ); - - -private: - CLcVtSession(); - - void ConstructL(); - -#ifndef NGA_VIDEO_RENDER - /** - * connect to font & bitmap server. - */ - void ConnectFbsServerL(); - - /** - * disconnect from font & bitmap server. - */ - void DisconnectFbsServer(); -#endif - - // COMMAND HANDLING - - /** - * Enables audio (unmute microphone). - */ - void CmdEnableAudioL(); - - /** - * Disables audio (mute microphone). - */ - void CmdDisableAudioL(); - - /** - * Switches used camera. - * @param aPrimaryCamera ETrue if primary camera is to be selected, - * EFalse if secondary camera is to be selected. - */ - void CmdUseCameraL( const TBool aPrimaryCamera ); - - /** - * Activates loudspeaker. - */ - void CmdActivateLoudspeakerL(); - - /** - * Deactivates loudspeaker. - */ - void CmdDeactivateLoudspeakerL(); - - /** - * Enables video. - */ - void CmdEnableVideoL(); - - /** - * Disables video. - */ - void CmdDisableVideoL(); - -#ifdef NGA_VIDEO_RENDER - void CreateVideoWindowsL(); - void DestroyVideoWindows(); -#endif - -private: - class CEventObserver; - -private: -#ifdef NGA_VIDEO_RENDER - RWindow* iRemoteVideoWindow; - RWindow* iLocalVideoWindow; -#else - CFbsBitmap* iDummy; - CWindowGc* iGc; - TBool iFbsStarted; - RWsSession* iWsSession; - CWsScreenDevice* iWsSessionScreenDev; - RWindowGroup *iRootWin; -#endif - // Owned event observer. - CEventObserver* iEventObserver; - // Engine model. - CVtEngModel* iModel; - // plugin states (media, audio, boolean variables) - TLcVtStates* iLcVtStates; - - TVtCameraHandler iCameraHandler; - CLcVtLocalVideoPlayer* iLocalVideoPlayer; - CLcVtRemoteVideoPlayer* iRemoteVideoPlayer; - - MLcSessionObserver* iObserver; - MLcUiProvider* iUiProvider; - - TLcSessionState iSessionState; - - // Owned active executor for initialisation / uninitialisation. - CLcVtActiveExec* iActiveExec; - - CLcVtCmdExecutor* iCmdExecutor; - - // Reference to request status. - TRequestStatus* iShutdownRequest; - - TLcVtStateBase* iState; - - // ASync callback. - CAsyncCallBack* iAsyncCallback; - - // Async callback for layout change - //CAsyncCallBack* iLayoutChangeCallback; - - // DTMF tone, used as parameter to KVtEngStartDtmfTone. - TPckgBuf< TChar > iDtmfTone; - - TBool iLoudspeakerEnabled; - TBool iMute; - - RWindow* iMainWindow; - - RWsSession iRwSession; - RWindowGroup* iRwGroup; - CWsScreenDevice* iDev; - - HBufC* iRemoteDisplayName; - HBufC* iRemoteDetails; - - TInt VideoSendingKey; - - LcVtIndicatorController* iIndicatorCtr; - }; - - -TLcVtStates& CLcVtSession::LcVtStates() - { - return *iLcVtStates; - } -#endif // LCVTSESSION_H - -// end of file