diff -r 2eacb6118286 -r ba76fc04e6c2 phoneengine/callhandling/inc/cpeconferencecall.h --- /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 +#include +#include +#include +#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