vtuis/videotelui/inc/CVtUiAppUi.h
branchRCL_3
changeset 35 779871d1e4f4
child 49 8e703580edd3
equal deleted inserted replaced
34:f15ac8e65a02 35:779871d1e4f4
       
     1 /*
       
     2 * Copyright (c) 2004-2008 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Application UI class for Video Telephone application.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 #ifndef CVTUIAPPUI_H
       
    21 #define CVTUIAPPUI_H
       
    22 
       
    23 //  INCLUDES
       
    24 #include    <aknappui.h>
       
    25 #include    <vtengcommands.h>
       
    26 #include    <mvtengmedia.h>
       
    27 #include    <tvtengrendering.h>
       
    28 #include    <tvtengrenderingdsa.h>
       
    29 #include    <tvtengrenderingdp.h>
       
    30 #include    <tvtengrenderingnga.h>
       
    31 #include    <AknProgressDialog.h>
       
    32 #include    <mvtengaudio.h>
       
    33 #include    <remconcoreapi.h>
       
    34 
       
    35 #include    "CVtUiActiveExec.h"
       
    36 #include    "tvtuilocalvariation.h"
       
    37 #include    "tvtuiappstatebase.h"
       
    38 
       
    39 
       
    40 // FORWARD DECLARATION
       
    41 class CVtUiBlankControl;
       
    42 class CAknNavigationControlContainer;
       
    43 class CAknTitlePane;
       
    44 class CVtEngModel;
       
    45 class MVtUiVideoWindow;
       
    46 class CRepository;
       
    47 class CAknQueryDialog;
       
    48 class CAknProgressDialog;
       
    49 class TVtUiStates;
       
    50 class CVtUiCommandManager;
       
    51 class CVtUiComponentManager;
       
    52 class CVtUiFeatureManager; // TOOLBAR MOD
       
    53 class MVtUiNumberSource;
       
    54 class CVtUiMainControl;
       
    55 class CVtUiContextControl;
       
    56 class CVtUiBitmapManager;
       
    57 class CVtUiVolumeControl;
       
    58 class CAknIncallBubble;
       
    59 class CVtUiRemoteVideoControl;
       
    60 class CVtUiEndCallButtonPane;
       
    61 
       
    62 // CLASS DECLARATION
       
    63 
       
    64 /**
       
    65 *  Application UI class for Video Telephone application.
       
    66 *
       
    67 *  @since Series 60 2.6
       
    68 */
       
    69 class CVtUiAppUi
       
    70     : public CAknAppUi,
       
    71       protected MVtUiActiveExec,
       
    72       public MVtUiStateContext,
       
    73       public MProgressDialogCallback
       
    74     {
       
    75     public:
       
    76 
       
    77         // Rendering modes
       
    78         enum TRenderingMode
       
    79             {
       
    80             ERenderingModeDefault,
       
    81             ERenderingModeDialer
       
    82             };
       
    83 
       
    84     public: // Constructors and destructor
       
    85 
       
    86         /**
       
    87         * C++ constructor.
       
    88         */
       
    89         CVtUiAppUi();
       
    90 
       
    91         /**
       
    92         * Symbian constructor.
       
    93         */
       
    94         void ConstructL();
       
    95 
       
    96         /**
       
    97         * C++ destructor.
       
    98         */
       
    99         ~CVtUiAppUi();
       
   100 
       
   101     public: // New functions
       
   102 
       
   103         /*
       
   104         *  This function decides possibility of swapimg image places.
       
   105         */
       
   106         TBool CanSwapImagePlaces();
       
   107 
       
   108         /*
       
   109         * Switches status pane between flat and normal one.
       
   110         */
       
   111         void SwitchLayoutToFlatStatusPaneL( TBool aSwitch );
       
   112 
       
   113         /**
       
   114         * Refreshes all.
       
   115         */
       
   116         void RefreshL();
       
   117 
       
   118         /**
       
   119         * Refreshes navi pane.
       
   120         */
       
   121         void RefreshNaviPaneL();
       
   122 
       
   123         /**
       
   124         * Refreshes softkeys.
       
   125         */
       
   126         void RefreshSoftkeysL();
       
   127         
       
   128         /**
       
   129         * Refreshes menu.
       
   130         */
       
   131         void RefreshMenuL();
       
   132 
       
   133         /**
       
   134         * Refresh zoom popup
       
   135         */
       
   136         void RefreshZoomPopupL();
       
   137         
       
   138         /**
       
   139         * Stop brightness or Contrast
       
   140         */        
       
   141         void StopBrightnessOrContrast();
       
   142         /**
       
   143         * Refreshes blind flags.
       
   144         */
       
   145         void RefreshBlind();
       
   146         
       
   147         /**
       
   148         * Enable end call button
       
   149         */
       
   150         void EnableEndCallButton();
       
   151 
       
   152         /**
       
   153         * Refreshes synchronisation.
       
   154         */
       
   155         void RefreshSynchronise();
       
   156 
       
   157         /**
       
   158         * Opens number entry.
       
   159         * @return ETrue if number entry opened.
       
   160         */
       
   161         TBool OpenNumberEntryL();
       
   162 
       
   163         /**
       
   164         * Handles EKeyPhoneSend presses
       
   165         */
       
   166         TKeyResponse HandlePhoneSendKeyL( const TKeyEvent& aKeyEvent,
       
   167             TEventCode aType );
       
   168 
       
   169         /**
       
   170         * Returns pointer to cba.
       
   171         */
       
   172         CEikButtonGroupContainer* GetCba();
       
   173 
       
   174         /**
       
   175         * Sets zoom mode.
       
   176         * @param aEnableZoomMode Etrue if zoom mode is on.
       
   177         * EFalse otherwise.
       
   178         * @param aIsPermanent ETrue if zoomindicator's timeout
       
   179         * should be ignored. EFalse otherwise..
       
   180         */
       
   181         void SetZoomModeL( const TBool aEnableZoomMode,
       
   182             const TBool aIsPermanent = EFalse );
       
   183 
       
   184         /**
       
   185         * Checks if command is active.
       
   186         * @param aCommand Command id.
       
   187         * @return Etrue if command is active
       
   188         * EFalse otherwise.
       
   189         */
       
   190         TBool IsActiveCommand( TInt aCommand ) const;
       
   191 
       
   192         TVtUiAppStateBase& State();
       
   193 
       
   194         /**
       
   195         * Returns reference to bitmap manager.
       
   196         */
       
   197         CVtUiBitmapManager& BitmapManager();
       
   198 
       
   199         /**
       
   200         * Sets given zoom step, if it allowed.
       
   201         * @param aZoomStep New zoom step to be set.
       
   202         */
       
   203         void SetZoomFactorL( TInt aZoomStep );
       
   204         
       
   205         /*
       
   206         * Simulate key event
       
   207         */
       
   208         void CmdSimulateKeyEvent( TInt aScanCode );
       
   209 
       
   210     public: // Functions from base classes
       
   211 
       
   212         /**
       
   213         * From CAknAppUi, handles window server events.
       
   214         * @param aEvent event.
       
   215         * @param aDestination destination control.
       
   216         */
       
   217         virtual void HandleWsEventL(
       
   218             const TWsEvent& aEvent,
       
   219             CCoeControl* aDestination );
       
   220 
       
   221         /**
       
   222         * From CAknAppUi, processes commands.
       
   223         * @param aCommand the identifier of the command to be handled.
       
   224         */
       
   225         virtual void ProcessCommandL(
       
   226             TInt aCommand );
       
   227 
       
   228         /**
       
   229         * From CAknAppUi, handles commands.
       
   230         * @param aCommand the identifier of the command to be handled.
       
   231         */
       
   232         virtual void HandleCommandL(
       
   233             TInt aCommand );
       
   234 
       
   235         /**
       
   236         * From CAknAppUi, handles dynamic initialisation of menu panes.
       
   237         * @param aResourceId the resource identifier for the pane.
       
   238         * @param aMenuPane the menu pane corresponding to the resource.
       
   239         */
       
   240         virtual void DynInitMenuPaneL(
       
   241             TInt aResourceId,
       
   242             CEikMenuPane* aMenuPane );
       
   243 
       
   244         /**
       
   245         * From CAknAppUi, handles key events.
       
   246         * @param aKeyEvent event to be handled.
       
   247         * @param aType type of the key event.
       
   248         * @return response code (EKeyWasConsumed, EKeyWasNotConsumed)
       
   249         */
       
   250         virtual TKeyResponse HandleKeyEventL(
       
   251             const TKeyEvent& aKeyEvent,
       
   252             TEventCode aType );
       
   253 
       
   254         /**
       
   255         * From CAknAppUi, handles resouce changes.
       
   256         * @param aType type of resource change.
       
   257         */
       
   258         virtual void HandleResourceChangeL( TInt aType );
       
   259 
       
   260         /**
       
   261         * From CAknAppUi, handles foreground status changes.
       
   262         * @param aForeground ETrue if foreground.
       
   263         */
       
   264         virtual void HandleForegroundEventL( TBool aForeground );
       
   265 
       
   266         /**
       
   267         * Returns a pointer to CEikonEnv.
       
   268         */
       
   269         CEikonEnv* GetEikonEnv();
       
   270 
       
   271     protected: // Functions from base classes
       
   272 
       
   273         /**
       
   274         * From CAknAppUi, returns help context.
       
   275         * @return help context.
       
   276         */
       
   277         virtual CArrayFix<TCoeHelpContext>* HelpContextL() const;
       
   278 
       
   279         /**
       
   280         * @see MVtUiActiveExec::ActiveExecExecuteL.
       
   281         */
       
   282         virtual TBool ActiveExecExecuteL(
       
   283             CVtUiActiveExec& aActiveExec,
       
   284             const TInt aState,
       
   285             TInt& aNextState,
       
   286             TRequestStatus& aRequest );
       
   287 
       
   288         /**
       
   289         * @see MVtUiActiveExec::ActiveExecContinue.
       
   290         */
       
   291         virtual TBool ActiveExecContinue(
       
   292             CVtUiActiveExec& aActiveExec,
       
   293             TInt& aState,
       
   294             const TInt aError );
       
   295 
       
   296         /**
       
   297         * @see MVtUiActiveExec::ActiveExecCancel.
       
   298         */
       
   299         virtual void ActiveExecCancel(
       
   300             CVtUiActiveExec& aActiveExec,
       
   301             const TInt aState );
       
   302 
       
   303         /**
       
   304         * @see MVtUiActiveExec::ActiveExecDone.
       
   305         */
       
   306         virtual void ActiveExecDone(
       
   307             CVtUiActiveExec& aActiveExec,
       
   308             const TInt aInitialState );
       
   309 
       
   310     public: // from MVtUiStateContext
       
   311 
       
   312         /** @see MVtUiStateContext::StartupPhase1L */
       
   313         virtual void StartupPhase1L();
       
   314 
       
   315         /** @see MVtUiStateContext::ShutdownL */
       
   316         virtual void ShutdownL();
       
   317 
       
   318         /** @see MVtUiStateContext::StartupPhase2L */
       
   319         virtual void StartupPhase2L();
       
   320 
       
   321         /** @see MVtUiStateContext::ChangeApplicationFocus */
       
   322         virtual void ChangeApplicationFocus( const TBool aForeground );
       
   323 
       
   324         /** @see MVtUiStateContext::ChangeState */
       
   325         virtual void ChangeState( TVtUiAppStateBase* aState );
       
   326 
       
   327         /** @see MVtUiStateContext::StartTone */
       
   328         virtual void StartDtmfTone( const TChar& aTone );
       
   329 
       
   330         /** @see MVtUiStateContext::StopTone */
       
   331         virtual void StopDtmfTone();
       
   332 
       
   333         /** @see MVtUiStateContext::Model */
       
   334         virtual CVtEngModel& Model();
       
   335 
       
   336         /** @see MVtUiStateContext::VideoTelephonyVariation */
       
   337         virtual const TVtUiVideoTelephonyVariation&
       
   338             VideoTelephonyVariation() const;
       
   339 
       
   340         /** @see MVtUiStateContext::NumberSource*/
       
   341         virtual MVtUiNumberSource* NumberSource() const;
       
   342 
       
   343         /** @see MVtUiStateContext::RefreshL */
       
   344         virtual void RefreshL( const TInt aRefreshFlags );
       
   345 
       
   346         /** @see MVtUiStateContext::DoExecuteCmdL */
       
   347         virtual void DoExecuteCmdL(
       
   348             const TVtEngCommandId aCommand,
       
   349             TDesC8* aParams );
       
   350 
       
   351         /** @see MVtUiStateContext::DoHandleLayoutChangedL */
       
   352         virtual void DoHandleLayoutChangedL();
       
   353 
       
   354         /** From MVtUiShutterObserver via MVtUiStateContext
       
   355         *  Exits the application.
       
   356         */
       
   357         virtual void HandleShutdownReady();
       
   358 
       
   359         /**
       
   360         * Gets reference to context control.
       
   361         * @return reference to context control.
       
   362         */
       
   363         CVtUiContextControl& ContextControl();
       
   364 
       
   365         /**
       
   366         * Gets reference to main control.
       
   367         * @return reference to main control.
       
   368         */
       
   369         CVtUiMainControl& MainControl();
       
   370 
       
   371         /**
       
   372         * Gets reference to remote video control.
       
   373         * @return reference to remote video control.
       
   374         */        
       
   375         CVtUiRemoteVideoControl& RemoteVideoControl();
       
   376 
       
   377         /**
       
   378         * Gets reference to end call pane.
       
   379         * @return reference to end call pane.
       
   380         */
       
   381         CVtUiEndCallButtonPane& EndCallButtonPane();
       
   382 
       
   383         /**
       
   384         * Switches viewfinder to main pane if it is currently in context
       
   385         * pane.
       
   386         */
       
   387         void SwitchViewFinderToMainPaneL( TBool aUpdateState = ETrue );
       
   388 
       
   389         /**
       
   390         * Switches viewfinder to context pane if it is currently in main
       
   391         * pane.
       
   392         */
       
   393         void SwitchViewFinderToContextPaneL( TBool aUpdateState = ETrue );
       
   394 
       
   395         /**
       
   396         * Restores viewfinder back to pane where it was prior to calling the
       
   397         * switch ViewFinderToMainPane() or ViewFinderToContextPane() methods.
       
   398         */
       
   399         void RestoreViewFinderL();
       
   400 
       
   401         /*
       
   402         * Updates volume to the Video Telephone engine.
       
   403         */
       
   404         void CmdUpdateVolumeL( MVtEngAudio::TVtEngOutputVolume aVolume );
       
   405 
       
   406         /**
       
   407         * Increases "command activating" ref.count and adds cleanup item
       
   408         * to decrease it. Refreshes commands in case of first increment from
       
   409         * zero. When PopAndDestroy() is called, cleanup decreases reference
       
   410         * count and if it reduces back to zero command refresh is again done.
       
   411         */
       
   412         void EnableCommandActivatingAndCleanupPushL();
       
   413 
       
   414     private: // from MProgressDialogCallback
       
   415 
       
   416         /**
       
   417         * @see MProgressDialogCallback::DialogDismissedL
       
   418         */
       
   419         void DialogDismissedL( TInt aButtonId );
       
   420 
       
   421     private:
       
   422 
       
   423         // COMMAND HANDLING
       
   424 
       
   425         /**
       
   426         * Checks if command is allowed.
       
   427         * @param aCommand command identifier.
       
   428         * @return ETrue if allowed, EFalse otherwise.
       
   429         */
       
   430         TBool IsCommandAllowedL( const TInt aCommand );
       
   431 
       
   432         /**
       
   433         * Refreshes iDisabledFlags.
       
   434         */
       
   435         void RefreshDisabledFlagsL();
       
   436 
       
   437         /**
       
   438         * Refreshes camera option availability.
       
   439         * @param aUsePrimaryCameraNotAllowed it will be updated to ETrue if
       
   440         *        it is not allowed to activate primary camera.
       
   441         * @param aUseSecondaryCameraNotAllowed it will be updated to ETrue if
       
   442         *        it is not allowed to activate secondary camera.
       
   443         */
       
   444         void RefreshCameraOptionAvailability(
       
   445             TBool& aUsePrimaryCameraNotAllowed,
       
   446             TBool& aUseSecondaryCameraNotAllowed );
       
   447 
       
   448         /**
       
   449         * Enables capture mode.
       
   450         */
       
   451         void CmdSnapshotL();
       
   452 
       
   453         /**
       
   454         * Freezes outgoing video image.
       
   455         */
       
   456         void CmdCaptureL();
       
   457 
       
   458         /**
       
   459         * Disables capture mode.
       
   460         */
       
   461         void CmdCancelCaptureL();
       
   462 
       
   463 
       
   464         /**
       
   465         * Enables video.
       
   466         */
       
   467         void CmdEnableVideoL();
       
   468 
       
   469         /**
       
   470         * Enables audio (unmute microphone).
       
   471         */
       
   472         void CmdEnableAudioL();
       
   473 
       
   474         /**
       
   475         * Disables video.
       
   476         */
       
   477         void CmdDisableVideoL();
       
   478 
       
   479         /**
       
   480         * Disables audio (mute microphone).
       
   481         */
       
   482         void CmdDisableAudioL();
       
   483 
       
   484         /**
       
   485         * Activates Bluetooth handsfree.
       
   486         */
       
   487         void CmdActivateBtL();
       
   488 
       
   489         /**
       
   490         * Deactivates Bluetooth handsfree.
       
   491         */
       
   492         void CmdDeactivateBtL();
       
   493 
       
   494         /**
       
   495         * Activates loudspeaker.
       
   496         */
       
   497         void CmdActivateLoudspeakerL();
       
   498 
       
   499         /**
       
   500         * Deactivates loudspeaker.
       
   501         */
       
   502         void CmdDeactivateLoudspeakerL();
       
   503 
       
   504         /**
       
   505         * Ends active call.
       
   506         */
       
   507         void CmdEndActiveCallL();
       
   508 
       
   509         /**
       
   510         * Swaps images places.
       
   511         */
       
   512         void CmdSwapImagesPlacesL();
       
   513 
       
   514         /**
       
   515         * Switches used camera.
       
   516         * @param aPrimaryCamera ETrue if primary camera is to be selected,
       
   517         *        EFalse if secondary camera is to be selected.
       
   518         */
       
   519         void CmdUseCameraL( const TBool aPrimaryCamera );
       
   520 
       
   521         /**
       
   522         * Launches help application.
       
   523         */
       
   524         void CmdHelpL();
       
   525 
       
   526         /**
       
   527         * Prepare exiting the application.
       
   528         */
       
   529         void PrepareExitL();
       
   530 
       
   531         /**
       
   532         * Updates zoom step to Video Telephone engine.
       
   533         */
       
   534         void CmdUpdateZoomL();
       
   535 
       
   536         /**
       
   537         * Dials emergency call.
       
   538         */
       
   539         void CmdDialEmergencyL();
       
   540 
       
   541         /**
       
   542         * Goes to Idle.
       
   543         */
       
   544         void CmdGoToIdleL();
       
   545 
       
   546         /**
       
   547         * Initialize image sharing.
       
   548         */
       
   549         void CmdInitializeShareImageL( TBool& aNeedRefresh );
       
   550 
       
   551         /**
       
   552         * Start sharing image.
       
   553         */
       
   554         void CmdShareImageL();
       
   555 
       
   556         /**
       
   557         * Stops sharing image.
       
   558         */
       
   559         void CmdStopShareImageL( TBool& aNeedRefresh );
       
   560 
       
   561 		/**
       
   562         * Handles change in call waiting state.
       
   563         * @param aIsWaiting The state of call waiting.
       
   564         */
       
   565 	    void HandleWaitingStateChange( TBool aIsWaiting );
       
   566 
       
   567         // STATE TRANSITIONS
       
   568 
       
   569         /**
       
   570         * @see MVtUiActiveExec::ActiveExecExecuteL.
       
   571         */
       
   572         TBool ActiveExecInitExecuteL(
       
   573             const TInt aState,
       
   574             TInt& aNextState,
       
   575             TRequestStatus& aRequest );
       
   576 
       
   577         /**
       
   578         * @see MVtUiActiveExec::ActiveExecContinue.
       
   579         */
       
   580         TBool ActiveExecInitContinue(
       
   581             TInt& aState,
       
   582             const TInt aError );
       
   583 
       
   584         /**
       
   585         * @see MVtUiActiveExec::ActiveExecCancel.
       
   586         */
       
   587         void ActiveExecInitCancel(
       
   588             const TInt aState );
       
   589 
       
   590         /**
       
   591         * @see MVtUiActiveExec::ActiveExecDone.
       
   592         */
       
   593         void ActiveExecInitDone(
       
   594             const TInt aInitialState );
       
   595 
       
   596         /**
       
   597         * Executes command taking no parameters.
       
   598         * @param aCommand command to be performed.
       
   599         * @param aRequest request status.
       
   600         */
       
   601         void ActiveExecInitExecuteCommandL(
       
   602             const TVtEngCommandId aCommand,
       
   603             TRequestStatus& aRequest );
       
   604 
       
   605         /**
       
   606         * Executes command taking no parameters.
       
   607         * @param aCommand command to be performed.
       
   608         * @param aParam command parameters.
       
   609         * @param aRequest request status.
       
   610         */
       
   611         template < class T >
       
   612         void ActiveExecInitExecuteCommandL(
       
   613             const TVtEngCommandId aCommand,
       
   614             T& aParam,
       
   615             TRequestStatus& aRequest );
       
   616 
       
   617         /**
       
   618         * Executes 'prepare camera' command.
       
   619         * @param aSource source to be prepared.
       
   620         * @param aRequest request status.
       
   621         */
       
   622         void ActiveExecInitPrepareCameraL(
       
   623             const MVtEngMedia::TMediaSource aSource,
       
   624             TRequestStatus& aRequest );
       
   625 
       
   626         /**
       
   627         * Executes 'set source' command.
       
   628         * @param aSource source to be selected.
       
   629         * @param aRequest request status.
       
   630         */
       
   631         void ActiveExecInitSetSourceL(
       
   632             const MVtEngMedia::TMediaSource aSource,
       
   633             TRequestStatus& aRequest );
       
   634 
       
   635         /**
       
   636         * Executes prepare viewfinder command.
       
   637         * @param aRequest request status to be completed when finished.
       
   638         */
       
   639         void ActiveExecInitPrepareViewFinderL(
       
   640             TRequestStatus& aRequest );
       
   641 
       
   642         /**
       
   643         * Executes prepare remote render command.
       
   644         * @param aRequest request status to be completed when finished.
       
   645         */
       
   646         void ActiveExecInitPrepareRemoteRenderL(
       
   647             TRequestStatus& aRequest );
       
   648 
       
   649 
       
   650         /**
       
   651         * Executes command taking no parameters.
       
   652         * @param aCommand command to be performed.
       
   653         * @param aRequest request status.
       
   654         */
       
   655         void ActiveExecCmdExecuteCommandL(
       
   656             const TVtEngCommandId aCommand,
       
   657             TRequestStatus& aRequest );
       
   658 
       
   659         /**
       
   660         * Executes 'set source' command.
       
   661         * @param aSource source to be selected.
       
   662         * @param aRequest request status.
       
   663         */
       
   664         void ActiveExecCmdSetSourceL(
       
   665             const MVtEngMedia::TMediaSource aSource,
       
   666             TRequestStatus& aRequest );
       
   667 
       
   668         /**
       
   669         * Executes 'prepare camera' command.
       
   670         * @param aSource source to be selected.
       
   671         * @param aRequest request status.
       
   672         */
       
   673         void ActiveExecCmdPrepareCameraL(
       
   674             const MVtEngMedia::TMediaSource aSource,
       
   675             TRequestStatus& aRequest );
       
   676 
       
   677 
       
   678         /**
       
   679         * Determines main control options.
       
   680         * @param aRemoteVideo for remote video.
       
   681         * @return rendering options.
       
   682         */
       
   683         TVtEngRenderingOptions
       
   684             DetermineMainControlOptions( TBool aRemoteVideo );
       
   685 
       
   686         /**
       
   687         * Determines context control options.
       
   688         * @return rendering options.
       
   689         */
       
   690         TVtEngRenderingOptions DetermineContextControlOptions();
       
   691 
       
   692         /**
       
   693         * Determines dialer control options.
       
   694         * @return rendering options.
       
   695         */
       
   696         TVtEngRenderingOptions DetermineDialerControlOptions();
       
   697 
       
   698         /**
       
   699         * Determines main control DSA options.
       
   700         * @param aRemoteVideo for remote video.
       
   701         * @return rendering options.
       
   702         */
       
   703         TVtEngRenderingOptionsDSA
       
   704             DetermineMainControlOptionsDSA( TBool aRemoteVideo );
       
   705 
       
   706         /**
       
   707         * Determines context control DSA options.
       
   708         * @return rendering options.
       
   709         */
       
   710         TVtEngRenderingOptionsDSA DetermineContextControlOptionsDSA();
       
   711 
       
   712         /**
       
   713         * Determines dialer control DSA options.
       
   714         * @return rendering options.
       
   715         */
       
   716         TVtEngRenderingOptionsDSA DetermineDialerControlOptionsDSA();
       
   717 
       
   718         /**
       
   719         * Determines main control DP options.
       
   720         * @param aRemoteVideo for remote video.
       
   721         * @return rendering options.
       
   722         */
       
   723         TVtEngRenderingOptionsDP
       
   724             DetermineMainControlOptionsDP( TBool aRemoteVideo );
       
   725 
       
   726         /**
       
   727         * Determines context control DP options.
       
   728         * @return rendering options.
       
   729         */
       
   730         TVtEngRenderingOptionsDP DetermineContextControlOptionsDP();
       
   731 
       
   732         /**
       
   733         * Determines dialer control DP options.
       
   734         * @return rendering options.
       
   735         */
       
   736         TVtEngRenderingOptionsDP DetermineDialerControlOptionsDP();
       
   737 
       
   738         /**
       
   739         * Determines remote video  control options.
       
   740         * @return rendering options.
       
   741         */
       
   742         TVtEngRenderingOptionsNGA
       
   743             DetermineRemoteVideoControlOptionsNGA();
       
   744 
       
   745         // SYNCHRONOUS / BLOCKING EXECUTION:
       
   746 
       
   747         /**
       
   748         * Performs a command without any parameters.
       
   749         * @param aCommand command to be performed.
       
   750         */
       
   751         void ExecuteCmdL( const TVtEngCommandId aCommand );
       
   752 
       
   753         /**
       
   754         * Performs a command with a parameter.
       
   755         * @param aCommmand command to be performed.
       
   756         * @param aParam parameter.
       
   757         */
       
   758         template< class T >
       
   759         void ExecuteCmdL(
       
   760             const TVtEngCommandId aCommand,
       
   761             T& aParam );
       
   762 
       
   763         // ASYNCHRONOUS EXECUTION:
       
   764 
       
   765         /**
       
   766         * Performs a command without any parameters.
       
   767         * @param aDialogPtr pointer to which returned value is stored.
       
   768         * @param aCommand command to be performed.
       
   769         * @param aStatus request status.
       
   770         * @return dialog.
       
   771         */
       
   772         CEikDialog* ExecuteCmdAsyncL(
       
   773             CEikDialog** aDialogPtr,
       
   774             const TVtEngCommandId aCommand,
       
   775             TRequestStatus& aStatus );
       
   776 
       
   777         /**
       
   778         * Performs a command with a parameter.
       
   779         * @param aDialogPtr pointer to which returned value is stored.
       
   780         * @param aCommmand command to be performed.
       
   781         * @param aParam parameter.
       
   782         * @param aStatus request status.
       
   783         * @return dialog.
       
   784         */
       
   785         template< class T >
       
   786         CEikDialog* ExecuteCmdAsyncL(
       
   787             CEikDialog** aDialogPtr,
       
   788             const TVtEngCommandId aCommand,
       
   789             T& aParam,
       
   790             TRequestStatus& aStatus );
       
   791 
       
   792         /**
       
   793         * Performs a command.
       
   794         * @param aDialogPtr pointer to which returned value is stored.
       
   795         * @param aCommand command.
       
   796         * @param aParams parameter, optional.
       
   797         * @param aStatus request status.
       
   798         * @return dialog.
       
   799         */
       
   800         CEikDialog* DoExecuteCmdAsyncL(
       
   801             CEikDialog** aDialogPtr,
       
   802             const TVtEngCommandId aCommand,
       
   803             TDesC8* aParams,
       
   804             TRequestStatus& aStatus );
       
   805 
       
   806         /**
       
   807         * Executes command in TRAP harnness.
       
   808         * @param aCommand command identifier.
       
   809         * @param aParam optional, parameters.
       
   810         * @return error code.
       
   811         */
       
   812         TInt Execute( const TVtEngCommandId aCommand, TDesC8* aParam );
       
   813 
       
   814         // EVENT HANDLING
       
   815 
       
   816         /**
       
   817         * Handles foreground changed events.
       
   818         * @param aIsForeground ETrue if foreground, EFalse otherwise.
       
   819         */
       
   820         void HandleForegroundChangedL(
       
   821             TBool aIsForeground );
       
   822 
       
   823         /**
       
   824         * Handles engine reset.
       
   825         */
       
   826         void HandleEngineResetL();
       
   827 
       
   828         /**
       
   829         * Handles successful answer operation.
       
   830         */
       
   831         void HandleAnswerL();
       
   832 
       
   833         /**
       
   834         * Stops waiting image text showing.
       
   835         */
       
   836         void StopWaitingImage();
       
   837 
       
   838         /**
       
   839          * Stops white balance showing.
       
   840          */
       
   841         void StopWhiteBalanceOrColortone();
       
   842         
       
   843         /**
       
   844         * Handles layout changes basically calling HandleLayoutChangedL
       
   845         * in trap harness.
       
   846         * @return error code.
       
   847         */
       
   848         TInt HandleLayoutChanged();
       
   849 
       
   850         /**
       
   851         * Handles layout changes.
       
   852         */
       
   853         void HandleLayoutChangedL();
       
   854 
       
   855         /**
       
   856         * Handles video frame.
       
   857         * @param aLocal local frame if ETrue, EFalse if remote.
       
   858         * @param aBitmap frame, ownership not transferred.
       
   859         */
       
   860         void HandleVideoFrameL(
       
   861             const TBool aLocal,
       
   862             CFbsBitmap* aBitmap );
       
   863 
       
   864         void SetVideoFrame(
       
   865             const TBool aLocal,
       
   866             CFbsBitmap* aBitmap );
       
   867 
       
   868           /**
       
   869         * Handles video call details.
       
   870         * @param aCallID call id.
       
   871         * @param aCallName call name.
       
   872         * @param aIsPeerAddressAvailable is peer address available.
       
   873         */
       
   874         void HandleVideoCallDetailsL(
       
   875             const TInt aCallId,
       
   876             const TDesC& aCallName,
       
   877             const TBool aIsPeerAddressAvailable );
       
   878 
       
   879         /**
       
   880         * Checks if it's time to bring this application
       
   881         * to the foreground.
       
   882         */
       
   883         void CheckBringToForeground();
       
   884 
       
   885         /**
       
   886         * Checks if it's time to send this application
       
   887         * to the background.
       
   888         */
       
   889         void CheckSendToBackground();
       
   890 
       
   891         /**
       
   892         * Handles remote problem.
       
   893         */
       
   894         void HandleVideoFrameRemoteProblemL();
       
   895 
       
   896         /**
       
   897         * Handles local problem.
       
   898         */
       
   899         void HandleVideoFrameLocalProblemL();
       
   900 
       
   901         /**
       
   902         * Set a new remote video layout.
       
   903         */
       
   904         void ChangeRemoteVideoLayoutL();
       
   905 
       
   906         /**
       
   907         * Show image initialization progress dialog.
       
   908         */
       
   909         void ShowImageInitializeProgressL();
       
   910 
       
   911         /**
       
   912         * Hide image initialization progress dialog.
       
   913         */
       
   914         void HideImageInitializeProgressL();
       
   915 
       
   916         /**
       
   917         * Sets SQCif usage.
       
   918         * @param aUseSQCif SQCif is used.
       
   919         */
       
   920         void RemoteVideoIsSQCif( TBool aUseSQCif );
       
   921 
       
   922         /**
       
   923         * Sets SQCif usage to control.
       
   924         * @param aUseSQCif SQCif is used.
       
   925         */
       
   926         void ControlUsesSQCif( TBool aUseSQCif );
       
   927 
       
   928         /**
       
   929         * Checks if beating needs to be started.
       
   930         * @param aCallDurationEnabled call duration enabled status.
       
   931         */
       
   932         void CheckBeatL( const TBool aCallDurationEnabled );
       
   933 
       
   934         /**
       
   935         * Handles heart beats.
       
   936         */
       
   937         void HandleBeat();
       
   938 
       
   939         // UTILITY METHODS
       
   940 
       
   941         /**
       
   942         * Informs the user that camera is reserved by another application.
       
   943         */
       
   944         void ShowCameraInUseNoteL() const;
       
   945 
       
   946         /**
       
   947         * Informs the user that the selected operation is not allowed.
       
   948         */
       
   949         void ShowNotAllowedNoteL() const;
       
   950 
       
   951         /**
       
   952         * Informs the user that it is not allowed to create normal call.
       
   953         */
       
   954         void ShowCallNotAllowedNoteL() const;
       
   955 
       
   956         /**
       
   957         * Informs the user that the other camera is not usable.
       
   958         */
       
   959         void ShowOtherCameraNotUsableNoteL() const;
       
   960 
       
   961         /**
       
   962         * Informs the user that image loading failed.
       
   963         */
       
   964         void ShowUnableToOpenNoteL() const;
       
   965 
       
   966         /**
       
   967         * Informs the user that error happened during image decoding.
       
   968         * Note: Cannot be constant because DoExecuteL() is used for
       
   969         * calling this method.
       
   970         */
       
   971         void ShowImageDecodingErrorNoteL();
       
   972 
       
   973         /**
       
   974         * Informs the user that image is DRM protected and cannot be opened.
       
   975         */
       
   976         void ShowDRMNotAllowedNoteL() const;
       
   977 
       
   978         /**
       
   979         * Sets softkeys.
       
   980         * @param aSoftkeyResourceId softkey resource id.
       
   981         */
       
   982         void SetSoftkeysL( const TInt aSoftkeyResourceId );
       
   983 
       
   984         /**
       
   985         * Sets application hidden from fast swap window.
       
   986         * @param aHidden ETrue if to be hidden, EFalse if visible.
       
   987         */
       
   988         void SetHiddenL( const TBool aHidden );
       
   989 
       
   990         /**
       
   991         * Updates title pane to show call index.
       
   992         * @param aCallId call id.
       
   993         */
       
   994         void SetCallIdL( const TInt aCallId );
       
   995 
       
   996         /**
       
   997         * Updates title pane to show name.
       
   998         * @param aName name to be displayed in title pane.
       
   999         * @return ETrue if succeeded, EFalse if not enough memory.
       
  1000         */
       
  1001         TBool SetCallNameL( const TDesC& aName );
       
  1002 
       
  1003         /**
       
  1004         * Brings Telephone application to the foreground.
       
  1005         */
       
  1006         void BringTelephoneToForeground();
       
  1007 
       
  1008         /**
       
  1009         * Returns window group identifier of the principal
       
  1010         * telephone application.
       
  1011         * @return window group id or 0 if failed.
       
  1012         */
       
  1013         TInt TelephoneApplicationWgId();
       
  1014 
       
  1015         /**
       
  1016         * Returns ETrue if number entry should be shown to the user.
       
  1017         * This can be called only after ReadTelephonyVariant has
       
  1018         * been called.
       
  1019         * @return ETrue if number entry should be shown to the user.
       
  1020         */
       
  1021         inline TBool ShowNumberEntry() const;
       
  1022 
       
  1023         /**
       
  1024         * Checks if active idle is enabled.
       
  1025         * @return ETrue if active idle is enabled.
       
  1026         */
       
  1027         TBool IsActiveIdleEnabledL() const;
       
  1028 
       
  1029         /**
       
  1030         * Checks engine functionality.
       
  1031         */
       
  1032         void CheckEngineFunctionality();
       
  1033 
       
  1034         /**
       
  1035         * Returns navi pane.
       
  1036         * @return navi pane instance. Ownership not transferred.
       
  1037         */
       
  1038         inline CAknNavigationControlContainer* NaviPaneL();
       
  1039 
       
  1040         /**
       
  1041         * Returns title pane.
       
  1042         * @return title pane instance. Ownership not transferred.
       
  1043         */
       
  1044         inline CAknTitlePane* TitlePaneL();
       
  1045 
       
  1046         /**
       
  1047         * Pushes item to cleanup stack to update softkeys.
       
  1048         */
       
  1049         inline void CleanupPushRefreshL();
       
  1050 
       
  1051         /**
       
  1052         * Pushes item to cleanup stack to enable blind status setting.
       
  1053         */
       
  1054         inline void CleanupPushEnableBlindL();
       
  1055 
       
  1056         /**
       
  1057         * Callback function to refresh navi pane and softkeys.
       
  1058         * @param aAny pointer to an instance of this class.
       
  1059         */
       
  1060         static void DoRefresh( TAny* aAny );
       
  1061 
       
  1062         /**
       
  1063         * Callback function to enable blind status checking.
       
  1064         * @param aAny pointer to an instance of this class.
       
  1065         */
       
  1066         static void DoEnableBlindSetting( TAny* aAny );
       
  1067 
       
  1068         /**
       
  1069         * Callback function to disable command activation
       
  1070         * state.
       
  1071         * @param aAny pointer to an instance of this class.
       
  1072         */
       
  1073         static void DoDisableCommandActivating( TAny* aAny );
       
  1074 
       
  1075         /**
       
  1076         * Decreases command activation ref.count and refreshes
       
  1077         * states if count gets zero.
       
  1078         */
       
  1079         void HandleCommandDeactivationL();
       
  1080 
       
  1081         /**
       
  1082         * Callback function to handle exit timeout.
       
  1083         * @param aAny pointer to instance of this class.
       
  1084         * @return KErrNone always.
       
  1085         */
       
  1086         static TInt DoHandleExitTimeout( TAny* aAny );
       
  1087 
       
  1088         /**
       
  1089         * Callback function to exit.
       
  1090         * @param aAny pointer to instance of this class.
       
  1091         * @return KErrNone always.
       
  1092         */
       
  1093         static TInt DoExit( TAny* aAny );
       
  1094 
       
  1095         /**
       
  1096         * Checks whether viewfinder is currently in main pane.
       
  1097         * @return ETrue if viewfinder is in main pane.
       
  1098         */
       
  1099         TBool IsViewFinderInMainPane() const;
       
  1100 
       
  1101 public:
       
  1102         /**
       
  1103         * Checks whether viewfinder is currently in context pane.
       
  1104         * @return ETrue if viewfinder is in context pane.
       
  1105         */
       
  1106         TBool IsViewFinderInContextPane() const;
       
  1107 private:
       
  1108         /**
       
  1109         * Updates context pane icon
       
  1110         */
       
  1111         void UpdateContextPaneIconL();
       
  1112 
       
  1113         /**
       
  1114         * Enables or disables the incall bubble.
       
  1115         */
       
  1116         void SetIncallBubbleAllowedInUsualL( TBool aAllowed );
       
  1117 
       
  1118         /**
       
  1119         * Shows progress dialog using given resource.
       
  1120         */
       
  1121         void ShowProgressDialogL( TInt aResourceId,
       
  1122             MProgressDialogCallback* aCallback = NULL );
       
  1123 
       
  1124         /**
       
  1125         * Hides (completes) progress dialog.
       
  1126         */
       
  1127         void HideProgressDialogL();
       
  1128 
       
  1129         /**
       
  1130         * Static async callback for switching viewfinder to MainPane, also
       
  1131         * starts image sharing.
       
  1132         */
       
  1133         static TInt AsyncViewFinderToMainPaneAndShare( TAny* aPtr );
       
  1134 
       
  1135         /**
       
  1136         * Static async callback for starting image share.
       
  1137         */
       
  1138         static TInt AsyncShare( TAny* aPtr );
       
  1139 
       
  1140         /**
       
  1141         * Static async callback for showing error note and resharing image.
       
  1142         */
       
  1143         static TInt AsyncShowErrorAndRestartShare( TAny* aPtr );
       
  1144 
       
  1145         /**
       
  1146         * Static async callback for handling layout change.
       
  1147         */
       
  1148         static TInt DelayedHandleLayoutChanged( TAny* aPtr );
       
  1149 
       
  1150         /**
       
  1151         * Gets current camera orientations for primary and secondary camera.
       
  1152         */
       
  1153         void GetCameraOrientations();
       
  1154 
       
  1155         /**
       
  1156         * Sets initial camera orientation.
       
  1157         */
       
  1158         void SetInitialCameraOrientationL();
       
  1159 
       
  1160         /**
       
  1161         * Sets current camera orientation.
       
  1162         */
       
  1163         void SetCameraOrientationL();
       
  1164 
       
  1165         /**
       
  1166         * Updates engine states.
       
  1167         */
       
  1168         void RefreshStatesL();
       
  1169 
       
  1170         /**
       
  1171         * Starts video preference feature specified by command id.
       
  1172         */
       
  1173         void CmdAdjustVideoL( TInt aCommand );
       
  1174 
       
  1175         /**
       
  1176         * AppUi has been initialized and its current state is EVtUiAppUiAnswered.
       
  1177         * Do any other needed initilization here e.g. start features.
       
  1178         */
       
  1179         void AppUiInitDoneDoPostInitL();
       
  1180 
       
  1181         /*
       
  1182         *  This function decides how the wsevent should be handled
       
  1183         * if zoom mode is on.
       
  1184         * @param  aEvent window server event.
       
  1185         * @return ETrue if caller function should return, EFalse otherwise.
       
  1186         */
       
  1187         TBool ProcessWsEventIfZoomModeIsActiveL( const TWsEvent& aEvent );
       
  1188 
       
  1189         /*
       
  1190         *  This function hides the brightness, contrast, volume slider if their mode is on.
       
  1191         */
       
  1192         void StopSliders();
       
  1193         
       
  1194         /*
       
  1195         * This function can get the focus window group id
       
  1196         */
       
  1197         TInt GetFocusWindowGroupId();
       
  1198 
       
  1199         /**
       
  1200         * Does pre handling to key events, especially for Zoom in and Zoom out
       
  1201         * HW keys.
       
  1202         * @param aEvent event.
       
  1203         */
       
  1204         TBool PreHandleKeyEventL( const TWsEvent& aEvent );
       
  1205 
       
  1206         /**
       
  1207         * Calls SimulateKeyEventL() for stored zoom key event.
       
  1208         */
       
  1209         void SimulateStoredKeyEventL( const TEventCode aEventCode );
       
  1210 
       
  1211         /**
       
  1212         * Stores zoom key event. If there is different zoom key event
       
  1213         * already stored, keyup event is sent for that event before
       
  1214         * new event is stored.
       
  1215         */
       
  1216         void StoreKeyEventL( const TKeyEvent& aKeyEvent );
       
  1217 
       
  1218         /**
       
  1219         * Callback function that calls TryToStartTb function
       
  1220         */
       
  1221         static TInt DoTryToStartTbL( TAny* aAny );
       
  1222 
       
  1223         /*
       
  1224         * Tries to start toolbar. Toolbar is started if
       
  1225         * option menus is not visible.
       
  1226         */
       
  1227         void TryToStartTbL();
       
  1228         
       
  1229         /*
       
  1230         * Retries to start toolbar. Toolbar is started if
       
  1231         * option menus is not visible.
       
  1232         */
       
  1233         void RetryToStartTbL();
       
  1234 
       
  1235         /*
       
  1236         * Update video prefrence
       
  1237         */
       
  1238         void UpdateVBSettingL();
       
  1239 
       
  1240 
       
  1241         /**
       
  1242         * Sets current rendering mode (i.e. default or dialer)
       
  1243         */
       
  1244         void SetRenderingModeL( const TRenderingMode aMode,
       
  1245             MVtUiVideoWindow* aDownlink );
       
  1246 
       
  1247         /**
       
  1248         * Updates rendering parameters.
       
  1249         */
       
  1250         void UpdateRenderingParametersL();
       
  1251 
       
  1252         /*
       
  1253         * Media state has been changed
       
  1254         */
       
  1255         void MediaStateChangedL();
       
  1256 
       
  1257         /*
       
  1258         * Updates volume slider
       
  1259         */
       
  1260         void RefreshVolumeL();
       
  1261 
       
  1262         /*
       
  1263         * Adjusts volume up or down one step.
       
  1264         */
       
  1265         void AdjustVolumeL( TRemConCoreApiOperationId aOperationId );
       
  1266 
       
  1267     private:
       
  1268 
       
  1269         // Pointer to stored downlink window.
       
  1270         MVtUiVideoWindow* iStoredDownlinkWindow;
       
  1271 
       
  1272         // Current rendering mode
       
  1273         TRenderingMode iRenderingMode;
       
  1274 
       
  1275         // Command framework instance
       
  1276         CVtUiCommandManager* iCommandManager;
       
  1277 
       
  1278         // Inner class.
       
  1279         class CInstance;
       
  1280 
       
  1281         // Model instance. Exists only while there is a video call.
       
  1282         CInstance* iInstance;
       
  1283 
       
  1284         // Inner class to observe all events.
       
  1285         class CEventObserver;
       
  1286 
       
  1287         // Inner class for verifying media gallery objects
       
  1288         class CVtUiAppUiMGVerifier;
       
  1289 
       
  1290         // Owned event observer.
       
  1291         CEventObserver* iEventObserver;
       
  1292 
       
  1293         // Owned blank control for reset & shutdown.
       
  1294         CVtUiBlankControl* iBlankControl;
       
  1295 
       
  1296         /**
       
  1297         * Enumerates disabled flags:
       
  1298         * EDisabledVideo - video disabled,
       
  1299         * EDisabledAudio - audio disabled,
       
  1300         * EVideoOptionsDisabled - video options disabled.
       
  1301         */
       
  1302         enum TDisabledFlags
       
  1303             {
       
  1304             EDisabledVideo = 1,
       
  1305             EDisabledAudio = 2,
       
  1306             EVideoOptionsDisabled = 4
       
  1307             };
       
  1308 
       
  1309 		// The Ihf Note id.
       
  1310 		TInt iIhfNoteId;
       
  1311 
       
  1312         // Flags for disabled. Sum of subset of TDisabledFlags.
       
  1313         TInt iDisabledFlags;
       
  1314 
       
  1315         // Current softkey resource id.
       
  1316         TInt iCurrentSoftkeys;
       
  1317 
       
  1318         // Telephony variant.
       
  1319         TVtUiVideoTelephonyVariation iVTVariation;
       
  1320 
       
  1321         // Window group id of this application.
       
  1322         TInt iThisApplicationWgId;
       
  1323 
       
  1324         // Window group id of eikon server.
       
  1325         TInt iEikonServerWgId;
       
  1326 
       
  1327         // Window group id for AknCapServer
       
  1328         TInt iAknCapServerWgId;
       
  1329 
       
  1330         // Window group id for Akn Notifier Server
       
  1331         TInt iAknNfyServerWgId;
       
  1332 
       
  1333         // Owned active executor for initialisation / uninitialisation.
       
  1334         CVtUiActiveExec* iActiveExec;
       
  1335 
       
  1336         // Owned current dialog on execution.
       
  1337         CEikDialog* iExecDialog;
       
  1338 
       
  1339         // Owned blank dialog.
       
  1340         CEikDialog* iExecBlankDialog;
       
  1341 
       
  1342         // Reference to request status.
       
  1343         TRequestStatus* iShutdownRequest;
       
  1344 
       
  1345         // Owned active executor for command execution.
       
  1346         CVtUiActiveExec* iCmdActiveExec;
       
  1347 
       
  1348         // Owned current dialog on command execution.
       
  1349         CEikDialog* iCmdExecDialog;
       
  1350 
       
  1351         // Owned blank dialog on command execution.
       
  1352         CEikDialog* iCmdExecBlankDialog;
       
  1353 
       
  1354 
       
  1355         // Owned timer for making sure that
       
  1356         // the application is terminated in time.
       
  1357         CPeriodic* iExitTimer;
       
  1358 
       
  1359         // DTMF tone, used as parameter to KVtEngStartDtmfTone.
       
  1360         TPckgBuf< TChar > iDtmfTone;
       
  1361 
       
  1362         // Pointer to uplink window.
       
  1363         MVtUiVideoWindow* iUplinkWindow;
       
  1364 
       
  1365         // Pointer to downlink window.
       
  1366         MVtUiVideoWindow* iDownlinkWindow;
       
  1367 
       
  1368         // Query dialog for switching to voice call
       
  1369         CAknQueryDialog* iCreateVoiceCallDlg;
       
  1370 
       
  1371         // Progress dialog shown when initializing
       
  1372         CAknProgressDialog* iProgressDlg;
       
  1373 
       
  1374         // ASync callback.
       
  1375         CAsyncCallBack* iAsyncCallback;
       
  1376 
       
  1377         // Async callback for layout change
       
  1378         CAsyncCallBack* iLayoutChangeCallback;
       
  1379 
       
  1380         // Camera orientation for primary camera
       
  1381         MVtEngMedia::TCameraOrientation iPrimaryCameraOrientation;
       
  1382 
       
  1383         // Camera orientation for secondary camera
       
  1384         MVtEngMedia::TCameraOrientation iSecondaryCameraOrientation;
       
  1385 
       
  1386         // Currently used camera orientation
       
  1387         MVtEngMedia::TCameraOrientation iCurrentCameraOrientation;
       
  1388 
       
  1389         // Current loudspeaker volume
       
  1390         TInt iLoudspeakerVolume;
       
  1391 
       
  1392         // Current handset volume
       
  1393         TInt iHandsetVolume;
       
  1394 
       
  1395         // Ui states (media, audio, boolean variables)
       
  1396         TVtUiStates* iUiStates;
       
  1397 
       
  1398         // Component manager instance
       
  1399         CVtUiComponentManager* iComponentManager;
       
  1400 
       
  1401         // Feature manager instance
       
  1402         CVtUiFeatureManager* iFeatureManager;
       
  1403 
       
  1404         // Pointer to cba
       
  1405         CEikButtonGroupContainer* iCba;
       
  1406 
       
  1407         // Active number source
       
  1408         MVtUiNumberSource* iNumberSource;
       
  1409 
       
  1410         TVtUiAppStateBase*  iState;
       
  1411 
       
  1412         // Stored zoom key event
       
  1413         TKeyEvent iStoredKeyEvent;
       
  1414 
       
  1415         // ETrue if incoming call is waiting call
       
  1416         TBool iIsWaitingCallState;
       
  1417 
       
  1418         // ETrue if key event has been stored
       
  1419         TBool iIsStoredKeyEvent;
       
  1420 
       
  1421         // Timer for starting the toolbar
       
  1422         CPeriodic* iTbPeriodic;
       
  1423 
       
  1424         // Owned volume control class for adjusting
       
  1425         // engine side volume
       
  1426         CVtUiVolumeControl* iVolCtrl;
       
  1427 
       
  1428         // Pending command for delayed layout change
       
  1429         TVtEngCommandId iPendingCmd;
       
  1430 
       
  1431     private: // Friend classes
       
  1432 
       
  1433         // Inner class.
       
  1434         friend class CInstance;
       
  1435 
       
  1436         // Inner class.
       
  1437         friend class CEventObserver;
       
  1438 
       
  1439     private:
       
  1440 
       
  1441         // Class for active command handling
       
  1442         class TActiveCommand
       
  1443             {
       
  1444 
       
  1445         public:
       
  1446 
       
  1447             /**
       
  1448             * Constructor.
       
  1449             * @param aActiveCommands array of command ids.
       
  1450             * @param aCommand command id.
       
  1451             */
       
  1452             TActiveCommand( RArray< TInt >& aActiveCommands, TInt aCommandId );
       
  1453 
       
  1454             /**
       
  1455             * Destructor
       
  1456             */
       
  1457             ~TActiveCommand();
       
  1458 
       
  1459             /**
       
  1460             * Adds command to active commands
       
  1461             */
       
  1462             void OpenL();
       
  1463 
       
  1464         private:
       
  1465 
       
  1466             /**
       
  1467             * Removes command from active commands
       
  1468             */
       
  1469             void Close();
       
  1470 
       
  1471         private:
       
  1472 
       
  1473             // Reference to array of active command ids.
       
  1474             RArray< TInt >& iActiveCommands;
       
  1475 
       
  1476             // Command id.
       
  1477             const TInt iCommandId;
       
  1478 
       
  1479             };
       
  1480 
       
  1481 
       
  1482     private:
       
  1483         // Active command ids.
       
  1484         RArray< TInt > iActiveCommands;
       
  1485         // The last time swap image operation occured.
       
  1486         TTime iLastSwapTime;
       
  1487         // Incall bubble.
       
  1488         CAknIncallBubble* iIncallBubble;
       
  1489         //This flag is used to check if orientation changed before some action
       
  1490         //Currently is only used for prepare remote render and start remote render
       
  1491         TBool iIsLandScapeOrientation;
       
  1492         //flag indicates layoutchang session
       
  1493         TBool iLayoutChg;
       
  1494         //save cmd for later use 
       
  1495         TInt iDelayedCmd;
       
  1496         //disable video process
       
  1497         TBool iDisableVideoOngoing;
       
  1498         //disable video process
       
  1499         TBool iShareImageOngoing;
       
  1500     };
       
  1501 
       
  1502 #endif      // CVTUIAPPUI_H
       
  1503 
       
  1504 // End of File