phoneapp/phoneuivoipextension/inc/cphonevcchandler.h
changeset 37 ba76fc04e6c2
child 51 f39ed5e045e0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuivoipextension/inc/cphonevcchandler.h	Fri Jun 04 10:19:18 2010 +0100
@@ -0,0 +1,166 @@
+/*
+* Copyright (c) 2008-2009 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:  Voice call continuity (VCC)-specific class.
+*
+*/
+
+#ifndef C_CPHONEVCCHANDLER_H
+#define C_CPHONEVCCHANDLER_H
+
+// INCLUDES
+#include <telmenuextension.h>
+#include <vccuipspropertylistener.h>
+
+// FORWARD DECLARATIONS
+class MPhoneStateMachine;
+class MPhoneViewCommandHandle;
+class CPhoneTimer;
+class CEikMenuPane;
+
+// CLASS DECLARATION
+/**
+*  VoIP vcc-specific class
+*/
+NONSHARABLE_CLASS( CPhoneVccHandler ): public CBase, 
+        public MVccPsPropertyListenerObserver
+    {
+    public:      
+
+        /**
+        * Destructor.
+        */
+        virtual ~CPhoneVccHandler();
+
+        /**
+        * Creates the VCC-specific VoIP class
+        * @param aStateMachine: a container of state objects
+        * @param aViewCommandHandle: handle to the PhoneUIView
+        * @return an instance of class CPhoneVccHandler
+        */
+        static CPhoneVccHandler* NewL( 
+            MPhoneStateMachine& aStateMachine,
+            MPhoneViewCommandHandle& aViewCommandHandle );
+      
+        /**
+        * StartManualHandover
+        * @param aCommand a command parameter
+        */
+        void StartManualHandoverL( TInt aCommand );
+        
+        /**
+        * Adds Manual Handover menu item to menu.
+        * @param aArray Active call array.
+        * @param aResourceId Menu bar resource identifier.
+        * @param aMenuPane Menu pane.
+        */
+        void AddHandoverMenuItemL( 
+            RArray<CTelMenuExtension::TCallInfo>& aArray, 
+            TInt aResourceId,
+            CEikMenuPane& aMenuPane );
+         
+    protected:
+
+        CPhoneVccHandler( 
+            MPhoneStateMachine& aStateMachine,
+            MPhoneViewCommandHandle& aViewCommandHandle );
+        
+        void ConstructL();
+        
+    private:        
+     
+        /**
+        * StartHandoverNoteTimerL
+        */        
+        void StartHandoverNoteTimerL();
+       
+        /**
+        * CancelHandoverNoteTimer if running
+        */ 
+        void CancelHandoverNoteTimerL();
+        
+        /**
+        * Callback function for launching Handover wait note
+        * This is called when HO note timer timeout is
+        * reached
+        * @param aAny - not used
+        */
+        static TInt HandoverNoteTimerCallbackL( TAny* aAny );
+        
+        /**
+        * StartHandoverNoteTimerL
+        */ 
+        void RemoveHandoverNoteL();
+        
+        /**
+        * HandoverInProgressNote
+        * @param aCommand a command parameter
+        */
+        void HandoverInProgressNoteL( TInt aCommand );
+
+        // From MVccPsPropertyListenerObserver        
+        /**
+        *  Gets called when PS key is changed
+        * @param aKeyId 
+        * @param aValue 
+        **/
+        void VccPropertyChangedL( const TUint aKeyId,
+                                    const TInt aValue );
+        
+        /**
+        * returns notification tone mode (off=0 or on=1), or 0 in error situations
+        */            
+         TInt GetHoNotifToneModeL();
+     
+         /**
+         * GetVccServiceIdL
+         */             
+         TInt GetVccServiceIdL();
+         
+    private: // Data
+                
+        /** 
+         * Interface for setting and getting active state
+         */
+        MPhoneStateMachine& iStateMachine;
+        
+        /** 
+         * Reference to the Phone UI View command handle
+         */
+        MPhoneViewCommandHandle& iViewCommandHandle;
+        
+        // Timer.
+        CPhoneTimer* iHandoverNoteTimer;
+        
+        // Handover is ready
+        TBool iVccHoReady;
+        
+        // Handover not available
+        TBool iVccUnavailable;
+        
+        // Handover allowed WLAN to GSM
+        TBool iVccHoAllowedToGsm;
+        
+        // Handover allowed GSM to WLAN
+        TBool iVccHoAllowedToWlan;
+        
+        // Handover not allowed if multicall
+        TBool iNoHoIfMultiCall;
+        
+        // Listens for the hand-over commands
+        CVccUiPsPropertyListener* iPropListener; 
+        };
+
+#endif // C_CPHONEVCCHANDLER_H
+
+// End of File