diff -r 000000000000 -r ed9695c8bcbe vtengines/videoteleng/CallCtrl/Inc/CVtCtlVideoCall.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vtengines/videoteleng/CallCtrl/Inc/CVtCtlVideoCall.h Mon Nov 23 14:47:47 2009 +0200 @@ -0,0 +1,195 @@ +/* +* Copyright (c) 2004 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: Video call abstraction +* +*/ + + + +#ifndef CVTCTLVIDEOCALL_H +#define CVTCTLVIDEOCALL_H + +// INCLUDES +#include +#include "MVtCtlCallControl.h" +#include "MVtCtlCallStatusObserver.h" + + +// FORWARD DECLARATIONS +class CVtCtlCallStatusMonitor; + +// CLASS DECLARATION + +/** +* Video call abstraction +* +* @lib CSCallCtrl +* @since 2.6 +*/ +NONSHARABLE_CLASS( CVtCtlVideoCall ) : + public CBase, + public MVtCtlCallStatusObserver + { + public: + + /** + * Call information + */ + struct TVtCtlCallInfo + { + // Session state + MVtCtlCallControl::TVtCtlState iStatus; + // Previous session state + MVtCtlCallControl::TVtCtlState iPreviousStatus; + // Session id + TVtCtlSessionId iId; + // Session direction + MVtCtlCallControl::TVtCtlDirection iDirection; + }; + + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @param aDataLine line subsession + * @param aId session id + * @param aObserver call status observer + */ + /***************************************************** + * Series 60 Customer / ETel + * Series 60 ETel API + *****************************************************/ + static CVtCtlVideoCall* NewL( + RMobileLine& aDataLine, + TVtCtlSessionId aId, + MVtCtlCallStatusObserver& aObserver + ); + + /** + * Destructor. + */ + virtual ~CVtCtlVideoCall(); + + public: // New functions + + /** + * Returns call info + * @return reference to call info + */ + const CVtCtlVideoCall::TVtCtlCallInfo& CallInfo() const; + + /** + * Returns Etel call info + * @return call info + */ + /***************************************************** + * Series 60 Customer / ETel + * Series 60 ETel API + *****************************************************/ + const RMobileCall::TMobileCallInfoV1& MobileInfo() const; + + /** + * Opens call subsession and starts monitoring call status. + * @param aCallName call name + */ + /***************************************************** + * Series 60 Customer / ETel + * Series 60 ETel API + *****************************************************/ + void InitializeCallL( RMobileCall& aCall ); + + /** + * Updates call information from ETel + * @return Symbian OS error code + */ + TInt UpdateCallInfo(); + + /** + * Returns call duration from Etel + * @param aDuration duration + * @return Symbian OS error code + */ + TInt GetDuration( TVtCtlDuration& aDuration ); + + /** + * Obtains video call state from the server and returns it. + * @param aState updated call state + * @return Symbian OS error code + * @since S60 3.1 + */ + TInt GetCallState( MVtCtlCallControl::TVtCtlState& aState ); + + protected: // From MVtCtlCallStatusObserver + + /** + * @see MVtCtlCallStatusObserver::HandleCallStatusChangeL + */ + virtual void HandleCallStatusChangeL( + TVtCtlSessionId aId, + MVtCtlCallControl::TVtCtlState aStatus, + MVtCtlCallControl::TVtCtlState aPreviousStatus ); + + private: + + /** + * C++ constructor. + * @param aDataLine data line + * @param aId session id + * @param aObserver observer + */ + /***************************************************** + * Series 60 Customer / ETel + * Series 60 ETel API + *****************************************************/ + CVtCtlVideoCall( + RMobileLine& aDataLine, + TVtCtlSessionId aId, + MVtCtlCallStatusObserver& aObserver ); + + private: // Data + + // Call information + TVtCtlCallInfo iCallInfo; + + // Etel call + /***************************************************** + * Series 60 Customer / ETel + * Series 60 ETel API + *****************************************************/ + RMobileCall* iCall; + + // Data line + /***************************************************** + * Series 60 Customer / ETel + * Series 60 ETel API + *****************************************************/ + RMobileLine& iLine; + + // Etel call information + /***************************************************** + * Series 60 Customer / ETel + * Series 60 ETel API + *****************************************************/ + RMobileCall::TMobileCallInfoV1 iMobileCallInfo; + + // Call status monitor + CVtCtlCallStatusMonitor* iStatusMonitor; + + // Call status observer + MVtCtlCallStatusObserver& iObserver; + }; + +#endif // CVTCTLVIDEOCALL_H + +// End of File