diff -r 000000000000 -r 71ca22bcf22a mmserv/tms/tmscallserver/src/tmscallsession.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmserv/tms/tmscallserver/src/tmscallsession.cpp Tue Feb 02 01:08:46 2010 +0200 @@ -0,0 +1,1112 @@ +/* + * 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 + * + */ + +#include "tmsutility.h" +#include "tmsutility.h" +#include "calladpt.h" +#include "tmscallserver.h" +#include "tmscallclisrv.h" +#include "tmscallsession.h" + +using namespace TMS; + +const guint KArrayExpandSize = 8; + +// ----------------------------------------------------------------------------- +// TMSCallSession::TMSCallSession +// ----------------------------------------------------------------------------- +// +TMSCallSession::TMSCallSession(TMSCallServer &aServer) : + iTMSCallServer(aServer) + { + TRACE_PRN_FN_ENT; + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::~TMSCallSession +// The destructor +// ----------------------------------------------------------------------------- +// +TMSCallSession::~TMSCallSession() + { + TRACE_PRN_FN_ENT; + delete iCallAdpt; + iTMSCallServer.DropSession(); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::NewL +// Symbian constructor. +// ----------------------------------------------------------------------------- +// +TMSCallSession* TMSCallSession::NewL(TMSCallServer &aServer) + { + TRACE_PRN_FN_ENT; + TMSCallSession* self = new (ELeave) TMSCallSession(aServer); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + TRACE_PRN_FN_EXT; + return self; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::ConstructL +// 2-nd phase constructor. +// ----------------------------------------------------------------------------- +// +void TMSCallSession::ConstructL() + { + TRACE_PRN_FN_ENT; + iTMSCallServer.AddSession(); //add new session + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::ServiceL +// Service request handler. +// ----------------------------------------------------------------------------- +// +void TMSCallSession::ServiceL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + TRAPD(status, HandleMessageL(aMessage)); + if (status != TMS_RESULT_SUCCESS) + { + aMessage.Complete(status); + } + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleMessageL +// Service request handler. +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleMessageL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + switch (aMessage.Function()) + { + case TMS_CREATE_CALL: + HandleCreateCallL(aMessage); + break; + case TMS_CREATE_STREAM: + HandleCreateStreamL(aMessage); + break; + case TMS_INIT_STREAM: + HandleInitStreamL(aMessage); + break; + case TMS_START_STREAM: + HandleStartStreamL(aMessage); + break; + case TMS_PAUSE_STREAM: + HandlePauseStreamL(aMessage); + break; + case TMS_STOP_STREAM: + HandleStopStreamL(aMessage); + break; + case TMS_DEINIT_STREAM: + HandleDeinitStreamL(aMessage); + break; + case TMS_DELETE_STREAM: + HandleDeleteStreamL(aMessage); + break; + case TMS_DELETE_CALL: + HandleDeleteCallL(aMessage); + break; + case TMS_DATA_XFER_BUFFER_EMPTIED: + HandleDataXferBufferEmptiedCallL(aMessage); + break; + case TMS_DATA_XFER_BUFFER_FILLED: + HandleDataXferBufferFilledCallL(aMessage); + break; + case TMS_DATA_XFER_BUFFER_GET_HNDL: + HandleDataXferBufferGetHndlCallL(aMessage); + break; + case TMS_EFFECT_VOLUME_GETMAX: + HandleEffectVolumeGetMaxVolL(aMessage); + break; + case TMS_EFFECT_VOLUME_SET: + HandleEffectVolumeSetVolL(aMessage); + break; + case TMS_EFFECT_VOLUME_GET: + HandleEffectVolumeGetVolL(aMessage); + break; + case TMS_EFFECT_GAIN_GETMAX: + HandleEffectVolumeGetMaxGainL(aMessage); + break; + case TMS_EFFECT_GAIN_SET: + HandleEffectVolumeSetGainL(aMessage); + break; + case TMS_EFFECT_GAIN_GET: + HandleEffectVolumeGetGainL(aMessage); + break; + case TMS_EFFECT_GLOBAL_VOL_SET: + HandleGlobalEffectVolumeSetVolL(aMessage); + break; + case TMS_EFFECT_GLOBAL_VOL_GET: + HandleGlobalEffectVolumeGetVolL(aMessage); + break; + case TMS_EFFECT_GLOBAL_VOL_GETMAX: + HandleGlobalEffectVolumeGetMaxVolL(aMessage); + break; + case TMS_EFFECT_GLOBAL_GAIN_SET: + HandleGlobalEffectVolumeSetGainL(aMessage); + break; + case TMS_EFFECT_GLOBAL_GAIN_GET: + HandleGlobalEffectVolumeGetGainL(aMessage); + break; + case TMS_EFFECT_GLOBAL_GAIN_GETMAX: + HandleGlobalEffectVolumeGetMaxGainL(aMessage); + break; + case TMS_FORMAT_SETCODECMODE: + HandleFormatSetCodecModeL(aMessage); + break; + case TMS_FORMAT_GETCODECMODE: + HandleFormatGetCodecModeL(aMessage); + break; + case TMS_FORMAT_GETSUPPORTEDBITRATESCOUNT: + HandleFormatGetSupportedBitRatesCountL(aMessage); + break; + case TMS_FORMAT_GETSUPPORTEDBITRATES: + HandleFormatGetSupportedBitRatesL(aMessage); + break; + case TMS_FORMAT_SETBITRATE: + HandleFormatSetBitRateL(aMessage); + break; + case TMS_FORMAT_GETBITRATE: + HandleFormatGetBitRateL(aMessage); + break; + case TMS_FORMAT_SETVAD: + HandleFormatSetVADL(aMessage); + break; + case TMS_FORMAT_GETVAD: + HandleFormatGetVADL(aMessage); + break; + case TMS_FORMAT_SETCNG: + HandleFormatSetCNGL(aMessage); + break; + case TMS_FORMAT_GETCNG: + HandleFormatGetCNGL(aMessage); + break; + case TMS_FORMAT_SETPLC: + HandleFormatSetPlcL(aMessage); + break; + case TMS_FORMAT_GETPLC: + HandleFormatGetPlcL(aMessage); + break; + case TMS_ROUTING_OUTPUT_SET: + HandleRoutingSetOutputL(aMessage); + break; + case TMS_ROUTING_OUTPUT_GET: + HandleRoutingGetOutputL(aMessage); + break; + case TMS_ROUTING_PREVIOUSOUTPUT_GET: + HandleRoutingGetPreviousOutputL(aMessage); + break; + case TMS_ROUTING_AVAILABLE_OUTPUT_GET: + HandleRoutingGetAvailableOutputsL(aMessage); + break; + default: + User::Leave(TMS_RESULT_ILLEGAL_OPERATION); + break; + } + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleCreateCallL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleCreateCallL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_ALREADY_EXIST); + if (!iCallAdpt) + { + // Get Call type + gint callType = aMessage.Int0(); + status = CallAdpt::CreateCallL(callType, iCallAdpt); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleCreateStreamL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleCreateStreamL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + TMSCliSrvStreamCreateDataStructBufPckg pckg; + aMessage.ReadL(0, pckg); + gint outStrmId; + status = iCallAdpt->CreateStream(pckg().CallType, pckg().StreamType, + outStrmId); + if (status == TMS_RESULT_SUCCESS) + { + TPckgBuf outPckg(outStrmId); + aMessage.WriteL(1, outPckg); + } + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleInitStreamL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleInitStreamL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + TMSCliSrvStreamInitDataStructBufPckg pckg; + aMessage.ReadL(0, pckg); + status = iCallAdpt->InitStreamL(pckg().CallType, pckg().StreamType, + pckg().StreamId, pckg().FormatType, aMessage); + + switch (pckg().StreamType) + { + case TMS_STREAM_DOWNLINK: + { + iCallAdpt->SetGlobalVolume(iGlobalVol); + } + break; + case TMS_STREAM_UPLINK: + { + iCallAdpt->SetGlobalGain(iGlobalGain); + } + break; + default: + break; + } + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleStartStreamL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleStartStreamL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + TMSCliSrvStreamOpDataStructBufPckg pckg; + aMessage.ReadL(0, pckg); + status = iCallAdpt->StartStream(pckg().CallType, pckg().StreamType, + pckg().StreamId); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandlePauseStreamL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandlePauseStreamL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + TMSCliSrvStreamOpDataStructBufPckg pckg; + aMessage.ReadL(0, pckg); + status = iCallAdpt->PauseStream(pckg().CallType, pckg().StreamType, + pckg().StreamId); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleStopStreamL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleStopStreamL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + TMSCliSrvStreamOpDataStructBufPckg pckg; + aMessage.ReadL(0, pckg); + status = iCallAdpt->StopStream(pckg().CallType, pckg().StreamType, + pckg().StreamId); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleDeinitStreamL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleDeinitStreamL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + TMSCliSrvStreamOpDataStructBufPckg pckg; + aMessage.ReadL(0, pckg); + status = iCallAdpt->DeinitStream(pckg().CallType, pckg().StreamType, + pckg().StreamId); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleDeleteStreamL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleDeleteStreamL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + TMSCliSrvStreamOpDataStructBufPckg pckg; + aMessage.ReadL(0, pckg); + status = iCallAdpt->DeleteStream(pckg().CallType, pckg().StreamType, + pckg().StreamId); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleDeleteCallL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleDeleteCallL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + delete iCallAdpt; + iCallAdpt = NULL; + aMessage.Complete(TMS_RESULT_SUCCESS); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleDataXferBufferEmptiedCallL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleDataXferBufferEmptiedCallL( + const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + TMSCliSrvDataXferDataStructBufPckg pckg; + aMessage.ReadL(0, pckg); + status = iCallAdpt->DataXferBufferEmptied(pckg().CallType, + pckg().StreamType, pckg().StreamId); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleDataXferBufferFilledCallL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleDataXferBufferFilledCallL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + TMSCliSrvDataXferDataStructBufPckg pckg; + aMessage.ReadL(0, pckg); + status = iCallAdpt->DataXferBufferFilled(pckg().CallType, + pckg().StreamType, pckg().StreamId, pckg().DataSize); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleDataXferBufferGetHndlCallL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleDataXferBufferGetHndlCallL( + const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + RChunk chunk; + + if (iCallAdpt) + { + TMSCliSrvDataXferChunkHndlDataStructBufPckg pckg; + aMessage.ReadL(0, pckg); + status = iCallAdpt->GetDataXferBufferHndl(pckg().CallType, + pckg().StreamType, pckg().StreamId, pckg().Key, chunk); + } + + if (status == TMS_RESULT_SUCCESS && chunk.Handle() > 0) + { + aMessage.Complete(chunk); + } + else + { + // TODO: make sure error code is negative or zero + aMessage.Complete(0); + } + + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleEffectVolumeGetMaxVolL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleEffectVolumeGetMaxVolL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + guint vol; + status = iCallAdpt->GetMaxVolume(vol); + if (status == TMS_RESULT_SUCCESS) + { + TPckgBuf pckg(vol); + aMessage.WriteL(0, pckg); + } + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleEffectVolumeSetVolL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleEffectVolumeSetVolL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + guint vol; + vol = aMessage.Int0(); + status = iCallAdpt->SetVolume(vol); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleEffectVolumeGetVolL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleEffectVolumeGetVolL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + guint vol; + status = iCallAdpt->GetVolume(vol); + if (status == TMS_RESULT_SUCCESS) + { + TPckgBuf pckg(vol); + aMessage.WriteL(0, pckg); + } + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleEffectVolumeGetMaxGainL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleEffectVolumeGetMaxGainL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + guint gain; + status = iCallAdpt->GetMaxGain(gain); + if (status == TMS_RESULT_SUCCESS) + { + TPckgBuf pckg(gain); + aMessage.WriteL(0, pckg); + } + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleEffectVolumeSetGainL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleEffectVolumeSetGainL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + guint gain; + gain = aMessage.Int0(); + status = iCallAdpt->SetGain(gain); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleEffectVolumeGetGainL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleEffectVolumeGetGainL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + guint gain; + status = iCallAdpt->GetGain(gain); + if (status == TMS_RESULT_SUCCESS) + { + TPckgBuf pckg(gain); + aMessage.WriteL(0, pckg); + } + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleGlobalEffectVolumeGetMaxVolL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleGlobalEffectVolumeGetMaxVolL( + const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + guint vol(0); + status = iCallAdpt->GetGlobalMaxVolume(vol); + if (status == TMS_RESULT_SUCCESS) + { + TPckgBuf pckg(vol); + aMessage.WriteL(0, pckg); + } + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleGlobalEffectVolumeSetVolL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleGlobalEffectVolumeSetVolL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_SUCCESS); + iGlobalVol = aMessage.Int0(); + if (iCallAdpt) + { + guint vol(0); + vol = aMessage.Int0(); + status = iCallAdpt->SetGlobalVolume(vol); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleGlobalEffectVolumeGetVolL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleGlobalEffectVolumeGetVolL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + guint vol(0); + status = iCallAdpt->GetGlobalVolume(vol); + if (status == TMS_RESULT_SUCCESS) + { + TPckgBuf pckg(vol); + aMessage.WriteL(0, pckg); + } + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleGlobalEffectVolumeGetMaxGainL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleGlobalEffectVolumeGetMaxGainL( + const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + guint gain; + status = iCallAdpt->GetGlobalMaxGain(gain); + if (status == TMS_RESULT_SUCCESS) + { + TPckgBuf pckg(gain); + aMessage.WriteL(0, pckg); + } + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleGlobalEffectVolumeSetGainL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleGlobalEffectVolumeSetGainL( + const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_SUCCESS); + iGlobalGain = aMessage.Int0(); + if (iCallAdpt) + { + guint gain; + gain = aMessage.Int0(); + status = iCallAdpt->SetGlobalGain(gain); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleGlobalEffectVolumeGetGainL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleGlobalEffectVolumeGetGainL( + const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + guint gain; + status = iCallAdpt->GetGlobalGain(gain); + if (status == TMS_RESULT_SUCCESS) + { + TPckgBuf pckg(gain); + aMessage.WriteL(0, pckg); + } + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleFormatGetCodecModeL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleFormatGetCodecModeL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + + if (iCallAdpt) + { + gint mode; + TMSFormatType fmttype; + TMSStreamType strmtype; + fmttype = aMessage.Int0(); + strmtype = aMessage.Int1(); + status = iCallAdpt->GetCodecMode(fmttype, strmtype, mode); + TPckgBuf pckg(mode); + aMessage.WriteL(2, pckg); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleFormatSetCodecModeL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleFormatSetCodecModeL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + gint mode; + TMSFormatType fmttype; + TMSStreamType strmtype; + fmttype = aMessage.Int0(); + strmtype = aMessage.Int1(); + mode = aMessage.Int2(); + status = iCallAdpt->SetCodecMode(fmttype, strmtype, mode); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleFormatGetSupportedBitRatesCountL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleFormatGetSupportedBitRatesCountL( + const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + guint count; + status = iCallAdpt->GetSupportedBitRatesCount(count); + TPckgBuf pckg(count); + aMessage.WriteL(0, pckg); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleFormatGetSupportedBitRatesL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleFormatGetSupportedBitRatesL( + const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + CBufFlat* brbuf = CBufFlat::NewL(KArrayExpandSize); + CleanupStack::PushL(brbuf); + status = iCallAdpt->GetSupportedBitRates(brbuf); + aMessage.WriteL(0, brbuf->Ptr(0)); + CleanupStack::PopAndDestroy(brbuf); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleFormatGetBitRateL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleFormatGetBitRateL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + guint bitrate; + status = iCallAdpt->GetBitRate(bitrate); + TPckgBuf pckg(bitrate); + aMessage.WriteL(0, pckg); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleFormatSetBitRateL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleFormatSetBitRateL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + guint bitrate; + bitrate = aMessage.Int0(); + status = iCallAdpt->SetBitRate(bitrate); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleFormatGetVADL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleFormatGetVADL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + gboolean vad; + TMSFormatType fmttype; + fmttype = (TMSFormatType) aMessage.Int0(); + status = iCallAdpt->GetVAD(fmttype, vad); + TPckgBuf pckg(vad); + aMessage.WriteL(1, pckg); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleFormatSetVADL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleFormatSetVADL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + gboolean vad; + TMSFormatType fmttype; + fmttype = (TMSFormatType) aMessage.Int0(); + vad = (gboolean) aMessage.Int1(); + status = iCallAdpt->SetVAD(fmttype, vad); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleFormatGetCNGL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleFormatGetCNGL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + gboolean cng; + TMSFormatType fmttype; + fmttype = (TMSFormatType) aMessage.Int0(); + status = iCallAdpt->GetCNG(fmttype, cng); + TPckgBuf pckg(cng); + aMessage.WriteL(1, pckg); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleFormatSetCNGL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleFormatSetCNGL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + gboolean cng; + TMSFormatType fmttype; + fmttype = (TMSFormatType) aMessage.Int0(); + cng = (gboolean) aMessage.Int1(); + status = iCallAdpt->SetCNG(fmttype, cng); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleFormatGetPlcL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleFormatGetPlcL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + gboolean plc; + TMSFormatType fmttype; + fmttype = (TMSFormatType) aMessage.Int0(); + status = iCallAdpt->GetPlc(fmttype, plc); + TPckgBuf pckg(plc); + aMessage.WriteL(1, pckg); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleFormatSetPlcL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleFormatSetPlcL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + gboolean plc; + TMSFormatType fmttype; + fmttype = (TMSFormatType) aMessage.Int0(); + plc = (gboolean) aMessage.Int1(); + status = iCallAdpt->SetPlc(fmttype, plc); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } + +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleRoutingSetOutputL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleRoutingSetOutputL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + if (iCallAdpt) + { + TMSAudioOutput outputtype; + outputtype = (TMSAudioOutput) aMessage.Int0(); + status = iCallAdpt->SetOutput(outputtype); + } + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + + } +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleRoutingGetOutputL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleRoutingGetOutputL(const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + TMSAudioOutput outputtype; + if (iCallAdpt) + { + status = iCallAdpt->GetOutput(outputtype); + } + TPckgBuf p(outputtype); + aMessage.Write(0, p); + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleRoutingGetPreviousOutputL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleRoutingGetPreviousOutputL( + const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + TMSAudioOutput outputtype; + if (iCallAdpt) + { + status = iCallAdpt->GetPreviousOutput(outputtype); + } + TPckgBuf p(outputtype); + aMessage.Write(0, p); + aMessage.Complete(status); + TRACE_PRN_FN_EXT; + } +// ----------------------------------------------------------------------------- +// TMSCallSession::HandleRoutingGetAvailableOutputsL +// +// ----------------------------------------------------------------------------- +// +void TMSCallSession::HandleRoutingGetAvailableOutputsL( + const RMessage2& aMessage) + { + TRACE_PRN_FN_ENT; + gint status(TMS_RESULT_DOES_NOT_EXIST); + TPckgBuf countpkg; + gint count; + if (iCallAdpt) + { + CBufFlat* outputbuf = CBufFlat::NewL(10); + CleanupStack::PushL(outputbuf); + status = iCallAdpt->GetAvailableOutputsL(count, outputbuf); + + countpkg() = count; + aMessage.WriteL(0, countpkg); + aMessage.WriteL(1, outputbuf->Ptr(0)); + CleanupStack::PopAndDestroy(outputbuf); + } + aMessage.Complete(status); + } + +// End of file