phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerControl.h
branchRCL_3
changeset 20 987c9837762f
parent 19 7d48bed6ce0c
--- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerControl.h	Tue Aug 31 15:45:17 2010 +0300
+++ b/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerControl.h	Wed Sep 01 12:15:03 2010 +0100
@@ -20,12 +20,13 @@
 #define CPHONEHANDLERCONTROL_H
 
 //  INCLUDES
-#include "phonehandlerservice.h" 
-#include <RemConExtensionApi.h> 
-#include <RemConCallHandlingTargetObserver.h> 
+#include "PhoneHandlerService.h"
+#include <RemConExtensionApi.h>
+#include <RemConCallHandlingTargetObserver.h>
 #include <e32base.h>
-#include <phclttypes.h> 
+#include <PhCltTypes.h>	
 #include <e32property.h> 
+#include <ccpdefs.h>
 
 // CONSTANTS
 
@@ -42,6 +43,8 @@
 class CRemConCallHandlingTarget;
 class CPhoneHandlerResponse;
 class CPhoneHandlerCallState;
+class CPhoneHandlerCallArray;
+class MCall;
 
 /**
 * Receives call handling related key presses from accessories and executes 
@@ -51,15 +54,15 @@
 *  @since S60 3.1
 */
 NONSHARABLE_CLASS( CPhoneHandlerControl ) : public CBase,
