mmserv/tms/tmsproxy/src/tmsproxy.cpp
changeset 53 eabc8c503852
parent 36 73253677b50a
equal deleted inserted replaced
48:a493a607b5bf 53:eabc8c503852
    96     ResetObjectLists();
    96     ResetObjectLists();
    97 
    97 
    98     if (iMsgQHandler)
    98     if (iMsgQHandler)
    99         {
    99         {
   100         iMsgQHandler->Cancel();
   100         iMsgQHandler->Cancel();
       
   101         iMsgQHandler->RemoveObserver(*this);
   101         }
   102         }
   102     delete iMsgQHandler;
   103     delete iMsgQHandler;
   103     if (iMsgQueue.Handle() > 0)
   104     if (iMsgQueue.Handle() > 0)
   104         {
   105         {
   105         iMsgQueue.Close();
   106         iMsgQueue.Close();
   250         {
   251         {
   251         status = TMS_RESULT_INVALID_ARGUMENT;
   252         status = TMS_RESULT_INVALID_ARGUMENT;
   252         }
   253         }
   253     else
   254     else
   254         {
   255         {
   255         status = RSessionBase::SendReceive(ETMSSetOutput, TIpcArgs(output));
   256         status = SendReceive(ETMSSetOutput, TIpcArgs(output));
   256         }
   257         }
   257     TRACE_PRN_FN_EXT;
   258     TRACE_PRN_FN_EXT;
   258     return TMSRESULT(status);
   259     return TMSRESULT(status);
   259     }
   260     }
   260 
   261 
   261 EXPORT_C gint TMSProxy::GetOutput(TMSAudioOutput& output)
   262 EXPORT_C gint TMSProxy::GetOutput(TMSAudioOutput& output)
       
   263     {
       
   264     TRACE_PRN_FN_ENT;
       
   265     TPckgBuf<gint> pckg;
       
   266     TIpcArgs args(&pckg);
       
   267     gint status = SendReceive(ETMSGetOutput, args);
       
   268     if (status == TMS_RESULT_SUCCESS)
       
   269         {
       
   270         output = pckg();
       
   271         }
       
   272     TRACE_PRN_FN_EXT;
       
   273     return TMSRESULT(status);
       
   274     }
       
   275 
       
   276 EXPORT_C gint TMSProxy::GetPreviousOutput(TMSAudioOutput& output)
   262     {
   277     {
   263     TRACE_PRN_FN_ENT;
   278     TRACE_PRN_FN_ENT;
   264     TPckgBuf<guint> pckg;
   279     TPckgBuf<guint> pckg;
   265     TIpcArgs args(&pckg);
   280     TIpcArgs args(&pckg);
   266     gint status = RSessionBase::SendReceive(ETMSGetOutput, args);
   281     gint status = SendReceive(ETMSGetPreviousOutput, args);
   267     if (status == TMS_RESULT_SUCCESS)
       
   268         {
       
   269         output = pckg();
       
   270         }
       
   271     TRACE_PRN_FN_EXT;
       
   272     return TMSRESULT(status);
       
   273     }
       
   274 
       
   275 EXPORT_C gint TMSProxy::GetPreviousOutput(TMSAudioOutput& output)
       
   276     {
       
   277     TRACE_PRN_FN_ENT;
       
   278     TPckgBuf<guint> pckg;
       
   279     TIpcArgs args(&pckg);
       
   280     gint status = RSessionBase::SendReceive(ETMSGetPreviousOutput, args);
       
   281     if (status == TMS_RESULT_SUCCESS)
   282     if (status == TMS_RESULT_SUCCESS)
   282         {
   283         {
   283         output = pckg();
   284         output = pckg();
   284         }
   285         }
   285     TRACE_PRN_FN_EXT;
   286     TRACE_PRN_FN_EXT;
   330 EXPORT_C gint TMSProxy::GetLevel(guint& level)
   331 EXPORT_C gint TMSProxy::GetLevel(guint& level)
   331     {
   332     {
   332     TRACE_PRN_FN_ENT;
   333     TRACE_PRN_FN_ENT;
   333     TPckgBuf<guint> pckg;
   334     TPckgBuf<guint> pckg;
   334     TIpcArgs args(&pckg);
   335     TIpcArgs args(&pckg);
   335     gint status = RSessionBase::SendReceive(ETMSGetGlobalVol, args);
   336     gint status = SendReceive(ETMSGetGlobalVol, args);
   336     if (status == TMS_RESULT_SUCCESS)
   337     if (status == TMS_RESULT_SUCCESS)
   337         {
   338         {
   338         level = pckg();
   339         level = pckg();
   339         }
   340         }
   340     TRACE_PRN_FN_EXT;
   341     TRACE_PRN_FN_EXT;
   344 EXPORT_C gint TMSProxy::GetMaxLevel(guint& level)
   345 EXPORT_C gint TMSProxy::GetMaxLevel(guint& level)
   345     {
   346     {
   346     TRACE_PRN_FN_ENT;
   347     TRACE_PRN_FN_ENT;
   347     TPckgBuf<guint> pckg;
   348     TPckgBuf<guint> pckg;
   348     TIpcArgs args(&pckg);
   349     TIpcArgs args(&pckg);
   349     gint status = RSessionBase::SendReceive(ETMSGetMaxGlobalVol, args);
   350     gint status = SendReceive(ETMSGetMaxGlobalVol, args);
   350     if (status == TMS_RESULT_SUCCESS)
   351     if (status == TMS_RESULT_SUCCESS)
   351         {
   352         {
   352         level = pckg();
   353         level = pckg();
   353         }
   354         }
   354     TRACE_PRN_FN_EXT;
   355     TRACE_PRN_FN_EXT;
   356     }
   357     }
   357 
   358 
   358 EXPORT_C gint TMSProxy::SetLevel(guint level)
   359 EXPORT_C gint TMSProxy::SetLevel(guint level)
   359     {
   360     {
   360     TRACE_PRN_FN_ENT;
   361     TRACE_PRN_FN_ENT;
   361     gint status = RSessionBase::SendReceive(ETMSSetGlobalVol, TIpcArgs(level));
   362     gint status = SendReceive(ETMSSetGlobalVol, TIpcArgs(level));
   362     TRACE_PRN_FN_EXT;
   363     TRACE_PRN_FN_EXT;
   363     return TMSRESULT(status);
   364     return TMSRESULT(status);
   364     }
   365     }
   365 
   366 
   366 EXPORT_C gint TMSProxy::GetGain(guint& level)
   367 EXPORT_C gint TMSProxy::GetGain(guint& level)
   367     {
   368     {
   368     TRACE_PRN_FN_ENT;
   369     TRACE_PRN_FN_ENT;
   369     TPckgBuf<guint> pckg;
   370     TPckgBuf<guint> pckg;
   370     TIpcArgs args(&pckg);
   371     TIpcArgs args(&pckg);
   371     gint status = RSessionBase::SendReceive(ETMSGetGlobalGain, args);
   372     gint status = SendReceive(ETMSGetGlobalGain, args);
   372     if (status == TMS_RESULT_SUCCESS)
   373     if (status == TMS_RESULT_SUCCESS)
   373         {
   374         {
   374         level = pckg();
   375         level = pckg();
   375         }
   376         }
   376     TRACE_PRN_FN_EXT;
   377     TRACE_PRN_FN_EXT;
   380 EXPORT_C gint TMSProxy::GetMaxGain(guint& level)
   381 EXPORT_C gint TMSProxy::GetMaxGain(guint& level)
   381     {
   382     {
   382     TRACE_PRN_FN_ENT;
   383     TRACE_PRN_FN_ENT;
   383     TPckgBuf<guint> pckg;
   384     TPckgBuf<guint> pckg;
   384     TIpcArgs args(&pckg);
   385     TIpcArgs args(&pckg);
   385     gint status = RSessionBase::SendReceive(ETMSGetMaxGlobalGain, args);
   386     gint status = SendReceive(ETMSGetMaxGlobalGain, args);
   386     if (status == TMS_RESULT_SUCCESS)
   387     if (status == TMS_RESULT_SUCCESS)
   387         {
   388         {
   388         level = pckg();
   389         level = pckg();
   389         }
   390         }
   390     TRACE_PRN_FN_EXT;
   391     TRACE_PRN_FN_EXT;
   392     }
   393     }
   393 
   394 
   394 EXPORT_C gint TMSProxy::SetGain(guint level)
   395 EXPORT_C gint TMSProxy::SetGain(guint level)
   395     {
   396     {
   396     TRACE_PRN_FN_ENT;
   397     TRACE_PRN_FN_ENT;
   397     gint status = RSessionBase::SendReceive(ETMSSetGlobalGain,
   398     gint status = SendReceive(ETMSSetGlobalGain,
   398             TIpcArgs(level));
   399             TIpcArgs(level));
   399     TRACE_PRN_FN_EXT;
   400     TRACE_PRN_FN_EXT;
   400     return TMSRESULT(status);
   401     return TMSRESULT(status);
   401     }
   402     }
   402 
   403 
   424 
   425 
   425     switch (type)
   426     switch (type)
   426         {
   427         {
   427         case TMS_RINGTONE_DEFAULT:
   428         case TMS_RINGTONE_DEFAULT:
   428             {
   429             {
   429             status = RSessionBase::SendReceive(ETMSRingToneInitDefault, args);
   430             status = SendReceive(ETMSRingToneInitDefault, args);
   430             break;
   431             break;
   431             }
   432             }
   432         case TMS_RINGTONE_FILE:
   433         case TMS_RINGTONE_FILE:
   433             {
   434             {
   434             if (str)
   435             if (str)
   443                     {
   444                     {
   444                     TPtr p = buf->Des();
   445                     TPtr p = buf->Des();
   445                     p.Copy((TUint16*) str->str, unilen);
   446                     p.Copy((TUint16*) str->str, unilen);
   446                     TIpcArgs args;
   447                     TIpcArgs args;
   447                     args.Set(0, &p);
   448                     args.Set(0, &p);
   448                     status = RSessionBase::SendReceive(ETMSRingToneInitFile,
   449                     status = SendReceive(ETMSRingToneInitFile, args);
   449                             args);
       
   450                     }
   450                     }
   451                 delete buf;
   451                 delete buf;
   452                 buf = NULL;
   452                 buf = NULL;
   453                 }
   453                 }
   454             break;
   454             break;
   455             }
   455             }
   456         case TMS_RINGTONE_BEEP_ONCE:
   456         case TMS_RINGTONE_BEEP_ONCE:
   457             {
   457             {
   458             status = RSessionBase::SendReceive(ETMSRingToneInitBeepOnce);
   458             status = SendReceive(ETMSRingToneInitBeepOnce);
   459             break;
   459             break;
   460             }
   460             }
   461         case TMS_RINGTONE_SILENT:
   461         case TMS_RINGTONE_SILENT:
   462             {
   462             {
   463             status = RSessionBase::SendReceive(ETMSRingToneInitSilent);
   463             status = SendReceive(ETMSRingToneInitSilent);
   464             break;
   464             break;
   465             }
   465             }
   466         case TMS_RINGTONE_UNSECURE_VOIP:
   466         case TMS_RINGTONE_UNSECURE_VOIP:
   467             {
   467             {
   468             status = RSessionBase::SendReceive(ETMSRingToneInitUnsecureVoIP);
   468             status = SendReceive(ETMSRingToneInitUnsecureVoIP);
   469             break;
   469             break;
   470             }
   470             }
   471         case TMS_RINGTONE_SEQUENCE:
   471         case TMS_RINGTONE_SEQUENCE:
   472             {
   472             {
   473             if (str)
   473             if (str)
   479                     {
   479                     {
   480                     TPtr8 p = buf->Des();
   480                     TPtr8 p = buf->Des();
   481                     p.Copy((TUint8*) str->str, len);
   481                     p.Copy((TUint8*) str->str, len);
   482                     TIpcArgs args;
   482                     TIpcArgs args;
   483                     args.Set(0, &p);
   483                     args.Set(0, &p);
   484                     status = RSessionBase::SendReceive(
   484                     status = SendReceive(ETMSRingToneInitSequence, args);
   485                             ETMSRingToneInitSequence, args);
       
   486                     }
   485                     }
   487                 delete buf;
   486                 delete buf;
   488                 buf = NULL;
   487                 buf = NULL;
   489                 }
   488                 }
   490             break;
   489             break;
   501     }
   500     }
   502 
   501 
   503 EXPORT_C gint TMSProxy::DeinitRT()
   502 EXPORT_C gint TMSProxy::DeinitRT()
   504     {
   503     {
   505     gint status(TMS_RESULT_SUCCESS);
   504     gint status(TMS_RESULT_SUCCESS);
   506     status = RSessionBase::SendReceive(ETMSRingToneDeinit);
   505     status = SendReceive(ETMSRingToneDeinit);
   507     return TMSRESULT(status);
   506     return TMSRESULT(status);
   508     }
   507     }
   509 
   508 
   510 EXPORT_C gint TMSProxy::PlayRT()
   509 EXPORT_C gint TMSProxy::PlayRT()
   511     {
   510     {
   512     gint status(TMS_RESULT_SUCCESS);
   511     gint status(TMS_RESULT_SUCCESS);
   513     status = RSessionBase::SendReceive(ETMSRingTonePlay);
   512     status = SendReceive(ETMSRingTonePlay);
   514     return TMSRESULT(status);
   513     return TMSRESULT(status);
   515     }
   514     }
   516 
   515 
   517 EXPORT_C gint TMSProxy::StopRT()
   516 EXPORT_C gint TMSProxy::StopRT()
   518     {
   517     {
   519     gint status(TMS_RESULT_SUCCESS);
   518     gint status(TMS_RESULT_SUCCESS);
   520     status = RSessionBase::SendReceive(ETMSRingToneStop);
   519     status = SendReceive(ETMSRingToneStop);
   521     return TMSRESULT(status);
   520     return TMSRESULT(status);
   522     }
   521     }
   523 
   522 
   524 EXPORT_C gint TMSProxy::PauseRT()
   523 EXPORT_C gint TMSProxy::PauseRT()
   525     {
   524     {
   526     gint status(TMS_RESULT_SUCCESS);
   525     gint status(TMS_RESULT_SUCCESS);
   527     status = RSessionBase::SendReceive(ETMSRingTonePause);
   526     status = SendReceive(ETMSRingTonePause);
   528     return TMSRESULT(status);
   527     return TMSRESULT(status);
   529     }
   528     }
   530 
   529 
   531 EXPORT_C gint TMSProxy::MuteRT()
   530 EXPORT_C gint TMSProxy::MuteRT()
   532     {
   531     {
   533     gint status(TMS_RESULT_SUCCESS);
   532     gint status(TMS_RESULT_SUCCESS);
   534     status = RSessionBase::SendReceive(ETMSRingToneMute);
   533     status = SendReceive(ETMSRingToneMute);
   535     return TMSRESULT(status);
   534     return TMSRESULT(status);
   536     }
   535     }
   537 
   536 
   538 EXPORT_C gint TMSProxy::InitDTMFPlayer(TMSStreamType streamtype)
   537 EXPORT_C gint TMSProxy::InitDTMFPlayer(TMSStreamType streamtype)
   539     {
   538     {
   540     gint status(TMS_RESULT_SUCCESS);
   539     gint status(TMS_RESULT_SUCCESS);
   541     TIpcArgs args;
   540     TIpcArgs args;
   542     args.Set(0, streamtype);
   541     args.Set(0, streamtype);
   543     status = RSessionBase::SendReceive(ETMSInitDTMF, args);
   542     status = SendReceive(ETMSInitDTMF, args);
   544     return TMSRESULT(status);
   543     return TMSRESULT(status);
   545     }
   544     }
   546 
   545 
   547 EXPORT_C gint TMSProxy::StartDTMF(TMSStreamType streamtype, GString* tone)
   546 EXPORT_C gint TMSProxy::StartDTMF(TMSStreamType streamtype, GString* tone)
   548     {
   547     {
   561         TRACE_PRN_N(p1);
   560         TRACE_PRN_N(p1);
   562 
   561 
   563         TIpcArgs args;
   562         TIpcArgs args;
   564         args.Set(0, streamtype);
   563         args.Set(0, streamtype);
   565         args.Set(1, &p1);
   564         args.Set(1, &p1);
   566         status = RSessionBase::SendReceive(ETMSStartDTMF, args);
   565         status = SendReceive(ETMSStartDTMF, args);
   567         }
   566         }
   568     delete buf;
   567     delete buf;
   569     buf = NULL;
   568     buf = NULL;
   570     TRACE_PRN_FN_EXT;
   569     TRACE_PRN_FN_EXT;
   571     return TMSRESULT(status);
   570     return TMSRESULT(status);
   573 
   572 
   574 EXPORT_C gint TMSProxy::StopDTMF(TMSStreamType streamtype)
   573 EXPORT_C gint TMSProxy::StopDTMF(TMSStreamType streamtype)
   575     {
   574     {
   576     TRACE_PRN_FN_ENT;
   575     TRACE_PRN_FN_ENT;
   577     gint status(TMS_RESULT_SUCCESS);
   576     gint status(TMS_RESULT_SUCCESS);
   578     status = RSessionBase::SendReceive(ETMSStopDTMF, TIpcArgs(streamtype));
   577     status = SendReceive(ETMSStopDTMF, TIpcArgs(streamtype));
   579     TRACE_PRN_FN_EXT;
   578     TRACE_PRN_FN_EXT;
   580     return TMSRESULT(status);
   579     return TMSRESULT(status);
   581     }
   580     }
   582 
   581 
   583 EXPORT_C gint TMSProxy::ContinueDTMFStringSending(gboolean continuesending)
   582 EXPORT_C gint TMSProxy::ContinueDTMFStringSending(gboolean continuesending)
   584     {
   583     {
   585     TRACE_PRN_FN_ENT;
   584     TRACE_PRN_FN_ENT;
   586     gint status(TMS_RESULT_SUCCESS);
   585     gint status(TMS_RESULT_SUCCESS);
   587     status = RSessionBase::SendReceive(ETMSContinueDTMF,
   586     status = SendReceive(ETMSContinueDTMF, TIpcArgs(continuesending));
   588             TIpcArgs(continuesending));
       
   589     TRACE_PRN_FN_EXT;
   587     TRACE_PRN_FN_EXT;
   590     return TMSRESULT(status);
   588     return TMSRESULT(status);
   591     }
   589     }
   592 
   590 
   593 EXPORT_C gint TMSProxy::StartInbandTone(TMSInbandToneType inbandtonetype)
   591 EXPORT_C gint TMSProxy::StartInbandTone(TMSInbandToneType inbandtonetype)
   594     {
   592     {
   595     TRACE_PRN_FN_ENT;
   593     TRACE_PRN_FN_ENT;
   596     gint status(TMS_RESULT_SUCCESS);
   594     gint status(TMS_RESULT_SUCCESS);
   597     status = RSessionBase::SendReceive(ETMSStartInbandTone,
   595     status = SendReceive(ETMSStartInbandTone, TIpcArgs(inbandtonetype));
   598             TIpcArgs(inbandtonetype));
       
   599     TRACE_PRN_FN_EXT;
   596     TRACE_PRN_FN_EXT;
   600     return TMSRESULT(status);
   597     return TMSRESULT(status);
   601     }
   598     }
   602 
   599 
   603 EXPORT_C gint TMSProxy::StopInbandTone()
   600 EXPORT_C gint TMSProxy::StopInbandTone()
   604     {
   601     {
   605     TRACE_PRN_FN_ENT;
   602     TRACE_PRN_FN_ENT;
   606     gint status(TMS_RESULT_SUCCESS);
   603     gint status(TMS_RESULT_SUCCESS);
   607     status = RSessionBase::SendReceive(ETMSStopInbandTone);
   604     status = SendReceive(ETMSStopInbandTone);
   608     TRACE_PRN_FN_EXT;
   605     TRACE_PRN_FN_EXT;
   609     return TMSRESULT(status);
   606     return TMSRESULT(status);
   610     }
   607     }
   611 
   608 
   612 EXPORT_C gint TMSProxy::StartGlobalEffectNotifier()
   609 EXPORT_C gint TMSProxy::StartGlobalEffectNotifier()
   613     {
   610     {
   614     gint status(TMS_RESULT_SUCCESS);
   611     gint status(TMS_RESULT_SUCCESS);
   615     RSessionBase::SendReceive(ETMSStartGlobalEffectNotifier); //CenRepHandler
   612     SendReceive(ETMSStartGlobalEffectNotifier); //CenRepHandler
   616     return TMSRESULT(status);
   613     return TMSRESULT(status);
   617     }
   614     }
   618 
   615 
   619 EXPORT_C gint TMSProxy::CancelGlobalEffectNotifier()
   616 EXPORT_C gint TMSProxy::CancelGlobalEffectNotifier()
   620     {
   617     {
   621     gint status(TMS_RESULT_SUCCESS);
   618     gint status(TMS_RESULT_SUCCESS);
   622     status = RSessionBase::SendReceive(ETMSCancelGlobalEffectNotifier);
   619     status = SendReceive(ETMSCancelGlobalEffectNotifier);
   623     return TMSRESULT(status);
   620     return TMSRESULT(status);
   624     }
   621     }
   625 
   622 
   626 EXPORT_C gint TMSProxy::StartRoutingNotifier()
   623 EXPORT_C gint TMSProxy::StartRoutingNotifier()
   627     {
   624     {
   628     gint status(TMS_RESULT_SUCCESS);
   625     gint status(TMS_RESULT_SUCCESS);
   629     status = RSessionBase::SendReceive(ETMSStartRoutingNotifier); //TAR
   626     status = SendReceive(ETMSStartRoutingNotifier); //TAR
   630     return TMSRESULT(status);
   627     return TMSRESULT(status);
   631     }
   628     }
   632 
   629 
   633 EXPORT_C gint TMSProxy::CancelRoutingNotifier()
   630 EXPORT_C gint TMSProxy::CancelRoutingNotifier()
   634     {
   631     {
   635     gint status(TMS_RESULT_SUCCESS);
   632     gint status(TMS_RESULT_SUCCESS);
   636     status = RSessionBase::SendReceive(ETMSCancelRoutingNotifier);
   633     status = SendReceive(ETMSCancelRoutingNotifier);
   637     return TMSRESULT(status);
   634     return TMSRESULT(status);
   638     }
   635     }
   639 
   636 
   640 // ---------------------------------------------------------------------------
   637 // ---------------------------------------------------------------------------
   641 // TMSProxy::SetMsgQueueNotifier
   638 // TMSProxy::SetMsgQueueNotifier
   716             break;
   713             break;
   717         }
   714         }
   718     return TMSRESULT(status);
   715     return TMSRESULT(status);
   719     }
   716     }
   720 
   717 
       
   718 // ---------------------------------------------------------------------------
       
   719 // TMSProxy::TermSrv
       
   720 // ---------------------------------------------------------------------------
       
   721 //
       
   722 EXPORT_C void TMSProxy::TermSrv()
       
   723     {
       
   724     SendReceive(ETMSTermSrv);
       
   725     }
       
   726 
       
   727 // ---------------------------------------------------------------------------
       
   728 // TMSProxy::PopulateArrayL
       
   729 // ---------------------------------------------------------------------------
       
   730 //
   721 void TMSProxy::PopulateArrayL(TMSClientServerRequest aRequest,
   731 void TMSProxy::PopulateArrayL(TMSClientServerRequest aRequest,
   722         RArray<TUint32>& aDecoders, gint aCount)
   732         RArray<TUint32>& aDecoders, gint aCount)
   723     {
   733     {
   724     HBufC8* buf = HBufC8::NewLC(aCount * sizeof(TUint32));
   734     HBufC8* buf = HBufC8::NewLC(aCount * sizeof(TUint32));
   725     TPtr8 ptr = buf->Des();
   735     TPtr8 ptr = buf->Des();
   740         CleanupStack::PopAndDestroy(&stream);
   750         CleanupStack::PopAndDestroy(&stream);
   741         }
   751         }
   742     CleanupStack::PopAndDestroy(buf);
   752     CleanupStack::PopAndDestroy(buf);
   743     }
   753     }
   744 
   754 
       
   755 // ---------------------------------------------------------------------------
       
   756 // TMSProxy::AddGlobalEffectObserver
       
   757 // ---------------------------------------------------------------------------
       
   758 //
   745 gint TMSProxy::AddGlobalEffectObserver(TMSEffectObserver& obsrv,
   759 gint TMSProxy::AddGlobalEffectObserver(TMSEffectObserver& obsrv,
   746         TMSEffect& parent, gint /*clientid*/)
   760         TMSEffect& parent, gint /*clientid*/)
   747     {
   761     {
   748     gint status = iEffectsObsrvrList.Find(&obsrv);
   762     gint status = iEffectsObsrvrList.Find(&obsrv);
   749     if (status == KErrNotFound)
   763     if (status == KErrNotFound)
   756         status = TMS_RESULT_ALREADY_EXIST;
   770         status = TMS_RESULT_ALREADY_EXIST;
   757         }
   771         }
   758     return TMSRESULT(status);
   772     return TMSRESULT(status);
   759     }
   773     }
   760 
   774 
       
   775 // ---------------------------------------------------------------------------
       
   776 // TMSProxy::RemoveGlobalEffectObserver
       
   777 // ---------------------------------------------------------------------------
       
   778 //
   761 gint TMSProxy::RemoveGlobalEffectObserver(TMSEffectObserver& obsrv)
   779 gint TMSProxy::RemoveGlobalEffectObserver(TMSEffectObserver& obsrv)
   762     {
   780     {
   763     gint status(TMS_RESULT_SUCCESS);
   781     gint status(TMS_RESULT_SUCCESS);
   764     gint index = iEffectsObsrvrList.Find(&obsrv);
   782     gint index = iEffectsObsrvrList.Find(&obsrv);
   765     if (index >= 0)
   783     if (index >= 0)
   772         status = TMS_RESULT_DOES_NOT_EXIST;
   790         status = TMS_RESULT_DOES_NOT_EXIST;
   773         }
   791         }
   774     return TMSRESULT(status);
   792     return TMSRESULT(status);
   775     }
   793     }
   776 
   794 
       
   795 // ---------------------------------------------------------------------------
       
   796 // TMSProxy::AddRoutingObserver
       
   797 // ---------------------------------------------------------------------------
       
   798 //
   777 gint TMSProxy::AddRoutingObserver(TMSGlobalRoutingObserver& obsrv,
   799 gint TMSProxy::AddRoutingObserver(TMSGlobalRoutingObserver& obsrv,
   778         TMSGlobalRouting& parent, gint /*clientid*/)
   800         TMSGlobalRouting& parent, gint /*clientid*/)
   779     {
   801     {
   780     gint status = iRoutingObsrvrList.Find(&obsrv);
   802     gint status = iRoutingObsrvrList.Find(&obsrv);
   781     if (status == KErrNotFound)
   803     if (status == KErrNotFound)
   788         status = TMS_RESULT_ALREADY_EXIST;
   810         status = TMS_RESULT_ALREADY_EXIST;
   789         }
   811         }
   790     return TMSRESULT(status);
   812     return TMSRESULT(status);
   791     }
   813     }
   792 
   814 
       
   815 // ---------------------------------------------------------------------------
       
   816 // TMSProxy::RemoveRoutingObserver
       
   817 // ---------------------------------------------------------------------------
       
   818 //
   793 gint TMSProxy::RemoveRoutingObserver(TMSGlobalRoutingObserver& obsrv)
   819 gint TMSProxy::RemoveRoutingObserver(TMSGlobalRoutingObserver& obsrv)
   794     {
   820     {
   795     gint status(TMS_RESULT_SUCCESS);
   821     gint status(TMS_RESULT_SUCCESS);
   796     gint index = iRoutingObsrvrList.Find(&obsrv);
   822     gint index = iRoutingObsrvrList.Find(&obsrv);
   797     if (index >= 0)
   823     if (index >= 0)
   804         status = TMS_RESULT_DOES_NOT_EXIST;
   830         status = TMS_RESULT_DOES_NOT_EXIST;
   805         }
   831         }
   806     return TMSRESULT(status);
   832     return TMSRESULT(status);
   807     }
   833     }
   808 
   834 
       
   835 // ---------------------------------------------------------------------------
       
   836 // TMSProxy::AddRingToneObserver
       
   837 // ---------------------------------------------------------------------------
       
   838 //
   809 gint TMSProxy::AddRingToneObserver(TMSRingToneObserver& obsrv,
   839 gint TMSProxy::AddRingToneObserver(TMSRingToneObserver& obsrv,
   810         TMSRingTone& parent, gint /*clientid*/)
   840         TMSRingTone& parent, gint /*clientid*/)
   811     {
   841     {
   812     gint status = iRingToneObsrvrList.Find(&obsrv);
   842     gint status = iRingToneObsrvrList.Find(&obsrv);
   813     if (status == KErrNotFound)
   843     if (status == KErrNotFound)
   820         status = TMS_RESULT_ALREADY_EXIST;
   850         status = TMS_RESULT_ALREADY_EXIST;
   821         }
   851         }
   822     return TMSRESULT(status);
   852     return TMSRESULT(status);
   823     }
   853     }
   824 
   854 
       
   855 // ---------------------------------------------------------------------------
       
   856 // TMSProxy::RemoveRingToneObserver
       
   857 // ---------------------------------------------------------------------------
       
   858 //
   825 gint TMSProxy::RemoveRingToneObserver(TMSRingToneObserver& obsrv)
   859 gint TMSProxy::RemoveRingToneObserver(TMSRingToneObserver& obsrv)
   826     {
   860     {
   827     gint status(TMS_RESULT_SUCCESS);
   861     gint status(TMS_RESULT_SUCCESS);
   828     gint index = iRingToneObsrvrList.Find(&obsrv);
   862     gint index = iRingToneObsrvrList.Find(&obsrv);
   829     if (index >= 0)
   863     if (index >= 0)
   836         status = TMS_RESULT_DOES_NOT_EXIST;
   870         status = TMS_RESULT_DOES_NOT_EXIST;
   837         }
   871         }
   838     return TMSRESULT(status);
   872     return TMSRESULT(status);
   839     }
   873     }
   840 
   874 
       
   875 // ---------------------------------------------------------------------------
       
   876 // TMSProxy::AddDTMFObserver
       
   877 // ---------------------------------------------------------------------------
       
   878 //
   841 gint TMSProxy::AddDTMFObserver(TMSDTMFObserver& obsrv, TMSDTMF& parent,
   879 gint TMSProxy::AddDTMFObserver(TMSDTMFObserver& obsrv, TMSDTMF& parent,
   842         gint /*clientid*/)
   880         gint /*clientid*/)
   843     {
   881     {
   844     // Add to list if observer is not already added
   882     // Add to list if observer is not already added
   845     gint status = iDTMFObsrvrList.Find(&obsrv);
   883     gint status = iDTMFObsrvrList.Find(&obsrv);
   853         status = TMS_RESULT_ALREADY_EXIST;
   891         status = TMS_RESULT_ALREADY_EXIST;
   854         }
   892         }
   855     return TMSRESULT(status);
   893     return TMSRESULT(status);
   856     }
   894     }
   857 
   895 
       
   896 // ---------------------------------------------------------------------------
       
   897 // TMSProxy::RemoveDTMFObserver
       
   898 // ---------------------------------------------------------------------------
       
   899 //
   858 gint TMSProxy::RemoveDTMFObserver(TMSDTMFObserver& obsrv)
   900 gint TMSProxy::RemoveDTMFObserver(TMSDTMFObserver& obsrv)
   859     {
   901     {
   860     gint status(TMS_RESULT_SUCCESS);
   902     gint status(TMS_RESULT_SUCCESS);
   861     gint index = iDTMFObsrvrList.Find(&obsrv);
   903     gint index = iDTMFObsrvrList.Find(&obsrv);
   862     if (index >= 0)
   904     if (index >= 0)
   869         status = TMS_RESULT_DOES_NOT_EXIST;
   911         status = TMS_RESULT_DOES_NOT_EXIST;
   870         }
   912         }
   871     return TMSRESULT(status);
   913     return TMSRESULT(status);
   872     }
   914     }
   873 
   915 
       
   916 // ---------------------------------------------------------------------------
       
   917 // TMSProxy::AddInbandToneObserver
       
   918 // ---------------------------------------------------------------------------
       
   919 //
   874 gint TMSProxy::AddInbandToneObserver(TMSInbandToneObserver& obsrv,
   920 gint TMSProxy::AddInbandToneObserver(TMSInbandToneObserver& obsrv,
   875         TMSInbandTone& parent, gint /*clientid*/)
   921         TMSInbandTone& parent, gint /*clientid*/)
   876     {
   922     {
   877     // Add to list if observer is not already added
   923     // Add to list if observer is not already added
   878     gint status = iInbandToneObsrvrList.Find(&obsrv);
   924     gint status = iInbandToneObsrvrList.Find(&obsrv);
   886         status = TMS_RESULT_ALREADY_EXIST;
   932         status = TMS_RESULT_ALREADY_EXIST;
   887         }
   933         }
   888     return TMSRESULT(status);
   934     return TMSRESULT(status);
   889     }
   935     }
   890 
   936 
       
   937 // ---------------------------------------------------------------------------
       
   938 // TMSProxy::RemoveInbandToneObserver
       
   939 // ---------------------------------------------------------------------------
       
   940 //
   891 gint TMSProxy::RemoveInbandToneObserver(TMSInbandToneObserver& obsrv)
   941 gint TMSProxy::RemoveInbandToneObserver(TMSInbandToneObserver& obsrv)
   892     {
   942     {
   893     gint status(TMS_RESULT_SUCCESS);
   943     gint status(TMS_RESULT_SUCCESS);
   894     gint index = iInbandToneObsrvrList.Find(&obsrv);
   944     gint index = iInbandToneObsrvrList.Find(&obsrv);
   895     if (index >= 0)
   945     if (index >= 0)
   920             TRAP(status, ReceiveMsgQHandlerEventsL());
   970             TRAP(status, ReceiveMsgQHandlerEventsL());
   921             if (status == TMS_RESULT_SUCCESS)
   971             if (status == TMS_RESULT_SUCCESS)
   922                 {
   972                 {
   923                 TIpcArgs args;
   973                 TIpcArgs args;
   924                 args.Set(0, iMsgQueue);
   974                 args.Set(0, iMsgQueue);
   925                 status = RSessionBase::SendReceive(ETMSSetMsgQueueHandle,
   975                 status = SendReceive(ETMSSetMsgQueueHandle, args);
   926                         args);
       
   927                 }
   976                 }
   928             }
   977             }
   929         }
   978         }
   930     return TMSRESULT(status);
   979     return TMSRESULT(status);
   931     }
   980     }