mmserv/tms/tmsserver/src/tmsserver.cpp
branchRCL_3
changeset 19 095bea5f582e
parent 17 60e492b28869
child 20 0ac9a5310753
--- a/mmserv/tms/tmsserver/src/tmsserver.cpp	Thu Aug 19 10:26:11 2010 +0300
+++ b/mmserv/tms/tmsserver/src/tmsserver.cpp	Tue Aug 31 15:43:02 2010 +0300
@@ -18,6 +18,7 @@
 #include <e32svr.h>
 #include <e32uid.h>
 #include <e32capability.h>
+#include <AudioPreference.h>
 #include "tmsutility.h"
 #include "tmsclientserver.h"
 #include "tmstelephonycenrep.h"
@@ -29,6 +30,10 @@
 #include "tmsglobaleffectssettings.h"
 #include "tmstareventhandler.h"
 #include "tmscenrepaudiohandler.h"
+#include "tmsdtmftoneplayer.h"
+#include "tmsdtmfprovider.h"
+#include "tmspubsublistener.h"
+#include "tmsrtparam.h"
 #include "tmsserver.h"
 
 using namespace TMS;
@@ -80,7 +85,12 @@
     delete iEffectSettings;
     delete iTarHandler;
     delete iAudioCenRepHandler;
-
+    DeinitRingTonePlayer();
+    delete iTMSRtPlayer;
+    delete iDTMFUplinkPlayer;
+    delete iDTMFUplinkPlayerEtel;
+    delete iDTMFDnlinkPlayer;
+    delete iSyncVol;
     TRACE_PRN_FN_EXT;
     }
 
@@ -129,6 +139,14 @@
     iTarHandler = NULL;
     iAudioCenRepHandler = NULL;
     iCurrentRouting = TMS_AUDIO_OUTPUT_PRIVATE;
+    iDTMFDnlinkPlayer = NULL;
+    iDTMFUplinkPlayer = NULL;
+    iDTMFUplinkPlayerEtel = NULL;
+    iActiveCallType = -1;
+    iSyncVol = TMSPubSubListener::NewL(KTMSPropertyCategory,ESyncVolume, this);
+
+    //TODO: EUnit fails to initialize ProfileEngine in RT in eshell mode
+    TRAP_IGNORE(InitRingTonePlayerL());
 
     // We need it running for global volume change updates
     StartRoutingNotifierL();
@@ -180,46 +198,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// TMSServer::SetDnLinkSession
-//
-// -----------------------------------------------------------------------------
-//
-void TMSServer::SetDnLinkSession(const TBool aSession)
-    {
-    iDnlinkSession = aSession;
-    }
-
-// -----------------------------------------------------------------------------
-// TMSServer::SetUpLinkSession
-//
-// -----------------------------------------------------------------------------
-//
-void TMSServer::SetUpLinkSession(const TBool aSession)
-    {
-    iUplinkSession = aSession;
-    }
-
-// -----------------------------------------------------------------------------
-// TMSServer::HasDnLinkSession
-//
-// -----------------------------------------------------------------------------
-//
-TBool TMSServer::HasDnLinkSession() const
-    {
-    return iDnlinkSession;
-    }
-
-// -----------------------------------------------------------------------------
-// TMSServer::HasUpLinkSession
-//
-// -----------------------------------------------------------------------------
-//
-TBool TMSServer::HasUpLinkSession() const
-    {
-    return iUplinkSession;
-    }
-
-// -----------------------------------------------------------------------------
 // TMSServer::GetNewTMSCallSessionHandleL
 //
 // -----------------------------------------------------------------------------
@@ -262,7 +240,7 @@
 
     TInt status = TMS_RESULT_SUCCESS;
     TMSStartAndMonitorTMSCallThread* callServerThread = NULL;
