mmserv/tms/tmsserver/src/tmsserversession.cpp
branchRCL_3
changeset 46 0ac9a5310753
parent 45 095bea5f582e
equal deleted inserted replaced
45:095bea5f582e 46:0ac9a5310753
    13  *
    13  *
    14  * Description: Telephony Multimedia Service
    14  * Description: Telephony Multimedia Service
    15  *
    15  *
    16  */
    16  */
    17 
    17 
       
    18 #include <AudioPreference.h>
    18 #include "tmsutility.h"
    19 #include "tmsutility.h"
    19 #include "tmsclientserver.h"
    20 #include "tmsclientserver.h"
    20 #include "tmsshared.h"
    21 #include "tmsshared.h"
    21 #include "tmsaudioinbandtoneplayer.h"
       
    22 #include "tmsrtplayer.h"
       
    23 #include "tmsserversession.h"
    22 #include "tmsserversession.h"
    24 
    23 
    25 using namespace TMS;
    24 using namespace TMS;
    26 
    25 
    27 const TUint KArrayExpandSize = 8;
    26 const TUint KArrayExpandSize = 8;
    49     {
    48     {
    50     TRACE_PRN_FN_ENT;
    49     TRACE_PRN_FN_ENT;
    51 
    50 
    52     iServer.DropSession(); // will start shutdown if no more sessions left
    51     iServer.DropSession(); // will start shutdown if no more sessions left
    53     delete iDevSound;
    52     delete iDevSound;
    54     delete iInbandTonePlayer;
       
    55 
    53 
    56     if (iMsgQueue.Handle() > 0)
    54     if (iMsgQueue.Handle() > 0)
    57         {
    55         {
    58         iMsgQueue.Close();
    56         iMsgQueue.Close();
    59         }
    57         }
   177         case ETMSGetGlobalGain:
   175         case ETMSGetGlobalGain:
   178             iServer.GetGain(aMessage);
   176             iServer.GetGain(aMessage);
   179             break;
   177             break;
   180         case ETMSGetMaxGlobalGain:
   178         case ETMSGetMaxGlobalGain:
   181             iServer.GetMaxGain(aMessage);
   179             iServer.GetMaxGain(aMessage);
   182             break;
       
   183         case ETMSRingToneInitDefault:
       
   184             iHasRtPlayer = ETrue;
       
   185             iServer.OpenRingTonePlayerFromProfileL(aMessage);
       
   186             break;
       
   187         case ETMSRingToneInitFile:
       
   188             iHasRtPlayer = ETrue;
       
   189             iServer.OpenRingTonePlayerFromFileL(aMessage);
       
   190             break;
       
   191         case ETMSRingToneInitSequence:
       
   192             iHasRtPlayer = ETrue;
       
   193             iServer.OpenRingToneSequencePlayerL(aMessage);
       
   194             break;
       
   195         case ETMSRingToneInitBeepOnce:
       
   196             iHasRtPlayer = ETrue;
       
   197             iServer.OpenRingToneBeepOnceL();
       
   198             aMessage.Complete(TMS_RESULT_SUCCESS);
       
   199             break;
       
   200         case ETMSRingToneInitSilent:
       
   201             iHasRtPlayer = ETrue;
       
   202             iServer.OpenRingToneSilentL();
       
   203             aMessage.Complete(TMS_RESULT_SUCCESS);
       
   204             break;
       
   205         case ETMSRingToneInitUnsecureVoIP:
       
   206             iHasRtPlayer = ETrue;
       
   207             iServer.OpenRingToneUnsecureVoipL();
       
   208             aMessage.Complete(TMS_RESULT_SUCCESS);
       
   209             break;
       
   210         case ETMSRingToneDeinit:
       
   211             iServer.DeinitRingTonePlayer();
       
   212             NotifyClient(ECmdRingToneDeinitComplete, KErrNone);
       
   213             iHasRtPlayer = EFalse;
       
   214             aMessage.Complete(TMS_RESULT_SUCCESS);
       
   215             break;
       
   216         case ETMSRingTonePlay:
       
   217             iHasRtPlayer = ETrue; //will play w/o prior initialization
       
   218             iServer.PlayRingToneL();
       
   219             aMessage.Complete(TMS_RESULT_SUCCESS);
       
   220             break;
       
   221         case ETMSRingTonePause:
       
   222             iServer.PauseVideoRingTone();
       
   223             aMessage.Complete(TMS_RESULT_SUCCESS);
       
   224             break;
       
   225         case ETMSRingToneStop:
       
   226             iServer.StopRingTone();
       
   227             aMessage.Complete(TMS_RESULT_SUCCESS);
       
   228             break;
       
   229         case ETMSRingToneMute:
       
   230             iServer.MuteRingTone();
       
   231             aMessage.Complete(TMS_RESULT_SUCCESS);
       
   232             break;
       
   233         case ETMSInitDTMF:
       
   234             iServer.InitDTMF(aMessage);
       
   235             break;
       
   236         case ETMSStartDTMF:
       
   237             iServer.StartDTMF(aMessage);
       
   238             break;
       
   239         case ETMSStopDTMF:
       
   240             iServer.StopDTMF(aMessage);
       
   241             break;
       
   242         case ETMSContinueDTMF:
       
   243             iServer.ContinueSendingDTMF(aMessage);
       
   244             break;
       
   245         case ETMSStartInbandTone:
       
   246             StartInbandTone(aMessage);
       
   247             break;
       
   248         case ETMSStopInbandTone:
       
   249             StopInbandTone(aMessage);
       
   250             break;
   180             break;
   251         default:
   181         default:
   252             User::Leave(KErrNotSupported);
   182             User::Leave(KErrNotSupported);
   253             break;
   183             break;
   254         }
   184         }
   451     iServer.SetOutput(this, output);
   381     iServer.SetOutput(this, output);
   452     aMessage.Complete(TMS_RESULT_SUCCESS);
   382     aMessage.Complete(TMS_RESULT_SUCCESS);
   453     }
   383     }
   454 
   384 
   455 // -----------------------------------------------------------------------------
   385 // -----------------------------------------------------------------------------
   456 // TMSServerSession::StartInbandTone
       
   457 //
       
   458 // -----------------------------------------------------------------------------
       
   459 //
       
   460 void TMSServerSession::StartInbandTone(const RMessage2& aMessage)
       
   461     {
       
   462     if (!iInbandTonePlayer)
       
   463         {
       
   464         //TODO: Add inband tone observer
       
   465         iInbandTonePlayer = TMSAudioInbandTonePlayer::NewL();
       
   466         }
       
   467 
       
   468     if (iInbandTonePlayer)
       
   469         {
       
   470         TMSInbandToneType tonetype = (TMSInbandToneType) aMessage.Int0();
       
   471         iInbandTonePlayer->PlayInbandTone(tonetype);
       
   472         }
       
   473 
       
   474     //TODO: Move to inband tone observer callback
       
   475     NotifyClient(ECmdInbandToneStarted);
       
   476     aMessage.Complete(TMS_RESULT_SUCCESS);
       
   477     }
       
   478 
       
   479 // -----------------------------------------------------------------------------
       
   480 // TMSServerSession::StopInbandTone
       
   481 //
       
   482 // -----------------------------------------------------------------------------
       
   483 //
       
   484 void TMSServerSession::StopInbandTone(const RMessage2& aMessage)
       
   485     {
       
   486     if (iInbandTonePlayer)
       
   487         {
       
   488         iInbandTonePlayer->Cancel();
       
   489         }
       
   490 
       
   491     //TODO: Move to inband tone observer callback
       
   492     NotifyClient(ECmdInbandToneStopped);
       
   493     aMessage.Complete(TMS_RESULT_SUCCESS);
       
   494     }
       
   495 
       
   496 // -----------------------------------------------------------------------------
       
   497 // TMSServerSession::NotifyClient
   386 // TMSServerSession::NotifyClient
   498 // -----------------------------------------------------------------------------
   387 // -----------------------------------------------------------------------------
   499 //
   388 //
   500 void TMSServerSession::NotifyClient(const TInt aCommand, const TInt aStatus)
   389 void TMSServerSession::NotifyClient(const TInt aCommand, const TInt aStatus)
   501     {
   390     {
   502     if (aCommand == ECmdRingToneOpenComplete ||
       
   503             aCommand == ECmdRingToneOpenComplete)
       
   504         {
       
   505         if (!iHasRtPlayer)
       
   506             {
       
   507             return;
       
   508             }
       
   509         }
       
   510 
       
   511     iMsgBuffer.iRequest = aCommand;
   391     iMsgBuffer.iRequest = aCommand;
   512     iMsgBuffer.iStatus = aStatus;
   392     iMsgBuffer.iStatus = aStatus;
   513     if (iMsgQueue.Handle() > 0)
   393     if (iMsgQueue.Handle() > 0)
   514         {
   394         {
   515         iMsgQueue.Send(iMsgBuffer);
   395         iMsgQueue.Send(iMsgBuffer);
   516         }
   396         }
   517     }
   397     }
   518 
   398 
       
   399 // End of file