-                                            public MRemConCallHandlingTargetObserver
-    {
+											public MRemConCallHandlingTargetObserver
+	{
     public:  // Constructors and destructor
     
         /**
         * Two-phased constructor.
         */
         static CPhoneHandlerControl* NewL( 
-            CRemConInterfaceSelector* aIfSelector = NULL );
+        	CRemConInterfaceSelector* aIfSelector = NULL );
 
         /**
         * Destructor.
@@ -68,7 +71,7 @@
 
     public: // New functions
     
-        /**
+    	/**
         * Returns phone number for dial or speed dial.
         * @since S60 3.1
         * @param void
@@ -107,36 +110,36 @@
         * @return TChar DTMF tone
         */
         const TChar& Tone() const;
-        
-        /**
+    	
+    	/**
         * Returns reference to API used to communicate with accessory who 
         * initiated key press.
         * @since S60 3.1
         * @param void
         * @return CRemConCallHandlingTarget& reference to API
-        */  
-        CRemConCallHandlingTarget& CommandInitiator() const;
-        
-        /**
+        */	
+		CRemConCallHandlingTarget& CommandInitiator() const;
+		
+		/**
         * Informs the latest call state.
-        * @since S60 3.1
-        * @param aState Call state from KTelephonyCallState P&S key
-        * @return void
+        * @since S60 9.2
+        * @param aCall Call from MCallInformationObserver
+          * @return void
         */
-        void NotifyCallState( const TInt aState );
+		void NotifyCallStateL( const MCall* aCall );
 
-        /**
+		/**
         * Get iSwitchCall flag, if this flag is ETrue, it means
         * "Send" key in remote target is pressed in multiparty call,
         * otherwise EFalse
         * @since S60 3.1
         * @return TBool
         */
-        TBool SwitchCall();
+		TBool SwitchCall();
 
-                    
+	    	        
     public: // Functions from base classes
-                
+    	        
     protected:  // New functions
         
     protected:  // Functions from base classes
@@ -152,79 +155,93 @@
         * By default Symbian 2nd phase constructor is private.
         */
         void ConstructL( CRemConInterfaceSelector* aIfSelector = NULL );
-                
-        /**
-        * From MRemConCallHandlingTargetObserver. Answer an incoming phone call.
-        */
-        virtual void AnswerCall();
+				
+		/**
+		* From MRemConCallHandlingTargetObserver. Answer an incoming phone call.
+		*/
+		virtual void AnswerCall();
 
-        /**
-        * From MRemConCallHandlingTargetObserver. End an incoming/ongoing 
-        * phone call.
-        */
-        virtual void EndCall();
-    
-        /**
-        * From MRemConCallHandlingTargetObserver. Answer an incoming phone call, 
-        * or end an ongoing call according to call status. 
-        */
-        virtual void AnswerEndCall();
-        
-        /**
-        * From MRemConCallHandlingTargetObserver. Make a voice call.
-        */
-        virtual void VoiceDial( const TBool aActivate );
-    
-        /**
-        * From MRemConCallHandlingTargetObserver. Redial last phone call.
-        */
-        virtual void LastNumberRedial();
-    
-        /**
-        * From MRemConCallHandlingTargetObserver. Dial a phone call.
+		/**
+		* From MRemConCallHandlingTargetObserver. End an incoming/ongoing 
+		* phone call.
+		*/
+		virtual void EndCall();
+	
+		/**
+		* From MRemConCallHandlingTargetObserver. Answer an incoming phone call, 
+		* or end an ongoing call according to call status. 
+		*/
+		virtual void AnswerEndCall();
+		
+		/**
+		* From MRemConCallHandlingTargetObserver. Make a voice call.
+		*/
+		virtual void VoiceDial( const TBool aActivate );
+	
+		/**
+		* From MRemConCallHandlingTargetObserver. Redial last phone call.
+		*/
+		virtual void LastNumberRedial();
+	
+		/**
+		* From MRemConCallHandlingTargetObserver. Dial a phone call.
+		*/
+		virtual void DialCall( const TDesC8& aTelNumber );
+	
+		/**
+		* From MRemConCallHandlingTargetObserver. Make multiparty call.
+		*/
+		virtual void MultipartyCalling( const TDesC8& aData );
+	
+		/**
+		* Generates DTMF signal.
+		*/
+		virtual void GenerateDTMF( const TChar aChar );
+	
+		/**
+		* From MRemConCallHandlingTargetObserver. Make a speed dial call.
+		*/
+		virtual void SpeedDial( const TInt aIndex );
+		
+		/**
+		* Starts processing service corresponding to key press.
+		*/
+		void StartProcessing( 
+			const TRemConExtCallHandlingApiOperationId aOperation );
+		
+		/**
+		* Creates service.
+		*/
+		MPhoneHandlerService* CreateServiceL( 
+			const TRemConExtCallHandlingApiOperationId aOperation );
+		
+		/**
+		* Initializes speed dial.
+		*/
+		void InitializeSpeedDialL();
+		
+		/**
+		* Returns call status.
+		*/
+		void CallStatusL( RPhone::TLineInfo& aLineInfo );
+		
+		/**
+        * Returns autolock status
         */
-        virtual void DialCall( const TDesC8& aTelNumber );
-    
-        /**
-        * From MRemConCallHandlingTargetObserver. Make multiparty call.
-        */
-        virtual void MultipartyCalling( const TDesC8& aData );
-    
-        /**
-        * Generates DTMF signal.
-        */
-        virtual void GenerateDTMF( const TChar aChar );
-    
-        /**
-        * From MRemConCallHandlingTargetObserver. Make a speed dial call.
+		TBool IsAutoLockOn() const;
+		
+		/**
+        * Returns BT accessory command status
         */
-        virtual void SpeedDial( const TInt aIndex );
-        
-        /**
-        * Starts processing service corresponding to key press.
-        */
-        void StartProcessing( 
-            const TRemConExtCallHandlingApiOperationId aOperation );
-        
-        /**
-        * Creates service.
-        */
-        MPhoneHandlerService* CreateServiceL( 
-            const TRemConExtCallHandlingApiOperationId aOperation );
-        
-        /**
-        * Returns call status.
-        */
-        void CallStatusL( RPhone::TLineInfo& aLineInfo );
-        
-                
+		TBool IsBTAccessoryCmd() const;
+		
     private:    // Data
         
         // Provides e.g. service to listen accessory key presses.
-        CRemConInterfaceSelector* iInterfaceSelector;   // owned
+        CRemConInterfaceSelector* iInterfaceSelector;	// owned
         
         //  API notifying PhoneCmdHandler about call handling key presses.
-        CRemConCallHandlingTarget* iTarget; // owned
+        CRemConCallHandlingTarget* iTarget;	// owned
                 
         // Phone number for dial call/speed dial.
         TPhCltTelephoneNumber iTelNumber;
@@ -253,16 +270,13 @@
         // Previous call state
         TInt iPrevState;
         
-        // Number of active calls
-        // Used to determine whether there's a multicall case when call state
-        TInt iActiveCalls;
-        
         // switch phonecall by press "Send" key
         TBool iSwitchCall;
         
         // Listens to phone call state changes.
         CPhoneHandlerCallState* iCallStateObserver;
         
+        CPhoneHandlerCallArray* iCallArray;
                     
     public:     // Friend classes