--- /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 <e32base.h>
+#include <mpemessagesender.h>
+
+// 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