--- /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 <etelmm.h>
+#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