mmsharing/livecommsui/lcuiengine/tsrc/ut_lcuieng/lcstub/inc/lcsessionstub.h
branchRCL_3
changeset 22 73a1feb507fb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmsharing/livecommsui/lcuiengine/tsrc/ut_lcuieng/lcstub/inc/lcsessionstub.h	Tue Aug 31 15:12:07 2010 +0300
@@ -0,0 +1,222 @@
+/*
+* Copyright (c) 2009 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: 
+*
+*/
+
+#ifndef LCSESSIONSTUB_H
+#define LCSESSIONSTUB_H
+
+#include <QString>
+#include <QMap>
+#include <e32std.h>
+
+class MLcUiProvider;
+
+extern bool lcutStub_LcSession_expectCall( const QString& call, int callNdx = 0);
+extern void lcutStub_LcSession_reset();
+extern MLcUiProvider* lcutStub_LcSession_lcUiProvider();
+
+const char lcutStub_LcSession_NoCall[] = "NOCALL";
+const char lcutStub_LcSession_establishSession[] = "LcEngine::EstablishLcSessionL";
+const char lcutStub_LcSession_terminateSession[] = "LcEngine::TerminateLcSessionL";
+const char lcutStub_LcSession_updateSession[] = "LcEngine::UpdateLcSessionL";
+
+_LIT( KLcStubLocalDisplayName, "local");
+_LIT( KLcStubRemoteDisplayName, "remote");
+_LIT( KLcStubRemoteDetails, "112233459");
+
+// INCLUDES
+#include "lcsession.h"
+
+#include <e32std.h>
+#include <e32base.h>
+
+// FORWARD DECLARATIONS
+class MLcSessionObserver;
+class MLcUiProvider;
+class CLcVideoPlayer;
+
+
+// CLASS DECLARATION
+/**
+* A class representing a Live Comms session. 
+*/
+class CLcSession : public CBase,
+                   public MLcSession
+    {
+public:
+        /**
+        * Creates new CLcSession.
+        *
+        * @return CLcSession* New instanse of specified class
+        */
+        static CLcSession* NewL();  
+        
+
+public:
+
+        /**
+        * Destructor
+        */
+        ~CLcSession();
+
+public: // from MLcSession
+    
+        /**
+        * Returns the current session state.
+        * @return the session state
+        */
+        TLcSessionState LcSessionState() const;
+
+        /**
+        * Sets the observer for the session related events.
+        * @param aObserver the observer
+        */
+        void SetLcSessionObserver( MLcSessionObserver* aObserver );
+
+        /**
+        * Sets the callback for the UI prompts.
+        * @param aUiProvider callback for UI prompts
+        */
+        void SetLcUiProvider( MLcUiProvider* aUiProvider );        
+        
+        /**
+        * Establishes the session.
+        * In case of a MO session initiates the session negotiation.
+        * In case of a MT session accepts the incoming session. 
+        */
+        void EstablishLcSessionL();
+    
+        /**
+        * Terminates the session.
+        * Can be used for terminating an existing session as well as 
+        * cancelling a MO session that has not yet been established.
+        * Can also be used for rejecting an incoming session.  
+        */
+        void TerminateLcSessionL();
+       
+        /**
+        * Returns the video player for the received media.
+        * Is present if the session contains video 
+        * received from the remote participant.
+        * @return the remote video player or NULL if not present
+        */
+        MLcVideoPlayer* RemoteVideoPlayer();
+    
+        /**
+        * Returns the video player for the media that is being sent.
+        * Is present if the session contains outgoing video.
+        * @return the local video player or NULL if not present
+        */
+        MLcVideoPlayer* LocalVideoPlayer();
+       
+        /**
+        * Returns the own display name for the session.
+        * @return the local display name
+        */
+        const TDesC& LocalDisplayName();
+    
+        /**
+        * Returns the remote party's display name for the session.
+        * @return the remote display name
+        */
+        const TDesC& RemoteDisplayName();
+
+        /**
+        * Sets a parameter for the session.
+        * The parameters can be plug-in specific.
+        * @param aId the identifier for the parameter
+        * @param aValue the value for the parameter
+        */
+        TInt SetParameter( TInt aId, TInt aValue );
+
+        /**
+        * Returns a value for a session parameter.
+        * @param aId the identifier for the parameter
+        * @return the value for the parameter or an error if not present
+        */
+        TInt ParameterValue( TInt aId );        
+        
+        /**
+        * Checks whether application should be started in background mode. 
+        * In background mode session will be pre-set up without user   
+        * interaction and will be in paused state.
+        * @return ETrue if background mode should be used
+        */
+        TBool IsBackgroundStartup();
+        
+        /**
+       * Engine can be informed about application foreground status via
+       * this method.
+       * @param aIsForeground ETrue if application is at foreground, EFalse
+       *   if at background
+       * @return KErrNone if succesfully handled
+       */
+       TInt SetForegroundStatus( TBool aIsForeground );
+       
+       /**
+       * Returns remote party details for the session
+       * @return remote party details or KNullDesC if those are not known
+       */
+       const TDesC& RemoteDetails();
+        
+       /**
+       * Updates established session. 
+       * All the changes, if they are not yet delivered, to players, windows 
+       * and session parameters has been commited after the call.
+       */
+       void UpdateLcSessionL();
+       
+       /**
+       * Send DTMF signals. 
+       * @param aKey Key pressed from dialpad. Key can be  [0-9],*,#,A,B,C,D.
+       * which is 16 key combination of DTMF.
+       * Send DTMF signals to remote party.
+       * @return ETrue upon success else EFalse.
+       */
+       TBool SendDialTone( TChar aKey);
+
+       
+protected:
+
+        /**
+        * Constructor
+        */
+        CLcSession( );
+        
+        /**
+        * Second-phase constructor
+        */
+        void ConstructL();
+public:
+        
+        MLcSessionObserver* iSessionObserver;
+        MLcUiProvider* iLcUiProvider;
+        HBufC* iLocalDisplayName; 
+        HBufC* iRemoteDisplayName;
+        HBufC* iRemoteDetails;
+        CLcVideoPlayer* iLocalPlayer;
+        CLcVideoPlayer* iRemotePlayer;
+        TBool iIsForeground;
+        TBool iForegroundChange;
+        TLcSessionState iState;
+        
+        QMap<int, int> mParams;
+        
+    };
+ 
+#endif // LCSESSIONSTUB_H
+
+// end of file