convergedcallengine/csplugin/inc/cspcalladdedhandler.h
changeset 0 ff3b6d0fd310
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/convergedcallengine/csplugin/inc/cspcalladdedhandler.h	Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,166 @@
+/*
+* Copyright (c) 2007 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:  Declarations for class CSPCallAddedHandler
+*
+*/
+
+
+#ifndef CSPCALLADDEDHANDLER_H
+#define CSPCALLADDEDHANDLER_H
+
+#include <e32base.h>
+#include <etelmm.h>
+#include "rcsplinecontainer.h"
+#include "mcsplinestatusobserver.h" // For MCSPLineStatusObserver
+
+class CSPCall;
+class CSPCallArray;
+class CSProvider;
+class MCCPCSObserver;
+class RCSPLineContainer;
+class CSPEtelLineStatusMonitor; 
+class CSPEtelCallWaitingRequester;
+class MCSPCommonInfo;
+class CSPAudioHandler;
+
+/**
+* Handles call adding from calls not done by the plugin.
+*
+*  @lib csplugin.dll
+*/
+NONSHARABLE_CLASS(CSPCallAddedHandler): public CBase,                            
+                           public MCSPLineStatusObserver
+    {
+    
+    public: //Constructors and descructor    
+    
+        /**
+        * Two-phased constructing for the monitor.
+        *
+        * @param aObserver the observer for getting notification
+        * @param aLine the line to monitor
+        * @param aLineId line identifier
+        */
+        static CSPCallAddedHandler* NewL( 
+                const MCCPCSObserver& aObserver,
+                RCSPLineContainer& aLineContainer,
+                CSPCallArray& aCallArray,
+                MCSPCommonInfo& aCommonInfo,
+                CSPAudioHandler& aAudioHandler );
+
+        /**
+        * C++ default destructor
+        */
+        virtual ~CSPCallAddedHandler( );
+
+
+// from base class MCSPLineStatusMonitor        
+        
+        /**
+        * Handles line status change notifications 
+        * @param aLine the line to monitor
+        * @param aLineId line identifier
+        * @param aLineStatus
+        */        
+        void LineStatusChanged( RMobileLine& aLine,
+                RCSPLineContainer::TCSPLineId aLineId, 
+                RMobileCall::TMobileCallStatus& aLineStatus );
+
+    protected: // From CActive
+        
+        /**
+        * From CActive
+        * RunL
+        */
+        void RunL();
+        
+        /**
+        * From CActive
+        * Catches errors if RunL leaves
+        * @param aError error code
+        * @return error code
+        */
+        TInt RunError( TInt aError );
+        
+        /**
+        * From CActive
+        * Cancels the monitor
+        */
+        void DoCancel();
+
+    private:
+        
+        /**
+        * C++ default constructor
+        * @param aObserver the observer for status change (incoming call)
+        * @param aLine the line associated with the call
+        * @param aLineId line identifier
+        */
+        CSPCallAddedHandler( const MCCPCSObserver& aObserver, 
+                             RCSPLineContainer& aLineContainer,
+                             CSPCallArray& aCallArray,
+                             MCSPCommonInfo& aCommonInfo,
+                             CSPAudioHandler& aAudioHandler );
+                                          
+        /**
+        * Constructs the monitor in the second phase.
+        */
+        void ConstructL();
+        
+        /**         
+        * Handles call creation 
+        * @param aLine the line to monitor
+        * @param aCallName the call name 
+        * @param aLineId line identifier
+        */
+        void CallAdded( RMobileLine& aLine, 
+                        TName aCallName,
+                        RCSPLineContainer::TCSPLineId aLineId );
+
+    private: // data
+        
+        /**
+        * Line container. 
+        */        
+        RCSPLineContainer& iLineContainer;
+        
+        /**
+        * Notifications observer.
+        */
+        const MCCPCSObserver& iObserver;
+        
+        /**
+        * Line status monitors.
+        */
+        CSPEtelLineStatusMonitor* iVoiceLineMonitor;        
+        CSPEtelLineStatusMonitor* iDataLineMonitor;
+        CSPEtelLineStatusMonitor* iAuxLineMonitor;
+        
+        /**
+        * Array of calls.
+        */
+        CSPCallArray& iCallArray;
+        
+        /**
+        * Common info handle.
+        */
+        MCSPCommonInfo& iCommonInfo;
+        
+        /**
+        * Audio Handler reference.
+        */
+        CSPAudioHandler& iAudioHandler;
+    };
+
+#endif // CSPCALLADDEDHANDLER_H