diff -r 000000000000 -r 71ca22bcf22a mmserv/tms/tmsserver/inc/tmsserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmserv/tms/tmsserver/inc/tmsserver.h Tue Feb 02 01:08:46 2010 +0200 @@ -0,0 +1,156 @@ +/* + * 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: Telephony Multimedia Service + * + */ + +#ifndef __TMSSERVER_H +#define __TMSSERVER_H + +#include +#include +#include +#include "tmsshared.h" +#include "tmsclientserver.h" + +namespace TMS { + +// FORWARD DECLARATIONS +class TMSServerShutDown; +class CStartAndMonitorTMSCallThread; +class TMSCallProxyLocal; +class GlobalEffectsSettings; +class CTarEventHandler; +class CSPCenRepListener; +class CSPAudioHandler; + +// ----------------------------------------------------------------------------- +// TMSServer class +// ----------------------------------------------------------------------------- +// +class TMSServer : public CServer2 + { +public: + static TMSServer* NewL(); + ~TMSServer(); + + void AddSession(); + void DropSession(); + TInt SessionCount(); + + void SetDnLinkSession(TBool aSession); + void SetUpLinkSession(TBool aSession); + + TBool HasDnLinkSession() const; + TBool HasUpLinkSession() const; + + void GetNewTMSCallSessionHandleL(RHandleBase& aHandle); + TInt SetOutput(CSession2* sid, TInt output); + TInt GetOutput(const RMessage2& aMessage); + TInt GetPreviousOutput(const RMessage2& aMessage); + TInt GetAvailableOutputs(const RMessage2& aMessage); + + TInt GetMaxLevel(const RMessage2& aMessage); + TInt GetLevel(const RMessage2& aMessage); + TInt SetLevel(CSession2* sid, TBool tmsclient, TInt level); + + TInt GetMaxGain(const RMessage2& aMessage); + TInt GetGain(const RMessage2& aMessage); + TInt SetGain(CSession2* sid, TInt level); + TInt GetSupportedCodecs(const TMSStreamType strmType, + RArray*& aCodecs); + + TInt NotifyTarClients(TRoutingMsgBufPckg routingpckg); + + void StartRoutingNotifierL(); + void CancelRoutingNotifier(); + void StartCenRepHandlerL(); + void CancelCenRepHandler(); + +private: + TMSServer(); + void ConstructL(); + CSession2* NewSessionL(const TVersion& aVersion, + const RMessage2& aMessage) const; + + TInt StartTMSCallServer(TMSCallProxyLocal& aHandle); + void GetAvailableOutputsL(const RMessage2& aMessage); + TInt SendMessageToCallServ(TInt func, TInt value); + TInt SendMessageToCallServ(TInt func, TIpcArgs args); + +private: + TInt iSession; + TMSServerShutDown *iShutdownTimer; + + TBool iDnlinkSession; + TBool iUplinkSession; + + mutable RPointerArray iTMSCallServList; + GlobalEffectsSettings* iEffectSettings; + CTarEventHandler* iTarHandler; + CSPAudioHandler* iAudioCenRepHandler; + TMSAudioOutput iCurrentRouting; + + RArray iDnlCodecs; + RArray iUplCodecs; + }; + +// ----------------------------------------------------------------------------- +// CStartAndMonitorTMSCallThread class +// ----------------------------------------------------------------------------- +// +class TMSCallProxyLocal : public RSessionBase + { +public: + TInt Open(RServer2& aTMSCallServerHandle); + TInt SendToCallServer(TInt aFunc, TUint value); + TInt SendToCallServer(TInt aFunc, TIpcArgs args); + TInt ReceiveFromCallServer(TInt aFunc, TUint& value); + TInt ReceiveFromCallServer(TInt aFunc, TIpcArgs args); + }; + +// ----------------------------------------------------------------------------- +// CStartAndMonitorTMSCallThread class +// ----------------------------------------------------------------------------- +// +class CStartAndMonitorTMSCallThread : public CActive + { +public: + static CStartAndMonitorTMSCallThread* NewL(TMSServer* aServer); + ~CStartAndMonitorTMSCallThread(); + TInt StartTMSCallServer(TMSCallProxyLocal& aHandle); + +private: + // Construct + CStartAndMonitorTMSCallThread(TMSServer* aServer); + void ConstructL(); + + // From CActive + void RunL(); + void DoCancel(); + +public: + RServer2 iCallSrvrHndl; + TMSCallProxyLocal iTMSCallProxyLocal; + +private: + TMSServer* iTMSServer; + RThread iServerThread; + }; + +} //namespace TMS + +#endif //__TMSSERVER_H + +// End of file