diff -r 890b5dd735f8 -r f15ac8e65a02 vtuis/videotelui/inc/tvtuiappstatebase.h --- a/vtuis/videotelui/inc/tvtuiappstatebase.h Thu Aug 19 09:57:36 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,256 +0,0 @@ -/* -* 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: Base class for application states. -* -*/ - - -#ifndef T_VTUIAPPSTATEBASE_H -#define T_VTUIAPPSTATEBASE_H - -#include -#include -#include "mvtuistatecontext.h" -#include "mvtuishutterobserver.h" -#include "tvtuistates.h" - -/** -* Base class for application states related to application startup, normal -* operation and shutdown. AppUi delegates decision making by forwarding -* events/commands it receives to current state. -* Not all event handlers declared by the base class are applicable in -* all concrete states. All methods returning TEventResponse imply that it may -* consume the event completely and caller should not process it further. -* -* It should be kept in mind that as new functionality is added to application, -* state classes may need changes if e.g. handling of specific event should be -* allowed in appUi. By default event handler in specific state may consume all -* events. Note that in this context e.g. HandleCommandL is considered as an -* event handler. -* -* @since S60 v3.2 -*/ -class TVtUiAppStateBase : public MVtUiShutterObserver - { -public: // new functions - - /** - * Return value from state's event handlers. - */ - enum TEventResponse - { - /** Event was handled by a state and should - * not be further processed by caller. - */ - EEventHandled, - /** Event can be handled by caller. */ - EEventNotHandled - }; - - /** - * Performs state dependent actions when phase 1 of - * startup is completed. - */ - virtual void AppUiStartupPhase1DoneL(); - - /** - * Performs state dependent actions when startup fails. - */ - virtual void AppUiStartupFailedL(); - - /** - * Performs state dependent actions when phase 2 of - * startup is completed. - */ - virtual void AppUiStartupPhase2DoneL(); - - /** - * Handles completion of shutdown. - */ - virtual void ShutdownDoneL(); - - /** - * Handles completion of an VT engine command. - * @param aCommand completed command - * @param aError error - * @return event response, is caller allowed to handle event - */ - virtual TEventResponse HandleVTCommandPerformedL( - const TVtEngCommandId aCommand, - const TInt aError ); - - /** - * Handles event from the engine. - * @param aEvent - * @return event response, is caller allowed to handle event - */ - virtual TEventResponse HandleVtEventL( const TInt aEvent ); - - /** - * Handles command from the user (or application framework). - * @param aCommand - * @return event response, is caller allowed to handle event - */ - virtual TEventResponse HandleCommandL( const TInt aCommand ); - - /** - * Performs state dependent actions for foreground change event. - * @param aIsForeground foreground status passed from UI framework - * @return ETrue if application should behave as in foreground - */ - virtual TBool HandleForegroundChangedL( const TBool aIsForeground ); - - /** - * Performs state dependent previous actions for foreground change event. - * @param aIsForeground foreground status passed from UI framework - * @return ETrue if application should behave as in foreground - */ - virtual TBool PreHandleForegroundChangedL( const TBool aIsForeground ); - /** - * Performs state dependent actions for layout change. - */ - virtual void HandleLayoutChangedL(); - - /** - * Sends DTMF tone if allowed by current state. - * @param aTone DTMF tone to send - */ - virtual void StartDtmfTone( const TChar& aTone ); - - /** - * Stops DTMF tone if allowed by current state. - */ - virtual void StopDtmfTone(); - - /** - * Sets initial application state. - * @param aCtx state context providing services to states - * @param aUiStates ui states - */ - static void SetInitialStateL( - MVtUiStateContext& aCtx, - TVtUiStates& aUiStates); - - /** - * Get whether the shutdown requested - * @return ETrue if shutdown requested - */ - static TBool ShutdownRequested(); - -protected: // for concrete state classes - - /** - * Destructor, for cleanup. - */ - virtual ~TVtUiAppStateBase(); - - /** - * Performs entry action for a state. - */ - virtual void OpenL(); - - /** - * Performs exit action for a state and deletes that state. - */ - virtual void Close(); - - /** - * Sets current state. - */ - void ChangeStateL( TVtUiAppStateBase& aNewState ); - - /** - * Sets transition to resetting state as cleanup item. - */ - void CleanupResetPushL(); - - /** - * Starts shutdown when leave occurred. - */ - static void TransitionToReset( TAny* aAny ); - - - /** - * Ends the call if necessary and starts shutdown. - * @return ETrue if shutdown started. - */ - TBool CheckEndActiveCallL(); - - /** - * Returns engine session state. - * @param aUpdate is state forced to update - * @return session state - */ - MVtEngSessionInfo::TSessionState SessionState( - const TBool aUpdate ) const; - - /** - * Sets forced lights state in the system. - */ - void SetLightsState( const TBool aOn ); - - /** - * Delegates engine command execution to the state context. - */ - template < typename T > - inline void ExecuteEngineCommand( - TInt aCommand, T& aParam ); - - /** - * Sets execution state. - */ - void SetExecState( const TVtUiStates::TVtUiExecState aState ); - -protected: // constructor - - // c++ constructor - TVtUiAppStateBase( MVtUiStateContext& aCtx, TVtUiStates& aUiStates ); - -private: // from MVtUiShutterObserver - - /** - * Handles 'shutdown ready' event. - */ - virtual void HandleShutdownReady(); - -private: // new functions - - /** - * Updates applications lock state and sends to background if - * the device is locked. - */ - void HandleDeviceLockEventL( const TBool aDeviceIsLocked ); - -protected: // data members - - // Context providing services to states - MVtUiStateContext& iCtx; - - // Various application specific state information - TVtUiStates& iUiStates; - - /** Prevents sending end call command to call handling if ETrue. - * It is not allowed when call clearing is network originated. - */ - - /** - * shutdown request received - */ - static TBool iShutdownRequested; - - }; - -#include "tvtuiappstatebase.inl" - -#endif // T_VTUIAPPSTATEBASE_H