-    TRAP(status, callServerThread =TMSStartAndMonitorTMSCallThread::NewL(
+    TRAP(status, callServerThread = TMSStartAndMonitorTMSCallThread::NewL(
             const_cast<TMSServer*>(this)));
     if (status != TMS_RESULT_SUCCESS)
         {
@@ -287,11 +265,13 @@
                 case TMS_AUDIO_OUTPUT_LOUDSPEAKER:
                     {
                     iEffectSettings->GetLoudSpkrVolume(volume);
+                    TRACE_PRN_N1(_L("loudspk vol %d"),volume);
                     }
                     break;
                 default:
                     {
                     iEffectSettings->GetEarPieceVolume(volume);
+                    TRACE_PRN_N1(_L("ear vol %d"),volume);
                     }
                     break;
                 }
@@ -564,9 +544,11 @@
         case TMS_AUDIO_OUTPUT_PUBLIC:
         case TMS_AUDIO_OUTPUT_LOUDSPEAKER:
             iEffectSettings->GetLoudSpkrVolume(volume);
+            TRACE_PRN_N1(_L("TMSServer::GetLevel loudspkr vol %d"),volume);
             break;
         default:
             iEffectSettings->GetEarPieceVolume(volume);
+            TRACE_PRN_N1(_L("TMSServer::GetLevel ear vol %d"),volume);
             break;
         }
 
@@ -624,16 +606,12 @@
             }
 
         iSessionIter.SetToFirst();
-        TMSServerSession* serverSession =
-                static_cast<TMSServerSession*> (iSessionIter++);
-
-        while (serverSession != NULL)
+        TMSServerSession* ss = static_cast<TMSServerSession*> (iSessionIter++);
+        while (ss != NULL)
             {
-            serverSession->HandleGlobalEffectChange(
-                    TMS_EVENT_EFFECT_VOL_CHANGED, level, EFalse,
-                    iCurrentRouting);
-
-            serverSession = static_cast<TMSServerSession*> (iSessionIter++);
+            ss->HandleGlobalEffectChange(TMS_EVENT_EFFECT_VOL_CHANGED, level,
+                    EFalse, iCurrentRouting);
+            ss = static_cast<TMSServerSession*> (iSessionIter++);
             }
         }
 
@@ -700,15 +678,11 @@
         iAudioCenRepHandler->SetMuteState(level);
         iEffectSettings->SetGain(level);
         iSessionIter.SetToFirst();
-
-        TMSServerSession* serverSession =
-                static_cast<TMSServerSession*> (iSessionIter++);
-
-        while (serverSession != NULL)
+        TMSServerSession* ss = static_cast<TMSServerSession*> (iSessionIter++);
+        while (ss != NULL)
             {
-            serverSession->HandleGlobalEffectChange(
-                    TMS_EVENT_EFFECT_GAIN_CHANGED, level);
-            serverSession = static_cast<TMSServerSession*> (iSessionIter++);
+            ss->HandleGlobalEffectChange(TMS_EVENT_EFFECT_GAIN_CHANGED, level);
+            ss = static_cast<TMSServerSession*> (iSessionIter++);
             }
         }
 
@@ -827,32 +801,43 @@
     TRACE_PRN_FN_ENT;
 
     TInt vol;
-    iCurrentRouting = routingpckg().iOutput;
-    if (iCurrentRouting == TMS_AUDIO_OUTPUT_PUBLIC ||
-            iCurrentRouting == TMS_AUDIO_OUTPUT_LOUDSPEAKER)
+    TInt status(TMS_RESULT_SUCCESS);
+    FindActiveCallType();
+
+    if (iActiveCallType == TMS_CALL_CS)
         {
-        iEffectSettings->GetLoudSpkrVolume(vol);
-        }
-    else
-        {
-        iEffectSettings->GetEarPieceVolume(vol);
+
+        iCurrentRouting = routingpckg().iOutput;
+        if (iCurrentRouting == TMS_AUDIO_OUTPUT_PUBLIC || 
+        	  iCurrentRouting == TMS_AUDIO_OUTPUT_LOUDSPEAKER)
+            {
+            iEffectSettings->GetLoudSpkrVolume(vol);
+            TRACE_PRN_N1(_L("TMSServer::NotifyTarClients loudspkr vol %d"),vol);
+            }
+        else
+            {
+            iEffectSettings->GetEarPieceVolume(vol);
+            TRACE_PRN_N1(_L("TMSServer::NotifyTarClients ear vol %d"),vol);
+            }
+
+        status = SendMessageToCallServ(TMS_EFFECT_GLOBAL_VOL_SET, vol);
         }
 
