mmserv/tms/tmscallserver/src/tmscallipadpt.cpp
changeset 33 5e8b14bae8c3
parent 28 ebf79c79991a
child 36 73253677b50a
equal deleted inserted replaced
28:ebf79c79991a 33:5e8b14bae8c3
    45 void TMSCallIPAdpt::ConstructL()
    45 void TMSCallIPAdpt::ConstructL()
    46     {
    46     {
    47     TRACE_PRN_FN_ENT;
    47     TRACE_PRN_FN_ENT;
    48     iIPDownlink = NULL;
    48     iIPDownlink = NULL;
    49     iIPUplink = NULL;
    49     iIPUplink = NULL;
    50     iDTMFDnlinkPlayer = NULL;
       
    51     iDTMFUplinkPlayer = NULL;
       
    52     iDTMFNotifier = NULL;
       
    53     TRACE_PRN_FN_EXT;
    50     TRACE_PRN_FN_EXT;
    54     }
    51     }
    55 
    52 
    56 // -----------------------------------------------------------------------------
    53 // -----------------------------------------------------------------------------
    57 // TMSCallIPAdpt::TMSCallIPAdpt
    54 // TMSCallIPAdpt::TMSCallIPAdpt
    72     TRACE_PRN_FN_ENT;
    69     TRACE_PRN_FN_ENT;
    73 
    70 
    74     iCodecs.Reset();
    71     iCodecs.Reset();
    75     iCodecs.Close();
    72     iCodecs.Close();
    76     iArrBitrates.Reset();
    73     iArrBitrates.Reset();
    77     delete iDTMFUplinkPlayer;
       
    78     delete iDTMFDnlinkPlayer;
       
    79     delete iDTMFNotifier;
       
    80     delete iIPUplink;
    74     delete iIPUplink;
    81     delete iIPDownlink;
    75     delete iIPDownlink;
    82 
    76 
    83     if (iMsgQueueUp.Handle() > 0)
    77     if (iMsgQueueUp.Handle() > 0)
    84         {
    78         {
   100 gint TMSCallIPAdpt::PostConstruct()
    94 gint TMSCallIPAdpt::PostConstruct()
   101     {
    95     {
   102     TRACE_PRN_FN_ENT;
    96     TRACE_PRN_FN_ENT;
   103     gint status(TMS_RESULT_SUCCESS);
    97     gint status(TMS_RESULT_SUCCESS);
   104     iNextStreamId = 1;
    98     iNextStreamId = 1;
   105     iUplinkInitialized = FALSE;
    99     iUplState = EIdle;
   106     iDnlinkInitialized = FALSE;
   100     iDnlState = EIdle;
   107     TRACE_PRN_FN_EXT;
   101     TRACE_PRN_FN_EXT;
   108     return status;
   102     return status;
   109     }
   103     }
   110 
   104 
   111 // -----------------------------------------------------------------------------
   105 // -----------------------------------------------------------------------------
   121     switch (strmType)
   115     switch (strmType)
   122         {
   116         {
   123         case TMS_STREAM_UPLINK:
   117         case TMS_STREAM_UPLINK:
   124             {
   118             {
   125             status = TMS_RESULT_ALREADY_EXIST;
   119             status = TMS_RESULT_ALREADY_EXIST;
   126             if (!iUplinkInitialized)
   120             if (iUplState == EIdle)
   127                 {
   121                 {
   128                 iUplinkStreamId = iNextStreamId;
   122                 iUplinkStreamId = iNextStreamId;
   129                 outStrmId = iUplinkStreamId;
   123                 outStrmId = iUplinkStreamId;
   130                 iNextStreamId++;
   124                 iNextStreamId++;
   131                 //iUplinkInitialized = TRUE; //not initialized yet!
       
   132                 status = TMS_RESULT_SUCCESS;
   125                 status = TMS_RESULT_SUCCESS;
   133                 }
   126                 }
   134             break;
   127             break;
   135             }
   128             }
   136         case TMS_STREAM_DOWNLINK:
   129         case TMS_STREAM_DOWNLINK:
   137             {
   130             {
   138             status = TMS_RESULT_ALREADY_EXIST;
   131             status = TMS_RESULT_ALREADY_EXIST;
   139             if (!iDnlinkInitialized)
   132             if (iDnlState == EIdle)
   140                 {
   133                 {
   141                 iDnlinkStreamId = iNextStreamId;
   134                 iDnlinkStreamId = iNextStreamId;
   142                 outStrmId = iDnlinkStreamId;
   135                 outStrmId = iDnlinkStreamId;
   143                 iNextStreamId++;
   136                 iNextStreamId++;
   144                 //iDnlinkInitialized = TRUE; //not initialized yet!
       
   145                 status = TMS_RESULT_SUCCESS;
   137                 status = TMS_RESULT_SUCCESS;
   146                 }
   138                 }
   147             break;
   139             break;
   148             }
   140             }
   149         default:
   141         default:
   181             status = TMS_RESULT_DOES_NOT_EXIST;
   173             status = TMS_RESULT_DOES_NOT_EXIST;
   182             if (strmId == iUplinkStreamId)
   174             if (strmId == iUplinkStreamId)
   183                 {
   175                 {
   184                 SetFormat(iUplinkStreamId, fourCC);
   176                 SetFormat(iUplinkStreamId, fourCC);
   185                 status = OpenUplink(message, retrytime);
   177                 status = OpenUplink(message, retrytime);
   186                 if (status == TMS_RESULT_SUCCESS)
       
   187                     {
       
   188                     status = InitDTMF(TMS_STREAM_UPLINK);
       
   189                     }
       
   190                 }
   178                 }
   191             break;
   179             break;
   192             }
   180             }
   193         case TMS_STREAM_DOWNLINK:
   181         case TMS_STREAM_DOWNLINK:
   194             {
   182             {
   195             status = TMS_RESULT_DOES_NOT_EXIST;
   183             status = TMS_RESULT_DOES_NOT_EXIST;
   196             if (strmId == iDnlinkStreamId)
   184             if (strmId == iDnlinkStreamId)
   197                 {
   185                 {
   198                 SetFormat(iDnlinkStreamId, fourCC);
   186                 SetFormat(iDnlinkStreamId, fourCC);
   199                 status = OpenDownlink(message, retrytime);
   187                 status = OpenDownlink(message, retrytime);
   200                 if (status == TMS_RESULT_SUCCESS)
       
   201                     {
       
   202                     status = InitDTMF(TMS_STREAM_DOWNLINK);
       
   203                     }
       
   204                 }
   188                 }
   205             break;
   189             break;
   206             }
   190             }
   207         default:
   191         default:
   208             {
   192             {
   228     gint status(TMS_RESULT_INVALID_STATE);
   212     gint status(TMS_RESULT_INVALID_STATE);
   229     switch (strmType)
   213     switch (strmType)
   230         {
   214         {
   231         case TMS_STREAM_UPLINK:
   215         case TMS_STREAM_UPLINK:
   232             {
   216             {
   233             if (iIPUplink && strmId == iUplinkStreamId)
   217             if (iIPUplink && strmId == iUplinkStreamId &&
       
   218                     iUplState == EInitialized)
   234                 {
   219                 {
   235                 iIPUplink->Start(retrytime);
   220                 iIPUplink->Start(retrytime);
   236                 status = TMS_RESULT_SUCCESS;
   221                 status = TMS_RESULT_SUCCESS;
   237                 NotifyClient(iUplinkStreamId, ECmdUplinkStarted, status);
       
   238                 }
   222                 }
   239             break;
   223             break;
   240             }
   224             }
   241         case TMS_STREAM_DOWNLINK:
   225         case TMS_STREAM_DOWNLINK:
   242             {
   226             {
   243             if (iIPDownlink && strmId == iDnlinkStreamId)
   227             if (iIPDownlink && strmId == iDnlinkStreamId &&
       
   228                     iDnlState == EInitialized)
   244                 {
   229                 {
   245                 iIPDownlink->Start(retrytime);
   230                 iIPDownlink->Start(retrytime);
   246                 status = TMS_RESULT_SUCCESS;
   231                 status = TMS_RESULT_SUCCESS;
   247                 NotifyClient(iDnlinkStreamId, ECmdDownlinkStarted, status);
       
   248                 }
   232                 }
   249             break;
   233             break;
   250             }
   234             }
   251         default:
   235         default:
   252             {
   236             {
   313 
   297 
   314     switch (strmType)
   298     switch (strmType)
   315         {
   299         {
   316         case TMS_STREAM_UPLINK:
   300         case TMS_STREAM_UPLINK:
   317             {
   301             {
   318             if (iIPUplink && strmId == iUplinkStreamId)
   302             if (iIPUplink && strmId == iUplinkStreamId &&
       
   303                     iUplState == EActivated)
   319                 {
   304                 {
   320                 iIPUplink->Stop();
   305                 iIPUplink->Stop();
       
   306                 iUplState = EInitialized;
   321                 status = TMS_RESULT_SUCCESS;
   307                 status = TMS_RESULT_SUCCESS;
   322                 NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status);
   308                 NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status);
   323                 }
   309                 }
   324             break;
   310             break;
   325             }
   311             }
   326         case TMS_STREAM_DOWNLINK:
   312         case TMS_STREAM_DOWNLINK:
   327             {
   313             {
   328             if (iIPDownlink && strmId == iDnlinkStreamId)
   314             if (iIPDownlink && strmId == iDnlinkStreamId &&
       
   315                     iDnlState == EActivated)
   329                 {
   316                 {
   330                 iIPDownlink->Stop();
   317                 iIPDownlink->Stop();
       
   318                 iDnlState = EInitialized;
   331                 status = TMS_RESULT_SUCCESS;
   319                 status = TMS_RESULT_SUCCESS;
   332                 NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status);
   320                 NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status);
   333                 }
   321                 }
   334             break;
   322             break;
   335             }
   323             }
   356 
   344 
   357     switch (strmType)
   345     switch (strmType)
   358         {
   346         {
   359         case TMS_STREAM_UPLINK:
   347         case TMS_STREAM_UPLINK:
   360             {
   348             {
   361             if (iIPUplink && strmId == iUplinkStreamId)
   349             if (iIPUplink && strmId == iUplinkStreamId && iUplState != EIdle)
   362                 {
   350                 {
   363                 iIPUplink->Stop();
   351                 iIPUplink->Stop();
   364                 //iUplinkStreamId = -1;
   352                 iUplState = EIdle;
   365                 iUplinkInitialized = FALSE;
       
   366                 status = TMS_RESULT_SUCCESS;
   353                 status = TMS_RESULT_SUCCESS;
   367                 NotifyClient(iUplinkStreamId, ECmdUplinkDeInitComplete, status);
   354                 NotifyClient(iUplinkStreamId, ECmdUplinkDeInitComplete, status);
   368                 }
   355                 }
   369             break;
   356             break;
   370             }
   357             }
   371         case TMS_STREAM_DOWNLINK:
   358         case TMS_STREAM_DOWNLINK:
   372             {
   359             {
   373             if (iIPDownlink && strmId == iDnlinkStreamId)
   360             if (iIPDownlink && strmId == iDnlinkStreamId && iDnlState != EIdle)
   374                 {
   361                 {
   375                 iIPDownlink->Stop();
   362                 iIPDownlink->Stop();
   376                 //iDnlinkStreamId = -1;
   363                 iDnlState = EIdle;
   377                 iDnlinkInitialized = FALSE;
       
   378                 status = TMS_RESULT_SUCCESS;
   364                 status = TMS_RESULT_SUCCESS;
   379                 NotifyClient(iDnlinkStreamId, ECmdDownlinkDeInitComplete,
   365                 NotifyClient(iDnlinkStreamId, ECmdDownlinkDeInitComplete,
   380                         status);
   366                         status);
   381                 }
   367                 }
   382             break;
   368             break;
   385             {
   371             {
   386             status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED;
   372             status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED;
   387             break;
   373             break;
   388             }
   374             }
   389         }
   375         }
   390 
       
   391     TRACE_PRN_FN_EXT;
   376     TRACE_PRN_FN_EXT;
   392     return status;
   377     return status;
   393     }
   378     }
   394 
   379 
   395 // -----------------------------------------------------------------------------
   380 // -----------------------------------------------------------------------------
   407         case TMS_STREAM_UPLINK:
   392         case TMS_STREAM_UPLINK:
   408             {
   393             {
   409             if (strmId == iUplinkStreamId)
   394             if (strmId == iUplinkStreamId)
   410                 {
   395                 {
   411                 iUplinkStreamId = -1;
   396                 iUplinkStreamId = -1;
   412                 iUplinkInitialized = FALSE;
   397                 iUplState = EIdle;
   413                 }
   398                 }
   414             break;
   399             break;
   415             }
   400             }
   416         case TMS_STREAM_DOWNLINK:
   401         case TMS_STREAM_DOWNLINK:
   417             {
   402             {
   418             if (strmId == iDnlinkStreamId)
   403             if (strmId == iDnlinkStreamId)
   419                 {
   404                 {
   420                 iDnlinkStreamId = -1;
   405                 iDnlinkStreamId = -1;
   421                 iDnlinkInitialized = FALSE;
   406                 iDnlState = EIdle;
   422                 }
   407                 }
   423             break;
   408             break;
   424             }
   409             }
   425         default:
   410         default:
   426             {
   411             {
   536 //
   521 //
   537 gint TMSCallIPAdpt::GetMaxVolume(guint& volume)
   522 gint TMSCallIPAdpt::GetMaxVolume(guint& volume)
   538     {
   523     {
   539     TRACE_PRN_FN_ENT;
   524     TRACE_PRN_FN_ENT;
   540     gint status(TMS_RESULT_INVALID_STATE);
   525     gint status(TMS_RESULT_INVALID_STATE);
   541     if (iDnlinkInitialized && iIPDownlink)
   526     if (iIPDownlink && iDnlState != EIdle)
   542         {
   527         {
   543         status = iIPDownlink->GetMaxVolume(volume);
   528         status = iIPDownlink->GetMaxVolume(volume);
   544         iMaxVolume = volume;
   529         iMaxVolume = volume;
   545         TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt: GetMaxVolume [%d]"), iMaxVolume);
   530         TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt: GetMaxVolume [%d]"), iMaxVolume);
   546         }
   531         }
   555 //
   540 //
   556 gint TMSCallIPAdpt::SetVolume(const guint volume)
   541 gint TMSCallIPAdpt::SetVolume(const guint volume)
   557     {
   542     {
   558     TRACE_PRN_FN_ENT;
   543     TRACE_PRN_FN_ENT;
   559     gint status(TMS_RESULT_INVALID_STATE);
   544     gint status(TMS_RESULT_INVALID_STATE);
   560     if (iDnlinkInitialized && iIPDownlink)
   545     if (iIPDownlink && iDnlState != EIdle)
   561         {
   546         {
   562         status = iIPDownlink->SetVolume(volume);
   547         status = iIPDownlink->SetVolume(volume);
   563         NotifyClient(iDnlinkStreamId, ECmdSetVolume, status);
   548         NotifyClient(iDnlinkStreamId, ECmdSetVolume, status);
   564         }
   549         }
   565     TRACE_PRN_FN_EXT;
   550     TRACE_PRN_FN_EXT;
   573 //
   558 //
   574 gint TMSCallIPAdpt::GetVolume(guint& volume)
   559 gint TMSCallIPAdpt::GetVolume(guint& volume)
   575     {
   560     {
   576     TRACE_PRN_FN_ENT;
   561     TRACE_PRN_FN_ENT;
   577     gint status(TMS_RESULT_INVALID_STATE);
   562     gint status(TMS_RESULT_INVALID_STATE);
   578     if (iDnlinkInitialized && iIPDownlink)
   563     if (iIPDownlink && iDnlState != EIdle)
   579         {
   564         {
   580         status = iIPDownlink->GetVolume(volume);
   565         status = iIPDownlink->GetVolume(volume);
   581         }
   566         }
   582     TRACE_PRN_FN_EXT;
   567     TRACE_PRN_FN_EXT;
   583     return status;
   568     return status;
   590 //
   575 //
   591 gint TMSCallIPAdpt::GetMaxGain(guint& gain)
   576 gint TMSCallIPAdpt::GetMaxGain(guint& gain)
   592     {
   577     {
   593     TRACE_PRN_FN_ENT;
   578     TRACE_PRN_FN_ENT;
   594     gint status(TMS_RESULT_INVALID_STATE);
   579     gint status(TMS_RESULT_INVALID_STATE);
   595     if (iUplinkInitialized && iIPUplink)
   580     if (iIPUplink && iUplState != EIdle)
   596         {
   581         {
   597         status = iIPUplink->GetMaxGain(gain);
   582         status = iIPUplink->GetMaxGain(gain);
   598         iMaxGain = gain;
   583         iMaxGain = gain;
   599         TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt::GetMaxGain [%d]"), iMaxGain);
   584         TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt::GetMaxGain [%d]"), iMaxGain);
   600         }
   585         }
   609 //
   594 //
   610 gint TMSCallIPAdpt::SetGain(const guint gain)
   595 gint TMSCallIPAdpt::SetGain(const guint gain)
   611     {
   596     {
   612     TRACE_PRN_FN_ENT;
   597     TRACE_PRN_FN_ENT;
   613     gint status(TMS_RESULT_INVALID_STATE);
   598     gint status(TMS_RESULT_INVALID_STATE);
   614     if (iUplinkInitialized && iIPUplink)
   599     if (iIPUplink && iUplState != EIdle)
   615         {
   600         {
   616         status = iIPUplink->SetGain(gain);
   601         status = iIPUplink->SetGain(gain);
   617         NotifyClient(iUplinkStreamId, ECmdSetGain, status);
   602         NotifyClient(iUplinkStreamId, ECmdSetGain, status);
   618         }
   603         }
   619     TRACE_PRN_FN_EXT;
   604     TRACE_PRN_FN_EXT;
   627 //
   612 //
   628 gint TMSCallIPAdpt::GetGain(guint& gain)
   613 gint TMSCallIPAdpt::GetGain(guint& gain)
   629     {
   614     {
   630     TRACE_PRN_FN_ENT;
   615     TRACE_PRN_FN_ENT;
   631     gint status(TMS_RESULT_INVALID_STATE);
   616     gint status(TMS_RESULT_INVALID_STATE);
   632     if (iUplinkInitialized && iIPUplink)
   617     if (iIPUplink && iUplState != EIdle)
   633         {
   618         {
   634         status = iIPUplink->GetGain(gain);
   619         status = iIPUplink->GetGain(gain);
   635         }
   620         }
   636     TRACE_PRN_FN_EXT;
   621     TRACE_PRN_FN_EXT;
   637     return status;
   622     return status;
   644 //
   629 //
   645 gint TMSCallIPAdpt::GetGlobalMaxVolume(guint& volume)
   630 gint TMSCallIPAdpt::GetGlobalMaxVolume(guint& volume)
   646     {
   631     {
   647     TRACE_PRN_FN_ENT;
   632     TRACE_PRN_FN_ENT;
   648     gint status(TMS_RESULT_INVALID_STATE);
   633     gint status(TMS_RESULT_INVALID_STATE);
   649     if (iDnlinkInitialized && iIPDownlink)
   634     if (iIPDownlink && iDnlState != EIdle)
   650         {
   635         {
   651         status = iIPDownlink->GetMaxVolume(volume);
   636         status = iIPDownlink->GetMaxVolume(volume);
   652         iMaxVolume = volume;
   637         iMaxVolume = volume;
   653         TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt::GetGlobalMaxVolume [%d]"), volume);
   638         TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt::GetGlobalMaxVolume [%d]"), volume);
   654         }
   639         }
   664 gint TMSCallIPAdpt::SetGlobalVolume(const guint volume)
   649 gint TMSCallIPAdpt::SetGlobalVolume(const guint volume)
   665     {
   650     {
   666     TRACE_PRN_FN_ENT;
   651     TRACE_PRN_FN_ENT;
   667     gint status(TMS_RESULT_INVALID_STATE);
   652     gint status(TMS_RESULT_INVALID_STATE);
   668     //iGlobalVol = volume;
   653     //iGlobalVol = volume;
   669     if (iDnlinkInitialized && iIPDownlink)
   654     if (iIPDownlink && iDnlState != EIdle)
   670         {
   655         {
   671         status = iIPDownlink->SetVolume(volume);
   656         status = iIPDownlink->SetVolume(volume);
   672         }
   657         }
   673     TRACE_PRN_FN_EXT;
   658     TRACE_PRN_FN_EXT;
   674     return status;
   659     return status;
   681 //
   666 //
   682 gint TMSCallIPAdpt::GetGlobalVolume(guint& volume)
   667 gint TMSCallIPAdpt::GetGlobalVolume(guint& volume)
   683     {
   668     {
   684     TRACE_PRN_FN_ENT;
   669     TRACE_PRN_FN_ENT;
   685     gint status(TMS_RESULT_INVALID_STATE);
   670     gint status(TMS_RESULT_INVALID_STATE);
   686     if (iDnlinkInitialized && iIPDownlink)
   671     if (iIPDownlink && iDnlState != EIdle)
   687         {
   672         {
   688         status = iIPDownlink->GetVolume(volume);
   673         status = iIPDownlink->GetVolume(volume);
   689         }
   674         }
   690     TRACE_PRN_FN_EXT;
   675     TRACE_PRN_FN_EXT;
   691     return status;
   676     return status;
   698 //
   683 //
   699 gint TMSCallIPAdpt::GetGlobalMaxGain(guint& gain)
   684 gint TMSCallIPAdpt::GetGlobalMaxGain(guint& gain)
   700     {
   685     {
   701     TRACE_PRN_FN_ENT;
   686     TRACE_PRN_FN_ENT;
   702     gint status(TMS_RESULT_INVALID_STATE);
   687     gint status(TMS_RESULT_INVALID_STATE);
   703     if (iUplinkInitialized && iIPUplink)
   688     if (iIPUplink && iUplState != EIdle)
   704         {
   689         {
   705         status = iIPUplink->GetMaxGain(gain);
   690         status = iIPUplink->GetMaxGain(gain);
   706         iMaxGain = gain;
   691         iMaxGain = gain;
   707         TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt::GetGlobalMaxGain [%d]"), gain);
   692         TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt::GetGlobalMaxGain [%d]"), gain);
   708         }
   693         }
   718 gint TMSCallIPAdpt::SetGlobalGain(const guint gain)
   703 gint TMSCallIPAdpt::SetGlobalGain(const guint gain)
   719     {
   704     {
   720     TRACE_PRN_FN_ENT;
   705     TRACE_PRN_FN_ENT;
   721     gint status(TMS_RESULT_INVALID_STATE);
   706     gint status(TMS_RESULT_INVALID_STATE);
   722     //iGlobalGain = gain;
   707     //iGlobalGain = gain;
   723     if (iUplinkInitialized && iIPUplink)
   708     if (iIPUplink && iUplState != EIdle)
   724         {
   709         {
   725         status = iIPUplink->SetGain(gain);
   710         status = iIPUplink->SetGain(gain);
   726         }
   711         }
   727     TRACE_PRN_FN_EXT;
   712     TRACE_PRN_FN_EXT;
   728     return status;
   713     return status;
   735 //
   720 //
   736 gint TMSCallIPAdpt::GetGlobalGain(guint& gain)
   721 gint TMSCallIPAdpt::GetGlobalGain(guint& gain)
   737     {
   722     {
   738     TRACE_PRN_FN_ENT;
   723     TRACE_PRN_FN_ENT;
   739     gint status(TMS_RESULT_INVALID_STATE);
   724     gint status(TMS_RESULT_INVALID_STATE);
   740     if (iUplinkInitialized && iIPUplink)
   725     if (iIPUplink && iUplState != EIdle)
   741         {
   726         {
   742         status = iIPUplink->GetGain(gain);
   727         status = iIPUplink->GetGain(gain);
   743         }
   728         }
   744     TRACE_PRN_FN_EXT;
   729     TRACE_PRN_FN_EXT;
   745     return status;
   730     return status;
   804 //
   789 //
   805 gint TMSCallIPAdpt::GetSupportedBitRatesCount(guint& count)
   790 gint TMSCallIPAdpt::GetSupportedBitRatesCount(guint& count)
   806     {
   791     {
   807     TRACE_PRN_FN_ENT;
   792     TRACE_PRN_FN_ENT;
   808     gint status(TMS_RESULT_INVALID_STATE);
   793     gint status(TMS_RESULT_INVALID_STATE);
   809     if (iIPUplink)
   794     if (iIPUplink && iUplState != EIdle)
   810         {
   795         {
   811         status = iIPUplink->GetSupportedBitrates(iArrBitrates);
   796         status = iIPUplink->GetSupportedBitrates(iArrBitrates);
   812         count = iArrBitrates.Count();
   797         count = iArrBitrates.Count();
   813         }
   798         }
   814     TRACE_PRN_FN_EXT;
   799     TRACE_PRN_FN_EXT;
   860 //
   845 //
   861 gint TMSCallIPAdpt::GetBitRate(guint& bitrate)
   846 gint TMSCallIPAdpt::GetBitRate(guint& bitrate)
   862     {
   847     {
   863     TRACE_PRN_FN_ENT;
   848     TRACE_PRN_FN_ENT;
   864     gint status(TMS_RESULT_INVALID_STATE);
   849     gint status(TMS_RESULT_INVALID_STATE);
   865     if (iIPUplink)
   850     if (iIPUplink && iUplState != EIdle)
   866         {
   851         {
   867         status = iIPUplink->GetBitrate(bitrate);
   852         status = iIPUplink->GetBitrate(bitrate);
   868         }
   853         }
   869     TRACE_PRN_FN_EXT;
   854     TRACE_PRN_FN_EXT;
   870     return status;
   855     return status;
   877 //
   862 //
   878 gint TMSCallIPAdpt::SetBitRate(const guint bitrate)
   863 gint TMSCallIPAdpt::SetBitRate(const guint bitrate)
   879     {
   864     {
   880     TRACE_PRN_FN_ENT;
   865     TRACE_PRN_FN_ENT;
   881     gint status(TMS_RESULT_INVALID_STATE);
   866     gint status(TMS_RESULT_INVALID_STATE);
   882     if (iIPUplink)
   867     if (iIPUplink && iUplState != EIdle)
   883         {
   868         {
   884         status = iIPUplink->SetBitrate(bitrate);
   869         status = iIPUplink->SetBitrate(bitrate);
   885         }
   870         }
   886     TRACE_PRN_FN_EXT;
   871     TRACE_PRN_FN_EXT;
   887     return status;
   872     return status;
   894 //
   879 //
   895 gint TMSCallIPAdpt::GetVAD(const TMSFormatType fmttype, gboolean& vad)
   880 gint TMSCallIPAdpt::GetVAD(const TMSFormatType fmttype, gboolean& vad)
   896     {
   881     {
   897     TRACE_PRN_FN_ENT;
   882     TRACE_PRN_FN_ENT;
   898     gint status(TMS_RESULT_INVALID_STATE);
   883     gint status(TMS_RESULT_INVALID_STATE);
   899     if (iIPUplink)
   884     if (iIPUplink && iUplState != EIdle)
   900         {
   885         {
   901         status = iIPUplink->GetVad(fmttype, vad);
   886         status = iIPUplink->GetVad(fmttype, vad);
   902         }
   887         }
   903     TRACE_PRN_FN_EXT;
   888     TRACE_PRN_FN_EXT;
   904     return status;
   889     return status;
   911 //
   896 //
   912 gint TMSCallIPAdpt::SetVAD(const TMSFormatType fmttype, const gboolean vad)
   897 gint TMSCallIPAdpt::SetVAD(const TMSFormatType fmttype, const gboolean vad)
   913     {
   898     {
   914     TRACE_PRN_FN_ENT;
   899     TRACE_PRN_FN_ENT;
   915     gint status(TMS_RESULT_INVALID_STATE);
   900     gint status(TMS_RESULT_INVALID_STATE);
   916     if (iIPUplink)
   901     if (iIPUplink && iUplState != EIdle)
   917         {
   902         {
   918         status = iIPUplink->SetVad(fmttype, vad);
   903         status = iIPUplink->SetVad(fmttype, vad);
   919         }
   904         }
   920     TRACE_PRN_FN_EXT;
   905     TRACE_PRN_FN_EXT;
   921     return status;
   906     return status;
   928 //
   913 //
   929 gint TMSCallIPAdpt::GetCNG(const TMSFormatType fmttype, gboolean& cng)
   914 gint TMSCallIPAdpt::GetCNG(const TMSFormatType fmttype, gboolean& cng)
   930     {
   915     {
   931     TRACE_PRN_FN_ENT;
   916     TRACE_PRN_FN_ENT;
   932     gint status(TMS_RESULT_INVALID_STATE);
   917     gint status(TMS_RESULT_INVALID_STATE);
   933     if (iIPDownlink)
   918     if (iIPDownlink && iDnlState == EInitialized)
   934         {
   919         {
   935         status = iIPDownlink->GetCng(fmttype, cng);
   920         status = iIPDownlink->GetCng(fmttype, cng);
   936         }
   921         }
   937     TRACE_PRN_FN_EXT;
   922     TRACE_PRN_FN_EXT;
   938     return status;
   923     return status;
   945 //
   930 //
   946 gint TMSCallIPAdpt::SetCNG(const TMSFormatType fmttype, const gboolean cng)
   931 gint TMSCallIPAdpt::SetCNG(const TMSFormatType fmttype, const gboolean cng)
   947     {
   932     {
   948     TRACE_PRN_FN_ENT;
   933     TRACE_PRN_FN_ENT;
   949     gint status(TMS_RESULT_INVALID_STATE);
   934     gint status(TMS_RESULT_INVALID_STATE);
   950     if (iIPDownlink)
   935     if (iIPDownlink && iDnlState == EInitialized)
   951         {
   936         {
   952         status = iIPDownlink->SetCng(fmttype, cng);
   937         status = iIPDownlink->SetCng(fmttype, cng);
   953         }
   938         }
   954     TRACE_PRN_FN_EXT;
   939     TRACE_PRN_FN_EXT;
   955     return status;
   940     return status;
   962 //
   947 //
   963 gint TMSCallIPAdpt::GetPlc(const TMSFormatType fmttype, gboolean& plc)
   948 gint TMSCallIPAdpt::GetPlc(const TMSFormatType fmttype, gboolean& plc)
   964     {
   949     {
   965     TRACE_PRN_FN_ENT;
   950     TRACE_PRN_FN_ENT;
   966     gint status(TMS_RESULT_INVALID_STATE);
   951     gint status(TMS_RESULT_INVALID_STATE);
   967     if (iIPDownlink)
   952     if (iIPDownlink && iDnlState != EIdle)
   968         {
   953         {
   969         status = iIPDownlink->GetPlc(fmttype, plc);
   954         status = iIPDownlink->GetPlc(fmttype, plc);
   970         }
   955         }
   971     TRACE_PRN_FN_EXT;
   956     TRACE_PRN_FN_EXT;
   972     return status;
   957     return status;
   979 //
   964 //
   980 gint TMSCallIPAdpt::SetPlc(const TMSFormatType fmttype, const gboolean plc)
   965 gint TMSCallIPAdpt::SetPlc(const TMSFormatType fmttype, const gboolean plc)
   981     {
   966     {
   982     TRACE_PRN_FN_ENT;
   967     TRACE_PRN_FN_ENT;
   983     gint status(TMS_RESULT_INVALID_STATE);
   968     gint status(TMS_RESULT_INVALID_STATE);
   984     if (iIPDownlink)
   969     if (iIPDownlink && iDnlState == EInitialized)
   985         {
   970         {
   986         status = iIPDownlink->SetPlc(fmttype, plc);
   971         status = iIPDownlink->SetPlc(fmttype, plc);
   987         }
   972         }
   988     TRACE_PRN_FN_EXT;
   973     TRACE_PRN_FN_EXT;
   989     return status;
   974     return status;
  1170 // -----------------------------------------------------------------------------
  1155 // -----------------------------------------------------------------------------
  1171 //
  1156 //
  1172 gint TMSCallIPAdpt::SetIlbcCodecMode(const gint mode,
  1157 gint TMSCallIPAdpt::SetIlbcCodecMode(const gint mode,
  1173         const TMSStreamType strmtype)
  1158         const TMSStreamType strmtype)
  1174     {
  1159     {
  1175     gint status(TMS_RESULT_INVALID_ARGUMENT);
  1160     gint status(TMS_RESULT_SUCCESS);
  1176 
  1161 
  1177     if (strmtype == TMS_STREAM_DOWNLINK)
  1162     if (strmtype == TMS_STREAM_DOWNLINK && iIPDownlink &&
  1178         {
  1163             iDnlState == EInitialized)
  1179         if (iDnlinkInitialized && iIPDownlink)
  1164         {
  1180             {
  1165         status = iIPDownlink->SetIlbcCodecMode(mode);
  1181             status = iIPDownlink->SetIlbcCodecMode(mode);
  1166         }
  1182             }
  1167     else if (strmtype == TMS_STREAM_UPLINK && iIPUplink &&
  1183         }
  1168             iUplState == EInitialized)
  1184     else if (strmtype == TMS_STREAM_UPLINK)
  1169         {
  1185         {
  1170         status = iIPUplink->SetIlbcCodecMode(mode);
  1186         if (iUplinkInitialized && iIPUplink)
  1171         }
  1187             {
  1172     else
  1188             status = iIPUplink->SetIlbcCodecMode(mode);
  1173         {
  1189             }
  1174         status = TMS_RESULT_INVALID_STATE;
  1190         }
  1175         }
  1191 
       
  1192     return status;
  1176     return status;
  1193     }
  1177     }
  1194 
  1178 
  1195 // -----------------------------------------------------------------------------
  1179 // -----------------------------------------------------------------------------
  1196 // TMSCallIPAdpt::GetIlbcCodecMode
  1180 // TMSCallIPAdpt::GetIlbcCodecMode
  1197 //
  1181 //
  1198 // -----------------------------------------------------------------------------
  1182 // -----------------------------------------------------------------------------
  1199 //
  1183 //
  1200 gint TMSCallIPAdpt::GetIlbcCodecMode(gint& mode, const TMSStreamType strmtype)
  1184 gint TMSCallIPAdpt::GetIlbcCodecMode(gint& mode, const TMSStreamType strmtype)
  1201     {
  1185     {
  1202     gint status(TMS_RESULT_INVALID_ARGUMENT);
  1186     gint status(TMS_RESULT_SUCCESS);
  1203 
  1187 
  1204     if (strmtype == TMS_STREAM_DOWNLINK)
  1188     if (strmtype == TMS_STREAM_DOWNLINK && iIPDownlink &&
  1205         {
  1189             iDnlState != EIdle)
  1206         if (iDnlinkInitialized && iIPDownlink)
  1190         {
  1207             {
  1191         status = iIPDownlink->GetIlbcCodecMode(mode);
  1208             status = iIPDownlink->GetIlbcCodecMode(mode);
  1192         }
  1209             }
  1193     else if (strmtype == TMS_STREAM_UPLINK && iIPUplink &&
  1210         }
  1194             iUplState != EIdle)
  1211     else if (strmtype == TMS_STREAM_UPLINK)
  1195         {
  1212         {
  1196         status = iIPUplink->GetIlbcCodecMode(mode);
  1213         if (iUplinkInitialized && iIPUplink)
  1197         }
  1214             {
  1198     else
  1215             status = iIPUplink->GetIlbcCodecMode(mode);
  1199         {
  1216             }
  1200         status = TMS_RESULT_INVALID_STATE;
  1217         }
  1201         }
  1218 
       
  1219     return status;
  1202     return status;
  1220     }
  1203     }
  1221 
  1204 
  1222 // -----------------------------------------------------------------------------
  1205 // -----------------------------------------------------------------------------
  1223 // TMSCallIPAdpt::SetG711CodecMode
  1206 // TMSCallIPAdpt::SetG711CodecMode
  1225 // -----------------------------------------------------------------------------
  1208 // -----------------------------------------------------------------------------
  1226 //
  1209 //
  1227 gint TMSCallIPAdpt::SetG711CodecMode(const gint mode,
  1210 gint TMSCallIPAdpt::SetG711CodecMode(const gint mode,
  1228         const TMSStreamType strmtype)
  1211         const TMSStreamType strmtype)
  1229     {
  1212     {
  1230     gint status(TMS_RESULT_INVALID_ARGUMENT);
  1213     gint status(TMS_RESULT_SUCCESS);
  1231 
  1214 
  1232     if (strmtype == TMS_STREAM_DOWNLINK)
  1215     if (strmtype == TMS_STREAM_DOWNLINK && iIPDownlink &&
  1233         {
  1216             iDnlState == EInitialized)
  1234         if (iDnlinkInitialized && iIPDownlink)
  1217         {
  1235             {
  1218         status = iIPDownlink->SetG711CodecMode(mode);
  1236             status = iIPDownlink->SetG711CodecMode(mode);
  1219         }
  1237             }
  1220     else if (strmtype == TMS_STREAM_UPLINK && iIPUplink &&
  1238         }
  1221             iUplState == EInitialized)
  1239     else if (strmtype == TMS_STREAM_UPLINK)
  1222         {
  1240         {
  1223         status = iIPUplink->SetG711CodecMode(mode);
  1241         if (iUplinkInitialized && iIPUplink)
  1224         }
  1242             {
  1225     else
  1243             status = iIPUplink->SetG711CodecMode(mode);
  1226         {
  1244             }
  1227         status = TMS_RESULT_INVALID_STATE;
  1245         }
  1228         }
  1246 
       
  1247     return status;
  1229     return status;
  1248     }
  1230     }
  1249 
  1231 
  1250 // -----------------------------------------------------------------------------
  1232 // -----------------------------------------------------------------------------
  1251 // TMSCallIPAdpt::GetG711CodecMode
  1233 // TMSCallIPAdpt::GetG711CodecMode
  1252 //
  1234 //
  1253 // -----------------------------------------------------------------------------
  1235 // -----------------------------------------------------------------------------
  1254 //
  1236 //
  1255 gint TMSCallIPAdpt::GetG711CodecMode(gint& mode, const TMSStreamType strmtype)
  1237 gint TMSCallIPAdpt::GetG711CodecMode(gint& mode, const TMSStreamType strmtype)
  1256     {
  1238     {
  1257     gint status(TMS_RESULT_INVALID_ARGUMENT);
  1239     gint status(TMS_RESULT_SUCCESS);
  1258 
  1240 
  1259     if (strmtype == TMS_STREAM_DOWNLINK)
  1241     if (strmtype == TMS_STREAM_DOWNLINK && iIPDownlink &&
  1260         {
  1242             iDnlState != EIdle)
  1261         if (iDnlinkInitialized && iIPDownlink)
  1243         {
  1262             {
  1244         status = iIPDownlink->GetG711CodecMode(mode);
  1263             status = iIPDownlink->GetG711CodecMode(mode);
  1245         }
  1264             }
  1246     else if (strmtype == TMS_STREAM_UPLINK && iIPUplink &&
  1265         }
  1247             iUplState != EIdle)
  1266     else if (strmtype == TMS_STREAM_UPLINK)
  1248         {
  1267         {
  1249         status = iIPUplink->GetG711CodecMode(mode);
  1268         if (iUplinkInitialized && iIPUplink)
  1250         }
  1269             {
  1251     else
  1270             status = iIPUplink->GetG711CodecMode(mode);
  1252         {
  1271             }
  1253         status = TMS_RESULT_INVALID_STATE;
  1272         }
  1254         }
  1273 
       
  1274     return status;
  1255     return status;
  1275     }
  1256     }
  1276 
  1257 
  1277 // -----------------------------------------------------------------------------
  1258 // -----------------------------------------------------------------------------
  1278 // TMSCallIPAdpt::FrameModeRequiredForEC
  1259 // TMSCallIPAdpt::FrameModeRequiredForEC
  1279 //
  1260 //
  1280 // -----------------------------------------------------------------------------
  1261 // -----------------------------------------------------------------------------
  1281 //
  1262 //
  1282 gint TMSCallIPAdpt::FrameModeRqrdForEC(gboolean& frmodereq)
  1263 gint TMSCallIPAdpt::FrameModeRqrdForEC(gboolean& frmodereq)
  1283     {
  1264     {
  1284     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
  1265     gint status(TMS_RESULT_INVALID_STATE);
  1285     if (iIPDownlink)
  1266     if (iIPDownlink && iDnlState == EInitialized)
  1286         {
  1267         {
  1287         status = iIPDownlink->FrameModeRqrdForEC(frmodereq);
  1268         status = iIPDownlink->FrameModeRqrdForEC(frmodereq);
  1288         }
  1269         }
  1289     return status;
  1270     return status;
  1290     }
  1271     }
  1294 //
  1275 //
  1295 // -----------------------------------------------------------------------------
  1276 // -----------------------------------------------------------------------------
  1296 //
  1277 //
  1297 gint TMSCallIPAdpt::SetFrameMode(const gboolean frmode)
  1278 gint TMSCallIPAdpt::SetFrameMode(const gboolean frmode)
  1298     {
  1279     {
  1299     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
  1280     gint status(TMS_RESULT_INVALID_STATE);
  1300     if (iIPDownlink)
  1281     if (iIPDownlink && iDnlState == EInitialized)
  1301         {
  1282         {
  1302         status = iIPDownlink->SetFrameMode(frmode);
  1283         status = iIPDownlink->SetFrameMode(frmode);
  1303         }
  1284         }
  1304     return status;
  1285     return status;
  1305     }
  1286     }
  1309 //
  1290 //
  1310 // -----------------------------------------------------------------------------
  1291 // -----------------------------------------------------------------------------
  1311 //
  1292 //
  1312 gint TMSCallIPAdpt::GetFrameMode(gboolean& frmode)
  1293 gint TMSCallIPAdpt::GetFrameMode(gboolean& frmode)
  1313     {
  1294     {
  1314     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
  1295     gint status(TMS_RESULT_INVALID_STATE);
  1315     if (iIPDownlink)
  1296     if (iIPDownlink && iDnlState != EIdle)
  1316         {
  1297         {
  1317         status = iIPDownlink->GetFrameMode(frmode);
  1298         status = iIPDownlink->GetFrameMode(frmode);
  1318         }
  1299         }
  1319     return status;
  1300     return status;
  1320     }
  1301     }
  1323 // TMSCallIPAdpt::ConcealErrorForNextBuffer
  1304 // TMSCallIPAdpt::ConcealErrorForNextBuffer
  1324 // -----------------------------------------------------------------------------
  1305 // -----------------------------------------------------------------------------
  1325 //
  1306 //
  1326 gint TMSCallIPAdpt::ConcealErrorForNextBuffer()
  1307 gint TMSCallIPAdpt::ConcealErrorForNextBuffer()
  1327     {
  1308     {
  1328     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
  1309     gint status(TMS_RESULT_INVALID_STATE);
  1329     if (iIPDownlink)
  1310     if (iIPDownlink && iDnlState == EActivated)
  1330         {
  1311         {
  1331         status = iIPDownlink->ConcealErrorForNextBuffer();
  1312         status = iIPDownlink->ConcealErrorForNextBuffer();
  1332         }
  1313         }
  1333     return status;
  1314     return status;
  1334     }
  1315     }
  1338 //
  1319 //
  1339 // -----------------------------------------------------------------------------
  1320 // -----------------------------------------------------------------------------
  1340 //
  1321 //
  1341 gint TMSCallIPAdpt::BadLsfNextBuffer()
  1322 gint TMSCallIPAdpt::BadLsfNextBuffer()
  1342     {
  1323     {
  1343     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
  1324     gint status(TMS_RESULT_INVALID_STATE);
  1344     if (iIPDownlink)
  1325     if (iIPDownlink && iDnlState == EActivated)
  1345         {
  1326         {
  1346         status = iIPDownlink->BadLsfNextBuffer();
  1327         status = iIPDownlink->BadLsfNextBuffer();
  1347         }
  1328         }
  1348     return status;
  1329     return status;
  1349     }
  1330     }
  1354 // -----------------------------------------------------------------------------
  1335 // -----------------------------------------------------------------------------
  1355 //
  1336 //
  1356 gint TMSCallIPAdpt::SetOutput(TMSAudioOutput output)
  1337 gint TMSCallIPAdpt::SetOutput(TMSAudioOutput output)
  1357     {
  1338     {
  1358     TRACE_PRN_FN_ENT;
  1339     TRACE_PRN_FN_ENT;
  1359     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
  1340     gint status(TMS_RESULT_INVALID_STATE);
  1360     if (iDnlinkInitialized && iIPDownlink)
  1341     if (iIPDownlink && iDnlState != EIdle)
  1361         {
  1342         {
  1362         TRAP(status, iIPDownlink->SetAudioDeviceL(output));
  1343         TRAP(status, iIPDownlink->SetAudioDeviceL(output));
  1363         }
  1344         }
  1364     TRACE_PRN_FN_EXT;
  1345     TRACE_PRN_FN_EXT;
  1365     return status;
  1346     return status;
  1366     }
  1347     }
       
  1348 
  1367 // -----------------------------------------------------------------------------
  1349 // -----------------------------------------------------------------------------
  1368 // TMSCallIPAdpt::GetOutput
  1350 // TMSCallIPAdpt::GetOutput
  1369 //
  1351 //
  1370 // -----------------------------------------------------------------------------
  1352 // -----------------------------------------------------------------------------
  1371 //
  1353 //
  1372 gint TMSCallIPAdpt::GetOutput(TMSAudioOutput& output)
  1354 gint TMSCallIPAdpt::GetOutput(TMSAudioOutput& output)
  1373     {
  1355     {
  1374     TRACE_PRN_FN_ENT;
  1356     TRACE_PRN_FN_ENT;
  1375     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
  1357     gint status(TMS_RESULT_INVALID_STATE);
  1376     if (iDnlinkInitialized && iIPDownlink)
  1358     if (iIPDownlink && iDnlState != EIdle)
  1377         {
  1359         {
  1378         TRAP(status, iIPDownlink->GetAudioDeviceL(output));
  1360         TRAP(status, iIPDownlink->GetAudioDeviceL(output));
  1379         }
  1361         }
  1380     TRACE_PRN_FN_EXT;
  1362     TRACE_PRN_FN_EXT;
  1381     return status;
  1363     return status;
  1397 // -----------------------------------------------------------------------------
  1379 // -----------------------------------------------------------------------------
  1398 //
  1380 //
  1399 gint TMSCallIPAdpt::GetAvailableOutputsL(gint& /*count*/,
  1381 gint TMSCallIPAdpt::GetAvailableOutputsL(gint& /*count*/,
  1400         CBufFlat*& /*outputsbuf*/)
  1382         CBufFlat*& /*outputsbuf*/)
  1401     {
  1383     {
       
  1384     //TODO: return public & private
  1402     return TMS_RESULT_FEATURE_NOT_SUPPORTED;
  1385     return TMS_RESULT_FEATURE_NOT_SUPPORTED;
  1403     }
       
  1404 
       
  1405 // -----------------------------------------------------------------------------
       
  1406 // TMSCallIPAdpt::InitDTMF
       
  1407 //
       
  1408 // -----------------------------------------------------------------------------
       
  1409 //
       
  1410 gint TMSCallIPAdpt::InitDTMF(TMSStreamType strmtype)
       
  1411     {
       
  1412     TRACE_PRN_FN_ENT;
       
  1413     gint status(TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED);
       
  1414 
       
  1415     if (strmtype == TMS_STREAM_DOWNLINK)
       
  1416         {
       
  1417         delete iDTMFDnlinkPlayer;
       
  1418         iDTMFDnlinkPlayer = NULL;
       
  1419         TRAP(status, iDTMFDnlinkPlayer = TMSAudioDtmfTonePlayer::NewL(*this,
       
  1420                 KAudioDTMFString, KAudioPriorityDTMFString));
       
  1421          }
       
  1422     else if (strmtype == TMS_STREAM_UPLINK)
       
  1423         {
       
  1424         delete iDTMFUplinkPlayer;
       
  1425         iDTMFUplinkPlayer = NULL;
       
  1426         TRAP(status, iDTMFUplinkPlayer = TMSAudioDtmfTonePlayer::NewL(*this,
       
  1427                 KAudioDTMFString, KAudioPriorityDTMFString));
       
  1428         }
       
  1429 
       
  1430     if (!iDTMFNotifier && status == TMS_RESULT_SUCCESS)
       
  1431          {
       
  1432          TRAP(status, iDTMFNotifier = TMSDtmfNotifier::NewL());
       
  1433          }
       
  1434 
       
  1435     TRACE_PRN_FN_EXT;
       
  1436     return status;
       
  1437     }
       
  1438 
       
  1439 // -----------------------------------------------------------------------------
       
  1440 // TMSCallIPAdpt::StartDTMF
       
  1441 //
       
  1442 // -----------------------------------------------------------------------------
       
  1443 //
       
  1444 gint TMSCallIPAdpt::StartDTMF(TMSStreamType strmtype, TDes& dtmfstring)
       
  1445     {
       
  1446     TRACE_PRN_FN_ENT;
       
  1447     gint status(TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED);
       
  1448     TmsMsgBufPckg dtmfpckg;
       
  1449     dtmfpckg().iStatus = status;
       
  1450     dtmfpckg().iRequest = ECmdDTMFTonePlayFinished;
       
  1451 
       
  1452     if (strmtype == TMS_STREAM_DOWNLINK)
       
  1453         {
       
  1454         status = TMS_RESULT_UNINITIALIZED_OBJECT;
       
  1455         if (iDTMFDnlinkPlayer)
       
  1456             {
       
  1457             iDTMFDnlinkPlayer->PlayDtmfTone(dtmfstring);
       
  1458             status = TMS_RESULT_SUCCESS;
       
  1459             }
       
  1460         dtmfpckg().iStatus = status;
       
  1461         dtmfpckg().iRequest = ECmdDTMFToneDnlPlayStarted;
       
  1462         }
       
  1463     else if (strmtype == TMS_STREAM_UPLINK)
       
  1464         {
       
  1465         status = TMS_RESULT_UNINITIALIZED_OBJECT;
       
  1466         if (iDTMFUplinkPlayer)
       
  1467             {
       
  1468             iDTMFUplinkPlayer->PlayDtmfTone(dtmfstring);
       
  1469             status = TMS_RESULT_SUCCESS;
       
  1470             }
       
  1471         dtmfpckg().iStatus = status;
       
  1472         dtmfpckg().iRequest = ECmdDTMFToneUplPlayStarted;
       
  1473         }
       
  1474 
       
  1475     if (iDTMFNotifier)
       
  1476         {
       
  1477         iDTMFNotifier->SetDtmf(dtmfpckg);
       
  1478         }
       
  1479 
       
  1480     TRACE_PRN_IF_ERR(status);
       
  1481     TRACE_PRN_FN_EXT;
       
  1482     return status;
       
  1483     }
       
  1484 
       
  1485 // -----------------------------------------------------------------------------
       
  1486 // TMSCallIPAdpt::StopDTMF
       
  1487 //
       
  1488 // -----------------------------------------------------------------------------
       
  1489 //
       
  1490 gint TMSCallIPAdpt::StopDTMF(TMSStreamType streamtype)
       
  1491     {
       
  1492     TRACE_PRN_FN_ENT;
       
  1493     gint status(TMS_RESULT_SUCCESS);
       
  1494 
       
  1495     if (streamtype == TMS_STREAM_DOWNLINK && iDTMFDnlinkPlayer)
       
  1496         {
       
  1497         iDTMFDnlinkPlayer->Cancel();
       
  1498         }
       
  1499     else if (streamtype == TMS_STREAM_UPLINK && iDTMFUplinkPlayer)
       
  1500         {
       
  1501         //status = iDTMFUplinkPlayer->StopDtmfTone();
       
  1502         iDTMFUplinkPlayer->Cancel();
       
  1503         }
       
  1504 
       
  1505     TRACE_PRN_FN_EXT;
       
  1506     return status;
       
  1507     }
       
  1508 
       
  1509 // -----------------------------------------------------------------------------
       
  1510 // TMSCallIPAdpt::ContinueDTMF
       
  1511 //
       
  1512 // -----------------------------------------------------------------------------
       
  1513 //
       
  1514 gint TMSCallIPAdpt::ContinueDTMF(const gboolean /*sending*/)
       
  1515     {
       
  1516     return TMS_RESULT_FEATURE_NOT_SUPPORTED;
       
  1517     }
       
  1518 
       
  1519 //From DTMFTonePlayerObserver
       
  1520 // -----------------------------------------------------------------------------
       
  1521 // TMSCallIPAdpt::DTMFInitCompleted
       
  1522 //
       
  1523 // -----------------------------------------------------------------------------
       
  1524 //
       
  1525 void TMSCallIPAdpt::DTMFInitCompleted(gint /*status*/)
       
  1526     {
       
  1527     TRACE_PRN_FN_ENT;
       
  1528     // TODO: process error
       
  1529     TRACE_PRN_FN_EXT;
       
  1530     }
       
  1531 
       
  1532 // -----------------------------------------------------------------------------
       
  1533 // TMSCallIPAdpt::DTMFToneFinished
       
  1534 //
       
  1535 // -----------------------------------------------------------------------------
       
  1536 //
       
  1537 void TMSCallIPAdpt::DTMFToneFinished(gint status)
       
  1538     {
       
  1539     TRACE_PRN_FN_ENT;
       
  1540     TRACE_PRN_IF_ERR(status);
       
  1541     TmsMsgBufPckg dtmfpckg;
       
  1542 
       
  1543     // KErrUnderflow indicates end of DTMF playback.
       
  1544     if (status == KErrUnderflow /*|| status == KErrInUse*/)
       
  1545         {
       
  1546         status = TMS_RESULT_SUCCESS;
       
  1547         }
       
  1548     dtmfpckg().iStatus = TMSUtility::TMSResult(status);
       
  1549     dtmfpckg().iRequest = ECmdDTMFTonePlayFinished;
       
  1550     if (iDTMFNotifier)
       
  1551         {
       
  1552         iDTMFNotifier->SetDtmf(dtmfpckg);
       
  1553         }
       
  1554     TRACE_PRN_FN_EXT;
       
  1555     }
  1386     }
  1556 
  1387 
  1557 // -----------------------------------------------------------------------------
  1388 // -----------------------------------------------------------------------------
  1558 // TMSCallIPAdpt::DownlinkInitCompleted
  1389 // TMSCallIPAdpt::DownlinkInitCompleted
  1559 // From TMSIPDevSoundObserver
  1390 // From TMSIPDevSoundObserver
  1562 void TMSCallIPAdpt::DownlinkInitCompleted(gint status)
  1393 void TMSCallIPAdpt::DownlinkInitCompleted(gint status)
  1563     {
  1394     {
  1564     TRACE_PRN_FN_ENT;
  1395     TRACE_PRN_FN_ENT;
  1565     if (status == TMS_RESULT_SUCCESS)
  1396     if (status == TMS_RESULT_SUCCESS)
  1566         {
  1397         {
  1567         iDnlinkInitialized = TRUE;
  1398         iDnlState = EInitialized;
  1568         }
  1399         }
  1569     NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status);
  1400     NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status);
  1570     TRACE_PRN_FN_EXT;
  1401     TRACE_PRN_FN_EXT;
  1571     }
  1402     }
  1572 
  1403 
  1578 void TMSCallIPAdpt::UplinkInitCompleted(gint status)
  1409 void TMSCallIPAdpt::UplinkInitCompleted(gint status)
  1579     {
  1410     {
  1580     TRACE_PRN_FN_ENT;
  1411     TRACE_PRN_FN_ENT;
  1581     if (status == TMS_RESULT_SUCCESS)
  1412     if (status == TMS_RESULT_SUCCESS)
  1582         {
  1413         {
  1583         iUplinkInitialized = TRUE;
  1414         iUplState = EInitialized;
  1584         }
  1415         }
  1585     NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status);
  1416     NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status);
  1586     TRACE_PRN_FN_EXT;
  1417     TRACE_PRN_FN_EXT;
  1587     }
  1418     }
  1588 
  1419 
  1592 // -----------------------------------------------------------------------------
  1423 // -----------------------------------------------------------------------------
  1593 //
  1424 //
  1594 void TMSCallIPAdpt::UplinkStarted(gint status)
  1425 void TMSCallIPAdpt::UplinkStarted(gint status)
  1595     {
  1426     {
  1596     TRACE_PRN_FN_ENT;
  1427     TRACE_PRN_FN_ENT;
       
  1428     if (status == TMS_RESULT_SUCCESS)
       
  1429         {
       
  1430         iUplState = EActivated;
       
  1431         }
  1597     NotifyClient(iUplinkStreamId, ECmdUplinkStarted, status);
  1432     NotifyClient(iUplinkStreamId, ECmdUplinkStarted, status);
  1598     TRACE_PRN_FN_EXT;
  1433     TRACE_PRN_FN_EXT;
  1599     }
  1434     }
  1600 
  1435 
  1601 // -----------------------------------------------------------------------------
  1436 // -----------------------------------------------------------------------------
  1604 // -----------------------------------------------------------------------------
  1439 // -----------------------------------------------------------------------------
  1605 //
  1440 //
  1606 void TMSCallIPAdpt::DownlinkStarted(gint status)
  1441 void TMSCallIPAdpt::DownlinkStarted(gint status)
  1607     {
  1442     {
  1608     TRACE_PRN_FN_ENT;
  1443     TRACE_PRN_FN_ENT;
       
  1444     if (status == TMS_RESULT_SUCCESS)
       
  1445         {
       
  1446         iDnlState = EActivated;
       
  1447         }
  1609     NotifyClient(iDnlinkStreamId, ECmdDownlinkStarted, status);
  1448     NotifyClient(iDnlinkStreamId, ECmdDownlinkStarted, status);
  1610     TRACE_PRN_FN_EXT;
  1449     TRACE_PRN_FN_EXT;
  1611     }
  1450     }
  1612 
  1451 
  1613 // -----------------------------------------------------------------------------
  1452 // -----------------------------------------------------------------------------
  1628         {
  1467         {
  1629         iMsgQueueDn.Send(iMsgBuffer);
  1468         iMsgQueueDn.Send(iMsgBuffer);
  1630         }
  1469         }
  1631     }
  1470     }
  1632 
  1471 
  1633 // End of file