vtuis/videotelui/inc/commands/tvtuistates.h
changeset 0 ed9695c8bcbe
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vtuis/videotelui/inc/commands/tvtuistates.h	Mon Nov 23 14:47:47 2009 +0200
@@ -0,0 +1,679 @@
+/*
+* Copyright (c) 2007 - 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  UI states class definition.
+*
+*/
+
+
+#ifndef T_VTUISTATES_H
+#define T_VTUISTATES_H
+
+#include <e32base.h>
+
+#include "tvtuimediastate.h"
+#include "tvtuiaudiostate.h"
+
+class CVtEngModel;
+class MVtEngCameraPreferences;
+
+/**
+ *  TVtUiStates
+ *
+ *  Contains information about Application UI's current status.
+ *
+ *  @since S60 v3.2
+ */
+NONSHARABLE_CLASS( TVtUiStates ) : public TVtFlagContainer
+    {
+
+public: // enumerations
+
+    /**
+    * Application execution state (will be set by the app state classes)
+    */
+    enum TVtUiExecState
+        {
+        EExecStateStarting,
+        EExecStateRunning,
+        EExecStateResetting,
+        EExecStateFinalized
+        };
+
+public:
+
+    /**
+     * Constructor.
+     */
+    TVtUiStates( CVtEngModel& aModel );
+
+    /**
+     * Updates UI states.
+     */
+    void Update();
+
+    /**
+     * Return whether or not ColorToneSetting
+     * is supported by current camera.
+     *
+     * @return ETrue if at least one color tone setting is available,
+     * EFalse otherwise.
+     */
+    TBool IsColorToneSettingAvailable() const;
+
+    /**
+     * Return whether or not WhiteBalanceSetting
+     * is supported by current camera.
+     *
+     * @return ETrue if at least one white balance setting is available,
+     * EFalse otherwise.
+     */
+    TBool IsWhiteBalanceSettingAvailable() const;
+
+    /**
+     * Return whether or not ontrast setting
+     * is supported by current camera.
+     *
+     * @return ETrue if at contrast setting is available,
+     * EFalse otherwise.
+     */
+    TBool IsContrastSettingAvailable() const;
+
+    /**
+     * Return whether or not brightness setting
+     * is supported by current camera.
+     *
+     * @return ETrue if brightness setting is available,
+     * EFalse otherwise.
+     */
+    TBool IsBrightnessSettingAvailable() const;
+
+    /**
+     * Returns reference to media state object
+     *
+     * @return Reference to media state object.
+     */
+    inline const TVtUiMediaState& MediaState() const;
+
+    /**
+     * Returns reference to audio state object
+     *
+     * @return Reference to audio state object.
+     */
+    inline const TVtUiAudioState& AudioState() const;
+
+    /**
+     * Sets or clears EIsCLIReceived
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetCLIReceived( TBool aSet );
+
+    /**
+     * Check if EIsCLIReceived is set
+     *
+     * @return ETrue if EIsCLIReceived is set EFalse otherwise
+     */
+    inline TBool IsCLIReceived() const;
+
+    /**
+     * Sets or clears EIsLayoutChangeNeeded
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetLayoutChangeNeeded( TBool aSet );
+
+    /**
+     * Check if EIsLayoutChangeNeeded is set
+     *
+     * @return ETrue if EIsLayoutChangeNeeded is set EFalse otherwise
+     */
+    inline TBool IsLayoutChangeNeeded() const;
+
+    /**
+     * Sets or clears EIsBlankControlAdded
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetBlankControlAdded( TBool aSet );
+
+    /**
+     * Check if EIsBlankControlAdded is set
+     *
+     * @return ETrue if EIsBlankControlAdded is set EFalse otherwise
+     */
+    inline TBool IsBlankControlAdded() const;
+
+    /**
+     * Sets or clears EIsLaunchOkOptionsMenu
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetLaunchOkOptionsMenu( TBool aSet );
+
+    /**
+     * Check if EIsLaunchOkOptionsMenu is set
+     *
+     * @return ETrue if EIsLaunchOkOptionsMenu is set EFalse otherwise
+     */
+    inline TBool IsLaunchOkOptionsMenu() const;
+
+    /**
+     * Sets or clears EIsDeviceLockOn
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetDeviceLockOn( TBool aSet );
+
+    /**
+     * Check if EIsDeviceLockOn is set
+     *
+     * @return ETrue if EIsDeviceLockOn is set EFalse otherwise
+     */
+    inline TBool IsDeviceLockOn() const;
+
+    /**
+     * Sets or clears EDetailsReceived
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetDetailsReceived( TBool aSet );
+
+    /**
+     * Check if EDetailsReceived is set
+     *
+     * @return ETrue if EDetailsReceived is set EFalse otherwise
+     */
+    inline TBool IsDetailsReceived() const;
+
+    /**
+     * Sets or clears EWaitingForFirstFrame
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetWaitingForFirstFrame( TBool aSet );
+
+    /**
+     * Check if EWaitingForFirstFrame is set
+     *
+     * @return ETrue if EWaitingForFirstFrame is set EFalse otherwise
+     */
+    inline TBool IsWaitingForFirstFrame() const;
+
+    /**
+     * Sets or clears EUseSQCif
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetUseSQCif( TBool aSet );
+
+    /**
+     * Check if EUseSQCif is set
+     *
+     * @return ETrue if EUseSQCif is set EFalse otherwise
+     */
+    inline TBool IsUseSQCif() const;
+
+    /**
+     * Sets or clears EIsViewFindersInitialPlaceContextPane
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetViewFindersInitialPlaceContextPane( TBool aSet );
+
+    /**
+     * Check if EIsViewFindersInitialPlaceContextPane is set
+     *
+     * @return ETrue if EIsViewFindersInitialPlaceContextPane is set EFalse
+     * otherwise
+     */
+    inline TBool IsViewFindersInitialPlaceContextPane() const;
+
+    /**
+     * Sets or clears EViewFinderToMainPane
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetViewFinderToMainPane( TBool aSet );
+
+    /**
+     * Check if EViewFinderToMainPane is set
+     *
+     * @return ETrue if EViewFinderToMainPane is set EFalse otherwise
+     */
+    inline TBool IsViewFinderToMainPane() const;
+
+    /**
+     * Sets or clears EIsCaptureModeOn
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetCaptureModeOn( TBool aSet );
+
+    /**
+     * Check if EIsCaptureModeOn is set
+     *
+     * @return ETrue if EIsCaptureModeOn is set EFalse otherwise
+     */
+    inline TBool IsCaptureModeOn() const;
+
+    /**
+     * Sets or clears EIsThisApplicationForeground
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetThisApplicationForeground( TBool aSet );
+
+    /**
+     * Check if EIsThisApplicationForeground is set
+     *
+     * @return ETrue if EIsThisApplicationForeground is set EFalse otherwise
+     */
+    inline TBool IsThisApplicationForeground() const;
+
+    /**
+     * Sets or clears EIsDisableBlindSetting
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetDisableBlindSetting( TBool aSet );
+
+    /**
+     * Check if EIsDisableBlindSetting is set
+     *
+     * @return ETrue if EIsDisableBlindSetting is set EFalse otherwise
+     */
+    inline TBool IsDisableBlindSetting() const;
+
+    /**
+     * Sets or clears EExecShowCameraInUse
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetExecShowCameraInUse( TBool aSet );
+
+    /**
+     * Check if EExecShowCameraInUse is set
+     *
+     * @return ETrue if EExecShowCameraInUse is set EFalse otherwise
+     */
+    inline TBool IsExecShowCameraInUse() const;
+
+     /**
+     * Check if EIsZoomModeOn is set
+     *
+     * @return ETrue if EIsZoomModeOn is set EFalse otherwise
+     */
+    inline TBool IsZoomModeOn() const;
+
+    /**
+     * Sets or clears EIsZoomModeOn
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetZoomModeOn( TBool aSet );
+
+    /**
+    * Check if EIsWhiteBalanceModeOn is set
+    *
+    * @return ETrue if EIsWhiteBalanceModeOn is set EFalse otherwise
+    */
+    inline TBool IsWhiteBalanceModeOn() const;
+
+    /**
+     * Sets or clears EIsWhiteBalanceModeOn
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetWhiteBalanceModeOn( TBool aSet );
+
+    /**
+    * Check if EIsColorToneModeOn is set
+    *
+    * @return ETrue if EIsColorToneModeOn is set EFalse otherwise
+    */
+    inline TBool IsColorToneModeOn() const;
+
+    /**
+     * Sets or clears EIsColorToneModeOn
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetColorToneModeOn( TBool aSet );
+
+    /**
+    * Check if EBrightnessModeOn is set
+    *
+    * @return ETrue if EBrightnessModeOn is set EFalse otherwise
+    */
+    inline TBool IsBrightnessModeOn() const;
+
+    /**
+     * Sets or clears EBrightnessModeOn
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetBrightnessModeOn( TBool aSet );
+
+    /**
+     *  Check if EContrastModeOn is set
+     *
+     *  @return ETrue if EContrastModeOn is set EFalse otherwise
+     */
+    inline TBool IsContrastModeOn() const;
+
+    /**
+     * Sets or clears EContrastModeOn
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetContrastModeOn( TBool aSet );
+
+    /**
+     * Sets or clears EIsNumberEntryOpen
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetIsNumberEntryOpen( TBool aSet );
+
+    /**
+     * Check if EIsNumberEntryOpen is set
+     *
+     * @return ETrue if EIsNumberEntryOpen is set EFalse otherwise
+     */
+    inline TBool IsNumberEntryOpen() const;
+
+    /**
+     * Sets or clears EIsToolbarAvailable
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetIsToolbarAvailable( TBool aSet );
+
+    /**
+     * Check if IsToolbarAvailable is set
+     *
+     * @return ETrue if IsToolbarAvailable is set EFalse otherwise
+     */
+    inline TBool IsToolbarAvailable() const;
+
+    /**
+     * Sets or clears EIsWaitingCall
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetWaitingCall( TBool aSet );
+
+	/**
+     * Check if there is waiting video/voice call.
+     *
+     * @return ETrue if waiting call is ongoing, EFalse otherwise
+     */
+    inline TBool IsWaitingCall() const;
+
+     /**
+     * Sets or clears EIsSelectingShare
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+     inline void SetSelectingShare( TBool aSet );
+
+	/**
+     * Check if user is selecting file to be shared.
+     *
+     * @return ETrue if user is selecting file, EFalse otherwise
+     */
+    inline TBool IsSelectingShare() const;
+
+     /**
+     * Sets or clears EIsDialerOpen
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetIsDialerOpen( TBool aSet );
+
+	/**
+     * Check if video DTMF dialer is open.
+     *
+     * @return ETrue if dialer is open, EFalse otherwise
+     */
+    inline TBool IsDialerOpen() const;
+
+    /**
+     * Sets or clears EIsFixedToolbarVisible
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetIsFixedToolbarVisible( TBool aSet );
+
+	/**
+     * Check if fixed toolbar is visible.
+     *
+     * @return ETrue iftoolbar is visible, EFalse otherwise
+     */
+    inline TBool IsFixedToolbarVisible() const;
+
+    /**
+     * Sets or clears EIsDialerActivating
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetIsDialerActivating( TBool aSet );
+
+	/**
+     * Check if dialer is being activated
+     *
+     * @return ETrue if dialer is being activated, EFalse otherwise
+     */
+    inline TBool IsDialerActivating() const;
+
+    /**
+     * Adjusts command activating reference count
+     *
+     * @param aSet ETrue if setting will be increased, EFalse if
+     * decreased.
+     */
+    void SetIsCommandActivating( TBool aSet );
+
+	/**
+     * Check if command activating ref.count is greater than zero
+     *
+     * @return ETrue if any command is being activated, EFalse otherwise
+     */
+    inline TBool IsCommandActivating() const;
+
+    /**
+     *  Check if EIsVolumeModeOn is set
+     *
+     *  @return ETrue if EIsVolumeModeOn is set EFalse otherwise
+     */
+    inline TBool IsVolumeModeOn() const;
+
+    /**
+     * Sets or clears EIsVolumeModeOn
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetVolumeModeOn( TBool aSet );
+
+    /**
+     *  Check if EIsVideoQualityModeOn is set
+     *
+     *  @return ETrue if EIsVideoQualityModeOn is set EFalse otherwise
+     */
+    inline TBool IsVideoQualityModeOn() const;
+
+    /**
+     * Sets or clears EIsVideoQualityModeOn
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+     
+    inline void SetVideoQualityModeOn( TBool aSet );    
+    /**
+     * Sets or clears EIsFloatingToolbarVisible
+     *
+     * @param aSet ETrue if setting will be set, EFalse otherwise.
+     */
+    inline void SetIsFloatingToolbarVisible( TBool aSet );
+
+    /**
+     * Check if floating toolbar is visible.
+     *
+     * @return ETrue iftoolbar is visible, EFalse otherwise
+     */
+    inline TBool IsFloatingToolbarVisible() const;
+
+    /**
+    * Returns application's execution state.
+    * @return Application's current execution state.
+    */
+    TVtUiExecState ExecState() const;
+
+private: // methods to be accessed only by certain classes (see friends)
+
+    /**
+    * Sets application's execution state.
+    * @param aState Application's new execution state.
+    */
+    void SetExecState( const TVtUiExecState aState );
+
+private:
+
+    // Enumeration for ui state flags.
+    enum TFlags
+        {
+        /** Set if CLI is received */
+        EIsCLIReceived = ( 1<<0 ),
+
+        /** Set if layout change is needed */
+        EIsLayoutChangeNeeded = ( 1<<1 ),
+
+        /** Set if blank control has been added to control stack */
+        EIsBlankControlAdded = ( 1<<2 ),
+
+        /** Set if launch ok in options menu */
+        EIsLaunchOkOptionsMenu = ( 1<<3 ),
+
+        /** Set if device lock is on */
+        EIsDeviceLockOn = ( 1<<4 ),
+
+        /** Set if details have been received */
+        EDetailsReceived = ( 1<<5 ),
+
+        /** Set if waiting for first frame */
+        EWaitingForFirstFrame = ( 1<<6 ),
+
+        /** Set if SQCIF is being used */
+        EUseSQCif = ( 1 << 7 ),
+
+        /** Set if images was in context pane before freeze, unset if not */
+        EViewFindersInitialPlaceContextPane = ( 1<<8 ),
+
+        /** Set if viewfinder has to be moved to mainpane, when imageshare is
+            ready */
+        EViewFinderToMainPane = ( 1<<9 ),
+
+        /** Set if capture mode is on, unset if off */
+        EIsCaptureModeOn = ( 1<<10 ),
+
+        /** Set if application on foreground */
+        EIsThisApplicationForeground = ( 1<<11 ),
+
+        /** Set if blind setting should be temporarily disabled.
+            This is used in preventing blind bitmap from flashing
+            while operations involving multiple engine commands/events
+            take place (e.g. 'Swap image places' and layout switch). */
+        EIsDisableBlindSetting = ( 1<<12 ),
+
+        /** Set if camera in use note should be shown. */
+        EExecShowCameraInUse = ( 1<<13 ),
+
+        /** Set if zooming slider indicators is shown in navi pane.
+            Toolbar also dims other toolbar controls except zoom
+            mode control.*/
+        EIsZoomModeOn = ( 1<<14 ),
+
+        /** Set if contrast mode is on, unset if off */
+        EIsContrastModeOn = ( 1<<15 ),
+
+        /** Set if brightness mode is on, unset if off */
+        EIsBrightnessModeOn = ( 1<<16 ),
+
+        /** Set if number entry is open in UI (do not use this flag in new code)
+         */
+        EIsNumberEntryOpen = ( 1<<17 ),
+
+        /** Set if toolbar is available in UI */
+        EIsToolbarAvailable = ( 1<<18 ),
+
+		/** Set if waiting call exists */
+        EIsWaitingCall = ( 1<<19 ),
+
+        /** Set if initializing share */
+        EIsSelectingShare = ( 1<<20 ),
+
+        /** Set if initializing share */
+        EIsDialerOpen = ( 1<<21 ),
+
+        /** Set if white balance mode is on, unset if off */
+        EIsWhiteBalanceModeOn = ( 1<<22 ),
+
+        /** Set if color tone mode is on, unset if off */
+        EIsColorToneModeOn = ( 1 << 23 ),
+
+        /** Set if fixed toolar is visible, unset if not */
+        EIsFixedToolbarVisible = ( 1 << 24 ),
+
+        /** Set if dialer is being activated, unset if not */
+        EIsDialerActivating = ( 1 << 25 ),
+
+        /** Set if volume mode is on, unset if off */
+        EIsVolumeModeOn = ( 1 << 26 ),
+
+        /** Set if floating toolar is visible, unset if not */
+        EIsFloatingToolbarVisible = ( 1 << 27 ),
+        
+        /** Set if video quality mode is on, unset if not */
+        EIsVideoQualityModeOn = ( 1 << 28 )
+        };
+
+    // Engine media state
+    TVtUiMediaState iMediaState;
+
+    // Engine audio state
+    TVtUiAudioState iAudioState;
+
+    // Refrence to engine
+    CVtEngModel& iModel;
+
+    // Refrence to camera prefrences
+    MVtEngCameraPreferences* iCameraPref;
+
+    // Application execution state
+    TVtUiExecState iExecState;
+    
+    // Reference count of command activating. Enables command to be set
+    // active several times and action to take only when count is reset
+    // back to zer0.
+    TUint iCommandActivatingRefCount;
+
+private: // friends
+
+    friend class TVtUiAppStateBase;
+
+    };
+
+#include "tvtuistates.inl"
+
+#endif // T_VTUISTATES_H