-    TInt status = SendMessageToCallServ(TMS_EFFECT_GLOBAL_VOL_SET, vol);
-
     iSessionIter.SetToFirst();
-    TMSServerSession* serverSession =
-            static_cast<TMSServerSession*> (iSessionIter++);
-    while (serverSession != NULL)
+    TMSServerSession* ss = static_cast<TMSServerSession*> (iSessionIter++);
+    while (ss != NULL)
         {
         // Send only if there is a subscriber to TMS routing notifications.
         if (iTarHandlerCount > 1)
             {
-            serverSession->HandleRoutingChange(routingpckg);
+            ss->HandleRoutingChange(routingpckg);
             }
-        serverSession->HandleGlobalEffectChange(TMS_EVENT_EFFECT_VOL_CHANGED,
-                vol, ETrue, iCurrentRouting);
-        serverSession = static_cast<TMSServerSession*> (iSessionIter++);
+        if (iActiveCallType == TMS_CALL_CS)
+            {
+            ss->HandleGlobalEffectChange(TMS_EVENT_EFFECT_VOL_CHANGED, vol,
+                    ETrue, iCurrentRouting);
+            }
+        ss = static_cast<TMSServerSession*> (iSessionIter++);
         }
 
     TRACE_PRN_FN_EXT;
@@ -860,6 +845,603 @@
     }
 
 // -----------------------------------------------------------------------------
