phoneapp/phoneuicontrol/inc/cphonestateidle.h
changeset 37 ba76fc04e6c2
child 45 6b911d05207e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuicontrol/inc/cphonestateidle.h	Fri Jun 04 10:19:18 2010 +0100
@@ -0,0 +1,296 @@
+/*
+* 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: 
+*     Idle state implementation.
+*
+*/
+
+
+#ifndef CPHONESTATEIDLE
+#define CPHONESTATEIDLE
+
+// INCLUDES
+#include "cphonestate.h"
+#include "tphonecmdparamspeeddial.h"
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+/**
+*  Idle state
+*/
+class CPhoneStateIdle : public CPhoneState
+    {
+    public:  
+        
+    /** Dial initiation method. */
+    enum TDialInitiationMethod
+        {
+        /** Dial initiation method unknown. */
+        EDialMethodUnknown          = 0,
+        /** Dial is initiated by explicit call type selection from menu.*/
+        EDialMethodMenuSelection    = 1,
+        /** Dial is initiated by send command. */
+        EDialMethodSendCommand      = 2,
+        /** Dial is initiated by one key dialing. */
+        EDialMethodOneKeyDialing    = 3
+
+        };
+    
+        /**
+        * Destructor.
+        */
+        IMPORT_C virtual ~CPhoneStateIdle();
+
+        /**
+        * Creates the Idle state class
+        * @param aStateMachine: a container of state objects
+        * @param aViewCommandHandle: handle to the PhoneUIView
+        * @return an instance of class CPhoneStateIdle
+        */
+        static CPhoneStateIdle* NewL( 
+            MPhoneStateMachine* aStateMachine, 
+            MPhoneViewCommandHandle* aViewCommandHandle,
+            MPhoneCustomization* aPhoneCustomization );
+
+        IMPORT_C virtual void HandleKeyEventL(
+            const TKeyEvent& aKeyEvent,
+            TEventCode aEventCode );
+
+        IMPORT_C void HandleKeyMessageL(
+            TPhoneKeyEventMessages aMessage,
+            TKeyCode aCode );
+
+        /**
+        * A message handling function for Phone Engine messages
+        * @param aMessage Message from Phone Engine
+        * @param aCallId Call id the message concerns
+        */
+        IMPORT_C virtual void HandlePhoneEngineMessageL(
+            const TInt aMessage, 
+            TInt aCallId );       
+            
+        IMPORT_C virtual TBool HandleCommandL( TInt aCommand );
+        
+        IMPORT_C virtual TBool ProcessCommandL( TInt aCommand );
+
+        /**
+        * Indicates when the Idle app is in the foreground.
+        */
+        IMPORT_C virtual void HandleIdleForegroundEventL();
+
+        /**
+        * Indicates when the Phone app is in the foreground.
+        */
+        IMPORT_C virtual void HandlePhoneForegroundEventL();
+
+        /**
+        * Indicates when the Phone app has lost focus.
+        */
+        IMPORT_C virtual void HandlePhoneFocusLostEventL();
+
+    protected:
+
+        /** 
+        * Handle state-specific behaviour when number entry is cleared
+        */ 
+        IMPORT_C virtual void HandleNumberEntryClearedL();
+
+        IMPORT_C virtual TBool HandleRemConCommandL( 
+            TRemConCoreApiOperationId aOperationId, 
+            TRemConCoreApiButtonAction aButtonAct );
+
+        /**
+        * Display Incoming Call
+        * @param aCallid call id
+        */
+        IMPORT_C void DisplayIncomingCallL( TInt aCallId );
+
+        /**
+        * Display Call Setup
+        * @param aCallid call id
+        */
+        IMPORT_C void DisplayCallSetupL( TInt aCallId );
+
+        /**
+        * By default EPOC constructor is private.
+        */
+        IMPORT_C CPhoneStateIdle( 
+            MPhoneStateMachine* aStateMachine, 
+            MPhoneViewCommandHandle* aViewCommandHandle,
+            MPhoneCustomization* aPhoneCustomization );
+        
+        /**
+        * ConstructL()
+        */
+        IMPORT_C virtual void ConstructL();
+
+        /**
+        * Dial the specified number. 
+        * @param    aNumber            The number to call.
+        * @param    aNumberType        A number type.
+        * @param    aDialMethod        A dial initiation method.
+        */
+        IMPORT_C virtual void DialL( const TDesC& aNumber, 
+            TPhoneNumberType aNumberType, TDialInitiationMethod aDialMethod );
+        
+        /**
+        * Dial CS multimedia call
+        * @param None
+        */
+        IMPORT_C void DialMultimediaCallL();
+
+        /**
+        * Dial CS voice call
+        * @param None
+        */
+        IMPORT_C void DialVoiceCallL();
+
+        /**
+        * Handles situation when hash key has been kept down long
+        * (long keypress) and the hash character is the only character
+        * in number entry.
+        */
+        IMPORT_C virtual void OnlyHashInNumberEntryL();
+
+        /**
+        * A message handling function for EPEMessageDialling
+        * @param aCallId: the call id of the call
+        */
+        IMPORT_C virtual void HandleDialingL( TInt aCallId );
+
+        /**
+        * This is called when Speed Dial dialog is cancelled or user didn't give
+        * a valid number.
+        * @param aDigit: entered digit
+        */
+        IMPORT_C void SpeedDialCanceledL( const TUint& aDigit );
+        
+        /**
+        * Handle long key press of a number.
+        */
+        IMPORT_C void HandleNumberLongKeyPressL();
+        
+        /**
+        * Tests whether given number is speed dial number.
+        * @param    aNumber    A number to test.
+        * @return   ETrue if given number is speed dial number.
+        */
+        IMPORT_C TBool IsSpeedDialNumber( const TDesC& aNumber ) const;
+        
+        /**
+        * Handles speed dialing.
+        * @param aDigit             Entered digit.
+        * @param aDialMethod        Dial initiation method.
+        */
+        IMPORT_C void SpeedDialL( const TUint& aDigit, 
+            TDialInitiationMethod aDialMethod );
+
+        /**
+        * Handles send command.
+        */
+        IMPORT_C virtual void HandleSendCommandL();
+        
+    private: // New functions
+
+        /**
+        * A message handling function for EPEMessageIncoming
+        * @param aCallId: the call id of the call
+        */
+        void HandleIncomingL( TInt aCallId );
+
+        /**
+        * A message handling function for EPEMessageHandleConnected
+        * @param aCallId: the call id of the call
+        */
+        void HandleConnectedL( TInt aCallId );
+        
+        /**
+        * A message handling function for EPEMessageIdle
+        * @param aCallId: the call id of the call
+        */
+        void HandleIdleL( TInt aCallId );
+
+        /**
+        * Launches application.
+        */
+        void LaunchApplicationL();
+
+        /**
+        * Send Exit command
+        */
+        void SendExitCommandL();
+
+        /**
+        * Dials video call 
+        */
+        void DialVideoCallL();
+        
+        /**
+        * Handles end key press that was catched in HandleKeyMessageL
+        * @param aMessage - key event message
+        */
+        void HandleEndKeyPressL( TPhoneKeyEventMessages aMessage );
+        
+        /**
+        * Changes manner mode.
+        * Switches from any profile to the Silent profile or from the
+        * Silent profile to the General profile.
+        */
+        void ChangeMannerModeL();
+        
+        /**
+        * Checks if MC/PCSuite restore ongoing.
+        * @param none.
+        * @return ETrue if ongoing.
+        */
+        TBool RestoreOngoing();
+        
+        /**
+        * Handles back command. 
+        */
+        void HandleBackCommandL();
+
+        /**
+         * Checks for application launching configurations from 
+         * central repository.
+         * @param aCode key code.
+         * @return ETrue if configuration found.
+         */        
+         TBool CheckAppLaunchingL( const TKeyCode aCode );
+
+         /**
+          * Returns phone number for specified speed dial location.
+          * @param  aDigit Speed dial digit.
+          * @param  aDigit On return contains speed dial parameters.
+          * @return Phone number
+          */   
+         HBufC* NumberForSpeedDialLocationL( const TUint& aDigit,
+             TPhoneCmdParamSpeedDial& aSpeedDialParam ) const;
+
+         void HandleVoiceCallCommandL( TBool aSendKey );
+         
+    private:
+    
+        // Owned profile engine
+        MProfileEngine* iEngine;
+        // indicates that incomming call is arrived.
+        TBool iIncommingCall;
+  
+    };
+
+#endif // CPHONESTATEIDLE
+
+// End of File