--- a/vtuis/videotelui/inc/CVtUiAppUi.h Tue Jan 26 12:01:21 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1469 +0,0 @@
-/*
-* Copyright (c) 2004-2008 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: Application UI class for Video Telephone application.
-*
-*/
-
-
-
-#ifndef CVTUIAPPUI_H
-#define CVTUIAPPUI_H
-
-// INCLUDES
-#include <aknappui.h>
-#include <vtengcommands.h>
-#include <mvtengmedia.h>
-#include <tvtengrendering.h>
-#include <tvtengrenderingdsa.h>
-#include <tvtengrenderingdp.h>
-#include <tvtengrenderingnga.h>
-#include <AknProgressDialog.h>
-#include <mvtengaudio.h>
-#include <remconcoreapi.h>
-
-#include "CVtUiActiveExec.h"
-#include "tvtuilocalvariation.h"
-#include "tvtuiappstatebase.h"
-
-
-// FORWARD DECLARATION
-class CVtUiBlankControl;
-class CAknNavigationControlContainer;
-class CAknTitlePane;
-class CVtEngModel;
-class MVtUiVideoWindow;
-class CRepository;
-class CAknQueryDialog;
-class CAknProgressDialog;
-class TVtUiStates;
-class CVtUiCommandManager;
-class CVtUiComponentManager;
-class CVtUiFeatureManager; // TOOLBAR MOD
-class MVtUiNumberSource;
-class CVtUiMainControl;
-class CVtUiContextControl;
-class CVtUiBitmapManager;
-class CVtUiVolumeControl;
-class CAknIncallBubble;
-class CVtUiRemoteVideoControl;
-
-// CLASS DECLARATION
-
-/**
-* Application UI class for Video Telephone application.
-*
-* @since Series 60 2.6
-*/
-class CVtUiAppUi
- : public CAknAppUi,
- protected MVtUiActiveExec,
- public MVtUiStateContext,
- public MProgressDialogCallback
- {
- public:
-
- // Rendering modes
- enum TRenderingMode
- {
- ERenderingModeDefault,
- ERenderingModeDialer
- };
-
- public: // Constructors and destructor
-
- /**
- * C++ constructor.
- */
- CVtUiAppUi();
-
- /**
- * Symbian constructor.
- */
- void ConstructL();
-
- /**
- * C++ destructor.
- */
- ~CVtUiAppUi();
-
- public: // New functions
-
- /*
- * This function decides possibility of swapimg image places.
- */
- TBool CanSwapImagePlaces();
-
- /*
- * Switches status pane between flat and normal one.
- */
- void SwitchLayoutToFlatStatusPaneL( TBool aSwitch );
-
- /**
- * Refreshes all.
- */
- void RefreshL();
-
- /**
- * Refreshes navi pane.
- */
- void RefreshNaviPaneL();
-
- /**
- * Refreshes softkeys.
- */
- void RefreshSoftkeysL();
-
- /**
- * Refreshes menu.
- */
- void RefreshMenuL();
-
- /**
- * Refresh zoom popup
- */
- void RefreshZoomPopupL();
-
- /**
- * Stop brightness or Contrast
- */
- void StopBrightnessOrContrast();
- /**
- * Refreshes blind flags.
- */
- void RefreshBlind();
-
- /**
- * Refreshes synchronisation.
- */
- void RefreshSynchronise();
-
- /**
- * Opens number entry.
- * @return ETrue if number entry opened.
- */
- TBool OpenNumberEntryL();
-
- /**
- * Handles EKeyPhoneSend presses
- */
- TKeyResponse HandlePhoneSendKeyL( const TKeyEvent& aKeyEvent,
- TEventCode aType );
-
- /**
- * Returns pointer to cba.
- */
- CEikButtonGroupContainer* GetCba();
-
- /**
- * Sets zoom mode.
- * @param aEnableZoomMode Etrue if zoom mode is on.
- * EFalse otherwise.
- * @param aIsPermanent ETrue if zoomindicator's timeout
- * should be ignored. EFalse otherwise..
- */
- void SetZoomModeL( const TBool aEnableZoomMode,
- const TBool aIsPermanent = EFalse );
-
- /**
- * Checks if command is active.
- * @param aCommand Command id.
- * @return Etrue if command is active
- * EFalse otherwise.
- */
- TBool IsActiveCommand( TInt aCommand ) const;
-
- TVtUiAppStateBase& State();
-
- /**
- * Returns reference to bitmap manager.
- */
- CVtUiBitmapManager& BitmapManager();
-
- /**
- * Sets given zoom step, if it allowed.
- * @param aZoomStep New zoom step to be set.
- */
- void SetZoomFactorL( TInt aZoomStep );
-
- public: // Functions from base classes
-
- /**
- * From CAknAppUi, handles window server events.
- * @param aEvent event.
- * @param aDestination destination control.
- */
- virtual void HandleWsEventL(
- const TWsEvent& aEvent,
- CCoeControl* aDestination );
-
- /**
- * From CAknAppUi, processes commands.
- * @param aCommand the identifier of the command to be handled.
- */
- virtual void ProcessCommandL(
- TInt aCommand );
-
- /**
- * From CAknAppUi, handles commands.
- * @param aCommand the identifier of the command to be handled.
- */
- virtual void HandleCommandL(
- TInt aCommand );
-
- /**
- * From CAknAppUi, handles dynamic initialisation of menu panes.
- * @param aResourceId the resource identifier for the pane.
- * @param aMenuPane the menu pane corresponding to the resource.
- */
- virtual void DynInitMenuPaneL(
- TInt aResourceId,
- CEikMenuPane* aMenuPane );
-
- /**
- * From CAknAppUi, handles key events.
- * @param aKeyEvent event to be handled.
- * @param aType type of the key event.
- * @return response code (EKeyWasConsumed, EKeyWasNotConsumed)
- */
- virtual TKeyResponse HandleKeyEventL(
- const TKeyEvent& aKeyEvent,
- TEventCode aType );
-
- /**
- * From CAknAppUi, handles resouce changes.
- * @param aType type of resource change.
- */
- virtual void HandleResourceChangeL( TInt aType );
-
- /**
- * From CAknAppUi, handles foreground status changes.
- * @param aForeground ETrue if foreground.
- */
- virtual void HandleForegroundEventL( TBool aForeground );
-
- /**
- * Returns a pointer to CEikonEnv.
- */
- CEikonEnv* GetEikonEnv();
-
- protected: // Functions from base classes
-
- /**
- * From CAknAppUi, returns help context.
- * @return help context.
- */
- virtual CArrayFix<TCoeHelpContext>* HelpContextL() const;
-
- /**
- * @see MVtUiActiveExec::ActiveExecExecuteL.
- */
- virtual TBool ActiveExecExecuteL(
- CVtUiActiveExec& aActiveExec,
- const TInt aState,
- TInt& aNextState,
- TRequestStatus& aRequest );
-
- /**
- * @see MVtUiActiveExec::ActiveExecContinue.
- */
- virtual TBool ActiveExecContinue(
- CVtUiActiveExec& aActiveExec,
- TInt& aState,
- const TInt aError );
-
- /**
- * @see MVtUiActiveExec::ActiveExecCancel.
- */
- virtual void ActiveExecCancel(
- CVtUiActiveExec& aActiveExec,
- const TInt aState );
-
- /**
- * @see MVtUiActiveExec::ActiveExecDone.
- */
- virtual void ActiveExecDone(
- CVtUiActiveExec& aActiveExec,
- const TInt aInitialState );
-
- public: // from MVtUiStateContext
-
- /** @see MVtUiStateContext::StartupPhase1L */
- virtual void StartupPhase1L();
-
- /** @see MVtUiStateContext::ShutdownL */
- virtual void ShutdownL();
-
- /** @see MVtUiStateContext::StartupPhase2L */
- virtual void StartupPhase2L();
-
- /** @see MVtUiStateContext::ChangeApplicationFocus */
- virtual void ChangeApplicationFocus( const TBool aForeground );
-
- /** @see MVtUiStateContext::ChangeState */
- virtual void ChangeState( TVtUiAppStateBase* aState );
-
- /** @see MVtUiStateContext::StartTone */
- virtual void StartDtmfTone( const TChar& aTone );
-
- /** @see MVtUiStateContext::StopTone */
- virtual void StopDtmfTone();
-
- /** @see MVtUiStateContext::Model */
- virtual CVtEngModel& Model();
-
- /** @see MVtUiStateContext::VideoTelephonyVariation */
- virtual const TVtUiVideoTelephonyVariation&
- VideoTelephonyVariation() const;
-
- /** @see MVtUiStateContext::NumberSource*/
- virtual MVtUiNumberSource* NumberSource() const;
-
- /** @see MVtUiStateContext::RefreshL */
- virtual void RefreshL( const TInt aRefreshFlags );
-
- /** @see MVtUiStateContext::DoExecuteCmdL */
- virtual void DoExecuteCmdL(
- const TVtEngCommandId aCommand,
- TDesC8* aParams );
-
- /** @see MVtUiStateContext::DoHandleLayoutChangedL */
- virtual void DoHandleLayoutChangedL();
-
- /** From MVtUiShutterObserver via MVtUiStateContext
- * Exits the application.
- */
- virtual void HandleShutdownReady();
-
- /**
- * Gets reference to context control.
- * @return reference to context control.
- */
- CVtUiContextControl& ContextControl();
-
- /**
- * Gets reference to main control.
- * @return reference to main control.
- */
- CVtUiMainControl& MainControl();
-
- /**
- * Gets reference to remote video control.
- * @return reference to remote video control.
- */
- CVtUiRemoteVideoControl& RemoteVideoControl();
-
- /**
- * Switches viewfinder to main pane if it is currently in context
- * pane.
- */
- void SwitchViewFinderToMainPaneL( TBool aUpdateState = ETrue );
-
- /**
- * Switches viewfinder to context pane if it is currently in main
- * pane.
- */
- void SwitchViewFinderToContextPaneL( TBool aUpdateState = ETrue );
-
- /**
- * Restores viewfinder back to pane where it was prior to calling the
- * switch ViewFinderToMainPane() or ViewFinderToContextPane() methods.
- */
- void RestoreViewFinderL();
-
- /*
- * Updates volume to the Video Telephone engine.
- */
- void CmdUpdateVolumeL( MVtEngAudio::TVtEngOutputVolume aVolume );
-
- /**
- * Increases "command activating" ref.count and adds cleanup item
- * to decrease it. Refreshes commands in case of first increment from
- * zero. When PopAndDestroy() is called, cleanup decreases reference
- * count and if it reduces back to zero command refresh is again done.
- */
- void EnableCommandActivatingAndCleanupPushL();
-
- private: // from MProgressDialogCallback
-
- /**
- * @see MProgressDialogCallback::DialogDismissedL
- */
- void DialogDismissedL( TInt aButtonId );
-
- private:
-
- // COMMAND HANDLING
-
- /**
- * Checks if command is allowed.
- * @param aCommand command identifier.
- * @return ETrue if allowed, EFalse otherwise.
- */
- TBool IsCommandAllowedL( const TInt aCommand );
-
- /**
- * Refreshes iDisabledFlags.
- */
- void RefreshDisabledFlagsL();
-
- /**
- * Refreshes camera option availability.
- * @param aUsePrimaryCameraNotAllowed it will be updated to ETrue if
- * it is not allowed to activate primary camera.
- * @param aUseSecondaryCameraNotAllowed it will be updated to ETrue if
- * it is not allowed to activate secondary camera.
- */
- void RefreshCameraOptionAvailability(
- TBool& aUsePrimaryCameraNotAllowed,
- TBool& aUseSecondaryCameraNotAllowed );
-
- /**
- * Enables capture mode.
- */
- void CmdSnapshotL();
-
- /**
- * Freezes outgoing video image.
- */
- void CmdCaptureL();
-
- /**
- * Disables capture mode.
- */
- void CmdCancelCaptureL();
-
-
- /**
- * Enables video.
- */
- void CmdEnableVideoL();
-
- /**
- * Enables audio (unmute microphone).
- */
- void CmdEnableAudioL();
-
- /**
- * Disables video.
- */
- void CmdDisableVideoL();
-
- /**
- * Disables audio (mute microphone).
- */
- void CmdDisableAudioL();
-
- /**
- * Activates Bluetooth handsfree.
- */
- void CmdActivateBtL();
-
- /**
- * Deactivates Bluetooth handsfree.
- */
- void CmdDeactivateBtL();
-
- /**
- * Activates loudspeaker.
- */
- void CmdActivateLoudspeakerL();
-
- /**
- * Deactivates loudspeaker.
- */
- void CmdDeactivateLoudspeakerL();
-
- /**
- * Ends active call.
- */
- void CmdEndActiveCallL();
-
- /**
- * Swaps images places.
- */
- void CmdSwapImagesPlacesL();
-
- /**
- * 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 );
-
- /**
- * Launches help application.
- */
- void CmdHelpL();
-
- /**
- * Prepare exiting the application.
- */
- void PrepareExitL();
-
- /**
- * Updates zoom step to Video Telephone engine.
- */
- void CmdUpdateZoomL();
-
- /**
- * Dials emergency call.
- */
- void CmdDialEmergencyL();
-
- /**
- * Goes to Idle.
- */
- void CmdGoToIdleL();
-
- /**
- * Initialize image sharing.
- */
- void CmdInitializeShareImageL( TBool& aNeedRefresh );
-
- /**
- * Start sharing image.
- */
- void CmdShareImageL();
-
- /**
- * Stops sharing image.
- */
- void CmdStopShareImageL( TBool& aNeedRefresh );
-
- /**
- * Handles change in call waiting state.
- * @param aIsWaiting The state of call waiting.
- */
- void HandleWaitingStateChange( TBool aIsWaiting );
-
- // STATE TRANSITIONS
-
- /**
- * @see MVtUiActiveExec::ActiveExecExecuteL.
- */
- TBool ActiveExecInitExecuteL(
- const TInt aState,
- TInt& aNextState,
- TRequestStatus& aRequest );
-
- /**
- * @see MVtUiActiveExec::ActiveExecContinue.
- */
- TBool ActiveExecInitContinue(
- TInt& aState,
- const TInt aError );
-
- /**
- * @see MVtUiActiveExec::ActiveExecCancel.
- */
- void ActiveExecInitCancel(
- const TInt aState );
-
- /**
- * @see MVtUiActiveExec::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 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 );
-
- /**
- * 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 command taking no parameters.
- * @param aCommand command to be performed.
- * @param aRequest request status.
- */
- void ActiveExecCmdExecuteCommandL(
- const TVtEngCommandId aCommand,
- TRequestStatus& aRequest );
-
- /**
- * Executes 'set source' command.
- * @param aSource source to be selected.
- * @param aRequest request status.
- */
- void ActiveExecCmdSetSourceL(
- const MVtEngMedia::TMediaSource aSource,
- TRequestStatus& aRequest );
-
- /**
- * Executes 'prepare camera' command.
- * @param aSource source to be selected.
- * @param aRequest request status.
- */
- void ActiveExecCmdPrepareCameraL(
- const MVtEngMedia::TMediaSource aSource,
- TRequestStatus& aRequest );
-
-
- /**
- * Determines main control options.
- * @param aRemoteVideo for remote video.
- * @return rendering options.
- */
- TVtEngRenderingOptions
- DetermineMainControlOptions( TBool aRemoteVideo );
-
- /**
- * Determines context control options.
- * @return rendering options.
- */
- TVtEngRenderingOptions DetermineContextControlOptions();
-
- /**
- * Determines dialer control options.
- * @return rendering options.
- */
- TVtEngRenderingOptions DetermineDialerControlOptions();
-
- /**
- * Determines main control DSA options.
- * @param aRemoteVideo for remote video.
- * @return rendering options.
- */
- TVtEngRenderingOptionsDSA
- DetermineMainControlOptionsDSA( TBool aRemoteVideo );
-
- /**
- * Determines context control DSA options.
- * @return rendering options.
- */
- TVtEngRenderingOptionsDSA DetermineContextControlOptionsDSA();
-
- /**
- * Determines dialer control DSA options.
- * @return rendering options.
- */
- TVtEngRenderingOptionsDSA DetermineDialerControlOptionsDSA();
-
- /**
- * Determines main control DP options.
- * @param aRemoteVideo for remote video.
- * @return rendering options.
- */
- TVtEngRenderingOptionsDP
- DetermineMainControlOptionsDP( TBool aRemoteVideo );
-
- /**
- * Determines context control DP options.
- * @return rendering options.
- */
- TVtEngRenderingOptionsDP DetermineContextControlOptionsDP();
-
- /**
- * Determines dialer control DP options.
- * @return rendering options.
- */
- TVtEngRenderingOptionsDP DetermineDialerControlOptionsDP();
-
- /**
- * Determines remote video control options.
- * @return rendering options.
- */
- TVtEngRenderingOptionsNGA
- DetermineRemoteVideoControlOptionsNGA();
-
- // SYNCHRONOUS / BLOCKING EXECUTION:
-
- /**
- * 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 aDialogPtr pointer to which returned value is stored.
- * @param aCommand command to be performed.
- * @param aStatus request status.
- * @return dialog.
- */
- CEikDialog* ExecuteCmdAsyncL(
- CEikDialog** aDialogPtr,
- const TVtEngCommandId aCommand,
- TRequestStatus& aStatus );
-
- /**
- * Performs a command with a parameter.
- * @param aDialogPtr 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 >
- CEikDialog* ExecuteCmdAsyncL(
- CEikDialog** aDialogPtr,
- const TVtEngCommandId aCommand,
- T& aParam,
- TRequestStatus& aStatus );
-
- /**
- * Performs a command.
- * @param aDialogPtr pointer to which returned value is stored.
- * @param aCommand command.
- * @param aParams parameter, optional.
- * @param aStatus request status.
- * @return dialog.
- */
- CEikDialog* DoExecuteCmdAsyncL(
- CEikDialog** aDialogPtr,
- 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 );
-
- // EVENT HANDLING
-
- /**
- * Handles foreground changed events.
- * @param aIsForeground ETrue if foreground, EFalse otherwise.
- */
- void HandleForegroundChangedL(
- TBool aIsForeground );
-
- /**
- * Handles engine reset.
- */
- void HandleEngineResetL();
-
- /**
- * Handles successful answer operation.
- */
- void HandleAnswerL();
-
- /**
- * Stops waiting image text showing.
- */
- void StopWaitingImage();
-
- /**
- * Stops white balance showing.
- */
- void StopWhiteBalanceOrColortone();
-
- /**
- * Handles layout changes basically calling HandleLayoutChangedL
- * in trap harness.
- * @return error code.
- */
- TInt HandleLayoutChanged();
-
- /**
- * Handles layout changes.
- */
- void HandleLayoutChangedL();
-
- /**
- * Handles video frame.
- * @param aLocal local frame if ETrue, EFalse if remote.
- * @param aBitmap frame, ownership not transferred.
- */
- void HandleVideoFrameL(
- const TBool aLocal,
- CFbsBitmap* aBitmap );
-
- void SetVideoFrame(
- const TBool aLocal,
- CFbsBitmap* aBitmap );
-
- /**
- * Handles video call details.
- * @param aCallID call id.
- * @param aCallName call name.
- * @param aIsPeerAddressAvailable is peer address available.
- */
- void HandleVideoCallDetailsL(
- const TInt aCallId,
- const TDesC& aCallName,
- const TBool aIsPeerAddressAvailable );
-
- /**
- * Checks if it's time to bring this application
- * to the foreground.
- */
- void CheckBringToForeground();
-
- /**
- * Checks if it's time to send this application
- * to the background.
- */
- void CheckSendToBackground();
-
- /**
- * Handles remote problem.
- */
- void HandleVideoFrameRemoteProblemL();
-
- /**
- * Handles local problem.
- */
- void HandleVideoFrameLocalProblemL();
-
- /**
- * Set a new remote video layout.
- */
- void ChangeRemoteVideoLayoutL();
-
- /**
- * Show image initialization progress dialog.
- */
- void ShowImageInitializeProgressL();
-
- /**
- * Hide image initialization progress dialog.
- */
- void HideImageInitializeProgressL();
-
- /**
- * Sets SQCif usage.
- * @param aUseSQCif SQCif is used.
- */
- void RemoteVideoIsSQCif( TBool aUseSQCif );
-
- /**
- * Sets SQCif usage to control.
- * @param aUseSQCif SQCif is used.
- */
- void ControlUsesSQCif( TBool aUseSQCif );
-
- /**
- * Checks if beating needs to be started.
- * @param aCallDurationEnabled call duration enabled status.
- */
- void CheckBeatL( const TBool aCallDurationEnabled );
-
- /**
- * Handles heart beats.
- */
- void HandleBeat();
-
- // UTILITY METHODS
-
- /**
- * Informs the user that camera is reserved by another application.
- */
- void ShowCameraInUseNoteL() const;
-
- /**
- * Informs the user that the selected operation is not allowed.
- */
- void ShowNotAllowedNoteL() const;
-
- /**
- * Informs the user that it is not allowed to create normal call.
- */
- void ShowCallNotAllowedNoteL() const;
-
- /**
- * Informs the user that the other camera is not usable.
- */
- void ShowOtherCameraNotUsableNoteL() const;
-
- /**
- * Informs the user that image loading failed.
- */
- void ShowUnableToOpenNoteL() const;
-
- /**
- * Informs the user that error happened during image decoding.
- * Note: Cannot be constant because DoExecuteL() is used for
- * calling this method.
- */
- void ShowImageDecodingErrorNoteL();
-
- /**
- * Informs the user that image is DRM protected and cannot be opened.
- */
- void ShowDRMNotAllowedNoteL() const;
-
- /**
- * Sets softkeys.
- * @param aSoftkeyResourceId softkey resource id.
- */
- void SetSoftkeysL( const TInt aSoftkeyResourceId );
-
- /**
- * Sets application hidden from fast swap window.
- * @param aHidden ETrue if to be hidden, EFalse if visible.
- */
- void SetHiddenL( const TBool aHidden );
-
- /**
- * Updates title pane to show call index.
- * @param aCallId call id.
- */
- void SetCallIdL( const TInt aCallId );
-
- /**
- * Updates title pane to show name.
- * @param aName name to be displayed in title pane.
- * @return ETrue if succeeded, EFalse if not enough memory.
- */
- TBool SetCallNameL( const TDesC& aName );
-
- /**
- * Brings Telephone application to the foreground.
- */
- void BringTelephoneToForeground();
-
- /**
- * Returns window group identifier of the principal
- * telephone application.
- * @return window group id or 0 if failed.
- */
- TInt TelephoneApplicationWgId();
-
- /**
- * Returns ETrue if number entry should be shown to the user.
- * This can be called only after ReadTelephonyVariant has
- * been called.
- * @return ETrue if number entry should be shown to the user.
- */
- inline TBool ShowNumberEntry() const;
-
- /**
- * Checks if active idle is enabled.
- * @return ETrue if active idle is enabled.
- */
- TBool IsActiveIdleEnabledL() const;
-
- /**
- * Checks engine functionality.
- */
- void CheckEngineFunctionality();
-
- /**
- * Returns navi pane.
- * @return navi pane instance. Ownership not transferred.
- */
- inline CAknNavigationControlContainer* NaviPaneL();
-
- /**
- * Returns title pane.
- * @return title pane instance. Ownership not transferred.
- */
- inline CAknTitlePane* TitlePaneL();
-
- /**
- * Pushes item to cleanup stack to update softkeys.
- */
- inline void CleanupPushRefreshL();
-
- /**
- * Pushes item to cleanup stack to enable blind status setting.
- */
- inline void CleanupPushEnableBlindL();
-
- /**
- * Callback function to refresh navi pane and softkeys.
- * @param aAny pointer to an instance of this class.
- */
- static void DoRefresh( TAny* aAny );
-
- /**
- * Callback function to enable blind status checking.
- * @param aAny pointer to an instance of this class.
- */
- static void DoEnableBlindSetting( TAny* aAny );
-
- /**
- * Callback function to disable command activation
- * state.
- * @param aAny pointer to an instance of this class.
- */
- static void DoDisableCommandActivating( TAny* aAny );
-
- /**
- * Decreases command activation ref.count and refreshes
- * states if count gets zero.
- */
- void HandleCommandDeactivationL();
-
- /**
- * Callback function to handle exit timeout.
- * @param aAny pointer to instance of this class.
- * @return KErrNone always.
- */
- static TInt DoHandleExitTimeout( TAny* aAny );
-
- /**
- * Callback function to exit.
- * @param aAny pointer to instance of this class.
- * @return KErrNone always.
- */
- static TInt DoExit( TAny* aAny );
-
- /**
- * Checks whether viewfinder is currently in main pane.
- * @return ETrue if viewfinder is in main pane.
- */
- TBool IsViewFinderInMainPane() const;
-
-public:
- /**
- * Checks whether viewfinder is currently in context pane.
- * @return ETrue if viewfinder is in context pane.
- */
- TBool IsViewFinderInContextPane() const;
-private:
- /**
- * Updates context pane icon
- */
- void UpdateContextPaneIconL();
-
- /**
- * Enables or disables the incall bubble.
- */
- void SetIncallBubbleAllowedInUsualL( TBool aAllowed );
-
- /**
- * Shows progress dialog using given resource.
- */
- void ShowProgressDialogL( TInt aResourceId,
- MProgressDialogCallback* aCallback = NULL );
-
- /**
- * Hides (completes) progress dialog.
- */
- void HideProgressDialogL();
-
- /**
- * Static async callback for switching viewfinder to MainPane, also
- * starts image sharing.
- */
- static TInt AsyncViewFinderToMainPaneAndShare( TAny* aPtr );
-
- /**
- * Static async callback for starting image share.
- */
- static TInt AsyncShare( TAny* aPtr );
-
- /**
- * Static async callback for showing error note and resharing image.
- */
- static TInt AsyncShowErrorAndRestartShare( TAny* aPtr );
-
- /**
- * Static async callback for handling layout change.
- */
- static TInt DelayedHandleLayoutChanged( TAny* aPtr );
-
- /**
- * Gets current camera orientations for primary and secondary camera.
- */
- void GetCameraOrientations();
-
- /**
- * Sets initial camera orientation.
- */
- void SetInitialCameraOrientationL();
-
- /**
- * Sets current camera orientation.
- */
- void SetCameraOrientationL();
-
- /**
- * Updates engine states.
- */
- void RefreshStatesL();
-
- /**
- * Starts video preference feature specified by command id.
- */
- void CmdAdjustVideoL( TInt aCommand );
-
- /**
- * AppUi has been initialized and its current state is EVtUiAppUiAnswered.
- * Do any other needed initilization here e.g. start features.
- */
- void AppUiInitDoneDoPostInitL();
-
- /*
- * This function decides how the wsevent should be handled
- * if zoom mode is on.
- * @param aEvent window server event.
- * @return ETrue if caller function should return, EFalse otherwise.
- */
- TBool ProcessWsEventIfZoomModeIsActiveL( const TWsEvent& aEvent );
-
- /*
- * This function hides the brightness, contrast, volume slider if their mode is on.
- */
- void StopSliders();
-
- /**
- * Does pre handling to key events, especially for Zoom in and Zoom out
- * HW keys.
- * @param aEvent event.
- */
- TBool PreHandleKeyEventL( const TWsEvent& aEvent );
-
- /**
- * Calls SimulateKeyEventL() for stored zoom key event.
- */
- void SimulateStoredKeyEventL( const TEventCode aEventCode );
-
- /**
- * Stores zoom key event. If there is different zoom key event
- * already stored, keyup event is sent for that event before
- * new event is stored.
- */
- void StoreKeyEventL( const TKeyEvent& aKeyEvent );
-
- /**
- * Callback function that calls TryToStartTb function
- */
- static TInt DoTryToStartTbL( TAny* aAny );
-
- /*
- * Tries to start toolbar. Toolbar is started if
- * option menus is not visible.
- */
- void TryToStartTbL();
-
- /*
- * Update video prefrence
- */
- void UpdateVBSettingL();
-
-
- /**
- * Sets current rendering mode (i.e. default or dialer)
- */
- void SetRenderingModeL( const TRenderingMode aMode,
- MVtUiVideoWindow* aDownlink );
-
- /**
- * Updates rendering parameters.
- */
- void UpdateRenderingParametersL();
-
- /*
- * Media state has been changed
- */
- void MediaStateChangedL();
-
- /*
- * Updates volume slider
- */
- void RefreshVolumeL();
-
- /*
- * Adjusts volume up or down one step.
- */
- void AdjustVolumeL( TRemConCoreApiOperationId aOperationId );
-
- private:
-
- // Pointer to stored downlink window.
- MVtUiVideoWindow* iStoredDownlinkWindow;
-
- // Current rendering mode
- TRenderingMode iRenderingMode;
-
- // Command framework instance
- CVtUiCommandManager* iCommandManager;
-
- // Inner class.
- class CInstance;
-
- // Model instance. Exists only while there is a video call.
- CInstance* iInstance;
-
- // Inner class to observe all events.
- class CEventObserver;
-
- // Inner class for verifying media gallery objects
- class CVtUiAppUiMGVerifier;
-
- // Owned event observer.
- CEventObserver* iEventObserver;
-
- // Owned blank control for reset & shutdown.
- CVtUiBlankControl* iBlankControl;
-
- /**
- * Enumerates disabled flags:
- * EDisabledVideo - video disabled,
- * EDisabledAudio - audio disabled,
- * EVideoOptionsDisabled - video options disabled.
- */
- enum TDisabledFlags
- {
- EDisabledVideo = 1,
- EDisabledAudio = 2,
- EVideoOptionsDisabled = 4
- };
-
- // The Ihf Note id.
- TInt iIhfNoteId;
-
- // Flags for disabled. Sum of subset of TDisabledFlags.
- TInt iDisabledFlags;
-
- // Current softkey resource id.
- TInt iCurrentSoftkeys;
-
- // Telephony variant.
- TVtUiVideoTelephonyVariation iVTVariation;
-
- // Window group id of this application.
- TInt iThisApplicationWgId;
-
- // Window group id of eikon server.
- TInt iEikonServerWgId;
-
- // Window group id for AknCapServer
- TInt iAknCapServerWgId;
-
- // Window group id for Akn Notifier Server
- TInt iAknNfyServerWgId;
-
- // Owned active executor for initialisation / uninitialisation.
- CVtUiActiveExec* iActiveExec;
-
- // Owned current dialog on execution.
- CEikDialog* iExecDialog;
-
- // Owned blank dialog.
- CEikDialog* iExecBlankDialog;
-
- // Reference to request status.
- TRequestStatus* iShutdownRequest;
-
- // Owned active executor for command execution.
- CVtUiActiveExec* iCmdActiveExec;
-
- // Owned current dialog on command execution.
- CEikDialog* iCmdExecDialog;
-
- // Owned blank dialog on command execution.
- CEikDialog* iCmdExecBlankDialog;
-
-
- // Owned timer for making sure that
- // the application is terminated in time.
- CPeriodic* iExitTimer;
-
- // DTMF tone, used as parameter to KVtEngStartDtmfTone.
- TPckgBuf< TChar > iDtmfTone;
-
- // Pointer to uplink window.
- MVtUiVideoWindow* iUplinkWindow;
-
- // Pointer to downlink window.
- MVtUiVideoWindow* iDownlinkWindow;
-
- // Query dialog for switching to voice call
- CAknQueryDialog* iCreateVoiceCallDlg;
-
- // Progress dialog shown when initializing
- CAknProgressDialog* iProgressDlg;
-
- // ASync callback.
- CAsyncCallBack* iAsyncCallback;
-
- // Async callback for layout change
- CAsyncCallBack* iLayoutChangeCallback;
-
- // Camera orientation for primary camera
- MVtEngMedia::TCameraOrientation iPrimaryCameraOrientation;
-
- // Camera orientation for secondary camera
- MVtEngMedia::TCameraOrientation iSecondaryCameraOrientation;
-
- // Currently used camera orientation
- MVtEngMedia::TCameraOrientation iCurrentCameraOrientation;
-
- // Current loudspeaker volume
- TInt iLoudspeakerVolume;
-
- // Current handset volume
- TInt iHandsetVolume;
-
- // Ui states (media, audio, boolean variables)
- TVtUiStates* iUiStates;
-
- // Component manager instance
- CVtUiComponentManager* iComponentManager;
-
- // Feature manager instance
- CVtUiFeatureManager* iFeatureManager;
-
- // Pointer to cba
- CEikButtonGroupContainer* iCba;
-
- // Active number source
- MVtUiNumberSource* iNumberSource;
-
- TVtUiAppStateBase* iState;
-
- // Stored zoom key event
- TKeyEvent iStoredKeyEvent;
-
- // ETrue if incoming call is waiting call
- TBool iIsWaitingCallState;
-
- // ETrue if key event has been stored
- TBool iIsStoredKeyEvent;
-
- // Timer for starting the toolbar
- CPeriodic* iTbPeriodic;
-
- // Owned volume control class for adjusting
- // engine side volume
- CVtUiVolumeControl* iVolCtrl;
-
- private: // Friend classes
-
- // Inner class.
- friend class CInstance;
-
- // Inner class.
- friend class CEventObserver;
-
- private:
-
- // Class for active command handling
- class TActiveCommand
- {
-
- public:
-
- /**
- * Constructor.
- * @param aActiveCommands array of command ids.
- * @param aCommand command id.
- */
- TActiveCommand( RArray< TInt >& aActiveCommands, TInt aCommandId );
-
- /**
- * Destructor
- */
- ~TActiveCommand();
-
- /**
- * Adds command to active commands
- */
- void OpenL();
-
- private:
-
- /**
- * Removes command from active commands
- */
- void Close();
-
- private:
-
- // Reference to array of active command ids.
- RArray< TInt >& iActiveCommands;
-
- // Command id.
- const TInt iCommandId;
-
- };
-
-
- private:
- // Active command ids.
- RArray< TInt > iActiveCommands;
- // The last time swap image operation occured.
- TTime iLastSwapTime;
- // Incall bubble.
- CAknIncallBubble* iIncallBubble;
- //This flag is used to check if orientation changed before some action
- //Currently is only used for prepare remote render and start remote render
- TBool iIsLandScapeOrientation;
- //flag indicates layoutchang session
- TBool iLayoutChg;
- //save cmd for later use
- TInt iDelayedCmd;
- };
-
-#endif // CVTUIAPPUI_H
-
-// End of File