+// TMSServer::InitDTMF
+//
+// -----------------------------------------------------------------------------
+//
+TInt TMSServer::InitDTMF(const RMessage2& aMessage)
+    {
+    TRACE_PRN_FN_ENT;
+    TInt status(TMS_RESULT_SUCCESS);
+    TMSStreamType strmtype;
+    strmtype = (TMSStreamType) aMessage.Int0();
+
+    if (strmtype == TMS_STREAM_UPLINK)
+        {
+        if (!iDTMFUplinkPlayerEtel) //CS call
+            {
+            // Uses ETel for uplink
+            TRAP(status, iDTMFUplinkPlayerEtel = TMSDTMFProvider::NewL());
+            if (iDTMFUplinkPlayerEtel && status == TMS_RESULT_SUCCESS)
+                {
+                iDTMFUplinkPlayerEtel->AddObserver(*this);
+                }
+            }
+        if (!iDTMFUplinkPlayer) //IP call
+            {
+            TRAP(status, iDTMFUplinkPlayer = TMSAudioDtmfTonePlayer::NewL(*this,
+                    KAudioDTMFString, KAudioPriorityDTMFString));
+            }
+        }
+    else if (strmtype == TMS_STREAM_DOWNLINK)
+        {
+        if (!iDTMFDnlinkPlayer) //CS or IP call
+            {
+            TRAP(status, iDTMFDnlinkPlayer = TMSAudioDtmfTonePlayer::NewL(*this,
+                    KAudioDTMFString, KAudioPriorityDTMFString));
+            }
+        }
+
+    aMessage.Complete(status);
+    TRACE_PRN_FN_EXT;
+    return status;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::StartDTMF
+//
+// -----------------------------------------------------------------------------
+//
+TInt TMSServer::StartDTMF(const RMessage2& aMessage)
+    {
+    TRACE_PRN_FN_ENT;
+
+    TInt status(TMS_RESULT_SUCCESS);
+    TInt len(0);
+    TMSStreamType strmtype;
+    strmtype = (TMSStreamType) aMessage.Int0();
+    len = aMessage.GetDesLength(1);
+    if (len > 0)
+        {
+        HBufC* tone(NULL);
+        TRAP(status, tone = HBufC::NewL(len));
+        if (status == TMS_RESULT_SUCCESS)
+            {
+            TPtr ptr = tone->Des();
+            status = aMessage.Read(1, ptr);
+            TRACE_PRN_N(ptr);
+
+            if (strmtype == TMS_STREAM_UPLINK)
+                {
+#ifdef __WINSCW__
+                // Just to hear DTMF tones in Wins
+                iActiveCallType = TMS_CALL_IP;
+#else
+                FindActiveCallType();
+#endif
+                if (iActiveCallType == TMS_CALL_IP && iDTMFUplinkPlayer)
+                    {
+                    iDTMFUplinkPlayer->PlayDtmfTone(ptr);
+                    status = TMS_RESULT_SUCCESS;
+                    }
+                else if (iActiveCallType == TMS_CALL_CS &&
+                        iDTMFUplinkPlayerEtel)
+                    {
+                    status = iDTMFUplinkPlayerEtel->SendDtmfToneString(ptr);
+                    }
+                else
+                    {
+                    status = TMS_RESULT_INVALID_STATE;
+                    }
+                NotifyDtmfClients(ECmdDTMFToneUplPlayStarted, status);
+                }
+            else if (strmtype == TMS_STREAM_DOWNLINK)
+                {
+                status = TMS_RESULT_INVALID_STATE;
+                if (iDTMFDnlinkPlayer)
+                    {
+                    iDTMFDnlinkPlayer->PlayDtmfTone(ptr);
+                    status = TMS_RESULT_SUCCESS;
+                    }
+                NotifyDtmfClients(ECmdDTMFToneDnlPlayStarted, status);
+                }
+            else
+                {
+                status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED;
+                }
+            }
+        delete tone;
+        tone = NULL;
+        }
+
+    aMessage.Complete(status);
+    TRACE_PRN_FN_EXT;
+    return status;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::StopDTMF
+//
+// -----------------------------------------------------------------------------
+//
+TInt TMSServer::StopDTMF(const RMessage2& aMessage)
+    {
+    TRACE_PRN_FN_ENT;
+
+    TInt status(TMS_RESULT_INVALID_STATE);
+    TMSStreamType streamtype;
+    streamtype = (TMSStreamType) aMessage.Int0();
+
+    if (streamtype == TMS_STREAM_UPLINK)
+        {
+        if (iActiveCallType == TMS_CALL_IP && iDTMFUplinkPlayer)
+            {
+            iDTMFUplinkPlayer->Cancel();
+            status = TMS_RESULT_SUCCESS;
+            }
+        else if (iActiveCallType == TMS_CALL_CS &&
+                iDTMFUplinkPlayerEtel)
+            {
+            status = iDTMFUplinkPlayerEtel->StopDtmfTone();
+            status = TMSUtility::EtelToTMSResult(status);
+            }
+        }
+    else if (streamtype == TMS_STREAM_DOWNLINK)
+        {
+        if (iDTMFDnlinkPlayer)
+            {
+            iDTMFDnlinkPlayer->Cancel();
+            status = TMS_RESULT_SUCCESS;
+            }
+        }
+    iActiveCallType = -1;
+    NotifyDtmfClients(ECmdDTMFTonePlayFinished, status);
+    aMessage.Complete(status);
+    TRACE_PRN_FN_EXT;
+    return status;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::ContinueSendingDTMF
+//
+// -----------------------------------------------------------------------------
+//
+TInt TMSServer::ContinueSendingDTMF(const RMessage2& aMessage)
+    {
+    TRACE_PRN_FN_ENT;
+    TInt status(TMS_RESULT_INVALID_STATE);
+    if (iActiveCallType == TMS_CALL_CS && iDTMFUplinkPlayerEtel)
+        {
+        TBool continuesnd = (TBool) aMessage.Int0();
+        status = iDTMFUplinkPlayerEtel->ContinueDtmfStringSending(continuesnd);
+        status = TMSUtility::EtelToTMSResult(status);
+        }
+    aMessage.Complete(status);
+    TRACE_PRN_FN_EXT;
+    return status;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::NotifyDtmfClients
+//
+// -----------------------------------------------------------------------------
+//
+TInt TMSServer::NotifyDtmfClients(gint aEventType, gint aError)
+    {
+    TRACE_PRN_FN_ENT;
+    iSessionIter.SetToFirst();
+    TMSServerSession* ss = static_cast<TMSServerSession*> (iSessionIter++);
+    while (ss != NULL)
+        {
+        ss->NotifyClient(aEventType, aError);
+        ss = static_cast<TMSServerSession*> (iSessionIter++);
+        }
+    TRACE_PRN_FN_EXT;
+    return TMS_RESULT_SUCCESS;
+    }
+
+//From DTMFTonePlayerObserver
+// -----------------------------------------------------------------------------
+// TMSServer::DTMFInitCompleted
+//
+// -----------------------------------------------------------------------------
+//
+void TMSServer::DTMFInitCompleted(gint status)
+    {
+    TRACE_PRN_FN_ENT;
+    if (status != TMS_RESULT_SUCCESS)
+        {
+        NotifyDtmfClients(ECmdDTMFTonePlayFinished, status);
+        }
+    TRACE_PRN_FN_EXT;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::DTMFToneFinished
+//
+// -----------------------------------------------------------------------------
+//
+void TMSServer::DTMFToneFinished(gint status)
+    {
+    TRACE_PRN_FN_ENT;
+    TRACE_PRN_IF_ERR(status);
+
+    // KErrUnderflow indicates end of DTMF playback.
+    if (status == KErrUnderflow /*|| status == KErrInUse*/)
+        {
+        status = TMS_RESULT_SUCCESS;
+        }
+    NotifyDtmfClients(ECmdDTMFTonePlayFinished, status);
+    TRACE_PRN_FN_EXT;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::FindActiveCallType
+//
+// -----------------------------------------------------------------------------
+//
+gint TMSServer::FindActiveCallType()
+    {
+    TInt status(TMS_RESULT_INVALID_STATE);
+    iActiveCallType = -1;
+    TInt i = 0;
+    while (i < iTMSCallServList.Count())
+        {
+        TMSStartAndMonitorTMSCallThread* callThread = iTMSCallServList[i];
+        if (callThread)
+            {
+            TmsCallMsgBufPckg pckg;
+            TIpcArgs args(&pckg);
+            status = callThread->iTMSCallProxyLocal.ReceiveFromCallServer(
+                    TMS_GET_ACTIVE_CALL_PARAMS, args);
+            if (pckg().iBool || status != TMS_RESULT_SUCCESS)
+                {
+                iActiveCallType = static_cast<TMSCallType> (pckg().iInt);
+                break;
+                }
+            }
+        i++;
+        }
+    return status;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::HandleDTMFEvent
+//
+// -----------------------------------------------------------------------------
+//
+void TMSServer::HandleDTMFEvent(const TMSDTMFObserver::TCCPDtmfEvent event,
+        const gint status, const TChar /*tone*/)
+    {
+    TRACE_PRN_FN_ENT;
+    TRACE_PRN_IF_ERR(status);
+    gint cmd = ECmdDTMFTonePlayFinished;
+
+    switch (event)
+        {
+        case ECCPDtmfUnknown:               //Unknown
+            break;
+        case ECCPDtmfManualStart:           //DTMF sending started manually
+        case ECCPDtmfSequenceStart:         //Automatic DTMF sending initialized
+            cmd = ECmdDTMFToneUplPlayStarted;
+            break;
+        case ECCPDtmfManualStop:            //DTMF sending stopped manually
+        case ECCPDtmfManualAbort:           //DTMF sending aborted manually
+        case ECCPDtmfSequenceStop:          //Automatic DTMF sending stopped
+        case ECCPDtmfSequenceAbort:         //Automatic DTMF sending aborted
+        case ECCPDtmfStopInDtmfString:      //There was stop mark in DTMF string
+        case ECCPDtmfStringSendingCompleted://DTMF sending success
+        default:
+            break;
+        }
+
+    NotifyDtmfClients(cmd, status);
+    TRACE_PRN_FN_EXT;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::InitRingTonePlayerL
+//
+// -----------------------------------------------------------------------------
+//
+void TMSServer::InitRingTonePlayerL()
+    {
+    TRACE_PRN_FN_ENT;
+
+    DeinitRingTonePlayer();
+
+    if (!iTMSRtPlayer)
+        {
+        iTMSRtPlayer = TMSRingTonePlayer::NewL(*this);
+        }
+
+    TRACE_PRN_FN_EXT;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::DeinitRingTonePlayer
+//
+// -----------------------------------------------------------------------------
+//
+void TMSServer::DeinitRingTonePlayer()
+    {
+    TRACE_PRN_FN_ENT;
+
+    if (iTMSRtPlayer)
+        {
+        iTMSRtPlayer->DeinitRingTonePlayer();
+        }
+
+    delete iRtFile;
+    iRtFile = NULL;
+    delete iRtSequence;
+    iRtSequence = NULL;
+    delete iTtsText;
+    iTtsText = NULL;
+
+    TRACE_PRN_FN_EXT;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::OpenRingTonePlayerFromFileL
+//
+// -----------------------------------------------------------------------------
+//
+void TMSServer::OpenRingTonePlayerFromFileL(const RMessage2& aMessage)
+    {
+    TRACE_PRN_FN_ENT;
+
+    gint status(TMS_RESULT_INVALID_ARGUMENT);
+    gint len = aMessage.GetDesLength(0);
+    if (len > 0)
+        {
+        InitRingTonePlayerL();
+
+        if (iTMSRtPlayer)
+            {
+            iRtFile = HBufC::NewL(len);
+            TPtr ptr = iRtFile->Des();
+            aMessage.ReadL(0, ptr);
+            iTMSRtPlayer->CreateRingTonePlayerL(EPlayerAudio, *iRtFile);
+            len = aMessage.GetDesLength(1);
+            if (len > 0)
+                {
+                delete iTtsText;
+                iTtsText = NULL;
+                iTtsText = HBufC::NewL(len);
+                TPtr ptr1 = iTtsText->Des();
+                aMessage.ReadL(1, ptr1);
+                iTMSRtPlayer->CreateTTSPlayerL(ptr1);
+                }
+            status = TMS_RESULT_SUCCESS;
+            }
+        }
+    aMessage.Complete(status);
+
+    TRACE_PRN_FN_EXT;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::OpenRingTonePlayerFromProfileL
+//
+// -----------------------------------------------------------------------------
+//
+void TMSServer::OpenRingTonePlayerFromProfileL(const RMessage2& aMessage)
+    {
+    TRACE_PRN_FN_ENT;
+
+    gint status(TMS_RESULT_INVALID_ARGUMENT);
+    InitRingTonePlayerL();
+
+    if (iTMSRtPlayer)
+        {
+        iTMSRtPlayer->CreateRingTonePlayerL(EPlayerDefault);
+        gint len = aMessage.GetDesLength(1);
+        if (len > 0)
+            {
+            delete iTtsText;
+            iTtsText = NULL;
+            iTtsText = HBufC::NewL(len);
+            TPtr ptr = iTtsText->Des();
+            aMessage.ReadL(1, ptr);
+            iTMSRtPlayer->CreateTTSPlayerL(ptr);
+            }
+        status = TMS_RESULT_SUCCESS;
+        }
+    aMessage.Complete(status);
+
+    TRACE_PRN_FN_EXT;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::OpenRingToneSequencePlayerL
+//
+// -----------------------------------------------------------------------------
+//
+void TMSServer::OpenRingToneSequencePlayerL(const RMessage2& aMessage)
+    {
+    TRACE_PRN_FN_ENT;
+
+    gint status(TMS_RESULT_INVALID_ARGUMENT);
+    gint len = aMessage.GetDesLength(0);
+    if (len > 0)
+        {
+        InitRingTonePlayerL();
+        iRtSequence = HBufC8::NewL(len);
+        TPtr8 ptr = iRtSequence->Des();
+        aMessage.ReadL(0, ptr);
+
+        if (iTMSRtPlayer)
+            {
+            iTMSRtPlayer->CreateCustomSequencePlayerL(ptr);
+            status = TMS_RESULT_SUCCESS;
+            }
+        }
+    aMessage.Complete(status);
+
+    TRACE_PRN_FN_EXT;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::OpenRingToneBeepOnceL
+//
+// -----------------------------------------------------------------------------
+//
+void TMSServer::OpenRingToneBeepOnceL()
+    {
+    TRACE_PRN_FN_ENT;
+
+    InitRingTonePlayerL();
+
+    if (iTMSRtPlayer)
+        {
+        iTMSRtPlayer->CreateSequencePlayerL(EPlayerBeepOnce);
+        }
+
+    TRACE_PRN_FN_EXT;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::DeinitRingTone
+//
+// -----------------------------------------------------------------------------
+//
+void TMSServer::OpenRingToneSilentL()
+    {
+    TRACE_PRN_FN_ENT;
+
+    InitRingTonePlayerL();
+
+    if (iTMSRtPlayer)
+        {
+        iTMSRtPlayer->CreateSequencePlayerL(EPlayerSilent);
+        }
+
+    TRACE_PRN_FN_EXT;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::OpenRingToneUnsecureVoipL
+//
+// -----------------------------------------------------------------------------
+//
+void TMSServer::OpenRingToneUnsecureVoipL()
+    {
+    TRACE_PRN_FN_ENT;
+
+    InitRingTonePlayerL();
+
+    if (iTMSRtPlayer)
+        {
+        iTMSRtPlayer->CreateSequencePlayerL(EPlayerUnsecureVoIP);
+        }
+
+    TRACE_PRN_FN_EXT;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::PlayRingToneL
+//
+// -----------------------------------------------------------------------------
+//
+void TMSServer::PlayRingToneL()
+    {
+    TRACE_PRN_FN_ENT;
+
+    if (iTMSRtPlayer)
+        {
+        iTMSRtPlayer->PlayRingToneL();
+        }
+    else
+        {
+        User::Leave(TMS_RESULT_UNINITIALIZED_OBJECT);
+        }
+
+    TRACE_PRN_FN_EXT;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::PauseVideoRingTone
+//
+// -----------------------------------------------------------------------------
+//
+void TMSServer::PauseVideoRingTone()
+    {
+    StopRingTone();
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::StopRingTone
+//
+// -----------------------------------------------------------------------------
+//
+void TMSServer::StopRingTone()
+    {
+    TRACE_PRN_FN_ENT;
+
+    if (iTMSRtPlayer)
+        {
+        iTMSRtPlayer->StopPlaying();
+        }
+
+    TRACE_PRN_FN_EXT;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::MuteRingTone
+//
+// -----------------------------------------------------------------------------
+//
+void TMSServer::MuteRingTone()
+    {
+    TRACE_PRN_FN_ENT;
+
+    if (iTMSRtPlayer)
+        {
+        iTMSRtPlayer->MuteRingTone();
+        }
+
+    TRACE_PRN_FN_EXT;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::RtPlayerEvent
+//
+// -----------------------------------------------------------------------------
+//
+void TMSServer::RtPlayerEvent(gint aEventType, gint aError)
+    {
+    TRACE_PRN_FN_ENT;
+
+    iSessionIter.SetToFirst();
+    TMSServerSession* ss = static_cast<TMSServerSession*> (iSessionIter++);
+
+    while (ss != NULL)
+        {
+        ss->NotifyClient(aEventType, aError);
+        ss = static_cast<TMSServerSession*> (iSessionIter++);
+        }
+
+    TRACE_PRN_FN_EXT;
+    }
+
+// -----------------------------------------------------------------------------
+// TMSServer::HandleNotifyPSL
+//
+// -----------------------------------------------------------------------------
+//
+void TMSServer::HandleNotifyPSL(const TUid aUid, const TInt& aKey,
+            const TRequestStatus& aStatus)
+    {
+    TRACE_PRN_FN_ENT;
+    if(iEffectSettings)
+        {
+        iEffectSettings->ResetDefaultVolume();
+        }
+    TRACE_PRN_FN_EXT;
+    }
+
+// -----------------------------------------------------------------------------
 // TMSServer::RunServerL
 //
 // -----------------------------------------------------------------------------
@@ -1143,4 +1725,3 @@
     return r;
     }
 
-// End of file