diff -r 000000000000 -r 5f000ab63145 phoneengine/callhandling/inc/cpevideocallhandling.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneengine/callhandling/inc/cpevideocallhandling.h Mon Jan 18 20:18:27 2010 +0200 @@ -0,0 +1,356 @@ +/* +* Copyright (c) 2002-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: This file contains the header file of the CPEVideoCallHandling object +* +*/ + + +#ifndef CPEVIDEOCALLHANDLING_H +#define CPEVIDEOCALLHANDLING_H + +//INCLUDES +#include +#include + +// CONSTANTS +const TInt KPEDataCallIdBase( KPEMaximumNumberOfVoiceCalls + + KPEMaximumNumberOfConferenceCalls ); + +// MACROS +// None. + +// DATA TYPES +// None. + +// FUNCTION PROTOTYPES +// None. + +// FORWARD DECLARATIONS +class CPESingleCall; +class MPEPhoneModelInternal; +class MPEMessageSender; +class CCCE; +class MCCECall; +class CPECallArrayOwner; +class CPEGprsTermination; +class MPEMonitorCommandOwner; +class MPEDataStore; + +// CLASS DECLARATION + +/** +* Handles video call related events from phone engine +* +* @lib CallHandlingGsm.lib +* @since Series60_4.0 +*/ +class CPEVideoCallHandling : public CBase, + public MPEMessageSender + { + public: // Constructors and destructor + /** + * Two-phased constructor + */ + static CPEVideoCallHandling* NewL( + MPEMessageSender& aOwner, + MPEPhoneModelInternal& aModel, + CCCE& aConvergedCallEngine, + CPECallArrayOwner& aCallArrayOwner ); + + /** + * Destructor + */ + virtual ~CPEVideoCallHandling(); + + public: // New functions + + /** + * Makes answer request. + * @return Symbian OS error code + */ + TInt AnswerCall(); + + /** + * Returns call terminated error + * @param aCallId, call identification number + * @return Return errorCode + */ + TInt CallTerminatedError( const TInt aCallId ); + + /** + * Checks if there are any connected calls + */ + TBool ConnectedCalls(); + + /** + * Checks if the call has reserved serial communications data port for use + * @param aCallId, call identification number + * @return ETrue if the data port is reserved for use or EFalse if not + */ + TBool DataPortInUse( TInt aCallId ) const; + + /** + * Creates dialing request. + * @param aNumber, the telephone number to be called + * @return Symbian OS error code + */ + TInt DialCall( const TPEPhoneNumber& aNumber, TInt& aCallId ); + + /** + * Makes HangUp request. + * @param aCallId, call identification number + * @return Symbian OS error code + */ + TInt HangUp( TInt aCallId ); + + /** + * Initializes a single video call + * @param aCall handle to converged call engine call object + */ + void InitCall( MCCECall& aCall ); + + /** + * Checks if the data call is a multimedia call + * @param aCallId, call identification number + * @return TBool, ETrue if this is a multimedia call, EFalse if not + */ + TBool IsMultimedia( TInt aCallId ) const; + + /** + * Notifies system for changes to the call state. + * @param aMessage, message id + * @param aCallId, call identification number + */ + void NotifySystemCallStateChanged( + MEngineMonitor::TPEMessagesFromPhoneEngine aMessage, + TInt aCallId ); + + /** + * Makes resume request to the Multimode ETel + * @param aCallId, call identification number + * @return Symbian OS error code + */ + TInt ResumeCall( TInt aCallId ); + + /** + * Makes terminate all connection request. + * @return KErrNone if operation was successful + * @return KerrNotFound if there is not a call + * @return KErrServerBusy if similar request is already being serviced + * @return KErrGeneral + * @return KErrNotSupported if feature is not supported + */ + TInt TerminateAllConnections(); + + /** + * Starts monitoring incoming data calls + */ + void StartUp(); + + /** + * Swaps connected and held calls + * @return Symbian OS error code + */ + TInt SwapCalls(); + + /** + * Checks is phonenumber available + * @param aCallId, call identification number + */ + TBool IsPhoneNumberAvailable( const TInt aCallId ); + + /** + * Video Call By State + */ + CPESingleCall* VideoCallByState( TPEState aState ); + + /** + * Video Call By call id + */ + CPESingleCall* VideoCallById( TInt aCallId ); + + /** + * Replace active video call with a waiting video call + * NOT SUPPORTED AS OF 5.1 + */ + TInt ReplaceActive( TInt aCallId ); + + /** + * Returns the number of non-idle data calls + * @return Number of calls. + */ + TInt GetNumberOfCalls (); + + /** + * Get the call state + * @paramaCallId, call identification number + * @return the call state. + */ + TPEState GetCallState ( TInt aCallId ); + + /** + * Returns information of the data call + * @param aCallInfo, call info. + * @param aCallId, call identification number + * @return Symbian OS error code + */ + TInt GetCallInfo( RMobileCall::TMobileCallInfoV3& aCallInfo, TInt aCallId ); + + /** + * Finds data call name given the call id + * @param aCallId, call identification number + * @return data call name + */ + TName& VideoCallName( const TInt aCallId ); + + /** + * Returns call duration time + * @param aDuration the duration value of the call + * @return KErrNone or KErrNotFound. + */ + TInt GetCallDuration( TTimeIntervalSeconds& aDuration, TInt aCallId ); + + /** + * Makes reject request. + * @return Symbian OS error code + */ + TInt RejectCall( ); + + /** + * Makes HangUp requests for all calls + * @return Symbian OS error code (KErrNotFound if there are no calls to release) + */ + TInt ReleaseAll(); + + public: // From MPEMessageSender + + /** + * Reroutes error message to Phone Engine, usable by call objects + * @param aCallId Identification number of the call. + * @param aErrorCode, the error code stored after previous unsuccessful request + */ + void SendErrorMessage( + const TInt aCallId, + const TInt aErrorCode ); + + /** + * Overrides CPEDataCallHandling::SendMessage to provide internal handling for gsm events + * @param aMessage, message id + */ + void SendMessage( + const MEngineMonitor::TPEMessagesFromPhoneEngine aMessage, + const TInt aCallId ); + + /** + * Reroutes call messages + * @param aMessage The message code of the message + * @param aName Name of call fill be maped to call id + */ + void SendMessage( + const MEngineMonitor::TPEMessagesFromPhoneEngine aMessage, + const TName& aName ); + + /** + * Reroutes call messages. + * @param aMessage specifies the event that has taken place + */ + void HandleInternalMessage( + TInt aMessage ); + + private: + /** + * C++ default constructor + */ + CPEVideoCallHandling( MPEMessageSender& aOwner, + MPEPhoneModelInternal& aModel, + CCCE& aConvergedCallEngine, + CPECallArrayOwner& aCallArrayOwner ); + + /** + * By default Symbian 2nd phase constructor is private + */ + void ConstructL(); + + /** + * SetCallParams. + * @param None. + * @return None. + */ + void SetCallParams( TInt aCallId ); + + /** + * Create new CPESingleCall object to CPECallArrayOwner and open new MCCECall ojcte to CCE. + * @param None. + * @return returns pointer to CPESingleCall objecte. + */ + CPESingleCall* OpenNewCallL( const TPEPhoneNumber& aNumber ); + + /** + * Returns data call object by state + * @param aState, call state + * @return pointer to data call object + */ + CPESingleCall* VideoCallByState( const TPEState aState ) const; + + /** + * Returns data call object by name + * @param aName, call name + * @return pointer to data call + */ + CPESingleCall* VideoCallByName( const TName& aName ); + + /** + * Checks if there are any data calls in the specified state + * @param aState, call state + * @return TBool, ETrue if there is a data call in the specified state + * EFalse if there is no data call in the specified state + */ + TBool VideoCallInState( const TPEState& aState ) const; + + /** + * Delete's call object and reset's datastore. + * @param aCallid. + */ + TInt ReleaseCallObject( const TInt aCallId ); + + private: // Data + + // Reference to owner of this class + MPEMessageSender& iOwner; + // Reference to phone model + MPEPhoneModelInternal& iModel; + // Etel phone connection. + CCCE& iConvergedCallEngine; + // Data call name stored for Video Call Manager use + TName iDataCallName; + // Call array owner + CPECallArrayOwner& iCallArrayOwner; + // Reference to data store + MPEDataStore& iDataStore; + // Restore Cause Video Call Reject + TBool iRestoreCauseVTCallReject; + + // Owned GPRS termination instance. + CPEGprsTermination* iGprsInterface; + /* + * Call parameters for dialing + * Own. + */ + CCCECallParameters* iCallOpenParams; + +}; + +#endif // CPEVIDEOCALLHANDLING_H + +// End of File