diff -r 33a5d2bbf6fc -r 73a1feb507fb mmsharing/livecommsui/lcuiengine/tsrc/ut_lcuieng/lcstub/inc/lcsessionstub.h --- /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 +#include +#include + +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 +#include + +// 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 mParams; + + }; + +#endif // LCSESSIONSTUB_H + +// end of file