mmserv/tms/tmscallserver/inc/callipadpt.h
changeset 0 71ca22bcf22a
child 3 4f62049db6ac
child 12 5a06f39ad45b
--- /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 <e32msgqueue.h>
+#include <mmcccodecinformation.h>
+#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<TmsMsgBuf> iMsgQueueUp;
+    RMsgQueue<TmsMsgBuf> iMsgQueueDn;
+
+    TmsMsgBuf iMsgBuffer;
+    TMMFPrioritySettings iPriority;
+    TUint32 iUpFourCC;
+    TUint32 iDnFourCC;
+    TInt iMaxVolume;
+    TInt iMaxGain;
+    RArray<TUint> iArrBitrates;
+    RArray<TFourCC> iCodecs;
+    TInt iCodecsCount;
+
+    };
+
+} //namespace TMS
+
+#endif //__CALLIPADAPT_H
+
+// End of file