diff -r 000000000000 -r 71ca22bcf22a mmserv/tms/tmscallserver/inc/callipadpt.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmserv/tms/tmscallserver/inc/callipadpt.h Tue Feb 02 01:08:46 2010 +0200 @@ -0,0 +1,157 @@ +/* + * 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 __CALLIPADAPT_H +#define __CALLIPADAPT_H + +// INCLUDES +#include +#include +#include "tmsclientserver.h" +#include "tmsshared.h" +#include "calladpt.h" + +namespace TMS { + +// FORWARD DECLARATIONS +class TMSVoIPDownlink; +class TMSVoIPUplink; + +// CallIPAdpt class +class CallIPAdpt : public CallAdpt + { +public: + // Constractor + static CallIPAdpt* NewL(); + + virtual ~CallIPAdpt(); + virtual gint PostConstruct(); + + virtual gint CreateStream(TMSCallType callType, TMSStreamType strmType, + gint& outStrmId); + virtual gint InitStreamL(TMSCallType callType, TMSStreamType strmType, + gint strmId, TMSFormatType frmtType, const RMessage2& aMessage); + virtual gint StartStream(TMSCallType callType, TMSStreamType strmType, + gint strmId); + virtual gint PauseStream(TMSCallType callType, TMSStreamType strmType, + gint strmId); + virtual gint StopStream(TMSCallType callType, TMSStreamType strmType, + gint strmId); + virtual gint DeinitStream(TMSCallType callType, TMSStreamType strmType, + gint strmId); + virtual gint DeleteStream(TMSCallType callType, TMSStreamType strmType, + gint strmId); + virtual gint DataXferBufferEmptied(TMSCallType callType, + TMSStreamType strmType, gint strmId); + virtual gint DataXferBufferFilled(TMSCallType callType, + TMSStreamType strmType, gint strmId, guint datasize); + virtual gint GetDataXferBufferHndl(const TMSCallType callType, + const TMSStreamType strmType, const gint strmId, + const guint32 key, RChunk& chunk); + + virtual gint GetMaxVolume(guint& volume); + virtual gint SetVolume(const guint volume); + virtual gint GetVolume(guint& volume); + virtual gint GetMaxGain(guint& gain); + virtual gint SetGain(const guint gain); + virtual gint GetGain(guint& gain); + virtual gint GetGlobalMaxVolume(guint& volume); + virtual gint SetGlobalVolume(const guint volume); + virtual gint GetGlobalVolume(guint& volume); + virtual gint GetGlobalMaxGain(guint& gain); + virtual gint SetGlobalGain(const guint gain); + virtual gint GetGlobalGain(guint& gain); + + virtual gint GetCodecMode(const TMSFormatType fmttype, + const TMSStreamType strmtype, gint& mode); + virtual gint SetCodecMode(const TMSFormatType fmttype, + const TMSStreamType strmtype, const gint mode); + virtual gint GetSupportedBitRatesCount(guint& count); + virtual gint GetSupportedBitRates(CBufFlat*& brbuffer); + virtual gint GetBitRate(guint& bitrate); + virtual gint SetBitRate(const guint bitrate); + virtual gint GetVAD(const TMSFormatType fmttype, gboolean& vad); + virtual gint SetVAD(const TMSFormatType fmttype, const gboolean vad); + virtual gint GetCNG(const TMSFormatType fmttype, gboolean& cng); + virtual gint SetCNG(const TMSFormatType fmttype, const gboolean cng); + virtual gint GetPlc(const TMSFormatType fmttype, gboolean& plc); + virtual gint SetPlc(const TMSFormatType fmttype, const gboolean plc); + + virtual gint SetOutput(TMSAudioOutput output); + virtual gint GetOutput(TMSAudioOutput& output); + virtual gint GetPreviousOutput(TMSAudioOutput& output); + virtual gint GetAvailableOutputsL(TInt& count, CBufFlat*& outputsbuffer); + + gint SetIlbcCodecMode(const gint mode, const TMSStreamType strmtype); + gint GetIlbcCodecMode(gint& mode, const TMSStreamType strmtype); + gint SetG711CodecMode(const gint mode, const TMSStreamType strmtype); + gint GetG711CodecMode(gint& mode, const TMSStreamType strmtype); + gint FrameModeRqrdForEC(gboolean& frmodereq); + gint SetFrameMode(const gboolean frmode); + gint GetFrameMode(gboolean& frmode); + gint ConcealErrorForNextBuffer(); + gint BadLsfNextBuffer(); + + gint OpenDownlinkL(const RMessage2& aMessage); + gint OpenUplinkL(const RMessage2& aMessage); + void SetFormat(const gint strmId, const TUint32 aFormat); + + void BufferFilledL(TUint dataSize); + void BufferEmptiedL(); + gint GetDataXferChunkHndl(const TMSStreamType strmType, + const TUint32 key, RChunk& chunk); + +private: + void ConstructL(); + CallIPAdpt(); + + void NotifyClient(const gint strmId, const TInt aCommand, + const TInt aStatus = KErrNone, const TInt64 aInt64 = TInt64(0)); + //void DetermineG711FrameRateL(); //G711 10/20ms + void GetSupportedBitRatesL(CBufFlat*& brbuffer); + +private: + gint iNextStreamId; + gboolean iUplinkInitialized; + gint iUplinkStreamId; + gboolean iDnlinkInitialized; + gint iDnlinkStreamId; + + TMSVoIPDownlink* iVoIPDownlink; + TMSVoIPUplink* iVoIPUplink; + + // Message queues for communication and data transfer back to the client + RMsgQueue iMsgQueueUp; + RMsgQueue iMsgQueueDn; + + TmsMsgBuf iMsgBuffer; + TMMFPrioritySettings iPriority; + TUint32 iUpFourCC; + TUint32 iDnFourCC; + TInt iMaxVolume; + TInt iMaxGain; + RArray iArrBitrates; + RArray iCodecs; + TInt iCodecsCount; + + }; + +} //namespace TMS + +#endif //__CALLIPADAPT_H + +// End of file