--- a/mmserv/tms/tmsserver/src/tmsserversession.cpp Tue Feb 02 01:08:46 2010 +0200
+++ b/mmserv/tms/tmsserver/src/tmsserversession.cpp Fri Apr 16 15:29:42 2010 +0300
@@ -19,6 +19,8 @@
#include "tmsutility.h"
#include "tmsclientserver.h"
#include "tmsshared.h"
+#include "tmsaudioinbandtoneplayer.h"
+#include "tmsrtplayer.h"
#include "tmsserversession.h"
using namespace TMS;
@@ -50,6 +52,7 @@
iServer.DropSession(); // will start shutdown if no more sessions left
delete iDevSound;
+ delete iInbandTonePlayer;
if (iMsgQueue.Handle() > 0)
{
@@ -99,7 +102,7 @@
{
TRAPD(err, DispatchMessageL(aMessage));
- if (err != KErrNone)
+ if (err != TMS_RESULT_SUCCESS)
{
aMessage.Complete(err);
}
@@ -143,19 +146,19 @@
break;
case ETMSStartRoutingNotifier:
iServer.StartRoutingNotifierL();
- aMessage.Complete(KErrNone);
+ aMessage.Complete(TMS_RESULT_SUCCESS);
break;
case ETMSCancelRoutingNotifier:
iServer.CancelRoutingNotifier();
- aMessage.Complete(KErrNone);
+ aMessage.Complete(TMS_RESULT_SUCCESS);
break;
case ETMSStartGlobalEffectNotifier:
iServer.StartCenRepHandlerL();
- aMessage.Complete(KErrNone);
+ aMessage.Complete(TMS_RESULT_SUCCESS);
break;
case ETMSCancelGlobalEffectNotifier:
iServer.CancelCenRepHandler();
- aMessage.Complete(KErrNone);
+ aMessage.Complete(TMS_RESULT_SUCCESS);
break;
case ETMSSetMsgQueueHandle:
SetMessageQueueHandleL(aMessage);
@@ -178,6 +181,79 @@
case ETMSGetMaxGlobalGain:
iServer.GetMaxGain(aMessage);
break;
+ case ETMSRingToneInitDefault:
+ iHasRtPlayer = ETrue;
+ iServer.OpenRingTonePlayerFromProfileL(aMessage);
+ break;
+ case ETMSRingToneInitFile:
+ iHasRtPlayer = ETrue;
+ iServer.OpenRingTonePlayerFromFileL(aMessage);
+ break;
+ case ETMSRingToneInitSequence:
+ iHasRtPlayer = ETrue;
+ iServer.OpenRingToneSequencePlayerL(aMessage);
+ break;
+ case ETMSRingToneInitBeepOnce:
+ iHasRtPlayer = ETrue;
+ iServer.OpenRingToneBeepOnceL();
+ aMessage.Complete(TMS_RESULT_SUCCESS);
+ break;
+ case ETMSRingToneInitSilent:
+ iHasRtPlayer = ETrue;
+ iServer.OpenRingToneSilentL();
+ aMessage.Complete(TMS_RESULT_SUCCESS);
+ break;
+ case ETMSRingToneInitUnsecureVoIP:
+ iHasRtPlayer = ETrue;
+ iServer.OpenRingToneUnsecureVoipL();
+ aMessage.Complete(TMS_RESULT_SUCCESS);
+ break;
+ case ETMSRingToneDeinit:
+ iServer.DeinitRingTonePlayer();
+ NotifyClient(ECmdRingToneDeinitComplete, KErrNone);
+ iHasRtPlayer = EFalse;
+ aMessage.Complete(TMS_RESULT_SUCCESS);
+ break;
+ case ETMSRingTonePlay:
+ iHasRtPlayer = ETrue; //will play w/o prior initialization
+ iServer.PlayRingToneL();
+ aMessage.Complete(TMS_RESULT_SUCCESS);
+ break;
+ case ETMSRingTonePause:
+ iServer.PauseVideoRingTone();
+ aMessage.Complete(TMS_RESULT_SUCCESS);
+ break;
+ case ETMSRingToneStop:
+ iServer.StopRingTone();
+ aMessage.Complete(TMS_RESULT_SUCCESS);
+ break;
+ case ETMSRingToneMute:
+ iServer.MuteRingTone();
+ aMessage.Complete(TMS_RESULT_SUCCESS);
+ break;
+ case ETMSStartDTMFNotifier:
+ iServer.StartDTMFNotifierL();
+ aMessage.Complete(TMS_RESULT_SUCCESS);
+ break;
+ case ETMSCancelDTMFNotifier:
+ iServer.CancelDTMFNotifier();
+ aMessage.Complete(TMS_RESULT_SUCCESS);
+ break;
+ case ETMSStartDTMF:
+ iServer.StartDTMF(aMessage);
+ break;
+ case ETMSStopDTMF:
+ iServer.StopDTMF(aMessage);
+ break;
+ case ETMSContinueDTMF:
+ iServer.ContinueSendingDTMF(aMessage);
+ break;
+ case ETMSStartInbandTone:
+ StartInbandTone(aMessage);
+ break;
+ case ETMSStopInbandTone:
+ StopInbandTone(aMessage);
+ break;
default:
User::Leave(KErrNotSupported);
break;
@@ -192,16 +268,16 @@
//
void TMSServerSession::SetMessageQueueHandleL(const RMessage2& aMessage)
{
- gint status = KErrNone;
+ gint status = TMS_RESULT_SUCCESS;
if (iMsgQueue.Handle() <= 0)
{
status = iMsgQueue.Open(aMessage, 0);
}
- if (status != KErrNone)
+ if (status != TMS_RESULT_SUCCESS)
{
User::Leave(KErrArgument);
}
- aMessage.Complete(KErrNone);
+ aMessage.Complete(TMS_RESULT_SUCCESS);
}
// -----------------------------------------------------------------------------
@@ -212,7 +288,7 @@
{
TInt level = aMessage.Int0();
iServer.SetLevel(this, TRUE, level);
- aMessage.Complete(KErrNone);
+ aMessage.Complete(TMS_RESULT_SUCCESS);
}
// -----------------------------------------------------------------------------
@@ -223,7 +299,7 @@
{
TInt gain = aMessage.Int0();
iServer.SetGain(this, gain);
- aMessage.Complete(KErrNone);
+ aMessage.Complete(TMS_RESULT_SUCCESS);
}
// -----------------------------------------------------------------------------
@@ -233,10 +309,8 @@
void TMSServerSession::HandleGlobalEffectChange(TInt globalevent)
{
TRACE_PRN_FN_ENT;
- iMsgBuffer.iRequest = ECmdGlobalEffectChange;
- iMsgBuffer.iStatus = KErrNone;
iMsgBuffer.iInt = globalevent;
- NotifyClient();
+ NotifyClient(ECmdGlobalEffectChange);
TRACE_PRN_FN_EXT;
}
@@ -247,11 +321,9 @@
void TMSServerSession::HandleRoutingChange(TRoutingMsgBufPckg routinginfo)
{
TRACE_PRN_FN_ENT;
- iMsgBuffer.iRequest = ECmdGlobalRoutingChange;
- iMsgBuffer.iStatus = KErrNone;
iMsgBuffer.iInt = routinginfo().iEvent;
iMsgBuffer.iUint = routinginfo().iOutput;
- NotifyClient();
+ NotifyClient(ECmdGlobalRoutingChange);
TRACE_PRN_FN_EXT;
}
@@ -280,7 +352,7 @@
void TMSServerSession::GetCodecsCountL(const RMessage2& aMessage,
TMSStreamType strmType)
{
- TInt err = KErrNone;
+ TInt err = TMS_RESULT_SUCCESS;
TInt codecsCount = 0;
RArray<TFourCC>* codecs;
@@ -315,13 +387,6 @@
err = KErrNotSupported;
}
-#ifdef __WINSCW__
- // Support for adaptation stubs
- codecs->Append(KMccFourCCIdG711);
- codecs->Append(KMccFourCCIdG729);
- codecs->Append(KMccFourCCIdILBC);
- codecs->Append(KMccFourCCIdAMRNB);
-#endif
codecsCount = codecs->Count();
}
@@ -339,7 +404,7 @@
#endif //__WINSCW__
p().iStatus = err;
aMessage.WriteL(0, p);
- aMessage.Complete(KErrNone);
+ aMessage.Complete(TMS_RESULT_SUCCESS);
}
// -----------------------------------------------------------------------------
@@ -373,7 +438,7 @@
aMessage.WriteL(0, dataCopyBuffer->Ptr(0));
CleanupStack::PopAndDestroy(&stream);
CleanupStack::PopAndDestroy(dataCopyBuffer);
- aMessage.Complete(KErrNone);
+ aMessage.Complete(TMS_RESULT_SUCCESS);
TRACE_PRN_FN_EXT;
}
@@ -386,15 +451,67 @@
{
TInt output = aMessage.Int0();
iServer.SetOutput(this, output);
- aMessage.Complete(KErrNone);
+ aMessage.Complete(TMS_RESULT_SUCCESS);
+ }
+
+// -----------------------------------------------------------------------------
+// TMSServerSession::StartInbandTone
+//
+// -----------------------------------------------------------------------------
+//
+void TMSServerSession::StartInbandTone(const RMessage2& aMessage)
+ {
+ if (!iInbandTonePlayer)
+ {
+ //TODO: Add inband tone observer
+ iInbandTonePlayer = TMSAudioInbandTonePlayer::NewL();
+ }
+
+ if (iInbandTonePlayer)
+ {
+ TMSInbandToneType tonetype = (TMSInbandToneType) aMessage.Int0();
+ iInbandTonePlayer->PlayInbandTone(tonetype);
+ }
+
+ //TODO: Move to inband tone observer callback
+ NotifyClient(ECmdInbandToneStarted);
+ aMessage.Complete(TMS_RESULT_SUCCESS);
+ }
+
+// -----------------------------------------------------------------------------
+// TMSServerSession::StopInbandTone
+//
+// -----------------------------------------------------------------------------
+//
+void TMSServerSession::StopInbandTone(const RMessage2& aMessage)
+ {
+ if (iInbandTonePlayer)
+ {
+ iInbandTonePlayer->Cancel();
+ }
+
+ //TODO: Move to inband tone observer callback
+ NotifyClient(ECmdInbandToneStopped);
+ aMessage.Complete(TMS_RESULT_SUCCESS);
}
// -----------------------------------------------------------------------------
// TMSServerSession::NotifyClient
// -----------------------------------------------------------------------------
//
-void TMSServerSession::NotifyClient()
+void TMSServerSession::NotifyClient(const TInt aCommand, const TInt aStatus)
{
+ if (aCommand == ECmdRingToneOpenComplete ||
+ aCommand == ECmdRingToneOpenComplete)
+ {
+ if (!iHasRtPlayer)
+ {
+ return;
+ }
+ }
+
+ iMsgBuffer.iRequest = aCommand;
+ iMsgBuffer.iStatus = aStatus;
if (iMsgQueue.Handle() > 0)
{
iMsgQueue.Send(iMsgBuffer);