phoneengine/callhandling/inc/cpeconferencecall.h
changeset 37 ba76fc04e6c2
child 51 f39ed5e045e0
child 76 cfea66083b62
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/callhandling/inc/cpeconferencecall.h	Fri Jun 04 10:19:18 2010 +0100
@@ -0,0 +1,232 @@
+/*
+* Copyright (c) 2002-2008 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:  This file contains the header file of the CPEConferenceCallData object
+*
+*/
+
+
+#ifndef CPECONFERENCECALLDATA_H
+#define CPECONFERENCECALLDATA_H
+
+//INCLUDES
+#include <pevirtualengine.h>
+#include <ccce.h>
+#include <mcceconferencecall.h>
+#include <mcceconferencecallobserver.h>
+#include "cpecall.h"
+
+// CONSTANTS
+// None.
+
+// MACROS
+// None.
+
+// DATA TYPES
+// None.
+
+// FUNCTION PROTOTYPES
+// None.
+
+// FORWARD DECLARATIONS
+class MPEMessageSender;
+
+// CLASS DECLARATION
+
+/**
+* This class handles Conference Calls. It forwards events and messages to CPECallHandling class
+* and uses Converged Call Engine interface to pass requests and receive event indications.
+*
+* @lib CallHandling.lib
+* @since Series60_4.0
+*/
+class CPEConferenceCall 
+        : public CPECall, 
+          public MCCEConferenceCallObserver
+    {
+    public: // Constructors and destructors
+        /**
+        * Two-phased constructor.
+        */
+        IMPORT_C static CPEConferenceCall* NewL( 
+            MPEMessageSender& aOwner,
+            CCCE& aConvergedCallEngine );
+        
+        /**
+        * Two-phased constructor.
+        * Conference call is made outof telephony control
+        */
+        IMPORT_C static CPEConferenceCall* NewL( 
+            MPEMessageSender& aOwner,
+            MCCEConferenceCall& aCall );
+            
+        /**
+        * Destructor.
+        */
+        virtual ~CPEConferenceCall();
+      
+    public:
+    
+        /**
+        * Forwards message given as parameter to Phone Engine object
+        *
+        * @param  aMessage is the message to be forwarded
+        */
+        virtual void SendMessage( 
+            const MEngineMonitor::TPEMessagesFromPhoneEngine aMessage ); 
+        
+        /**
+        * Forwards message given as parameter to Phone Engine object
+        *
+        * @param  aMessage is the message to be forwarded
+        */
+        virtual void SendMessage( 
+            const MEngineMonitor::TPEMessagesFromPhoneEngine aMessage,
+            const TName& aName );
+
+        
+   public: // From MCCEConferenceCallObserver
+   
+        /**
+        * A ConferenceCall event has occurred.
+        *
+        * @param aEvent Occurred event.
+        * @param aReferredCall Pointer to call that the event refers to. 
+        * Used e.g. for 
+        * MCCEConferenceCall::AddCallL and 
+        * MCCEConferenceCall::RemoveCallL
+        * Default value is NULL.
+        */
+        IMPORT_C void CallEventOccurred( 
+            const MCCEConferenceCallObserver::TCCEConferenceCallEvent aEvent,
+            MCCECall* aReferredCall = NULL  );
+    
+        /**
+        * Conference state has changed.
+        *
+        * @param aStateContains the state of the conference call
+        */
+        IMPORT_C void CallStateChanged( 
+                     const MCCEConferenceCallObserver::TCCEConferenceCallState aState );
+    
+    
+        /**
+        * Conference capabilities have changed.
+        * @param aCaps Updated call control capabilities
+        */
+        IMPORT_C void CallCapsChanged( 
+                     const MCCEConferenceCallObserver::TCCEConferenceCallCaps aCaps );
+
+        /**
+        * CallDurationChanged
+        *
+        * @param aDuration
+        */
+        void CallDurationChanged( const TTimeIntervalSeconds aDuration );
+
+        /**
+        * An error has occurred regarding the conference.
+        *
+        * @param aError Occurred error code. 
+        */
+        IMPORT_C void ErrorOccurred( TCCPConferenceCallError aError );
+
+            
+    public:   // New Functions
+    
+        /**
+        * Adds new member to Conference Call
+        *
+        * @param aCall the new call to be added
+        */
+        void AddCallL( MCCECall& aCall );
+
+        /**
+        * Returns Conference duration
+        *
+        * @param  TTimeIntervalSeconds& aDuration, current conference duration
+        */
+        void GetCallDuration( TTimeIntervalSeconds& aDuration );
+        
+        /**
+        * Creates hangup request to call command object
+        */    
+        TInt HangUp();
+
+        /**
+        * Calls MMEtel's syncronic method to find out the count of Conference members
+        * @return the number of members
+        */
+        TInt EnumerateCalls();
+
+        /**
+        * Returns conference call capabilities
+        * @return the capabilities of this conference call
+        */
+        MCCEConferenceCallObserver::TCCEConferenceCallCaps CallCaps();
+
+        /**
+        * Swaps Conference Call between Active and Held states
+        * @param  aSwap it tell that swapping
+        * @return None
+        */
+        TInt Swap();
+        
+        /**
+        * Returns that members name, which was added to or removed from Conference Call
+        * @since Series60_4.0
+        * @param   aCallName In this parameter is returned the TName information of member
+        * @return None
+        */
+        void GetConferenceMemberName( TName& aCallName ) const;
+        
+        /**
+        * Go one to one
+        * @param  aCall
+        * @return None
+        */
+        void GoOneToOneL( MCCECall& aCall );
+
+    protected:
+    
+        /**
+        * C++ default constructor.
+        */
+        CPEConferenceCall( MPEMessageSender& aOwner, MCCEConferenceCall& aCall );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL( CCCE& aConvergedCallEngine );
+        
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+    protected:    // Data
+        // Conference Call object. This class calls it's syncronic methods
+        MCCEConferenceCall* iConferenceCall;
+        // When added or removed event occurs, members name and callid is saved in these variables
+        TName iCallName;
+        // Conference calls capabilities
+        MCCEConferenceCallObserver::TCCEConferenceCallCaps iCaps;
+        //Current conference duration
+        TTimeIntervalSeconds iDuration;
+        //Last conference duration
+        TTimeIntervalSeconds iLastConferenceDuration;
+    };
+
+#endif      // CPECONFERENCECALLDATA_H
+
+// End of File