phoneapp/phoneuistates/inc/cphoneemergency.h
changeset 37 ba76fc04e6c2
child 50 377c906a8701
child 51 f39ed5e045e0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuistates/inc/cphoneemergency.h	Fri Jun 04 10:19:18 2010 +0100
@@ -0,0 +1,216 @@
+/*
+* Copyright (c) 2005 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: 
+*     GSM-specific emergency state implementation.
+*
+*/
+
+
+#ifndef CPHONEEMERGENCY
+#define CPHONEEMERGENCY
+
+// INCLUDES
+#include "cphonegsmincall.h"
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+/**
+*  GSM-specific emergency single call state
+*/
+class CPhoneEmergency : public CPhoneGsmInCall
+    {
+    public:  
+
+        /**
+        * Destructor.
+        */
+        virtual ~CPhoneEmergency();
+        
+        /**
+        * Creates the Emergency state class
+        * @param aStateMachine: a state machine
+        * @param aViewCommandHandle: handle to the PhoneUIView
+        * @return an instance of class CPhoneEmergency
+        */
+        static CPhoneEmergency* NewL( 
+            MPhoneStateMachine* aStateMachine, 
+            MPhoneViewCommandHandle* aViewCommandHandle,
+            MPhoneCustomization* aPhoneCustomization );
+
+        /**
+        * A message handling function for Phone Engine messages
+        * @param aMessage Message from Phone Engine
+        * @param aCallId Call id the message concerns
+        */
+        void HandlePhoneEngineMessageL(
+            const TInt aMessage, 
+            TInt aCallId );    
+                        
+        /** 
+        * Set startup status for state transition
+        * @param aStartupInterrupted status
+        */ 
+        void SetStartupInterrupted( const TBool aStartupInterrupted );
+        
+    protected:
+
+        /**
+        * See CPhoneState
+        */
+        void HandleIdleL( TInt aCallId );
+
+        /**
+        * See CPhoneState
+        */
+        void HandleConnectedL( TInt aCallId );
+        
+        /**
+        * See CPhoneState
+        */
+        void HandleConnectingL( TInt aCallId );
+        
+        /**
+        * See CPhoneState
+        */
+        void HandleDialingL( TInt aCallId );
+
+        /** 
+        * Handle state-specific behaviour when number entry is cleared
+        */ 
+        virtual void HandleNumberEntryClearedL();
+        
+        /** 
+        * Handle state-specific behaviour handleErrorL
+        */ 
+        void HandleErrorL( const TPEErrorInfo& aErrorInfo );
+
+        /**
+        * Open menu bar
+        */
+        void OpenMenuBarL();
+        
+        virtual void UpdateInCallCbaL();
+        
+        TBool HandleCommandL( TInt aCommand );
+        
+        void DisconnectEmergencyCallL();
+        
+        void HandleKeyMessageL( 
+            TPhoneKeyEventMessages aMessage,
+            TKeyCode aCode );
+
+        /**
+        * By default EPOC constructor is private.
+        */
+        CPhoneEmergency( 
+            MPhoneStateMachine* aStateMachine, 
+            MPhoneViewCommandHandle* aViewCommandHandle,
+            MPhoneCustomization* aPhoneCustomization );
+            
+        void HandleKeyEventL( 
+            const TKeyEvent& aKeyEvent, 
+            TEventCode aEventCode );
+            
+        /**
+        * Sends key events to the phone engine
+        * @param aKeyEvent a key event
+        * @param aEventCode key event code
+        */
+        void SendKeyEventL(
+            const TKeyEvent& aKeyEvent,
+            TEventCode aEventCode );
+        
+        /**
+        * ConstructL()
+        */
+        virtual void ConstructL();
+        
+        /**
+        * Handle EPEMessageAudioOutputChanged
+        */
+        void HandleAudioOutputChangedL();
+        
+        /**
+        * Handle initializing cba's
+        */
+        void UpdateSetupCbaL();
+        
+        /**
+        * Passes create number entry command forward if not call setup
+        */
+        void HandleCreateNumberEntryL( 
+                const TKeyEvent& aKeyEvent,
+                TEventCode aEventCode );
+       
+        /**
+        * Handles commands from the Remote Control framework.
+        * @param aOperationId The operation ID of the command.
+        * @param aButtonAct The button action associated with the command.
+        * @return ETrue if the event was handled, EFalse otherwise.
+        */
+        IMPORT_C virtual TBool HandleRemConCommandL( 
+                    TRemConCoreApiOperationId aOperationId, 
+                    TRemConCoreApiButtonAction aButtonAct );
+        
+    private:
+        
+        /**
+        * Check whether UseEmergencyNoIhfCBA set should be used or not. 
+        * @param aAudioOutput current audio output type.
+        * @return ETrue if UseEmergencyNoIhfCBA should be used,
+        * EFalse otherwise.
+        */
+        TBool UseEmergencyNoIhfCBA( const TPEAudioOutput& aAudioOutput ) const;
+        
+        /**
+        * Check whether UseHandsetEmergencyCBA set should be used or not.
+        * @param aAudioOutput current audio output type.
+        * @return ETrue if UseHandsetEmergencyCBA should be used,
+        * EFalse otherwise.
+        */
+        TBool UseHandsetEmergencyCBA( const TPEAudioOutput& aAudioOutput ) const;
+        
+        /**
+        * Check whether the touch call handling is supported or not.
+        * @return ETrue if KFeatureIdTouchCallHandling is supported,
+        * EFalse otherwise.
+        */
+        TBool TouchCallHandlingSupported () const;
+         
+    private:
+        /**
+        * Is device lock on/off
+        */
+        TBool iDeviceLockOn;
+        
+        /**
+        * If true update emergency call wait note
+        */
+        TBool iCallSetup;
+
+        /**
+        * Status of startup
+        */
+        TBool iStartupInterrupted;
+        
+        /**
+        * If true show call summary ( termination ) note 
+        */
+        TBool iConnected;
+    };
+
+#endif // CPHONEEMERGENCY
+
+// End of File