--- a/mmserv/tms/tmsserver/src/tmsserversession.cpp Thu Aug 19 10:26:11 2010 +0300
+++ b/mmserv/tms/tmsserver/src/tmsserversession.cpp Tue Aug 31 15:43:02 2010 +0300
@@ -15,10 +15,11 @@
*
*/
-#include <AudioPreference.h>
#include "tmsutility.h"
#include "tmsclientserver.h"
#include "tmsshared.h"
+#include "tmsaudioinbandtoneplayer.h"
+#include "tmsrtplayer.h"
#include "tmsserversession.h"
using namespace TMS;
@@ -50,6 +51,7 @@
iServer.DropSession(); // will start shutdown if no more sessions left
delete iDevSound;
+ delete iInbandTonePlayer;
if (iMsgQueue.Handle() > 0)
{
@@ -178,6 +180,74 @@
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 ETMSInitDTMF:
+ iServer.InitDTMF(aMessage);
+ 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;
@@ -383,11 +453,61 @@
}
// -----------------------------------------------------------------------------
+// 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(const TInt aCommand, const TInt aStatus)
{
+ if (aCommand == ECmdRingToneOpenComplete ||
+ aCommand == ECmdRingToneOpenComplete)
+ {
+ if (!iHasRtPlayer)
+ {
+ return;
+ }
+ }
+
iMsgBuffer.iRequest = aCommand;
iMsgBuffer.iStatus = aStatus;
if (iMsgQueue.Handle() > 0)
@@ -396,4 +516,3 @@
}
}
-// End of file