--- a/iptel_plat/vcc_api/inc/cvccperformer.h Thu Aug 19 09:45:22 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,542 +0,0 @@
-/*
-* Copyright (c) 2006-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: CCP reference plug-in implementation.
-*
-*/
-
-#ifndef CVCCPERFORMER_H
-#define CVCCPERFORMER_H
-
-// INCLUDES
-#include <e32base.h>
-#include <e32cmn.h> // HBufC
-#include <mccpcallobserver.h> //CCP API
-#include <mccpcscall.h>//CCP API
-#include <cccpcallparameters.h>
-#include <cccecallparameters.h>
-
-#include "cconvergedcallprovider.h"
-#include "tvccstate.h"
-
-class CVccEngPsPropertyListener;
-class CVccEngPsProperty;
-class CVccHoTrigger;
-class CVccTransferProvider;
-
-/**
-* The class acts as a proxy forward the CCE.
-* It forwards the call to the actual MCCP interface implementation
-* and initiates new call if instructed to do the handover.
-*
-* @lib vccperformer.dll
-* @since S60 3.2
-*
-*/
-class CVccPerformer : public CBase,
- public MCCPCSCall,
- public MCCPCallObserver
-
- {
-public:
-
- /*
- * The c'tor
- * @param aProviders Array or call providers
- * @param aState State of the call to be created
- * @param aVccHoTrigger Reference to handover trigger object
- * @since S60 3.2
- */
- static CVccPerformer* NewL(RPointerArray<CConvergedCallProvider>& aProviders,
- TVccState& aState, CVccHoTrigger& aVccHoTrigger,
- TBool aCsOriginated );
-
- /*
- * dtor
- */
- ~CVccPerformer();
-
- /**
- * Starts Handover procedure
- * @since S60 3.2
- * @param aValue Type and direction of the possible HO
- * @return void
- */
- void SwitchL( const TInt aValue );
-
- /**
- * Gets the observer for the call events
- * @since Series60 3.2
- * @return Call event observer
- */
- MCCPCallObserver* CallObserver();
-
-
- /**
- * Makes run-time decision what technology to use for the call
- * @since Series60 3.2
- * @param aParameters Call parameters
- * @param aRecipient Recipient
- * @param aObserver Reference to call observer
- * @return Reference to created call object or leaves with Symbian error code
- */
- MCCPCall* CreatePrimaryCallL(const CCCPCallParameters& aParameters,
- const TDesC& aRecipient,
- const MCCPCallObserver& aObserver );
-
- /**
- * handles incoming call
- * @since Series60 3.2
- * @param aCall Reference to call object
- * @return reference to this object
- */
-
- MCCPCall* IncomingCall( MCCPCall* aCall );
-
- /**
- * handles 3rd party mo call
- * @since Series60 3.2
- * @param aCall Reference to call object
- * @return reference to this object
- */
- MCCPCall* MoCall( MCCPCall* aCall );
-
- /**
- * Gets the actual implementation of the active call
- * @since Series60 3.2
- * @return reference to call object
- */
- MCCPCall* PrimaryCall();
-
- /**
- * returns cs provider
- * @since Series60 3.2
- * @return reference to CS call provider
- */
- CConvergedCallProvider& CsProvider();
-
- /**
- * returns ps provider
- * @since Series60 3.2
- * @return reference to PS call provider
- */
- CConvergedCallProvider& PsProvider();
-
- /**
- * Changing the call object
- * @since Series60 3.2
- * @param aCall Reference to a new call object
- */
- void SetCall( MCCPCall* aCall );
-
- /**
- * Changing the call object
- * @since Series60 3.2
- * @param aCall Reference to a new call object
- * leaves with system error code
- */
- void SetCallL( MCCPCall* aCall );
-
-
- /**
- * Releases call
- * @since Series60 3.2
- * @param aCall Call to be removed
- * @return Symbian error code
- */
- TInt ReleaseCall( MCCPCall& aCall );
-
- /**
- * Informat that the domain has been changed.
- * @since Series60 3.2
- */
- void HandoverReady();
-
- /**
- * Creates an implementation for making handover
- * @since Series60 3.2
- * @param aParameters Call parameters
- * @param aRecipient Recipient
- * @param aObserver Reference to call observer
- */
- void CreateSecondaryCallL(const CCCPCallParameters& aParameters,
- const TDesC& aRecipient,
- const MCCPCallObserver& aObserver);
- /**
- * Returns created local implementation
- * @since Series60 3.2
- * @return local implementation for hand-over, NULL if not created.
- */
- MCCPCall* SecondaryCall();
-
- /**
- * Updates the current state with the next state
- * @since Series60 3.2
- * @param aState reference to a new call state
- */
- void SetState( TVccState& aState );
-
- /**
- * Returns current state name
- * @since Series60 3.2
- * @return current state, see state headers for the state names
- */
- TUint StateName() const;
-
- /**
- * Gets the notifier
- * @since Series60 3.2
- * @return the notifier to be used for the reporting hand-over process
- */
- CVccEngPsProperty& Notifier();
-
- /**
- * Activates the trigger if call is connected, stops otherwise
- * @since Series60 3.2
- * @param aActivation activate or deactivate trigger
- */
- void ActivateTrigger( TBool aActivation );
-
- /**
- * PS key is updated via this method, so that UI item is removed from
- * in call Options menu when needed
- * @since Series60 3.2
- * @param aAllow to show or hide HO option in menu
- */
- void AllowHo( TBool aAllow );
-
- /**
- * PS key is updated via this method, so that UI item is removed from
- * in call Options menu when needed
- * @since Series60 3.2
- * @param aAllow to show or hide HO option in menu
- * @leave with system wide error if fails
- */
- void AllowHoL( TBool aAllow );
-
- /**
- * Checks own state after conference and starts trigger if state is connected.
- * @since Series60 3.2
- */
- void ConferenceEnded();
-
- /**
- * Release secondary call leg, if needed, before calling destructor.
- * @since Series60 3.2
- */
- void ReleaseSecondaryCallLeg();
-
- /**
- * Save original RemoteParty and RemotePartyName, so that call bubble
- * stays intact also after handover
- */
- void SetRemoteParties();
-
- /**
- * Finds provider index number from array
- * @param aVoipIndex true if voip index should be searched, false if
- * cs index
- * @return index number from which the provider can be found, KErrNotFound
- * if provider not found from array
- */
- TInt VoipProviderIndex( TBool aVoipIndexWanted );
-
-
-// from base class MCCPCall
- /**
- * @see MCCPCall::Answer()
- */
- TInt Answer();
-
- /**
- * @see MCCPCall::Reject()
- */
- TInt Reject();
-
- /**
- * @see MCCPCall::Queue()
- */
- TInt Queue();
-
- /**
- * @see MCCPCall::Dial()
- */
- TInt Dial();
-
- /**
- * @see MCCPCall::Ringing()
- */
- TInt Ringing();
-
- /**
- * @see MCCPCall::HangUp()
- */
- TInt HangUp();
-
- /**
- * @see MCCPCall::Cancel()
- */
- TInt Cancel();
-
- /**
- * @see MCCPCall::Hold()
- */
- TInt Hold();
-
- /**
- * @see MCCPCall::Resume()
- */
- TInt Resume();
-
- /**
- * @see MCCPCall::Swap()
- */
- TInt Swap();
-
- /**
- * @see MCCPCall::RemoteParty()
- */
- const TDesC& RemoteParty() const;
-
- /**
- * @see MCCPCall::RemotePartyName()
- */
- const TDesC& RemotePartyName();
-
- /**
- * @see MCCPCall::DialledParty()
- */
- const TDesC& DialledParty() const;
-
- /**
- * @see MCCPCall::IsCallForwarded()
- */
- TBool IsCallForwarded() const;
-
- /**
- * @see MCCPCall::IsMobileOriginated()
- */
- TBool IsMobileOriginated() const;
-
- /**
- * @see MCCPCall::State()
- */
- MCCPCallObserver::TCCPCallState State() const;
-
- /**
- * @see MCCPCall::Uid()
- */
- TUid Uid() const;
-
- /**
- * @see MCCPCall::Caps()
- */
- MCCPCallObserver::TCCPCallControlCaps Caps() const;
-
- /**
- * @see MCCPCall::SecureSpecified()
- */
- TBool SecureSpecified() const;
-
- /**
- * @see MCCPCall::IsSecured()
- */
- TBool IsSecured() const;
-
- /**
- * @see MCCPCall::SetParameters()
- */
- void SetParameters( const CCCPCallParameters& aNewParams );
-
- /**
- * @see MCCPCall::Parameters()
- */
- const CCCPCallParameters& Parameters() const;
-
- /**
- * @see MCCPCall::Tone()
- */
- TCCPTone Tone() const;
-
- /**
- * @see MCCPCall::ForwardProviderL()
- */
- MCCPForwardProvider* ForwardProviderL( const MCCPForwardObserver& aObserver );
-
- /**
- * @see MCCPCall::TransferProviderL()
- */
- MCCPTransferProvider* TransferProviderL( const MCCPTransferObserver& aObserver );
-
- /**
- * @see MCCPCall::AddObserverL()
- */
- void AddObserverL( const MCCPCallObserver& aObserver );
-
- /**
- * @see MCCPCall::RemoveObserver()
- */
- TInt RemoveObserver( const MCCPCallObserver& aObserver );
-
-//from base class MCCPCSCall
-
- /**
- * @see MCCPCSCall::Dial()
- */
- TInt Dial( const TDesC8& aCallParams );
-
- /**
- * @see MCCPCSCall::NoFDNCheck()
- */
- void NoFDNCheck();
-
- /**
- * @see MCCPCSCall::GetMobileCallInfo()
- */
- TInt GetMobileCallInfo( TDes8& aCallInfo ) const;
-
- /**
- * @see MCCPCSCall::SwitchAlternatingCall()
- */
- TInt SwitchAlternatingCall();
-
- /**
- * @see MCCPCSCall::GetMobileDataCallCaps()
- */
- TInt GetMobileDataCallCaps( TDes8& aCaps ) const;
-
- /**
- * @see MCCPCSCall::LogDialedNumber()
- */
- TBool LogDialedNumber() const;
-
-
-//from base class MCCPCallObserver
-
- /**
- * @see MCCPCallObserver::ErrorOccurred()
- */
- void ErrorOccurred( const TCCPError aError, MCCPCall* aCall );
-
- /**
- * @see MCCPCallObserver::CallStateChanged()
- */
- void CallStateChanged( const MCCPCallObserver::TCCPCallState aState,
- MCCPCall* aCall );
-
- /**
- * @see MCCPCallObserver::CallStateChangedWithInband()
- */
- void CallStateChangedWithInband( const MCCPCallObserver::TCCPCallState aState,
- MCCPCall* aCall );
-
- /**
- * @see MCCPCallObserver::CallEventOccurred()
- */
- void CallEventOccurred( const MCCPCallObserver::TCCPCallEvent aEvent,
- MCCPCall* aCall );
-
- /**
- * @see MCCPCallObserver::CallCapsChanged()
- */
- void CallCapsChanged( const TUint32 aCapsFlags, MCCPCall* aCall );
-
-private:
-
- /**
- * constructor.
- */
- CVccPerformer(RPointerArray<CConvergedCallProvider>& aProviders,
- TVccState& aState, CVccHoTrigger& aVccHoTrigger,
- TBool aCsOriginated);
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
-
- /**
- * Removes SIP-uri from remoteparty number if call is VoIP call
- */
- void ParseRemoteParty();
-
-private: // data
-
- /**
- * Call provider array
- * Not own
- */
- RPointerArray<CConvergedCallProvider>& iProviders;
-
-
- /**
- * actual call implementation, can be changed run-time
- * Own
- */
- MCCPCall* iPrimaryCall;
-
- /**
- * actual call implementation, created to perfome a handover
- * Own
- */
- MCCPCall* iSecondaryCall;
-
- /**
- * remembering the call observer because it needs to change
- * Not own
- */
- MCCPCallObserver* iCallObs;
-
- /**
- * for informing the states
- * Own
- */
- CVccEngPsProperty* iVccPsp;
-
- /**
- * current state in case of the hand-over
- * Own
- */
- TVccState* iCurrentState;
-
- /**
- * trigger for initiating automatic HOs
- * Not own
- */
- CVccHoTrigger& iVccHoTrigger;
-
- /**
- * Originating domain of the call
- * */
- TBool iCsOriginated;
-
- /**
- * Transfer provider for handling call transfer
- * Own
- */
- CVccTransferProvider* iTransferProvider;
-
- /**
- *For storing the remote party information
- */
-
- TBuf<100> iOrigRemotePartyName;
- TBuf<100> iOrigRemoteParty;
-
- TBool iRemotePartiesSet;
- friend class T_CVccPerformer;
- };
-
-#endif // CVCCPERFORMER_H
-
-// End of File