camerauis/cameraapp/generic/inc/CamAppUi.h
branchRCL_3
changeset 24 bac7acad7cb3
equal deleted inserted replaced
23:61bc0f252b2b 24:bac7acad7cb3
       
     1 /*
       
     2 * Copyright (c) 2007-2010 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:  App UI class for cameraapp
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef CAMAPPUI_H
       
    20 #define CAMAPPUI_H
       
    21 
       
    22 // ===========================================================================
       
    23 //  INCLUDES
       
    24 #include "CamAppUiBase.h"
       
    25 #include "CamNewFileService.h"
       
    26 #include "CamSelfTimerObserver.h"  
       
    27 #include "CamVolumeKeyObserver.h"
       
    28 #include "mcamcameraobserver.h"
       
    29 #include "CamFileCheckAo.h"
       
    30 
       
    31 #include "MCamAddToAlbumObserver.h"
       
    32 
       
    33 class CFbsBitGc;
       
    34 class CAknNavigationDecorator;
       
    35 class CAknNavigationControlContainer;
       
    36 class CCamWaitDialog;
       
    37 class CCamTimerBase;
       
    38 class CCamNaviCounterControl;
       
    39 class CCamNaviCounterModel;
       
    40 class CCamNaviProgressBarControl;
       
    41 class CCamNaviProgressBarModel;
       
    42 class CCamSelfTimer;
       
    43 class MCamBurstModeObserver;
       
    44 class CDocumentHandler;
       
    45 class CTextResolver;
       
    46 class CCamSidePane;
       
    47 class CCamZoomPane;
       
    48 class MCamResourceLoader;
       
    49 class CCamTimer;
       
    50 class CIdle;
       
    51 class CAknStylusPopUpMenu; 
       
    52 
       
    53 class CGSPluginInterface;
       
    54 class CGSTabHelper;
       
    55 class CCamGSInterface;
       
    56 
       
    57 class CAknGlobalNote;
       
    58 
       
    59 //class CASpaAppLauncherActionData;
       
    60 //class CSFIUtilsAppInterface;    // InCall Send interface
       
    61 class CCamPropertyWatcher;
       
    62 class CRepository;
       
    63 class MActivePalette2UI;
       
    64 class CCamActivePaletteHandler;
       
    65 class CAknLocalScreenClearer;
       
    66 class CAknStaticNoteDialog;
       
    67 class CCamCollectionManagerAO;
       
    68 class CCamStillPreCaptureView;
       
    69 class CCamVideoPreCaptureView;
       
    70 class CCamMemoryMonitor;
       
    71 //FTU message display class
       
    72 class CCamFtuDisplay;
       
    73 class CCamStartupLogoController;
       
    74 
       
    75 
       
    76 // ===========================================================================
       
    77 // CLASS DECLARATION
       
    78 
       
    79 /**
       
    80 *  AppUi class for Camera
       
    81 *
       
    82 *  @since 2.8
       
    83 */
       
    84 class CCamAppUi : public CCamAppUiBase,
       
    85                   public MCamSelfTimerObserver,
       
    86                   public MCamControllerObserver,
       
    87                   public MCamVolumeKeyObserver,
       
    88                   public MCamFileCheckObserver,
       
    89                   public MCamCameraObserver
       
    90                   ,public MCamAddToAlbumObserver
       
    91                   ,public MAknServerAppExitObserver
       
    92   {
       
    93   // =======================================================
       
    94   // Data Types
       
    95   private: 
       
    96         
       
    97     // enumeration to describe the type of view switch required when 
       
    98     // the capture mode or view state changes
       
    99     enum TCamViewSwitch
       
   100         {
       
   101         ECamViewSwitchNone,    // no switch required
       
   102         ECamViewSwitchModeOnly,// only capture mode or view state need updating
       
   103         ECamViewSwitch         // full view switch required including state 
       
   104                                // and mode update
       
   105         };
       
   106 
       
   107     /**
       
   108      * Enumeration used for the state of delayed postacapture views
       
   109      * construction. Only used if CAMERAAPP_DELAYED_POSTCAPTURE_CREATION is
       
   110      * enabled.
       
   111      */
       
   112     enum TCamPostCapConstruction
       
   113         {    
       
   114         ECamConstructStillPostCap,
       
   115         ECamConstructBurstPostCap,
       
   116         ECamConstructVideoPostCap,
       
   117         ECamPostCapsDone
       
   118         };
       
   119     
       
   120     enum TSoftkeyIndex
       
   121         {
       
   122         ESoftkeyIndex1 = 0,
       
   123         ESoftkeyIndex2 = 2
       
   124         };
       
   125       
       
   126     enum TPendingViewSwitchType 
       
   127         {
       
   128         EPendingViewSwitchNone = 0,
       
   129         EPendingViewSwitchNormal,
       
   130         EPendingViewSwitchDeactivateFirst
       
   131         };
       
   132 
       
   133     /**
       
   134      * Memory card status
       
   135      */
       
   136     enum TCamMemoryStatus
       
   137         {
       
   138         ECamMemoryStatusOK,
       
   139         ECamMemoryStatusFull,
       
   140         ECamMemoryStatusInternalFull,
       
   141         ECamMemoryStatusCardNotInserted,
       
   142         ECamMemoryStatusCardReadOnly,
       
   143         ECamMemoryStatusCardLocked,
       
   144         ECamMemoryStatusMassStorageFull
       
   145         };
       
   146 
       
   147   // =======================================================
       
   148   // Methods 
       
   149 
       
   150   // -------------------------------------------------------
       
   151   // Constructors and destructor
       
   152   public:  
       
   153 
       
   154     /**
       
   155     * C++ constructor.
       
   156     * @since 2.8
       
   157     * @param aController Reference to CCamAppController
       
   158     * @return Pointer to CCamAppUi
       
   159     */
       
   160     CCamAppUi( CCamAppController& aController );
       
   161 
       
   162     /**
       
   163     * Perform the second phase construction of a CCamAppUi object.
       
   164     * @since 2.8
       
   165     */
       
   166     void ConstructL();
       
   167 
       
   168     /**
       
   169     * Destructor.
       
   170     */
       
   171     virtual ~CCamAppUi();
       
   172   
       
   173   // -------------------------------------------------------
       
   174   // From MCamCameraObserver
       
   175   public:
       
   176 
       
   177     /**
       
   178     * Handle camera event.
       
   179     *
       
   180     * @param aStatus    Status code describing the event status.
       
   181     * @param aEventId   Identifier for the event.
       
   182     * @param aEventData Event associated data. If such data is provided with
       
   183     *                   the event, it is mentioned in the documentation of
       
   184     *                   particular event id.
       
   185     *                   Ownership not transferred to observer.
       
   186     */
       
   187     void HandleCameraEventL(
       
   188         TInt aStatus, 
       
   189         TCamCameraEventId aEventId, 
       
   190         TAny* aEventData = NULL );   
       
   191 
       
   192   // -------------------------------------------------------
       
   193   // From MCamFileCheckObserver
       
   194   public:
       
   195 
       
   196     /**
       
   197     * Callback to notify that file checking operation has completed.
       
   198     * @param aStatus Number of files that were missing
       
   199     * @param aError  Error code
       
   200     */
       
   201     void FileCheckingCompleteL( TInt aStatus, TInt aError );   
       
   202 
       
   203     // -------------------------------------------------------
       
   204     // New functions
       
   205 public: 
       
   206     /*
       
   207      * HyperlinkCallback
       
   208      * static methode  to be called from TCallback
       
   209      */
       
   210 
       
   211     static TInt HyperlinkCallback( TAny* aAny );
       
   212     
       
   213     /**
       
   214      * CamFtuDisplayL
       
   215      * Check if camera is launching for first time ,
       
   216      * accordingly FTU Message will be displayed.
       
   217      */
       
   218     void CamFtuDisplayL();
       
   219   
       
   220      /**
       
   221 	  * OpenSettingView
       
   222 	  * Non static public method , to launch the settings view
       
   223 	  */
       
   224     void OpenSettingView();
       
   225 
       
   226     /**
       
   227      * Returns whether or the toolbar has been activated/visible
       
   228      * Will return ETrue when when the toolbar is active/visible
       
   229      * @since 3.2
       
   230      * @return ETrue if toolbar is active/visible, else returns EFalse
       
   231      */
       
   232     virtual TBool IsToolBarVisible() const;
       
   233 
       
   234         /**
       
   235         * Check if given view state indicates that "internal",
       
   236         * CCamViewBase inherited view is in question.
       
   237         */
       
   238         TBool IsInternalView( TCamViewState aViewState ) const;
       
   239 
       
   240         /**
       
   241         * Set status of standby mode.
       
   242         */
       
   243         void SetStandbyStatus( TInt aStatus );
       
   244 
       
   245         /**
       
   246         * Get status of standby mode.
       
   247         */
       
   248         TInt StandbyStatus() const;
       
   249 
       
   250         /**
       
   251          * returns ETrue if the stsnby status is recoverable
       
   252          */
       
   253         TBool IsRecoverableStatus();
       
   254         
       
   255         /**
       
   256          * Change the standby status
       
   257          */
       
   258         TBool ChangeStandbyStatusL( TInt aError );
       
   259         
       
   260         /**
       
   261         * returns Getter for iPreCaptureMode
       
   262         */
       
   263         TCamPreCaptureMode PreCaptureMode();
       
   264         
       
   265         /*
       
   266         * Check for file name deletion/renaming outside camera
       
   267         */
       
   268         void StartFileNameCheck();
       
   269              
       
   270         /**
       
   271         * Determines whether or not all construction has been completed
       
   272         * Used on view activation to determine if the view should
       
   273         * open in standby mode. This will happen if the app is waiting for
       
   274         * an orientation switch to complete or for the initial view to be set
       
   275         * when launched in embedded
       
   276         * @since 3.0
       
   277         * @return ETrue if all construction has completed, else EFalse
       
   278         */   
       
   279         TBool IsConstructionComplete() const;
       
   280 
       
   281         /**
       
   282         * Set title pane text from a resource.
       
   283         * @since 2.8
       
   284         * @param aResourceId resource to read from
       
   285         */
       
   286         void SetTitleL( TInt aResourceId );
       
   287 
       
   288         /**
       
   289         * Set title pane text from a descriptor.
       
   290         * @since 2.8
       
   291         * @param aText title pane text
       
   292         */
       
   293         void SetTitleL( const TDesC& aText );
       
   294 
       
   295         /**
       
   296         * In embedded mode set title to name of embedding application
       
   297         * @since 2.8
       
   298         */
       
   299         void SetTitleEmbeddedL();
       
   300 
       
   301         /**
       
   302         * Push navi pane indicators on to navi pane stack.
       
   303         * @since 2.8
       
   304         */
       
   305         void PushNaviPaneCounterL();
       
   306 
       
   307         /**
       
   308         * Push navi pane progress bar on to navi pane stack.
       
   309         * @since 2.8
       
   310         */
       
   311         void PushNaviPaneProgressBarL();
       
   312 
       
   313         /**
       
   314         * Push default navi pane on to navi pane stack.
       
   315         * @since 2.8
       
   316         */
       
   317         void PushDefaultNaviPaneL();
       
   318 
       
   319         /**
       
   320         * Call DisplayDeleteNoteL on the current view
       
   321         * @return whether the delete was performed
       
   322         * @since 2.8
       
   323         */
       
   324         TBool DisplayDeleteNoteL();
       
   325 
       
   326         /**
       
   327         * Enable or disable self-timer functionality
       
   328         * @since 2.8
       
   329         * @param aEnable The selftimer functionality to use
       
   330         */
       
   331         void SelfTimerEnableL( TCamSelfTimerFunctions aEnable );
       
   332 
       
   333         /**
       
   334         * Returns current self-timer state
       
   335         * @since 2.8
       
   336         * @return Returns whether or not Self Timer is currently enabled.
       
   337         */
       
   338         TBool SelfTimerEnabled() const;
       
   339 
       
   340         /**
       
   341         * Returns pointer to self-timer
       
   342         * @since 2.8
       
   343         * @return pointer to CCamSelfTimer object.
       
   344         */
       
   345         CCamSelfTimer* SelfTimer();
       
   346 
       
   347         /**
       
   348         * Registers an observer for changes in burst mode activation
       
   349         * @since 2.8
       
   350         * @param aBurstModeObserver the object observing burst mode changes
       
   351         */
       
   352         void AddBurstModeObserverL( MCamBurstModeObserver* aBurstModeObserver );
       
   353 
       
   354         /**
       
   355         * Removes an observer for changes in burst mode activation
       
   356         * @since 2.8
       
   357         * @param aBurstModeObserver the observer to remove
       
   358         */
       
   359         void RemoveBurstModeObserver( const MCamBurstModeObserver* aBurstModeObserver );
       
   360 
       
   361         /**
       
   362         * Returns whether or not burst capture mode is enabled.
       
   363         * Will return ETrue when burst mode is enabled for still capture
       
   364         * even if the application is currently in video capture mode
       
   365         * @since 2.8
       
   366         * @return ETrue if burst mode is enabled, else returns EFalse
       
   367         */
       
   368         TBool IsBurstEnabled() const;
       
   369 
       
   370         /*
       
   371         * Gets the handle to the controller, which is used inturn by the
       
   372         * plugin to call the interfaces for performing needed actions.
       
   373         */
       
   374         MCamAppController& AppController();
       
   375         
       
   376         /*
       
   377         * Gets the handle to the settings model, which is used inturn by the
       
   378         * plugin to call the interfaces for performing needed actions.
       
   379         */
       
   380         MCamStaticSettings& StaticSettingsModel();
       
   381         
       
   382         /**
       
   383         * Returns the currently enabled burst mode.
       
   384         * @since 3.0
       
   385         * @return the currently enable burst mode or ECamImageCaptureNone if 
       
   386         * burst is not enabled
       
   387         */
       
   388         TCamImageCaptureMode CurrentBurstMode() const;
       
   389 
       
   390         /**
       
   391         * Sets the current capture mode ( and target capture mode )
       
   392         * @since 2.8
       
   393         */
       
   394         void SetCaptureMode(
       
   395             TCamCameraMode aMode, 
       
   396             TCamImageCaptureMode aImageMode = ECamImageCaptureNone );
       
   397 
       
   398         /**
       
   399         * Changes the state of sequence capture
       
   400         * @since 3.0
       
   401         * @param aImageMode Single/Multi/Timelapse
       
   402         * @param aReprepare Whether or not the engine should be reprepared with sequence
       
   403         * settings (Do not reprepare if the engine is about to be deleted/released)
       
   404         * @param aUpdateUi  Whether or not to do Ui update related things. Those are not
       
   405         * needed/allowed if this method is called just to return sequence mode setting
       
   406         * to default value (single capture).
       
   407         */ 
       
   408         void SwitchStillCaptureModeL( TCamImageCaptureMode aImageMode, 
       
   409                                       TBool                aReprepare, 
       
   410                                       TBool                aUpdateUi = ETrue );
       
   411 
       
   412 
       
   413         /**
       
   414         * Returns whether or the secondary camera has been activated
       
   415         * Will return ETrue when when the second camera is active
       
   416         * @since 2.8
       
   417         * @return ETrue if second camera is active, else returns EFalse
       
   418         */
       
   419         TBool IsSecondCameraEnabled() const;
       
   420 
       
   421         /**
       
   422         * Secondary camera orientation is constructed according to this flag.
       
   423         * Flag can be forced to portrait/landscape or it can follow qwerty 
       
   424         * state. Variation is handled via KCamCr2ndCamOrientation CenRep key.
       
   425         * @param aLock, Lock orientation state flag. 
       
   426         *               ETrue, ask state and lock it.
       
   427         *               EFalse, ask current state.
       
   428         * @return ETrue if secondary camera orientation must be landscape
       
   429         */
       
   430         TBool IsQwerty2ndCamera( TBool aLock = EFalse );  
       
   431 
       
   432         /**
       
   433         * 
       
   434         * @return ETrue if wait dialog exist
       
   435         */
       
   436         TBool CCamAppUi::IsWaitDialog() const;
       
   437 
       
   438         /**
       
   439         * Returns the active camera
       
   440         * @since 2.8
       
   441         * @return either primary, secondary or none ( if in process of switching )
       
   442         */
       
   443         TCamActiveCamera ActiveCamera() const;
       
   444 
       
   445         /**
       
   446         * Called just prior to capture. Checks if there is sufficient memory
       
   447         * available for capture and handles out of memory/error conditions. 
       
   448         * @since 2.8
       
   449         * @return ETrue if there is memory available for capture
       
   450         */
       
   451         TBool CheckMemoryL();
       
   452 
       
   453         /**
       
   454         * Display error note - with OK softkey only
       
   455         * @since 2.8
       
   456         * @param aStatus error status
       
   457         */
       
   458         void ShowErrorNoteL( TCamMemoryStatus aStatus );
       
   459 
       
   460         /**
       
   461         * Display error note for OOM condition - OK and Cancel softkeys
       
   462         * @since 2.8
       
   463         * @param aLabel text to be shown
       
   464         * @param aWithCancel Enables cancel softkey; default=ETrue
       
   465         * @return Response code returned from Out of memory dialog
       
   466         */
       
   467         TInt ShowOOMNoteL( TDesC& aLabel, TBool aWithCancel = ETrue);
       
   468 
       
   469         /**
       
   470         * Set the requested resolution for a new file
       
   471         * @since 3.2
       
   472         * @param aRequestedResolution the requested resolution from the new file request.
       
   473         */
       
   474         void SetRequestedNewFileResolution( const TSize& aRequestedResolution );
       
   475 
       
   476         /**
       
   477         * Get the requested resolution for a new file
       
   478         * @since 3.2
       
   479         * @return the requested resolution from the new file request.
       
   480         *  Default is TSize(0,0) which interpreted as mms quality resolution
       
   481         */
       
   482         TSize RequestedNewFileResolution() const;
       
   483 
       
   484         /**
       
   485         * Shows the mmc removal note if it is required
       
   486         * @since 2.8
       
   487         */
       
   488         void ShowMMCRemovalNoteIfRequiredL();
       
   489 
       
   490         /**
       
   491         * Check memory card for available space and card status
       
   492         * @since 2.8
       
   493         * @param aFull on return contains ETrue if card is full
       
   494         * @param aStatus on return contains the card status
       
   495         * @param aCurrentLocation current storage location
       
   496         */
       
   497         void CheckMemoryCard( TBool& aFull,
       
   498                 TCamMemoryStatus& aStatus, TCamMediaStorage aCurrentLocation );
       
   499 
       
   500         /**
       
   501         * Checks if aStorage location is full
       
   502         * @since 2.8
       
   503         * @param aStorage target storage location
       
   504         * @param aCurrentLocation current storage location
       
   505         * @return ETrue if aStorage location is full
       
   506         */
       
   507         TBool MemoryFull( TCamMediaStorage aStorage, TCamMediaStorage aCurrentLocation );
       
   508 
       
   509         /**
       
   510         * Starts the video/photo capture
       
   511         * @since 2.8
       
   512         * @param aKeyEvent Key used to start the capture
       
   513         * @return whether the key was consumed by the function
       
   514         */
       
   515         TKeyResponse StartCaptureL( const TKeyEvent& aKeyEvent );
       
   516 
       
   517         /**
       
   518         * Stops the video capture
       
   519         * @since 2.8
       
   520         */
       
   521         void EndCapture();
       
   522         
       
   523         /**
       
   524         * Changes the orientation to aNewOrientation
       
   525         * If aNewOrientation is EAppUiOrientationUnspecified, switches
       
   526         * to the normal orientation (this may depend on the currently
       
   527         * activated camera)
       
   528         * @since 3.0
       
   529         */
       
   530         void SwitchOrientationIfRequiredL( TInt aNewOrientation );
       
   531 
       
   532         /**
       
   533         * Returns pointer to side-pane
       
   534         * @since 2.8
       
   535         * @return pointer to CCamSidePane object constructed by appUi
       
   536         */
       
   537         CCamSidePane* SidePane();
       
   538 
       
   539         /**
       
   540         * Returns pointer to zoom-pane
       
   541         * @since 2.8
       
   542         * @return pointer to CCamZoomPane object constructed by appUi
       
   543         */
       
   544         CCamZoomPane* ZoomPane();
       
   545 
       
   546         /**
       
   547         * Returns current camera orientation
       
   548         * @since 3.0
       
   549         * @return current camera orientation
       
   550         */
       
   551         TCamOrientation CamOrientation();
       
   552 
       
   553         /**
       
   554         * set current camera orientation as landscape
       
   555         */
       
   556         void SetCamOrientationToLandscape();
       
   557 	
       
   558         /**
       
   559         * Returns current viewstate
       
   560         * @since 3.0
       
   561         * @return current viewstate
       
   562         */
       
   563         TCamViewState CurrentViewState() const;
       
   564         
       
   565         /**
       
   566         * Returns target view state
       
   567         * @since 4.0
       
   568         * @return target view state
       
   569         */
       
   570         TCamViewState TargetViewState();
       
   571 
       
   572         /**
       
   573         * Returns the target mode of current mode switch
       
   574         * (Image/Video/Idle/Shutdown). The returned value
       
   575         * should equal to current state, if no switch is
       
   576         * in progress
       
   577         */        
       
   578         TCamCameraMode TargetMode() const;
       
   579 
       
   580         /**
       
   581         * Handles the shutter key press
       
   582         * @param aPressed ETrue if the shutter is pressed, EFalse if released
       
   583         * @since 2.8
       
   584         */
       
   585         void HandleShutterKeyL( TBool aPressed );    
       
   586         
       
   587         /**
       
   588         * Set embedding flag 
       
   589         * @param aEmbedding ETrue if we are embedding (ie Messaging, Realplayer), 
       
   590         * EFalse if not
       
   591         * @since 2.8
       
   592         */
       
   593         void SetEmbedding( TBool aEmbedding );
       
   594         
       
   595         /**
       
   596         * Return embedding flag 
       
   597         * @return ETrue if we are embedding (ie Messaging, Realplayer), 
       
   598         * EFalse if not
       
   599         * @since 2.8
       
   600         */
       
   601         TBool Embedding() const;
       
   602         
       
   603         /**
       
   604         * Set SendAs flag 
       
   605         * @param aSendAsInProgress ETrue if SendAs in progress, EFalse if not
       
   606         * @since 2.8
       
   607         */
       
   608         void SetSendAsInProgressL( TBool aSendAsInProgress );
       
   609 
       
   610         /**
       
   611         * Get SendAs flag value 
       
   612         * @return ETrue if SendAs in progress, EFalse if not
       
   613         * @since 4.0
       
   614         */        
       
   615         virtual TBool SendAsInProgress() const;
       
   616         
       
   617         /**
       
   618         * Offers a pointer to appui's TextResolver instance
       
   619         * @return pointer to appui's TextResolver instance   
       
   620         */
       
   621         CTextResolver* TextResolver();
       
   622             
       
   623 #ifndef __WINSCW__
       
   624         /**
       
   625         * Get pointer to SFI utility class 
       
   626         * @since 3.0
       
   627         * @return pointer to CSFIUtilsAppInterface
       
   628         */
       
   629         //CSFIUtilsAppInterface* SFIUtility() const;
       
   630 
       
   631         /**
       
   632         * Return whether we are currently in-call send
       
   633         * @since 3.0
       
   634         * @return TBool true if we are in in-call send mode
       
   635         */
       
   636         //TBool IsInCallSend() const;
       
   637 
       
   638         /**
       
   639         * Send media file using SFI utility
       
   640         * @since 3.0
       
   641         */
       
   642         //void DoInCallSendL() const;
       
   643 #endif //WINSCW
       
   644 
       
   645         /**
       
   646         * Whether or not the application is in the background
       
   647         * @since 2.8
       
   648         * @param aIncludeNotifier If EFalse then the application is not
       
   649         * classed as being in the background if the foreground application is
       
   650         * a notifier, e.g. charging enabled.
       
   651         * @return ETrue if the application is in the background
       
   652         */   
       
   653         TBool AppInBackground( TBool aIncludeNotifier ) const;
       
   654         
       
   655         /**
       
   656         * Indicates whether or not the application is in a simulated exit situation
       
   657         * @return ETrue if the application has pretended to exit, else EFalse 
       
   658         */
       
   659         TBool IsInPretendExit() const;
       
   660         
       
   661         /**
       
   662         * Indicates whether or not the application was in a simulated exit situation
       
   663         * @return ETrue if the application had pretended to exit, else EFalse 
       
   664         */
       
   665         TBool ReturningFromPretendExit() const; 
       
   666         
       
   667         /**
       
   668         * Indicates whether or not the application started the first time
       
   669         * @return ETrue if the application booted first time, else EFalse 
       
   670         */
       
   671         TBool IsFirstBoot() const; 
       
   672                 
       
   673         /**
       
   674         * Returns whether an MMC removed note is pending
       
   675         * @since 3.0
       
   676         * @return TBool ETrue if the UI needs to show an MMC 
       
   677         */
       
   678         TBool IsMMCRemovedNotePending() const;                  
       
   679 
       
   680         /**
       
   681         * Returns the pointer to the NaviCounter pane
       
   682         * @since 3.0
       
   683         * @return The Navi Counter pointer
       
   684         */
       
   685         CCamNaviCounterControl* NaviCounterControl();
       
   686         
       
   687         /**
       
   688         * Returns the pointer to the NaviProgress pane
       
   689         * @since 3.0
       
   690         * @return The Navi Progress pointer
       
   691         */
       
   692         CCamNaviProgressBarControl* NaviProgressBarControl();
       
   693 
       
   694         /**
       
   695         * Returns the pointer to the Navi Counter ModelProgress pane
       
   696         * @since 3.0
       
   697         * @return The Navi Counter Model pointer
       
   698         */
       
   699         CCamNaviCounterModel* NaviCounterModel();
       
   700 
       
   701         /**
       
   702         * Return handle to active palette if supported
       
   703         * @since 3.0
       
   704         * @return Handle to Active palette
       
   705         */             
       
   706         MActivePalette2UI* ActivePalette() const;
       
   707         
       
   708         /**
       
   709         * Get pointer to Active Palette handler instance.
       
   710         *
       
   711         * @return Pointer to Active Palette handler instance. Ownership not
       
   712         *         transferred.
       
   713         */
       
   714         CCamActivePaletteHandler* APHandler() const;
       
   715 
       
   716         /**
       
   717         * Tries to show or hide the Active Toolbar
       
   718         * @since 3.0
       
   719         * @param aShown True to show it, False to hide it
       
   720         */
       
   721         void SetActivePaletteVisibility( TBool aShown );
       
   722 
       
   723         /**
       
   724         * Returns whether the user has set the icons to always display in pre-capture
       
   725         * @since 3.0
       
   726         * @return ETrue if the optional icons should always be displayed
       
   727         */
       
   728         TBool AlwaysDrawPreCaptureCourtesyUI() const;
       
   729 
       
   730         /**
       
   731         * Returns whether the user has set the icons to always display in post-capture
       
   732         * @since 3.0
       
   733         * @return ETrue if the optional icons should always be displayed
       
   734         */
       
   735         TBool AlwaysDrawPostCaptureCourtesyUI() const;
       
   736 
       
   737         /**
       
   738         * Set whether the icons should always display in pre-capture
       
   739         * @since 3.0
       
   740         * @param aNewSetting True if they should always be drawn; False if they should only be drawn when the UI is raised
       
   741         */
       
   742         void  SetAlwaysDrawPreCaptureCourtesyUI( TBool aNewSetting );
       
   743 
       
   744         /**
       
   745         * Set whether the icons should always display in post-capture
       
   746         * @since 3.0
       
   747         * @param aNewSetting True if they should always be drawn; False if they should only be drawn when the UI is raised
       
   748         */
       
   749         void SetAlwaysDrawPostCaptureCourtesyUI( TBool aNewSetting );
       
   750 
       
   751         /**
       
   752         * Check whether a key event should cause the courtesy UI to be raised
       
   753         * @since 3.0
       
   754         * @param aKeyEvent The key event
       
   755         * @param aType The type of key event
       
   756         * @param aInPreCapture Whether the key was pressed in precapture mode
       
   757         * @return Whether the key was consumed or not
       
   758         */
       
   759         TKeyResponse CheckCourtesyKeyEventL( const TKeyEvent aKeyEvent, TEventCode aType, TBool aInPreCapture );
       
   760 
       
   761         /**
       
   762         * Whether to draw the complete UI in precapture mode
       
   763         * @since 3.0
       
   764         * @return True if it should all be drawn
       
   765         */
       
   766         TBool DrawPreCaptureCourtesyUI() const;
       
   767 
       
   768         /**
       
   769         * Whether to draw the complete UI in postcapture mode
       
   770         * @since 3.0
       
   771         * @return True if it should all be drawn
       
   772         */
       
   773         TBool DrawPostCaptureCourtesyUI() const;
       
   774 
       
   775         /**
       
   776         * Bring the complete UI to the fore in precapture
       
   777         * @param aShowZoomBar Briefly shows the zoombar first, if necessary
       
   778         * @since 3.0
       
   779         */
       
   780         void RaisePreCaptureCourtesyUI(TBool aShowZoomBar);
       
   781 
       
   782         /**
       
   783         * Bring the complete UI to the fore in postcapture
       
   784         * @since 3.0
       
   785         */
       
   786         void RaisePostCaptureCourtesyUI();
       
   787 
       
   788         /**
       
   789         * Hide the optional UI in precapture
       
   790         * @since 3.0
       
   791         */
       
   792         void SubmergePreCaptureCourtesyUI();
       
   793 
       
   794         /**
       
   795         * Hide the optional UI in postcapture
       
   796         * @since 3.0
       
   797         */
       
   798         void SubmergePostCaptureCourtesyUI();
       
   799 
       
   800         /**
       
   801         * Ensures the zoom pane gets shown and updated, specifically in direct viewfinder/active toolbar modes. Calling this method
       
   802         * is not sufficient to show the zoom pane however, other methods in CZoomPane must be called to achieve this.
       
   803         * @param aRedraw Whether to force a redraw event
       
   804         * @since 3.0
       
   805         */
       
   806         void ShowZoomPane( TBool aRedraw );
       
   807         
       
   808         /**
       
   809         * Ensures the zoom pane gets hidden, specifically in direct viewfinder/active toolbar modes. As above, not sufficient to 
       
   810         * hide the zoom pane.
       
   811         * @param aRedraw Whether to force a redraw event
       
   812         * @since 3.0
       
   813         */
       
   814         void HideZoomPane( TBool aRedraw );
       
   815 
       
   816         /**
       
   817         * Refreshes the CBA based on current view and app state
       
   818         * @since 2.8
       
   819         */       
       
   820         void UpdateCba();
       
   821 
       
   822         /**
       
   823         * Sets the softkeys to the specified Resource ID
       
   824         * @since 3.0
       
   825         * @param aResource ID of the softkey resource to use
       
   826         */
       
   827         void SetSoftKeysL( TInt aResource );
       
   828         
       
   829         /**
       
   830         * Returns whether the time lapse slider is shown
       
   831         * @since 3.0
       
   832         * @return ETrue if time lapse slider is shown
       
   833         */
       
   834         TBool TimeLapseSliderShown() const;
       
   835 
       
   836         /**
       
   837         * Detects whether the direct viewfinder is in use or not
       
   838         * @since 3.0
       
   839         * @return True if it is active, otherwise false
       
   840         */
       
   841         TBool IsDirectViewfinderActive();
       
   842 
       
   843         /**
       
   844         * Let the AppUi know what is being shown in pre-capture
       
   845         * @param aMode What's being shown
       
   846         */
       
   847         void SetPreCaptureModeL(TCamPreCaptureMode aMode);  
       
   848 
       
   849         /**
       
   850          * Let the AppUi know what is being shown in pre-capture
       
   851          * @param aMode What's being shown
       
   852          */
       
   853         void SetPreCaptureMode(TCamPreCaptureMode aMode);
       
   854         
       
   855         /**
       
   856         * Whether or not the telephone application is in the foreground
       
   857         * @since 3.0
       
   858         * @return ETrue if the telephone application is in the foreground
       
   859         */    
       
   860         TBool ForegroundAppIsPhoneApp() const;
       
   861 
       
   862         /**
       
   863         * Whether to show the post capture view in current mode
       
   864         * @return ETrue iff we should show the post capture view in current mode
       
   865         */    
       
   866         TBool ShowPostCaptureView() const;
       
   867 
       
   868         /**
       
   869          * Whether the automatic UI-rise should be suppressed on next viewfinder start event
       
   870          * e.g. when postcapture is set to off, the UI is off and a photo is taken
       
   871          * @return Whether the automatic UI-rise should be suppressed
       
   872          */
       
   873         TBool SuppressUIRiseOnViewfinderStart() const;
       
   874 
       
   875         /**
       
   876          * Set whether the automatic UI-rise should be suppressed on next viewfinder start event
       
   877          * @see SuppressUIRiseOnViewfinderStart
       
   878          * @param aSuppress Whether the automatic UI-rise should be suppressed
       
   879          */
       
   880         void SetSuppressUIRiseOnViewfinderStart(TBool aSuppress);
       
   881         
       
   882         /**
       
   883         * Whether the latest capture was selftimer initiated
       
   884         * @return ETrue if the latest capture was started via selftimer
       
   885         */
       
   886         TBool IsSelfTimedCapture() const;
       
   887 
       
   888 
       
   889         /**
       
   890          * Set the 'freeing memory' flag.
       
   891          *
       
   892          * @param aFreeingMemory New value for the 'freeing memory' flag.
       
   893          */
       
   894         void SetFreeingMemory( TBool aFreeingMemory );
       
   895         
       
   896         /**
       
   897          * Get the current state of the 'freeing memory' flag.
       
   898          *
       
   899          * @return Current value for the 'freeing memory' flag.
       
   900          */
       
   901         TBool IsFreeingMemory() const;
       
   902 
       
   903         
       
   904         /**
       
   905         * Checks whether its safe to draw controls
       
   906         * @return ETrue if its safe to draw the controls 
       
   907         */
       
   908         TBool ReadyToDraw() const;
       
   909         
       
   910         /**
       
   911         * Set toolbar visibility in according to whether current view and mode are fit.
       
   912         */
       
   913         void SetToolbarVisibility();
       
   914 
       
   915         /**
       
   916         * Hide the toolbar.
       
   917         */
       
   918         void SubmergeToolbar(); 
       
   919         
       
   920         /**
       
   921         * Returns ETrue if the toolbar extension is visible,
       
   922         * otherwise EFalse.
       
   923         */
       
   924         TBool IsToolBarExtensionVisible() const;
       
   925         
       
   926         /*
       
   927          * Handles Hdmi events
       
   928          */
       
   929         void HandleHdmiEventL( TCamHdmiEvent aEvent );
       
   930  
       
   931     public: // Functions from base classes
       
   932         /**
       
   933         * Draw the counter to the bitmap used in the navi pane
       
   934         * @since 3.0
       
   935         * @param aBmpGc The graphics context for the bitmap
       
   936         * @param aBmpMaskGc The graphics context for the bitmap mask
       
   937         */
       
   938         void CreateNaviBitmapsL( TBool aDrawStorageIconAndCounter );
       
   939 	    
       
   940         /**
       
   941         * From CAknAppUi Handle user menu selections
       
   942         * @since 2.8
       
   943         * @param aCommand The enumerated code for the option selected
       
   944         */
       
   945         void HandleCommandL( TInt aCommand );
       
   946 
       
   947         /**
       
   948         * From MCamControllerObserver
       
   949         * @since 2.8
       
   950         * @param aEvent The enumerated code for the event received
       
   951         * @param aError The error code associated with the event
       
   952         */
       
   953         void HandleControllerEventL( TCamControllerEvent aEvent,
       
   954                                             TInt aError );
       
   955 
       
   956         /**
       
   957         * Return whether we are in embedded mode (if we have a pointer to a
       
   958         * MApaEmbeddedDocObserver).
       
   959         * @since 2.8
       
   960         * @return TBool if tthere is a handle to MApaEmbeddedDocObserver
       
   961         */
       
   962         TBool IsEmbedded() const;
       
   963 
       
   964         /**
       
   965         * Handle window server event.
       
   966         * @since 2.8
       
   967         * @param aEvent the window server event
       
   968         * @param aDestination the control associated with the event. 
       
   969         * Only valid for pointer events.
       
   970         */
       
   971         void HandleWsEventL( const TWsEvent& aEvent,
       
   972                              CCoeControl* aDestination );
       
   973                              
       
   974                              
       
   975         /**
       
   976         * Start application as file server application
       
   977         * @since 3.0
       
   978         * @param aEmbeddedObserver service observer
       
   979         * @param aMode Service type (image or video)
       
   980         */
       
   981         void StartAsServerAppL( MCamEmbeddedObserver *aEmbeddedObserver, 
       
   982         	               TInt aMode );
       
   983         
       
   984         /**
       
   985         * Set application file server observer  
       
   986         * @since 9.2
       
   987         * @param aEmbeddedObserver service observer
       
   988         */
       
   989         void SetEmbeddedObserver( MCamEmbeddedObserver* aEmbeddedObserver );
       
   990 
       
   991         /**
       
   992         * Closes the application
       
   993         * @since 2.8
       
   994         */
       
   995         void CloseAppL(); 
       
   996         
       
   997         /**
       
   998         * Closes the application
       
   999         * @since 2.8
       
  1000         * Exits the application according to current state, if the app always
       
  1001         * running flag is set, the application goes to the background but if 
       
  1002         * embedded, or app always running flag is not set or in an error situation 
       
  1003         * the application truly exits
       
  1004         */
       
  1005         void InternalExitL();
       
  1006 
       
  1007         /**
       
  1008         * Inform the controller of the count of images required at the next
       
  1009         * capture. Called before every still capture request.
       
  1010         * @since 2.8
       
  1011         */
       
  1012         void InitCaptureCountL();
       
  1013 
       
  1014         /**
       
  1015 		* From MCamVolumeKeyObserver - pick up volume key events
       
  1016 		* @since 3.1
       
  1017 		* @param aOperationId - operation id (i.e. volume key up/down)
       
  1018 		* @param aButtonAct bitton action press/click/release
       
  1019 		*/
       
  1020 		void HandleVolumeKeyEvent( TRemConCoreApiOperationId aOperationId,
       
  1021                             	   TRemConCoreApiButtonAction aButtonAct);
       
  1022                           			
       
  1023         /**
       
  1024         * Handle an event from CCamSelfTimer.   
       
  1025         * @since S60 v5.0
       
  1026         * @param aEvent the self timer event
       
  1027         * @param aCountDown self timer countdown duration
       
  1028         */
       
  1029         void HandleSelfTimerEvent( TCamSelfTimerEvent aEvent, 
       
  1030                                    TInt aCountDown );
       
  1031 
       
  1032   
       
  1033     public: // new fuctions
       
  1034 
       
  1035         /**
       
  1036         * We handle the case when settings plugin exists
       
  1037         **/
       
  1038         void SettingsPluginExitedL( TCamSettingsPluginExitMessage aType ); 
       
  1039 
       
  1040         /**
       
  1041         * We keep track of lauching settings plugin within camera
       
  1042         * to control the behaviour of the camera when the plugin exists and
       
  1043         * returns to camera
       
  1044         **/
       
  1045         TBool SettingsLaunchedFromCamera() const;
       
  1046         
       
  1047         /**
       
  1048         * Checks if the memory type is full or unavailable
       
  1049         * @param aStorage TCamMediaStorage enum specifying the memory type; 
       
  1050         *	default=ECamMediaStorageCurrent
       
  1051         * @return ETrue if the specified memory is full or unavailable
       
  1052         **/
       
  1053         TBool 
       
  1054         IsMemoryFullOrUnavailable(const TCamMediaStorage 
       
  1055         						  aStorage = ECamMediaStorageCurrent) const;
       
  1056         
       
  1057         /**
       
  1058         * Checks if all memories are full and unavailable
       
  1059         * @return ETrue if all memories are full or unavailable
       
  1060         **/
       
  1061         TBool AllMemoriesFullOrUnavailable() const;
       
  1062         
       
  1063         /**
       
  1064         * Checks the availability of memory on the currently selected 
       
  1065         * mediastorage for capturing images or video, result saved
       
  1066         * in iMemoryAvailableForCapturing
       
  1067         **/
       
  1068         void CheckMemoryAvailableForCapturing();
       
  1069         
       
  1070         /**
       
  1071         * Returns the previously saved availability of memory
       
  1072         * @return ETrue if memory available for capturing
       
  1073         **/
       
  1074         TBool IsMemoryAvailableForCapturing() const;
       
  1075 
       
  1076         /**
       
  1077         * Get a pointer to the startup logo controller.
       
  1078         * AppUi keeps ownership.
       
  1079         * @return Pointer to CCamStartupLogoController or NULL.
       
  1080         */
       
  1081         CCamStartupLogoController* StartupLogoController();
       
  1082         
       
  1083         /**
       
  1084         * Get a pointer to the NaviProgressBarModel.
       
  1085         */
       
  1086         CCamNaviProgressBarModel* NaviProgressBarModel();
       
  1087 
       
  1088     private: // New functions
       
  1089 
       
  1090       /**
       
  1091       * Helper method to handle controller event for
       
  1092       * going to standby mode.
       
  1093       */
       
  1094       void HandleStandbyEventL( TInt aStatus );
       
  1095             
       
  1096       /**
       
  1097       * Notify our views of application level events, like focus gained/lost.
       
  1098       */
       
  1099       void NotifyViews( const TCamAppEvent& aEvent );
       
  1100 
       
  1101 
       
  1102         /**
       
  1103         * Construct views
       
  1104         * Construct pre capture views        
       
  1105         * @since 2.8
       
  1106         */
       
  1107         void ConstructPreCaptureViewsL();
       
  1108 
       
  1109         /**
       
  1110         * Construct post capture views
       
  1111         * @since 2.8
       
  1112         */
       
  1113         void ConstructPostCaptureViewsL();
       
  1114 
       
  1115         /**
       
  1116         * Construct settings, user scene setup, and postcapture views 
       
  1117         * @since 2.8
       
  1118         */
       
  1119         void ConstructViewIfRequiredL();
       
  1120 
       
  1121         /**
       
  1122         * Construct navi pane
       
  1123         * @since 2.8
       
  1124         */
       
  1125         void ConstructNaviPaneL();
       
  1126 
       
  1127         /**
       
  1128         * Switch to pre-capture view
       
  1129         * @since 2.8
       
  1130         * @return TInt to indicate if function should be called again
       
  1131         */
       
  1132         TInt DoPostCaptureTimeoutL();
       
  1133 
       
  1134         /**
       
  1135         * Try to switch active view.
       
  1136         * @since 2.8
       
  1137         */
       
  1138         void TrySwitchViewL( TBool aDeactivateFirst = EFalse );
       
  1139 
       
  1140         /**
       
  1141         * Determines if a switch of the active view required.
       
  1142         * @param aDeactivateFirst Deactivate before check
       
  1143         * @since 2.8
       
  1144         */
       
  1145         TCamViewSwitch ViewSwitchRequired( TBool aDeactivateFirst = EFalse ) const;
       
  1146 
       
  1147         /**
       
  1148         * Get uid of view with requested view and mode.
       
  1149         * @since 2.8
       
  1150         * @param aState      View state
       
  1151         * @param aMode       Main camera mode (image/video)
       
  1152         * @param aImageMode  In image mode, image capture type (single/burst/timelapse)
       
  1153         * @param aUid        Uid of view passed by reference and populated in function
       
  1154         * @param aMessageUid A message Uid to pass to the view
       
  1155         * @return            Whether or not a valid view uid can be obtained
       
  1156         */
       
  1157         TBool ViewId( TCamViewState        aState, 
       
  1158                              TCamCameraMode       aMode, 
       
  1159                              TCamImageCaptureMode aImageMode, 
       
  1160                              TUid&                aUid, 
       
  1161                              TUid&                aMessageUid,
       
  1162                              TBool                aDeactivateFirst );
       
  1163 
       
  1164         /**
       
  1165         * Return a pointer to the navi pane.
       
  1166         * @since 2.8
       
  1167         * @return pointer to the status pane's navigation control container
       
  1168         */
       
  1169         CAknNavigationControlContainer* NaviPaneL();
       
  1170 
       
  1171         /**
       
  1172         * Display the wait dialog when saving video
       
  1173         * @since 2.8
       
  1174         */
       
  1175         void DisplayWaitDialogL();
       
  1176 
       
  1177         /**
       
  1178         * Get the default startup mode from settings
       
  1179         * If this is not defined the factory default will be used
       
  1180         * @since 2.8
       
  1181         * @return The default startup capture mode
       
  1182         */
       
  1183         TCamStartupMode StartupMode() const;
       
  1184     
       
  1185         /**
       
  1186         * Save the current capture mode to settings.
       
  1187         * This will be used as the startup mode
       
  1188         * @since 2.8
       
  1189         */
       
  1190         void SaveCaptureMode();
       
  1191         
       
  1192         /**
       
  1193         * Save the current state of the UI to settings.
       
  1194         * 
       
  1195         */
       
  1196         
       
  1197         void SaveCourtesyUiState();
       
  1198 
       
  1199         /**
       
  1200         * Override HandleScreenDeviceChangedL() and trigger a re-layout
       
  1201 		* of the main controls from this - addition for 2.8
       
  1202         * @since 2.8
       
  1203         */
       
  1204         void HandleScreenDeviceChangedL();
       
  1205 
       
  1206         /**
       
  1207         * Called when the video is ready to be stopped
       
  1208         * @since 2.8
       
  1209         * @param aPtr pointer to the object that called the timer
       
  1210         * @return Error code
       
  1211         */
       
  1212         static TInt StopVideoRecording( TAny* aPtr );
       
  1213 
       
  1214         /**
       
  1215         * Called when the application is ready to exit
       
  1216         * @since 2.8
       
  1217         * @param aAny pointer to the object that called the timer
       
  1218         * @return Error code
       
  1219         */
       
  1220         static TInt CallExit( TAny* aAny );
       
  1221 
       
  1222         /**
       
  1223         * Callback used when the application needs to switch view
       
  1224         * @since 2.8
       
  1225         * @param aAny pointer to the object that called the timer
       
  1226         * @return Error code
       
  1227         */
       
  1228         static TInt CallSwitch( TAny* aAny );
       
  1229 
       
  1230         /**
       
  1231         * Launch the context sensitive help application
       
  1232         * @since 2.8
       
  1233         */  
       
  1234         void LaunchHelpL();
       
  1235 
       
  1236         /**
       
  1237         * Returns the AppUi orientation (e.g. Portrait or Landscape) for the given product-specific orientation
       
  1238         * @since 3.0
       
  1239         * @param aCamOrientation The product-specific orientation
       
  1240         * @return The AppUi orientation (e.g. Portrait or Landscape)
       
  1241         */
       
  1242         TAppUiOrientation AppUiOrientation( TCamOrientation aCamOrientation );
       
  1243 
       
  1244         /**
       
  1245         * Returns the camera orientation based on the layout state set by the phone
       
  1246         * @since 3.0
       
  1247         * @param aLayoutState The layout state set by the phone
       
  1248         * @return The camera orientation
       
  1249         */
       
  1250         TCamOrientation LayoutStateToOrientation( TInt aLayoutState );
       
  1251 
       
  1252         /**
       
  1253         * Returns the camera orientation based on the layout state set by the phone
       
  1254         * @since 3.0
       
  1255         * @return The camera orientation based on the layout state set by the phone
       
  1256         */
       
  1257         TCamOrientation ReadCurrentDeviceOrientation();
       
  1258 
       
  1259         /**
       
  1260          * Returns whether or not the full screen viewfinder is being shown
       
  1261          * @return Whether or not the full screen viewfinder is being shown 
       
  1262          */
       
  1263         TBool FullScreenViewfinderEnabled() const;
       
  1264         
       
  1265         /**
       
  1266         * Construct a postcapture view if not already constructed
       
  1267         *
       
  1268         * The following parameter combinations can be used:
       
  1269         * Still postcapture view: sViewState = ECamViewStatePostCapture, aMode = ECamControllerImage
       
  1270         * Burst thumbnail view:   aViewState = ECamViewStateBurstThumbnail
       
  1271         * Video Postcapture view: aViewState = ECamViewStatePostCapture, aMode = ECamControllerVideo
       
  1272         *
       
  1273         * @param aViewState
       
  1274         * @param aCaptureMode
       
  1275         * @since 2.8
       
  1276         */
       
  1277         void ConstructPostCaptureViewIfRequiredL( TCamViewState aViewState,
       
  1278                                                   TCamCameraMode aMode );
       
  1279         
       
  1280         /*
       
  1281         * Initiate the check operation using collection manager
       
  1282         */
       
  1283         /**
       
  1284          * We start check operation to see if "Default Album exists"
       
  1285          * Usecase: Whenever the camera returns from background/startup we
       
  1286          * first start checking the default album which is set, if any, to make
       
  1287          * sure that album really exists. If not, then we set back the value
       
  1288          * of setting item "Add to album" to "No" in Image/Video setting
       
  1289          * image settings
       
  1290          */
       
  1291         void StartCheckingDefaultAlbumIdL();
       
  1292 
       
  1293                                                   
       
  1294 #ifdef CAMERAAPP_DELAYED_POSTCAPTURE_CREATION                                                  
       
  1295                                                 
       
  1296         /**
       
  1297         * Starts calls to PostCapIdleCallBack during processor idle time. The calls
       
  1298         * are continued until PostCapIdleCallBack is done.
       
  1299         * @since 3.1
       
  1300         */
       
  1301         void StartPostCapIdleL();
       
  1302         
       
  1303         /**
       
  1304         * Handles postcapture view construction so that each call to this function
       
  1305         * constructs one postcapture view. Returns ETrue if there are still more views
       
  1306         * to construct, EFalse if all are finished and no further calls are required.
       
  1307         *
       
  1308         * @param aSelf pointer to current CCamAppUi object
       
  1309         * @return construction status
       
  1310         * @since 3.1
       
  1311         */
       
  1312         static TInt PostCapIdleCallBack( TAny* aSelf );        
       
  1313 
       
  1314 #endif // CAMERAAPP_DELAYED_POSTCAPTURE_CREATION        
       
  1315 
       
  1316         
       
  1317         /**
       
  1318         * Initiates a call to SensorIdleCallback during processor idle time
       
  1319         * @since 3.1
       
  1320         */        
       
  1321         void StartSensorIdleL();
       
  1322         
       
  1323         /**
       
  1324         * Cancels the (possibly) pending call to SensorIdleCallBack
       
  1325         * @since 3.1
       
  1326         */        
       
  1327         void CancelSensorIdle();                
       
  1328                                 
       
  1329         /**
       
  1330         * Initializes the sensor API by calling iController.UpdateSensorApiL()
       
  1331         *        
       
  1332         * @param aSelf pointer to current CCamAppUi object
       
  1333         * @return construction status
       
  1334         * @since 3.1
       
  1335         */
       
  1336         static TInt SensorIdleCallBack( TAny* aSelf );        
       
  1337         
       
  1338 
       
  1339     private: // Functions from base classes
       
  1340 
       
  1341 #ifndef __WINSCW__
       
  1342         /**
       
  1343         * From CEikAppUi.
       
  1344         * Processes shell commands.
       
  1345         * @since 3.0
       
  1346         * @param aCommand The command line command
       
  1347         * @param aDocumentName The name of the document to open
       
  1348         * @param aTail Not used.
       
  1349         * @return TBool
       
  1350         */
       
  1351         TBool ProcessCommandParametersL( TApaCommand aCommand,
       
  1352                                          TFileName& aDocumentName,
       
  1353                                          const TDesC8& aTail );
       
  1354         /**
       
  1355         * From CEikAppUi.
       
  1356         * Handle the external message.
       
  1357         * @since 3.0
       
  1358         * @param aClientHandleOfTargetWindowGroup Handle.
       
  1359         * @param aMessageUid Message id.
       
  1360         * @param aMessageParameters Message parameters.
       
  1361         * @return Response to the message.
       
  1362         */
       
  1363         MCoeMessageObserver::TMessageResponse HandleMessageL(
       
  1364             TUint32 aClientHandleOfTargetWindowGroup,
       
  1365             TUid aMessageUid,
       
  1366             const TDesC8& aMessageParameters );
       
  1367             
       
  1368 #endif //WINSCW            
       
  1369             
       
  1370     private: // new functions
       
  1371 
       
  1372 #ifndef __WINSCW__        
       
  1373         /**
       
  1374         * Bring the Phone application back to foreground after in-call send completion
       
  1375         * @since 3.0
       
  1376         */
       
  1377         void BringPhoneAppToForeGroundL();
       
  1378 #endif //WINSCW
       
  1379 
       
  1380         /**
       
  1381         * Sends the camera application to the background, to pretend we're closing
       
  1382         * @since 2.8
       
  1383         */
       
  1384         void SendCameraAppToBackgroundL();
       
  1385 
       
  1386         /**
       
  1387         * Hides the application from task list, to pretend that camera app is closed
       
  1388         * @since 3.0 (added back since its useful in certain situation)
       
  1389         * @param aHide whether to hide or make visible
       
  1390         */
       
  1391         void HideTaskL(TBool aHide);
       
  1392         
       
  1393         /**
       
  1394         * returns ETrue if headset is connected
       
  1395         */ 
       
  1396         TBool IsHeadsetConnected() const;
       
  1397         
       
  1398     public:
       
  1399         /**
       
  1400         * Display error note
       
  1401         * @since 2.8
       
  1402         * @param aError The error code
       
  1403         */ 
       
  1404         void HandleCameraErrorL( TInt aError );
       
  1405         
       
  1406         
       
  1407         /**
       
  1408         * Set iAssumePostCaptureView flag
       
  1409         * @param aValue ETrue sets flag on, EFalse off
       
  1410         */ 
       
  1411         void SetAssumePostCaptureView( TBool aValue );
       
  1412         
       
  1413         /**
       
  1414          * Set iLensCoverExit flag
       
  1415          * @param aValue ETrue sets flag on, EFalse off
       
  1416          */
       
  1417         void SetLensCoverExit( TBool aValue );
       
  1418 		
       
  1419 		/** 
       
  1420         * Set iDrawPreCaptureCourtesyUI flag 
       
  1421         * @param aValue ETrue sets flag on, EFalse off 
       
  1422         */        
       
  1423         void SetDrawPreCaptureCourtesyUI(TBool iDraw); 
       
  1424 		
       
  1425          /**
       
  1426         * Finishes the AppUI construction by calling 
       
  1427         * CompleteAppUIConstructionL
       
  1428         */ 
       
  1429         static TInt AppUIConstructCallbackL( TAny* aAny );
       
  1430         
       
  1431         /**
       
  1432         * returns ETrue if appUi construction is complete
       
  1433         */ 
       
  1434         TBool IsUiConstructionComplete();
       
  1435         
       
  1436         /**
       
  1437 		* set whether camera viewfinder stop or not
       
  1438 		* @param aViewFinderStopped ETrue viewfinder is stoped,EFalse viewfinder is runing
       
  1439 		* 
       
  1440 		*/ 
       
  1441 		void SetViewFinderStoppedStatus(TBool aViewFinderStopped);
       
  1442 		
       
  1443         /**
       
  1444         * Getter for iViewFinderInTransit 
       
  1445         * @return ETrue if viewfinder handle is in transit between different windows
       
  1446         */ 
       
  1447 		TBool IsViewFinderInTransit();
       
  1448 		
       
  1449 		/**
       
  1450         * Setter for iViewFinderInTransit
       
  1451         * @param aInTransit Set to ETrue if viewfinder window handle is in transit 
       
  1452         * @return void
       
  1453         */
       
  1454 		void SetViewFinderInTransit(TBool aInTransit);
       
  1455 
       
  1456         /**
       
  1457         * Turns screen back visible if leave has occured.
       
  1458         * @param aAny Pointer to CamAppUi instance 
       
  1459         * @return void
       
  1460         */
       
  1461 		static void CleanupBlankScreen( TAny* aAny );
       
  1462 		
       
  1463      public: //MCamAddToAlbumObserver
       
  1464 
       
  1465 
       
  1466         /*
       
  1467         * From MCamAddToAlbumObserver
       
  1468         * Notification once the aysnchronous operations using
       
  1469         * CollectionManager interface are done completly
       
  1470         * Status of the operation are returned using aStatus
       
  1471         * e.g. KErrNone
       
  1472         */
       
  1473         void AddToAlbumIdOperationComplete() {};
       
  1474         
       
  1475         /**
       
  1476         * From MCamAddToAlbumObserver
       
  1477         * Notification once the asynchronous operations using
       
  1478         * CollectionManager interface have completed.
       
  1479         *
       
  1480         * @param aAlbumExists ETrue if album exists
       
  1481         * @param aAlbumTitle  Title of the album
       
  1482         */
       
  1483         void CheckAlbumIdOperationCompleteL(
       
  1484                 TBool aAlbumExists, const TDesC& aAlbumTitle );
       
  1485 
       
  1486     public: // MAknServerAppExitObserver
       
  1487         /**
       
  1488         * Handle the exit of a connected server app.
       
  1489         * This implementation provides Series 60 default behavior
       
  1490         * for handling of the EAknCmdExit exit code. Derived classes
       
  1491         * should base-call this implementation if they override this
       
  1492         * function.
       
  1493         * @param aReason The reason that the server application exited.
       
  1494         * This will either be an error code, or the command id that caused
       
  1495         * the server app to exit.
       
  1496         */
       
  1497         virtual void HandleServerAppExit(TInt aReason);
       
  1498 
       
  1499     private:
       
  1500 
       
  1501         /**
       
  1502         * Called when the courtesy timer ends
       
  1503         * @since 3.0
       
  1504         * @param aPtr The CCamAppUI object the timer has completed on
       
  1505         */ 
       
  1506         static TInt CourtesyTimeout( TAny* aPtr );
       
  1507 
       
  1508         /**
       
  1509         * Called when the courtesy timer ends
       
  1510         * @since 3.0
       
  1511         */ 
       
  1512         TInt DoCourtesyTimeout();
       
  1513 
       
  1514         /**
       
  1515         * Called to set the correct navicounter / naviprogress controls to "active"
       
  1516         * @since 3.0
       
  1517         */ 
       
  1518         void UpdateNaviModelsL( TBool aUpdateNavi = ETrue );
       
  1519                 
       
  1520 
       
  1521         /**
       
  1522         /**
       
  1523         * Dismisses out of memory / memory card removed note, if active.
       
  1524         */
       
  1525         void DismissMemoryNoteL();  
       
  1526         
       
  1527 		/**
       
  1528 		* Register to capture half and full shutter press key events
       
  1529 		* @since 3.0
       
  1530 		*/
       
  1531 		void RegisterCaptureKeysL();
       
  1532 		
       
  1533 		/**
       
  1534 		* Release capture of half and full shutter press key events
       
  1535 		* @since 3.0
       
  1536 		*/
       
  1537 		void UnRegisterCaptureKeys();  
       
  1538 
       
  1539     /**
       
  1540     * Select the setting for viewfinder grid.
       
  1541     */
       
  1542     void SelectViewFinderGridSettingL();
       
  1543 
       
  1544     /**
       
  1545     * Starts the Photos application command line
       
  1546     **/
       
  1547     void StartAppCmdLineL( const TDes8& aData );
       
  1548 
       
  1549     /**
       
  1550     * Check if it's applicable to use the courtesy UI
       
  1551     * @since S60 v5.0
       
  1552     * @return ETrue if courtesy UI can be used
       
  1553     */
       
  1554     TBool CourtesyUiApplies() const;
       
  1555     
       
  1556     /**
       
  1557     * Finish the AppUI construction
       
  1558     **/
       
  1559     void CompleteAppUIConstructionL();
       
  1560     
       
  1561   // =======================================================
       
  1562   // Data
       
  1563   private:    
       
  1564     
       
  1565         CCamAppController& iController;
       
  1566 
       
  1567         TCamSelfTimerFunctions iInSelfTimerMode;
       
  1568         
       
  1569         // Own
       
  1570         CCamSelfTimer* iSelfTimer;
       
  1571 
       
  1572         // Not own.
       
  1573         CCamNaviCounterControl* iNaviPaneCounterControl;
       
  1574 
       
  1575         // Not own.
       
  1576         CCamNaviProgressBarControl* iNaviPaneProgressBarControl;
       
  1577 
       
  1578         // Own.
       
  1579         CAknNavigationDecorator* iDecoratedNaviPaneCounter;
       
  1580 
       
  1581         // Own.
       
  1582         CAknNavigationDecorator* iDecoratedNaviPaneProgressBar;
       
  1583 
       
  1584 
       
  1585         // NOT owned; this pointer is just for checking 
       
  1586         // if the wait dialog object still exists, or
       
  1587         // whether it has deleted itself
       
  1588         CCamWaitDialog* iWaitDialog;
       
  1589 
       
  1590         // Not own.
       
  1591         CCamStillPreCaptureView* iStillCaptureView;
       
  1592 
       
  1593         // Not own.
       
  1594         CCamVideoPreCaptureView* iVideoCaptureView;
       
  1595 
       
  1596         // Not own.
       
  1597         CAknView*   iViaPlayerView;
       
  1598 
       
  1599         TCamViewState iViewState;
       
  1600         TCamViewState iTargetViewState;
       
  1601         TCamCameraMode iMode;
       
  1602         TCamCameraMode iTargetMode;
       
  1603 
       
  1604         TCamImageCaptureMode iImageMode;
       
  1605         TCamImageCaptureMode iTargetImageMode;
       
  1606         TInt                  iStandbyStatus;
       
  1607 
       
  1608         TBool iKeyShutter;
       
  1609 
       
  1610         // Used to determine whether or not the startup view has been
       
  1611         // set when app is launched embedded  
       
  1612         TBool iEmbeddedViewSet;
       
  1613 
       
  1614         // Name of parent app if we're embedded
       
  1615         // Own.
       
  1616         HBufC*  iParentAppName;
       
  1617 
       
  1618         // Whether or not the cba has been blanked
       
  1619         TBool iCbaIsDisabled;
       
  1620 
       
  1621         // Whether or not the burst mode has been activated
       
  1622         TBool iBurstModeEnabled;
       
  1623 
       
  1624         // Observer that needs to know when burst mode is switched on/off
       
  1625         // Observer objects are not owned.
       
  1626         RPointerArray<MCamBurstModeObserver> iBurstModeObservers;
       
  1627 
       
  1628         // handle of the camera key captured
       
  1629         TInt iCameraKeyHandle;
       
  1630 
       
  1631         // timer to assist with displaying wait dialog
       
  1632         // Own.
       
  1633         CPeriodic* iWaitTimer;
       
  1634 
       
  1635         // Whether or not the wait timer should be used
       
  1636         TBool iApplyTimer;
       
  1637 
       
  1638         // Used for opening (and playing) video clips
       
  1639         // Own.
       
  1640         CDocumentHandler* iDocHandler;
       
  1641 
       
  1642         // the id of the application's window group
       
  1643         TInt iMyWgId;
       
  1644 
       
  1645         // the id of the eikon server window group
       
  1646         TInt iEikonServerWindowGroupId;
       
  1647 
       
  1648         // Whether or not a view switch is pending, used to delay switch to
       
  1649         // post capture view when the application is in the background
       
  1650         TPendingViewSwitchType iPendingViewSwitch;
       
  1651 
       
  1652         // Keeps track of the state before focus gained events
       
  1653         TBool iReturnFromBackground;
       
  1654 
       
  1655         // Side-pane handler
       
  1656         // Own.
       
  1657         CCamSidePane* iCamSidePane;
       
  1658         
       
  1659         // Zoom-pane handler
       
  1660         // Own.
       
  1661         CCamZoomPane* iCamZoomPane;
       
  1662 
       
  1663         // Used to access settings
       
  1664         // Own.
       
  1665         CRepository* iRepository;        
       
  1666 
       
  1667         // Flag to indicate when video recording has stopped due to incoming call
       
  1668         // Post capture timer is not started when this flag is set, delays the
       
  1669         // timeout of the video post capture view
       
  1670         TBool iDelayVideoPostCaptureTimeout;
       
  1671                 
       
  1672         // Indicates if the mmc was detected as removed at startup, requiring
       
  1673         // the user to be informed
       
  1674         TBool iMMCRemoveNoteRequired;
       
  1675         
       
  1676         // Indicates if the mmc was detected as removed whilst we were in focus,
       
  1677         // requiring us to inform the user when capture is attempted.
       
  1678         TBool iMMCRemoveNoteRequiredOnCapture;     
       
  1679 
       
  1680         // Only the precapture views are created on construction
       
  1681         // These flags indicate whether or not the other views have been created
       
  1682         TBool iPostCaptureViewsConstructed;
       
  1683         TBool iUserSceneSetupViewConstructed;
       
  1684         TBool iCustomiseToolbarViewConstructed;
       
  1685 
       
  1686         // Used to resolve error message texts
       
  1687         // Own.
       
  1688         CTextResolver* iTextResolver;    
       
  1689 
       
  1690 //#ifndef __WINS__
       
  1691         // in-call send utility class
       
  1692         // Own.
       
  1693         //CSFIUtilsAppInterface* iSFIUtils;
       
  1694 
       
  1695         // Whether in in-call send mode
       
  1696         //TBool iSendFileInCall;
       
  1697 //#endif              
       
  1698 
       
  1699         // embedded observer
       
  1700         // Not own.
       
  1701         MCamEmbeddedObserver* iEmbeddedObserver;
       
  1702 
       
  1703         // embedded start up capture mode
       
  1704         TInt iApplicationMode;
       
  1705 
       
  1706         // Pointer to the only navicounter model
       
  1707         // Own.
       
  1708         CCamNaviCounterModel* iNaviCounterModel;
       
  1709 
       
  1710         //Pointer to the only naviprogressbar model
       
  1711         // Own.
       
  1712         CCamNaviProgressBarModel* iNaviProgressBarModel;
       
  1713 
       
  1714         // Pointer to the NaviCounter control
       
  1715         // Own.
       
  1716         CCamNaviCounterControl* iNaviCounterControl;
       
  1717 
       
  1718         // Pointer to the NaviProgress control
       
  1719         // Own.
       
  1720         CCamNaviProgressBarControl* iNaviProgressBarControl;
       
  1721 
       
  1722         TCamOrientation iCamOrientation;
       
  1723 
       
  1724         // Keeps a list of MCamResourceLoaders that this class owns
       
  1725         RPointerArray<MCamResourceLoader> iResourceLoaders;
       
  1726 
       
  1727         // Own.
       
  1728         CCamActivePaletteHandler* iActivePaletteHandler;
       
  1729 
       
  1730         // Maximum no if images in burst capture
       
  1731         TInt iMaxBurstCaptureNum;
       
  1732 
       
  1733         // Whether the Coutesy UI should currently be displayed (precapture)
       
  1734         TBool iDrawPreCaptureCourtesyUI;
       
  1735         // Whether the user has set the UI to always be on (precapture)
       
  1736         TBool iAlwaysDrawPreCaptureCourtesyUI;
       
  1737 
       
  1738         // Whether the Coutesy UI should currently be displayed (postcapture)
       
  1739         TBool iDrawPostCaptureCourtesyUI;
       
  1740         // Whether the user has set the UI to always be on (postcapture)
       
  1741         TBool iAlwaysDrawPostCaptureCourtesyUI;
       
  1742 
       
  1743         // The courtesy timer: when this ends, the UI should be hidden if applicable
       
  1744         // Own.
       
  1745         CCamTimer* iCourtesyTimer;
       
  1746 
       
  1747         // Whether the timer was started in precapture mode or not
       
  1748         TBool iCourtesyTimerInPreCapture;
       
  1749 
       
  1750         // True if the zoom pane is currently being shown, False if not
       
  1751         TBool iZoomPaneShown;
       
  1752 
       
  1753         // True when application is started  
       
  1754         TBool iFirstBoot;
       
  1755         
       
  1756         // Flag to show if a screen redraw event is being processed
       
  1757         TBool iProcessingScreenRedraw;
       
  1758         
       
  1759         // Whether the active palette should be prevented from being shown:
       
  1760         // used during saving of an image/video
       
  1761         TBool iPreventActivePaletteDisplay;
       
  1762         
       
  1763         // Used to delay engine creation on app startup or camera switch
       
  1764         // if the orientation has not completed initialising.
       
  1765         TBool iEngineConstructionDelayed;
       
  1766         TBool iCameraSwitchDelayed;  
       
  1767 
       
  1768         // Set to true in the case where we pretend to exit the app, but are still really
       
  1769         // running in the background. The app should behave slightly differently when we 
       
  1770         // are next brought to the foreground.
       
  1771         TBool iPretendExit;
       
  1772         TBool iReturningFromPretendExit; 
       
  1773 
       
  1774         // flag to indicate whether we are currently embedding another application
       
  1775         TBool iEmbedding;
       
  1776 
       
  1777         // flag to indicate if "Send As" is in progress
       
  1778         TBool iSendAsInProgress;
       
  1779 
       
  1780         // 
       
  1781         TInt iFullShutterPressHandle;
       
  1782         TInt iHalfShutterPressHandle;
       
  1783         TInt iFullShutterUpDownHandle;
       
  1784 
       
  1785         // Window group ID for Bluetooth server
       
  1786         TInt iBTServerWindowGroupId;
       
  1787         
       
  1788         // Window group ID for Telephone application
       
  1789         TInt iPhoneAppWindowGroupId;
       
  1790         
       
  1791         // position of softkeys in landscape mode (left or right)
       
  1792         TInt iSoftkeyPosition;
       
  1793         
       
  1794         /// The current pre capture mode shown
       
  1795         TCamPreCaptureMode iPreCaptureMode;
       
  1796 
       
  1797         // flag to indicate viewfinder stopped
       
  1798         TBool iViewFinderStopped;  
       
  1799 
       
  1800         // flag used to say whether we want to suppress auto-UI rise on next viewfinder start event
       
  1801         TBool iSuppressUIRise;
       
  1802 
       
  1803         // Flag used to indicate that focus was lost to an incoming call during sequence capture
       
  1804         TBool iFocusLostToCallDuringSequenceCapture;
       
  1805 
       
  1806         // observer to receive volume key presses
       
  1807         // Own.
       
  1808         CCamRemConObserver* iVolumeKeyObserver;
       
  1809 
       
  1810         TBool iZoomUsingVolumeKeys;
       
  1811 
       
  1812         // Own
       
  1813         CAknLocalScreenClearer* iScreenClearer;
       
  1814 
       
  1815         // Status of postcapture views construction
       
  1816         TBool iStillPostCaptureViewConstructed;
       
  1817         TBool iBurstThumbnailViewConstructed;
       
  1818         TBool iVideoPostCaptureViewConstructed;
       
  1819 
       
  1820 #ifdef CAMERAAPP_DELAYED_POSTCAPTURE_CREATION        
       
  1821         // CIdle object used for late construction of the postcapture views
       
  1822         // Own.
       
  1823         CIdle* iPostCapIdle;
       
  1824 
       
  1825         // Status of the views creation
       
  1826         TCamPostCapConstruction iPostCapProgress;
       
  1827 #endif // CAMERAAPP_DELAYED_POSTCAPTURE_CREATION
       
  1828 
       
  1829         // Own.
       
  1830         CIdle* iSensorIdle;       
       
  1831         TBool iSensorIdleRunning;
       
  1832 
       
  1833         // Own.
       
  1834         HBufC* iLowRamNoteText;
       
  1835 
       
  1836         // Used to allow postcapture view to show for selftimed captures
       
  1837         TBool iSelfTimedCapture;
       
  1838 
       
  1839         TBool iDSASupported;
       
  1840 
       
  1841         TInt iNoteId;
       
  1842 
       
  1843         // View UID if the ViaPlayerApplication view
       
  1844         TUid iViaPlayerUid;
       
  1845         // LeftSoftKey is Pressed
       
  1846         TBool iLeftSoftKeyPressed;
       
  1847         TBool iEndKeyPressed;
       
  1848 
       
  1849         TBool iCheckOperationInProgress;
       
  1850         CCamCollectionManagerAO* iCollectionManager;
       
  1851 
       
  1852         // Own.
       
  1853         CCamGSInterface* iPlugin;
       
  1854 
       
  1855         TBool iSettingsPluginLaunched;
       
  1856 
       
  1857         TBool iReturnedFromPlugin;
       
  1858 
       
  1859         // Own
       
  1860         CCamFileCheckAo *iFileCheckAo;
       
  1861 
       
  1862         // Own
       
  1863         CAknStylusPopUpMenu* iTouchPopupMenu;
       
  1864 
       
  1865         // Own
       
  1866         CAknStaticNoteDialog* iMemoryNote;
       
  1867 
       
  1868         TSize iRequestedNewFileResolution;
       
  1869 
       
  1870         TBool iLostFocusToNewWindow;
       
  1871         TBool        iToolbarVisibility;
       
  1872         TBool        iRotatedKeyEvent;
       
  1873         
       
  1874         // flag that tells us that we are exiting app because lens cover is closed
       
  1875         // used to skip post-capture view in these cases
       
  1876         TBool iLensCoverExit; 
       
  1877         // flag that indicates whether view finder start is the
       
  1878         // first one after camera startup
       
  1879         TBool iFirstVFStart;
       
  1880 
       
  1881         TUid iLastHiddenViewId;
       
  1882         
       
  1883         TCamMediaStorage iInternalStorage; //Points to either Phone or Internal Mass storage based on availability
       
  1884         T2ndCamOrientation iLockedQwertyState; 
       
  1885         TBool iUiConstructionComplete;
       
  1886         CCamMemoryMonitor* iMemoryMonitor;
       
  1887 		        
       
  1888         //Flag to monitor viewfinder window handle switch
       
  1889         TBool iViewFinderInTransit;
       
  1890 
       
  1891 		TInt iLandscapeScreenMode;
       
  1892         TInt iPortraitScreenMode;
       
  1893         
       
  1894         TBool iMemoryAvailableForCapturing;
       
  1895 
       
  1896         CCamStartupLogoController* iStartupLogoController;
       
  1897 
       
  1898         TBool iVideoClipPlayInProgress;
       
  1899 
       
  1900         /**
       
  1901          * iCamFtuDisplay
       
  1902          * An instance of the CCamFtuDisplay class
       
  1903          */
       
  1904         CCamFtuDisplay* iCamFtuDisplay;
       
  1905         };
       
  1906 
       
  1907 // ===========================================================================
       
  1908 // Debug strings
       
  1909 
       
  1910 #ifdef _DEBUG
       
  1911 const TUint16* const KCamViewStateNames[] =
       
  1912   {
       
  1913   (const TUint16* const)_S16("ECamViewStateRangeInternalMin"),
       
  1914 
       
  1915   (const TUint16* const)_S16("ECamViewStatePreCapture"),
       
  1916   (const TUint16* const)_S16("ECamViewStatePostCapture"),
       
  1917   (const TUint16* const)_S16("ECamViewStateBurstThumbnail"),
       
  1918   (const TUint16* const)_S16("ECamViewStateSettings"),
       
  1919   (const TUint16* const)_S16("ECamViewStateStandby"),
       
  1920   (const TUint16* const)_S16("ECamViewStateUserSceneSetup"),
       
  1921   (const TUint16* const)_S16("ECamViewStateWhiteBalanceUser"),
       
  1922   (const TUint16* const)_S16("ECamViewStateColourFilterUser"),
       
  1923   (const TUint16* const)_S16("ECamViewStateFlashUser"),
       
  1924   (const TUint16* const)_S16("ECamViewStateSceneUser"),
       
  1925   (const TUint16* const)_S16("ECamViewStateSceneStill"),
       
  1926   (const TUint16* const)_S16("ECamViewStateCaptureSetupMenu"),
       
  1927   (const TUint16* const)_S16("ECamViewStateSceneSettingList"),
       
  1928   (const TUint16* const)_S16("ECamViewStateExposureUser"),
       
  1929   (const TUint16* const)_S16("ECamViewStateCustomiseToolbar"),
       
  1930   (const TUint16* const)_S16("ECamViewStatePrePortraitCapture"),
       
  1931   
       
  1932   (const TUint16* const)_S16("ECamViewStateRangeInternalMax"),
       
  1933   (const TUint16* const)_S16("ECamViewStateRangeExternalMin"),
       
  1934 
       
  1935   (const TUint16* const)_S16("ECamViewStateViaPlayer"),
       
  1936   (const TUint16* const)_S16("ECamViewStateGsCamcorderPlugin"),
       
  1937 
       
  1938   (const TUint16* const)_S16("ECamViewStateRangeExternalMax")
       
  1939   };
       
  1940 __ASSERT_COMPILE( (sizeof(KCamViewStateNames)/sizeof(TUint16*)) == ECamViewStateCount );
       
  1941 #endif // _DEBUG
       
  1942 
       
  1943 #endif      // CAMAPPUI_H   
       
  1944             
       
  1945 // End of File