diff -r 65a3ef1d5bd0 -r f742655b05bf callcontinuity/vcc/inc/tvccstate.h --- a/callcontinuity/vcc/inc/tvccstate.h Thu Aug 19 09:45:22 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,442 +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: The base class for VCC state machine -* -*/ - - - -#ifndef TVCCSTATE_H -#define TVCCSTATE_H - -// INCLUDES -#include -#include // HBufC -#include -#include - -#include "vccengpsproperty.h" -#include "cconvergedcallprovider.h" - -//forward declarations -class CVccPerformer; - -/** Value for indicating unsuccesfull HO */ -const TUint KVccHoNok = 0; - -/** Value for indicating succesfull HO */ -const TUint KVccHoOk = 1; - -/** -* The base class for VCC state machine implementation. -* Contains default implementations for the functions. -* -* @lib vccperformer.dll -* @since S60 3.2 -* -*/ -class TVccState - { -public: - - /** - * Releases call - * @since Series60 3.2 - * @param aCall Call to be removed - * @param aProvs Reference to call provider array - * @return Symbian error code - */ - virtual TInt ReleaseCall( MCCPCall& aCall, - RPointerArray& aProvs ); - - /** - * Gets the state name. - * @since Series60 3.2 - * @return Derived states name. - */ - virtual TUint Name() const = 0; - - /** - * Initiates a handover - * @since Series60 3.2 - * @param aContext Reference to Performer object - * @leave Symbian error code in error case. - */ - virtual void SwitchL( CVccPerformer& aContext ); - -// From MCCPCall - look alikes. - /** - * Answers to an incoming call. - * @since S60 3.2 - * @param aCall Reference to a call object - * @return KErrNone if request was started succesfully. In that case plug-in - * must return MCCPCallObserver::ECCPStateAnswering. - * @return KErrNotReady if call is not in ringing or queued state. - * @return KErrNotSupported if call does not support queueing. Plug-in will - * disconnect the call in this case. - */ - virtual TInt Answer( MCCPCall& aCall ); - - /** - * Rejects an incoming call. - * @since S60 3.2 - * @param aCall Reference to a call object - * @return KErrNone if request was started succesfully. - * @return KErrNotReady if call is not in ringing or queued state. - */ - virtual TInt Reject( MCCPCall& aCall ); - - /** - * Reguests plug-in to queue the call. - * @since S60 3.2 - * @param aCall Reference to a call object - * @return KErrNone if request was started succesfully. - * @return KErrNotReady if call is not in ringing state or call waiting is not supported at the moment. - */ - virtual TInt Queue( MCCPCall& aCall ); - - /** - * Starts dialing to recipient - * @since S60 3.2 - * @param aCall Reference to a call object - * @return KErrNone if request was started succesfully. In this case plug-in must return - * MCCPCallObserver::ECCPStateDialling. - * @return KErrNotReady if call is not in idle state. - * @return KErrNotSupported If call is not mobile originated. - */ - virtual TInt Dial( MCCPCall& aCall ); - - /** - * Call is ringing - * @since S60 3.2 - * @param aCall Reference to a call object - * @return KErrNone if request was started succesfully. - * @return KErrNotReady if call is not in idle state. - */ - virtual TInt Ringing( MCCPCall& aCall ); - - /** - * Ends an ongoing call. - * @since S60 3.2 - * @param aContext Reference to a Performer object - * @param aCall Reference to a call object - * @return KErrNone if request was started succesfully. - * @return KErrAlreadyExists if call is already in idle state. - */ - virtual TInt HangUp( CVccPerformer& aContext, MCCPCall& aCall ); - - /** - * Cancels the ongoing request - * @since S60 3.2 - * @param aCall Reference to a call object - * @return KErrNone if request was started succesfully. - */ - virtual TInt Cancel( MCCPCall& aCall ); - - /** - * Puts the specified call on hold. - * @since S60 3.2 - * @param aCall Reference to a call object - * @return KErrNone if request was started succesfully. - * @return KErrNotReady if call is not in connected state. - * @return KErrAlreadyExists if call is already held - * (MCCPCallObserver::ECCPStateHold). - */ - virtual TInt Hold( MCCPCall& aCall ); - - /** - * Resumes the call. - * @since S60 3.2 - * @param aCall Reference to a call object - * @return KErrNone if request was started succesfully. - * @return KErrNotReady if call is not in on-hold state. - * @return KErrAlreadyExists if call is already in connected state - * MCCPCallObserver::ECCPStateConnected. - */ - virtual TInt Resume( MCCPCall& aCall ); - - /** - * Swaps a connected call to its opposite state, either active or on hold - * @since S60 3.2 - * @param aCall Reference to a call object - * @return KErrNone if request was started succesfully. - * @return KErrNotReady if call is not on in holded or connected state. - */ - virtual TInt Swap( MCCPCall& aCall ); - - /** - * Returns the remote party of the call. - * @since S60 3.2 - * @param aCall Reference to a call object - * @return remote party address, - */ - virtual const TDesC& RemoteParty( const MCCPCall& aCall ) const; - - /** - * Returns the dialled party information. - * @since S60 3.2 - * @param aCall Reference to a call object - * @return dialled party address, - */ - virtual const TDesC& DialledParty( const MCCPCall& aCall ) const; - - /** - * Return boolean value if the incoming call is forwarded or not. - * @since S60 3.2 - * @param aCall Reference to a call object - * @return ETrue if call is forwarded, else EFalse - */ - virtual TBool IsCallForwarded( const MCCPCall& aCall ) const; - - /** - * Returns boolean value if the call is mobile originated or not. - * @since S60 3.2 - * @param aCall Reference to a call object - * @return ETrue if call is mobile originated, otherwise EFalse - */ - virtual TBool IsMobileOriginated( const MCCPCall& aCall ) const; - - /** - * Returns the state of the call. - * @since S60 3.2 - * @param aCall Reference to a call object - * @return TCCPCallState The current state of the call - */ - virtual MCCPCallObserver::TCCPCallState State( const MCCPCall& aCall ) const; - - /** - * Returns call control caps for this call. - * This tells for CCE what call can currently do. - * @since S60 3.2 - * @param aCall Reference to a call object - * @return Call control caps defined in MCCPCallObserver::TCCPCallControlCaps. - */ - virtual MCCPCallObserver::TCCPCallControlCaps Caps( const MCCPCall& aCall ) const; - - /** - * Return if call secure status is specified or not. - * @since Series 60 5.0 - * @param None. - * @return TBool ETrue if security is specified, else EFalse. - */ - virtual TBool SecureSpecified( const MCCPCall& aCall ) const; - - /** - * Get call's secure status. - * @since Series 60 3.2 - * @param aCall Reference to a call object - * @return TBool ETrue if security is enabled, else EFalse. - */ - virtual TBool IsSecured( const MCCPCall& aCall ) const; - - /** - * Set call parameters. - * @since S60 3.2 - * @param aNewParams New call paramater information. - * @return none - */ - virtual void SetParameters( const CCCPCallParameters& aNewParams ); - - /** - * Cet call parameters. - * @since S60 3.2 - * @param aCall Reference to a call object - * @return Current call paramater information. - */ - virtual const CCCPCallParameters& Parameters( const MCCPCall& aCall ) const; - - /** - * Returns currently used tone for the call. Used in case tones are needed to be played. - * See defenition for TCCPTone. - * @since S60 3.2 - * @param aCall Reference to a call object - * @return TCCPTone Used tone. - */ - virtual TCCPTone Tone( const MCCPCall& aCall ) const; - - /** - * Adds a new observer for MCCECall object. Called in MT call case. In MO - * case observer will be given at call construction. - * Plug-in dependent feature if duplicates or more than one observers - * are allowed or not. Currently CCE will set only one observer. - * @since S60 v3.2 - * @param aObserver Observer - * @param aCall Reference to a call object - * @return none - * @leave system error if observer adding fails - */ - virtual void AddObserverL( const MCCPCallObserver& aObserver, - MCCPCall& aCall ); - - /** - * Remove an observer. - * @since S60 v3.2 - * @param aObserver Observer - * @param aCall Reference to a call object - * @return KErrNone if removed succesfully. KErrNotFound if observer was not found. - * Any other system error depending on the error. - */ - virtual TInt RemoveObserver( const MCCPCallObserver& aObserver, - MCCPCall& aCall ); - -//from MCCPCSCall - look alikes. - - /** - * Starts dialing to recipient - * @since S60 3.2 - * @param aCallParams The call parameters used by the TSY (a TCallParamsPckg object) - * @param aCall Reference to a call object - * @return KErrNone if request was started succesfully. - * @return KErrNotReady if call is not in idle state. - * @return KErrNotSupported If call is not mobile originated. - * @pre Call state is MCCPCallObserver::ECCPStateIdle and call type is MO. - * @since S60 3.2 - */ - virtual TInt Dial( const TDesC8& aCallParams, MCCPCSCall& aCall ); - - /** - * Instruct to do no FDN checking when dialling. - * Needs to be called before every dial for each call separately. - * If this method is not called at all default is to use FDN. - * Value will be reset to default when call goes back to disconnected state. - * @since S60 v3.2 - * @param aCall Reference to a call object - * @return none - */ - virtual void NoFDNCheck( MCCPCSCall& aCall ); - - /** - * Returns call information - * @since S60 3.2 - * @param aCallInfo TMobileCallInfoV3 - * @param aCall Reference to a call object - * @return KErrNone if succesfull, otherwise another system wide error code - */ - virtual TInt GetMobileCallInfo( TDes8& aCallInfo, - const MCCPCSCall& aCall ) const; - - /** - * Switch in the alternating call mode of an alternating call - * @since S60 3.2 - * @param aCall Reference to a call object - * @return KErrNone or system error code. - */ - virtual TInt SwitchAlternatingCall( MCCPCSCall& aCall ); - - /** - * Gets the calls data call capabilities - * @since S60 3.2 - * @param aCaps TMobileCallDataCapsV1 - * @param aCall Reference to a call object - * @return KErrNone if the function member was successful, - * @return KErrNotSupported if call does not support circuit switched data, - * @return KErrNotFound if this call is not a data call - */ - virtual TInt GetMobileDataCallCaps( TDes8& aCaps, - const MCCPCSCall& aCall ) const; - - /** - * Log dialed number. SAT related, check if dialed number is to be logged or not. - * @since S60 3.2 - * @param aCall Reference to a call object - * @return Log dialed number or not. - */ - virtual TBool LogDialedNumber( const MCCPCSCall& aCall ) const; - -//from MCCPCallObserver - look alikes. - - /** - * An error has occurred concerning a specific call. - * @since S60 3.2 - * @param aContext Reference to Performer object - * @param aError Error code. - * @param aCall Reference to a call object - * @return none - */ - virtual void ErrorOccurred( CVccPerformer& aContext, - const TCCPError aError, - MCCPCall* aCall ); - - /** - * The state of the call has changed. - * @since S60 3.2 - * @param aContext Reference to Performer object - * @param aState Call state. - * @param aCall Reference to a call object - * @return none - */ - virtual void CallStateChanged( CVccPerformer& aContext, - const MCCPCallObserver::TCCPCallState aState, - MCCPCall* aCall ); - - /** - * The state of the call has changed with inband tone, meaning network is playing - * the tone relating to the state. - * @since S60 3.2 - * @param aContext Reference to Performer object - * @param aState Call state. - * @param aCall Reference to a call object - * @return none - */ - virtual void CallStateChangedWithInband( CVccPerformer& aContext, - const MCCPCallObserver::TCCPCallState aState, - MCCPCall* aCall ); - - /** - * An event has occurred concerning a specific call. - * @since S60 3.2 - * @param aContext Reference to Performer object - * @param aEvent Occurred event. - * @param aCall Reference to a call object - * @return none - */ - virtual void CallEventOccurred( CVccPerformer& aContext, - const MCCPCallObserver::TCCPCallEvent aEvent, - MCCPCall* aCall ); - - /** - * Notifies changed call capabilities. - * @since S60 3.2 - * @param aContext Reference to Performer object - * @param aCapsFlags New capabilities for the call - * @param aCall Reference to a call object - * @return none - */ - virtual void CallCapsChanged( CVccPerformer& aContext, - const TUint32 aCapsFlags, - MCCPCall* aCall); - -protected: - - /** - * Releases ongoing call. - * @since Series60 3.2 - * @param aContext Reference to Performer object - * @param aCall Reference to a call object - * @param aState Next call state - * @param aHoValue Was the handover succesfull or not succesfull - * @return KErrNone or Symbian error code - */ - TInt ReleaseCall( CVccPerformer& aContext, MCCPCall& aCall, - TVccState& aState, TUint aHoValue ); - - /** - * C++ Constructor - */ - TVccState(); - }; - -#endif // TVCCSTATE_H - -// End of File