mmserv/tms/tmscallserver/src/tmscallipadpt.cpp
changeset 42 1fa3fb47b1e3
parent 32 94fc26b6e006
child 55 e267340986c9
equal deleted inserted replaced
32:94fc26b6e006 42:1fa3fb47b1e3
    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             {
   273         case TMS_STREAM_UPLINK:
   257         case TMS_STREAM_UPLINK:
   274             {
   258             {
   275             if (strmId == iUplinkStreamId && iIPUplink)
   259             if (strmId == iUplinkStreamId && iIPUplink)
   276                 {
   260                 {
   277                 iIPUplink->Stop();
   261                 iIPUplink->Stop();
       
   262                 iUplState = EInitialized;
   278                 status = TMS_RESULT_SUCCESS;
   263                 status = TMS_RESULT_SUCCESS;
   279                 NotifyClient(iUplinkStreamId, ECmdUplinkPaused, status);
   264                 NotifyClient(iUplinkStreamId, ECmdUplinkPaused, status);
   280                 }
   265                 }
   281             break;
   266             break;
   282             }
   267             }
   283         case TMS_STREAM_DOWNLINK:
   268         case TMS_STREAM_DOWNLINK:
   284             {
   269             {
   285             if (strmId == iDnlinkStreamId && iIPDownlink)
   270             if (strmId == iDnlinkStreamId && iIPDownlink)
   286                 {
   271                 {
   287                 iIPDownlink->Stop();
   272                 iIPDownlink->Stop();
       
   273                 iDnlState = EInitialized;
   288                 status = TMS_RESULT_SUCCESS;
   274                 status = TMS_RESULT_SUCCESS;
   289                 NotifyClient(iDnlinkStreamId, ECmdDownlinkPaused, status);
   275                 NotifyClient(iDnlinkStreamId, ECmdDownlinkPaused, status);
   290                 }
   276                 }
   291             break;
   277             break;
   292             }
   278             }
   313 
   299 
   314     switch (strmType)
   300     switch (strmType)
   315         {
   301         {
   316         case TMS_STREAM_UPLINK:
   302         case TMS_STREAM_UPLINK:
   317             {
   303             {
   318             if (iIPUplink && strmId == iUplinkStreamId)
   304             if (iIPUplink && strmId == iUplinkStreamId &&
       
   305                     iUplState == EActivated)
   319                 {
   306                 {
   320                 iIPUplink->Stop();
   307                 iIPUplink->Stop();
       
   308                 iUplState = EInitialized;
   321                 status = TMS_RESULT_SUCCESS;
   309                 status = TMS_RESULT_SUCCESS;
   322                 NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status);
   310                 NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status);
   323                 }
   311                 }
   324             break;
   312             break;
   325             }
   313             }
   326         case TMS_STREAM_DOWNLINK:
   314         case TMS_STREAM_DOWNLINK:
   327             {
   315             {
   328             if (iIPDownlink && strmId == iDnlinkStreamId)
   316             if (iIPDownlink && strmId == iDnlinkStreamId &&
       
   317                     iDnlState == EActivated)
   329                 {
   318                 {
   330                 iIPDownlink->Stop();
   319                 iIPDownlink->Stop();
       
   320                 iDnlState = EInitialized;
   331                 status = TMS_RESULT_SUCCESS;
   321                 status = TMS_RESULT_SUCCESS;
   332                 NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status);
   322                 NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status);
   333                 }
   323                 }
   334             break;
   324             break;
   335             }
   325             }
   356 
   346 
   357     switch (strmType)
   347     switch (strmType)
   358         {
   348         {
   359         case TMS_STREAM_UPLINK:
   349         case TMS_STREAM_UPLINK:
   360             {
   350             {
   361             if (iIPUplink && strmId == iUplinkStreamId)
   351             if (iIPUplink && strmId == iUplinkStreamId && iUplState != EIdle)
   362                 {
   352                 {
   363                 iIPUplink->Stop();
   353                 iIPUplink->Stop();
   364                 //iUplinkStreamId = -1;
   354                 iUplState = EIdle;
   365                 iUplinkInitialized = FALSE;
       
   366                 status = TMS_RESULT_SUCCESS;
   355                 status = TMS_RESULT_SUCCESS;
   367                 NotifyClient(iUplinkStreamId, ECmdUplinkDeInitComplete, status);
   356                 NotifyClient(iUplinkStreamId, ECmdUplinkDeInitComplete, status);
   368                 }
   357                 }
   369             break;
   358             break;
   370             }
   359             }
   371         case TMS_STREAM_DOWNLINK:
   360         case TMS_STREAM_DOWNLINK:
   372             {
   361             {
   373             if (iIPDownlink && strmId == iDnlinkStreamId)
   362             if (iIPDownlink && strmId == iDnlinkStreamId && iDnlState != EIdle)
   374                 {
   363                 {
   375                 iIPDownlink->Stop();
   364                 iIPDownlink->Stop();
   376                 //iDnlinkStreamId = -1;
   365                 iDnlState = EIdle;
   377                 iDnlinkInitialized = FALSE;
       
   378                 status = TMS_RESULT_SUCCESS;
   366                 status = TMS_RESULT_SUCCESS;
   379                 NotifyClient(iDnlinkStreamId, ECmdDownlinkDeInitComplete,
   367                 NotifyClient(iDnlinkStreamId, ECmdDownlinkDeInitComplete,
   380                         status);
   368                         status);
   381                 }
   369                 }
   382             break;
   370             break;
   385             {
   373             {
   386             status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED;
   374             status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED;
   387             break;
   375             break;
   388             }
   376             }
   389         }
   377         }
   390 
       
   391     TRACE_PRN_FN_EXT;
   378     TRACE_PRN_FN_EXT;
   392     return status;
   379     return status;
   393     }
   380     }
   394 
   381 
   395 // -----------------------------------------------------------------------------
   382 // -----------------------------------------------------------------------------
   407         case TMS_STREAM_UPLINK:
   394         case TMS_STREAM_UPLINK:
   408             {
   395             {
   409             if (strmId == iUplinkStreamId)
   396             if (strmId == iUplinkStreamId)
   410                 {
   397                 {
   411                 iUplinkStreamId = -1;
   398                 iUplinkStreamId = -1;
   412                 iUplinkInitialized = FALSE;
   399                 iUplState = EIdle;
   413                 }
   400                 }
   414             break;
   401             break;
   415             }
   402             }
   416         case TMS_STREAM_DOWNLINK:
   403         case TMS_STREAM_DOWNLINK:
   417             {
   404             {
   418             if (strmId == iDnlinkStreamId)
   405             if (strmId == iDnlinkStreamId)
   419                 {
   406                 {
   420                 iDnlinkStreamId = -1;
   407                 iDnlinkStreamId = -1;
   421                 iDnlinkInitialized = FALSE;
   408                 iDnlState = EIdle;
   422                 }
   409                 }
   423             break;
   410             break;
   424             }
   411             }
   425         default:
   412         default:
   426             {
   413             {
   536 //
   523 //
   537 gint TMSCallIPAdpt::GetMaxVolume(guint& volume)
   524 gint TMSCallIPAdpt::GetMaxVolume(guint& volume)
   538     {
   525     {
   539     TRACE_PRN_FN_ENT;
   526     TRACE_PRN_FN_ENT;
   540     gint status(TMS_RESULT_INVALID_STATE);
   527     gint status(TMS_RESULT_INVALID_STATE);
   541     if (iDnlinkInitialized && iIPDownlink)
   528     if (iIPDownlink && iDnlState != EIdle)
   542         {
   529         {
   543         status = iIPDownlink->GetMaxVolume(volume);
   530         status = iIPDownlink->GetMaxVolume(volume);
   544         iMaxVolume = volume;
   531         iMaxVolume = volume;
   545         TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt: GetMaxVolume [%d]"), iMaxVolume);
   532         TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt: GetMaxVolume [%d]"), iMaxVolume);
   546         }
   533         }
   555 //
   542 //
   556 gint TMSCallIPAdpt::SetVolume(const guint volume)
   543 gint TMSCallIPAdpt::SetVolume(const guint volume)
   557     {
   544     {
   558     TRACE_PRN_FN_ENT;
   545     TRACE_PRN_FN_ENT;
   559     gint status(TMS_RESULT_INVALID_STATE);
   546     gint status(TMS_RESULT_INVALID_STATE);
   560     if (iDnlinkInitialized && iIPDownlink)
   547     if (iIPDownlink && iDnlState != EIdle)
   561         {
   548         {
   562         status = iIPDownlink->SetVolume(volume);
   549         status = iIPDownlink->SetVolume(volume);
   563         NotifyClient(iDnlinkStreamId, ECmdSetVolume, status);
   550         NotifyClient(iDnlinkStreamId, ECmdSetVolume, status);
   564         }
   551         }
   565     TRACE_PRN_FN_EXT;
   552     TRACE_PRN_FN_EXT;
   573 //
   560 //
   574 gint TMSCallIPAdpt::GetVolume(guint& volume)
   561 gint TMSCallIPAdpt::GetVolume(guint& volume)
   575     {
   562     {
   576     TRACE_PRN_FN_ENT;
   563     TRACE_PRN_FN_ENT;
   577     gint status(TMS_RESULT_INVALID_STATE);
   564     gint status(TMS_RESULT_INVALID_STATE);
   578     if (iDnlinkInitialized && iIPDownlink)
   565     if (iIPDownlink && iDnlState != EIdle)
   579         {
   566         {
   580         status = iIPDownlink->GetVolume(volume);
   567         status = iIPDownlink->GetVolume(volume);
   581         }
   568         }
   582     TRACE_PRN_FN_EXT;
   569     TRACE_PRN_FN_EXT;
   583     return status;
   570     return status;
   590 //
   577 //
   591 gint TMSCallIPAdpt::GetMaxGain(guint& gain)
   578 gint TMSCallIPAdpt::GetMaxGain(guint& gain)
   592     {
   579     {
   593     TRACE_PRN_FN_ENT;
   580     TRACE_PRN_FN_ENT;
   594     gint status(TMS_RESULT_INVALID_STATE);
   581     gint status(TMS_RESULT_INVALID_STATE);
   595     if (iUplinkInitialized && iIPUplink)
   582     if (iIPUplink && iUplState != EIdle)
   596         {
   583         {
   597         status = iIPUplink->GetMaxGain(gain);
   584         status = iIPUplink->GetMaxGain(gain);
   598         iMaxGain = gain;
   585         iMaxGain = gain;
   599         TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt::GetMaxGain [%d]"), iMaxGain);
   586         TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt::GetMaxGain [%d]"), iMaxGain);
   600         }
   587         }
   609 //
   596 //
   610 gint TMSCallIPAdpt::SetGain(const guint gain)
   597 gint TMSCallIPAdpt::SetGain(const guint gain)
   611     {
   598     {
   612     TRACE_PRN_FN_ENT;
   599     TRACE_PRN_FN_ENT;
   613     gint status(TMS_RESULT_INVALID_STATE);
   600     gint status(TMS_RESULT_INVALID_STATE);
   614     if (iUplinkInitialized && iIPUplink)
   601     if (iIPUplink && iUplState != EIdle)
   615         {
   602         {
   616         status = iIPUplink->SetGain(gain);
   603         status = iIPUplink->SetGain(gain);
   617         NotifyClient(iUplinkStreamId, ECmdSetGain, status);
   604         NotifyClient(iUplinkStreamId, ECmdSetGain, status);
   618         }
   605         }
   619     TRACE_PRN_FN_EXT;
   606     TRACE_PRN_FN_EXT;
   627 //
   614 //
   628 gint TMSCallIPAdpt::GetGain(guint& gain)
   615 gint TMSCallIPAdpt::GetGain(guint& gain)
   629     {
   616     {
   630     TRACE_PRN_FN_ENT;
   617     TRACE_PRN_FN_ENT;
   631     gint status(TMS_RESULT_INVALID_STATE);
   618     gint status(TMS_RESULT_INVALID_STATE);
   632     if (iUplinkInitialized && iIPUplink)
   619     if (iIPUplink && iUplState != EIdle)
   633         {
   620         {
   634         status = iIPUplink->GetGain(gain);
   621         status = iIPUplink->GetGain(gain);
   635         }
   622         }
   636     TRACE_PRN_FN_EXT;
   623     TRACE_PRN_FN_EXT;
   637     return status;
   624     return status;
   644 //
   631 //
   645 gint TMSCallIPAdpt::GetGlobalMaxVolume(guint& volume)
   632 gint TMSCallIPAdpt::GetGlobalMaxVolume(guint& volume)
   646     {
   633     {
   647     TRACE_PRN_FN_ENT;
   634     TRACE_PRN_FN_ENT;
   648     gint status(TMS_RESULT_INVALID_STATE);
   635     gint status(TMS_RESULT_INVALID_STATE);
   649     if (iDnlinkInitialized && iIPDownlink)
   636     if (iIPDownlink && iDnlState != EIdle)
   650         {
   637         {
   651         status = iIPDownlink->GetMaxVolume(volume);
   638         status = iIPDownlink->GetMaxVolume(volume);
   652         iMaxVolume = volume;
   639         iMaxVolume = volume;
   653         TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt::GetGlobalMaxVolume [%d]"), volume);
   640         TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt::GetGlobalMaxVolume [%d]"), volume);
   654         }
   641         }
   664 gint TMSCallIPAdpt::SetGlobalVolume(const guint volume)
   651 gint TMSCallIPAdpt::SetGlobalVolume(const guint volume)
   665     {
   652     {
   666     TRACE_PRN_FN_ENT;
   653     TRACE_PRN_FN_ENT;
   667     gint status(TMS_RESULT_INVALID_STATE);
   654     gint status(TMS_RESULT_INVALID_STATE);
   668     //iGlobalVol = volume;
   655     //iGlobalVol = volume;
   669     if (iDnlinkInitialized && iIPDownlink)
   656     if (iIPDownlink && iDnlState != EIdle)
   670         {
   657         {
   671         status = iIPDownlink->SetVolume(volume);
   658         status = iIPDownlink->SetVolume(volume);
   672         }
   659         }
   673     TRACE_PRN_FN_EXT;
   660     TRACE_PRN_FN_EXT;
   674     return status;
   661     return status;
   681 //
   668 //
   682 gint TMSCallIPAdpt::GetGlobalVolume(guint& volume)
   669 gint TMSCallIPAdpt::GetGlobalVolume(guint& volume)
   683     {
   670     {
   684     TRACE_PRN_FN_ENT;
   671     TRACE_PRN_FN_ENT;
   685     gint status(TMS_RESULT_INVALID_STATE);
   672     gint status(TMS_RESULT_INVALID_STATE);
   686     if (iDnlinkInitialized && iIPDownlink)
   673     if (iIPDownlink && iDnlState != EIdle)
   687         {
   674         {
   688         status = iIPDownlink->GetVolume(volume);
   675         status = iIPDownlink->GetVolume(volume);
   689         }
   676         }
   690     TRACE_PRN_FN_EXT;
   677     TRACE_PRN_FN_EXT;
   691     return status;
   678     return status;
   698 //
   685 //
   699 gint TMSCallIPAdpt::GetGlobalMaxGain(guint& gain)
   686 gint TMSCallIPAdpt::GetGlobalMaxGain(guint& gain)
   700     {
   687     {
   701     TRACE_PRN_FN_ENT;
   688     TRACE_PRN_FN_ENT;
   702     gint status(TMS_RESULT_INVALID_STATE);
   689     gint status(TMS_RESULT_INVALID_STATE);
   703     if (iUplinkInitialized && iIPUplink)
   690     if (iIPUplink && iUplState != EIdle)
   704         {
   691         {
   705         status = iIPUplink->GetMaxGain(gain);
   692         status = iIPUplink->GetMaxGain(gain);
   706         iMaxGain = gain;
   693         iMaxGain = gain;
   707         TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt::GetGlobalMaxGain [%d]"), gain);
   694         TRACE_PRN_N1(_L("TMS->TMSCallIPAdpt::GetGlobalMaxGain [%d]"), gain);
   708         }
   695         }
   718 gint TMSCallIPAdpt::SetGlobalGain(const guint gain)
   705 gint TMSCallIPAdpt::SetGlobalGain(const guint gain)
   719     {
   706     {
   720     TRACE_PRN_FN_ENT;
   707     TRACE_PRN_FN_ENT;
   721     gint status(TMS_RESULT_INVALID_STATE);
   708     gint status(TMS_RESULT_INVALID_STATE);
   722     //iGlobalGain = gain;
   709     //iGlobalGain = gain;
   723     if (iUplinkInitialized && iIPUplink)
   710     if (iIPUplink && iUplState != EIdle)
   724         {
   711         {
   725         status = iIPUplink->SetGain(gain);
   712         status = iIPUplink->SetGain(gain);
   726         }
   713         }
   727     TRACE_PRN_FN_EXT;
   714     TRACE_PRN_FN_EXT;
   728     return status;
   715     return status;
   735 //
   722 //
   736 gint TMSCallIPAdpt::GetGlobalGain(guint& gain)
   723 gint TMSCallIPAdpt::GetGlobalGain(guint& gain)
   737     {
   724     {
   738     TRACE_PRN_FN_ENT;
   725     TRACE_PRN_FN_ENT;
   739     gint status(TMS_RESULT_INVALID_STATE);
   726     gint status(TMS_RESULT_INVALID_STATE);
   740     if (iUplinkInitialized && iIPUplink)
   727     if (iIPUplink && iUplState != EIdle)
   741         {
   728         {
   742         status = iIPUplink->GetGain(gain);
   729         status = iIPUplink->GetGain(gain);
   743         }
   730         }
   744     TRACE_PRN_FN_EXT;
   731     TRACE_PRN_FN_EXT;
   745     return status;
   732     return status;
   804 //
   791 //
   805 gint TMSCallIPAdpt::GetSupportedBitRatesCount(guint& count)
   792 gint TMSCallIPAdpt::GetSupportedBitRatesCount(guint& count)
   806     {
   793     {
   807     TRACE_PRN_FN_ENT;
   794     TRACE_PRN_FN_ENT;
   808     gint status(TMS_RESULT_INVALID_STATE);
   795     gint status(TMS_RESULT_INVALID_STATE);
   809     if (iIPUplink)
   796     if (iIPUplink && iUplState != EIdle)
   810         {
   797         {
   811         status = iIPUplink->GetSupportedBitrates(iArrBitrates);
   798         status = iIPUplink->GetSupportedBitrates(iArrBitrates);
   812         count = iArrBitrates.Count();
   799         count = iArrBitrates.Count();
   813         }
   800         }
   814     TRACE_PRN_FN_EXT;
   801     TRACE_PRN_FN_EXT;
   860 //
   847 //
   861 gint TMSCallIPAdpt::GetBitRate(guint& bitrate)
   848 gint TMSCallIPAdpt::GetBitRate(guint& bitrate)
   862     {
   849     {
   863     TRACE_PRN_FN_ENT;
   850     TRACE_PRN_FN_ENT;
   864     gint status(TMS_RESULT_INVALID_STATE);
   851     gint status(TMS_RESULT_INVALID_STATE);
   865     if (iIPUplink)
   852     if (iIPUplink && iUplState != EIdle)
   866         {
   853         {
   867         status = iIPUplink->GetBitrate(bitrate);
   854         status = iIPUplink->GetBitrate(bitrate);
   868         }
   855         }
   869     TRACE_PRN_FN_EXT;
   856     TRACE_PRN_FN_EXT;
   870     return status;
   857     return status;
   877 //
   864 //
   878 gint TMSCallIPAdpt::SetBitRate(const guint bitrate)
   865 gint TMSCallIPAdpt::SetBitRate(const guint bitrate)
   879     {
   866     {
   880     TRACE_PRN_FN_ENT;
   867     TRACE_PRN_FN_ENT;
   881     gint status(TMS_RESULT_INVALID_STATE);
   868     gint status(TMS_RESULT_INVALID_STATE);
   882     if (iIPUplink)
   869     if (iIPUplink && iUplState != EIdle)
   883         {
   870         {
   884         status = iIPUplink->SetBitrate(bitrate);
   871         status = iIPUplink->SetBitrate(bitrate);
   885         }
   872         }
   886     TRACE_PRN_FN_EXT;
   873     TRACE_PRN_FN_EXT;
   887     return status;
   874     return status;
   894 //
   881 //
   895 gint TMSCallIPAdpt::GetVAD(const TMSFormatType fmttype, gboolean& vad)
   882 gint TMSCallIPAdpt::GetVAD(const TMSFormatType fmttype, gboolean& vad)
   896     {
   883     {
   897     TRACE_PRN_FN_ENT;
   884     TRACE_PRN_FN_ENT;
   898     gint status(TMS_RESULT_INVALID_STATE);
   885     gint status(TMS_RESULT_INVALID_STATE);
   899     if (iIPUplink)
   886     if (iIPUplink && iUplState != EIdle)
   900         {
   887         {
   901         status = iIPUplink->GetVad(fmttype, vad);
   888         status = iIPUplink->GetVad(fmttype, vad);
   902         }
   889         }
   903     TRACE_PRN_FN_EXT;
   890     TRACE_PRN_FN_EXT;
   904     return status;
   891     return status;
   911 //
   898 //
   912 gint TMSCallIPAdpt::SetVAD(const TMSFormatType fmttype, const gboolean vad)
   899 gint TMSCallIPAdpt::SetVAD(const TMSFormatType fmttype, const gboolean vad)
   913     {
   900     {
   914     TRACE_PRN_FN_ENT;
   901     TRACE_PRN_FN_ENT;
   915     gint status(TMS_RESULT_INVALID_STATE);
   902     gint status(TMS_RESULT_INVALID_STATE);
   916     if (iIPUplink)
   903     if (iIPUplink && iUplState != EIdle)
   917         {
   904         {
   918         status = iIPUplink->SetVad(fmttype, vad);
   905         status = iIPUplink->SetVad(fmttype, vad);
   919         }
   906         }
   920     TRACE_PRN_FN_EXT;
   907     TRACE_PRN_FN_EXT;
   921     return status;
   908     return status;
   928 //
   915 //
   929 gint TMSCallIPAdpt::GetCNG(const TMSFormatType fmttype, gboolean& cng)
   916 gint TMSCallIPAdpt::GetCNG(const TMSFormatType fmttype, gboolean& cng)
   930     {
   917     {
   931     TRACE_PRN_FN_ENT;
   918     TRACE_PRN_FN_ENT;
   932     gint status(TMS_RESULT_INVALID_STATE);
   919     gint status(TMS_RESULT_INVALID_STATE);
   933     if (iIPDownlink)
   920     if (iIPDownlink && iDnlState == EInitialized)
   934         {
   921         {
   935         status = iIPDownlink->GetCng(fmttype, cng);
   922         status = iIPDownlink->GetCng(fmttype, cng);
   936         }
   923         }
   937     TRACE_PRN_FN_EXT;
   924     TRACE_PRN_FN_EXT;
   938     return status;
   925     return status;
   945 //
   932 //
   946 gint TMSCallIPAdpt::SetCNG(const TMSFormatType fmttype, const gboolean cng)
   933 gint TMSCallIPAdpt::SetCNG(const TMSFormatType fmttype, const gboolean cng)
   947     {
   934     {
   948     TRACE_PRN_FN_ENT;
   935     TRACE_PRN_FN_ENT;
   949     gint status(TMS_RESULT_INVALID_STATE);
   936     gint status(TMS_RESULT_INVALID_STATE);
   950     if (iIPDownlink)
   937     if (iIPDownlink && iDnlState == EInitialized)
   951         {
   938         {
   952         status = iIPDownlink->SetCng(fmttype, cng);
   939         status = iIPDownlink->SetCng(fmttype, cng);
   953         }
   940         }
   954     TRACE_PRN_FN_EXT;
   941     TRACE_PRN_FN_EXT;
   955     return status;
   942     return status;
   962 //
   949 //
   963 gint TMSCallIPAdpt::GetPlc(const TMSFormatType fmttype, gboolean& plc)
   950 gint TMSCallIPAdpt::GetPlc(const TMSFormatType fmttype, gboolean& plc)
   964     {
   951     {
   965     TRACE_PRN_FN_ENT;
   952     TRACE_PRN_FN_ENT;
   966     gint status(TMS_RESULT_INVALID_STATE);
   953     gint status(TMS_RESULT_INVALID_STATE);
   967     if (iIPDownlink)
   954     if (iIPDownlink && iDnlState != EIdle)
   968         {
   955         {
   969         status = iIPDownlink->GetPlc(fmttype, plc);
   956         status = iIPDownlink->GetPlc(fmttype, plc);
   970         }
   957         }
   971     TRACE_PRN_FN_EXT;
   958     TRACE_PRN_FN_EXT;
   972     return status;
   959     return status;
   979 //
   966 //
   980 gint TMSCallIPAdpt::SetPlc(const TMSFormatType fmttype, const gboolean plc)
   967 gint TMSCallIPAdpt::SetPlc(const TMSFormatType fmttype, const gboolean plc)
   981     {
   968     {
   982     TRACE_PRN_FN_ENT;
   969     TRACE_PRN_FN_ENT;
   983     gint status(TMS_RESULT_INVALID_STATE);
   970     gint status(TMS_RESULT_INVALID_STATE);
   984     if (iIPDownlink)
   971     if (iIPDownlink && iDnlState == EInitialized)
   985         {
   972         {
   986         status = iIPDownlink->SetPlc(fmttype, plc);
   973         status = iIPDownlink->SetPlc(fmttype, plc);
   987         }
   974         }
   988     TRACE_PRN_FN_EXT;
   975     TRACE_PRN_FN_EXT;
   989     return status;
   976     return status;
  1053      * 1) KAudioPrefUnknownVoipAudioUplink      -3rd party VoIP?
  1040      * 1) KAudioPrefUnknownVoipAudioUplink      -3rd party VoIP?
  1054      *    KAudioPriorityUnknownVoipAudioUplink  -3rd party VoIP?
  1041      *    KAudioPriorityUnknownVoipAudioUplink  -3rd party VoIP?
  1055      * 2) KAudioPrefVoipAudioUplink             -NOK native VoIP?
  1042      * 2) KAudioPrefVoipAudioUplink             -NOK native VoIP?
  1056      *    KAudioPriorityVoipAudioUplink         -NOK native VoIP?
  1043      *    KAudioPriorityVoipAudioUplink         -NOK native VoIP?
  1057      */
  1044      */
  1058     iPriority.iPref = KAudioPrefVoipAudioUplink;
  1045     iPriority.iPref = KAudioPrefVoipAudioUplinkNonSignal;
  1059     iPriority.iPriority = KAudioPriorityVoipAudioUplink;
  1046     iPriority.iPriority = KAudioPriorityVoipAudioUplink;
  1060 
  1047 
  1061     delete iIPUplink;
  1048     delete iIPUplink;
  1062     iIPUplink = NULL;
  1049     iIPUplink = NULL;
  1063     TRAP(status, iIPUplink = TMSIPUplink::NewL(*this, iUpFourCC, iPriority,
  1050     TRAP(status, iIPUplink = TMSIPUplink::NewL(*this, iUpFourCC, iPriority,
  1170 // -----------------------------------------------------------------------------
  1157 // -----------------------------------------------------------------------------
  1171 //
  1158 //
  1172 gint TMSCallIPAdpt::SetIlbcCodecMode(const gint mode,
  1159 gint TMSCallIPAdpt::SetIlbcCodecMode(const gint mode,
  1173         const TMSStreamType strmtype)
  1160         const TMSStreamType strmtype)
  1174     {
  1161     {
  1175     gint status(TMS_RESULT_INVALID_ARGUMENT);
  1162     gint status(TMS_RESULT_SUCCESS);
  1176 
  1163 
  1177     if (strmtype == TMS_STREAM_DOWNLINK)
  1164     if (strmtype == TMS_STREAM_DOWNLINK && iIPDownlink &&
  1178         {
  1165             iDnlState == EInitialized)
  1179         if (iDnlinkInitialized && iIPDownlink)
  1166         {
  1180             {
  1167         status = iIPDownlink->SetIlbcCodecMode(mode);
  1181             status = iIPDownlink->SetIlbcCodecMode(mode);
  1168         }
  1182             }
  1169     else if (strmtype == TMS_STREAM_UPLINK && iIPUplink &&
  1183         }
  1170             iUplState == EInitialized)
  1184     else if (strmtype == TMS_STREAM_UPLINK)
  1171         {
  1185         {
  1172         status = iIPUplink->SetIlbcCodecMode(mode);
  1186         if (iUplinkInitialized && iIPUplink)
  1173         }
  1187             {
  1174     else
  1188             status = iIPUplink->SetIlbcCodecMode(mode);
  1175         {
  1189             }
  1176         status = TMS_RESULT_INVALID_STATE;
  1190         }
  1177         }
  1191 
       
  1192     return status;
  1178     return status;
  1193     }
  1179     }
  1194 
  1180 
  1195 // -----------------------------------------------------------------------------
  1181 // -----------------------------------------------------------------------------
  1196 // TMSCallIPAdpt::GetIlbcCodecMode
  1182 // TMSCallIPAdpt::GetIlbcCodecMode
  1197 //
  1183 //
  1198 // -----------------------------------------------------------------------------
  1184 // -----------------------------------------------------------------------------
  1199 //
  1185 //
  1200 gint TMSCallIPAdpt::GetIlbcCodecMode(gint& mode, const TMSStreamType strmtype)
  1186 gint TMSCallIPAdpt::GetIlbcCodecMode(gint& mode, const TMSStreamType strmtype)
  1201     {
  1187     {
  1202     gint status(TMS_RESULT_INVALID_ARGUMENT);
  1188     gint status(TMS_RESULT_SUCCESS);
  1203 
  1189 
  1204     if (strmtype == TMS_STREAM_DOWNLINK)
  1190     if (strmtype == TMS_STREAM_DOWNLINK && iIPDownlink &&
  1205         {
  1191             iDnlState != EIdle)
  1206         if (iDnlinkInitialized && iIPDownlink)
  1192         {
  1207             {
  1193         status = iIPDownlink->GetIlbcCodecMode(mode);
  1208             status = iIPDownlink->GetIlbcCodecMode(mode);
  1194         }
  1209             }
  1195     else if (strmtype == TMS_STREAM_UPLINK && iIPUplink &&
  1210         }
  1196             iUplState != EIdle)
  1211     else if (strmtype == TMS_STREAM_UPLINK)
  1197         {
  1212         {
  1198         status = iIPUplink->GetIlbcCodecMode(mode);
  1213         if (iUplinkInitialized && iIPUplink)
  1199         }
  1214             {
  1200     else
  1215             status = iIPUplink->GetIlbcCodecMode(mode);
  1201         {
  1216             }
  1202         status = TMS_RESULT_INVALID_STATE;
  1217         }
  1203         }
  1218 
       
  1219     return status;
  1204     return status;
  1220     }
  1205     }
  1221 
  1206 
  1222 // -----------------------------------------------------------------------------
  1207 // -----------------------------------------------------------------------------
  1223 // TMSCallIPAdpt::SetG711CodecMode
  1208 // TMSCallIPAdpt::SetG711CodecMode
  1225 // -----------------------------------------------------------------------------
  1210 // -----------------------------------------------------------------------------
  1226 //
  1211 //
  1227 gint TMSCallIPAdpt::SetG711CodecMode(const gint mode,
  1212 gint TMSCallIPAdpt::SetG711CodecMode(const gint mode,
  1228         const TMSStreamType strmtype)
  1213         const TMSStreamType strmtype)
  1229     {
  1214     {
  1230     gint status(TMS_RESULT_INVALID_ARGUMENT);
  1215     gint status(TMS_RESULT_SUCCESS);
  1231 
  1216 
  1232     if (strmtype == TMS_STREAM_DOWNLINK)
  1217     if (strmtype == TMS_STREAM_DOWNLINK && iIPDownlink &&
  1233         {
  1218             iDnlState == EInitialized)
  1234         if (iDnlinkInitialized && iIPDownlink)
  1219         {
  1235             {
  1220         status = iIPDownlink->SetG711CodecMode(mode);
  1236             status = iIPDownlink->SetG711CodecMode(mode);
  1221         }
  1237             }
  1222     else if (strmtype == TMS_STREAM_UPLINK && iIPUplink &&
  1238         }
  1223             iUplState == EInitialized)
  1239     else if (strmtype == TMS_STREAM_UPLINK)
  1224         {
  1240         {
  1225         status = iIPUplink->SetG711CodecMode(mode);
  1241         if (iUplinkInitialized && iIPUplink)
  1226         }
  1242             {
  1227     else
  1243             status = iIPUplink->SetG711CodecMode(mode);
  1228         {
  1244             }
  1229         status = TMS_RESULT_INVALID_STATE;
  1245         }
  1230         }
  1246 
       
  1247     return status;
  1231     return status;
  1248     }
  1232     }
  1249 
  1233 
  1250 // -----------------------------------------------------------------------------
  1234 // -----------------------------------------------------------------------------
  1251 // TMSCallIPAdpt::GetG711CodecMode
  1235 // TMSCallIPAdpt::GetG711CodecMode
  1252 //
  1236 //
  1253 // -----------------------------------------------------------------------------
  1237 // -----------------------------------------------------------------------------
  1254 //
  1238 //
  1255 gint TMSCallIPAdpt::GetG711CodecMode(gint& mode, const TMSStreamType strmtype)
  1239 gint TMSCallIPAdpt::GetG711CodecMode(gint& mode, const TMSStreamType strmtype)
  1256     {
  1240     {
  1257     gint status(TMS_RESULT_INVALID_ARGUMENT);
  1241     gint status(TMS_RESULT_SUCCESS);
  1258 
  1242 
  1259     if (strmtype == TMS_STREAM_DOWNLINK)
  1243     if (strmtype == TMS_STREAM_DOWNLINK && iIPDownlink &&
  1260         {
  1244             iDnlState != EIdle)
  1261         if (iDnlinkInitialized && iIPDownlink)
  1245         {
  1262             {
  1246         status = iIPDownlink->GetG711CodecMode(mode);
  1263             status = iIPDownlink->GetG711CodecMode(mode);
  1247         }
  1264             }
  1248     else if (strmtype == TMS_STREAM_UPLINK && iIPUplink &&
  1265         }
  1249             iUplState != EIdle)
  1266     else if (strmtype == TMS_STREAM_UPLINK)
  1250         {
  1267         {
  1251         status = iIPUplink->GetG711CodecMode(mode);
  1268         if (iUplinkInitialized && iIPUplink)
  1252         }
  1269             {
  1253     else
  1270             status = iIPUplink->GetG711CodecMode(mode);
  1254         {
  1271             }
  1255         status = TMS_RESULT_INVALID_STATE;
  1272         }
  1256         }
  1273 
       
  1274     return status;
  1257     return status;
  1275     }
  1258     }
  1276 
  1259 
  1277 // -----------------------------------------------------------------------------
  1260 // -----------------------------------------------------------------------------
  1278 // TMSCallIPAdpt::FrameModeRequiredForEC
  1261 // TMSCallIPAdpt::FrameModeRequiredForEC
  1279 //
  1262 //
  1280 // -----------------------------------------------------------------------------
  1263 // -----------------------------------------------------------------------------
  1281 //
  1264 //
  1282 gint TMSCallIPAdpt::FrameModeRqrdForEC(gboolean& frmodereq)
  1265 gint TMSCallIPAdpt::FrameModeRqrdForEC(gboolean& frmodereq)
  1283     {
  1266     {
  1284     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
  1267     gint status(TMS_RESULT_INVALID_STATE);
  1285     if (iIPDownlink)
  1268     if (iIPDownlink && iDnlState == EInitialized)
  1286         {
  1269         {
  1287         status = iIPDownlink->FrameModeRqrdForEC(frmodereq);
  1270         status = iIPDownlink->FrameModeRqrdForEC(frmodereq);
  1288         }
  1271         }
  1289     return status;
  1272     return status;
  1290     }
  1273     }
  1294 //
  1277 //
  1295 // -----------------------------------------------------------------------------
  1278 // -----------------------------------------------------------------------------
  1296 //
  1279 //
  1297 gint TMSCallIPAdpt::SetFrameMode(const gboolean frmode)
  1280 gint TMSCallIPAdpt::SetFrameMode(const gboolean frmode)
  1298     {
  1281     {
  1299     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
  1282     gint status(TMS_RESULT_INVALID_STATE);
  1300     if (iIPDownlink)
  1283     if (iIPDownlink && iDnlState == EInitialized)
  1301         {
  1284         {
  1302         status = iIPDownlink->SetFrameMode(frmode);
  1285         status = iIPDownlink->SetFrameMode(frmode);
  1303         }
  1286         }
  1304     return status;
  1287     return status;
  1305     }
  1288     }
  1309 //
  1292 //
  1310 // -----------------------------------------------------------------------------
  1293 // -----------------------------------------------------------------------------
  1311 //
  1294 //
  1312 gint TMSCallIPAdpt::GetFrameMode(gboolean& frmode)
  1295 gint TMSCallIPAdpt::GetFrameMode(gboolean& frmode)
  1313     {
  1296     {
  1314     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
  1297     gint status(TMS_RESULT_INVALID_STATE);
  1315     if (iIPDownlink)
  1298     if (iIPDownlink && iDnlState != EIdle)
  1316         {
  1299         {
  1317         status = iIPDownlink->GetFrameMode(frmode);
  1300         status = iIPDownlink->GetFrameMode(frmode);
  1318         }
  1301         }
  1319     return status;
  1302     return status;
  1320     }
  1303     }
  1323 // TMSCallIPAdpt::ConcealErrorForNextBuffer
  1306 // TMSCallIPAdpt::ConcealErrorForNextBuffer
  1324 // -----------------------------------------------------------------------------
  1307 // -----------------------------------------------------------------------------
  1325 //
  1308 //
  1326 gint TMSCallIPAdpt::ConcealErrorForNextBuffer()
  1309 gint TMSCallIPAdpt::ConcealErrorForNextBuffer()
  1327     {
  1310     {
  1328     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
  1311     gint status(TMS_RESULT_INVALID_STATE);
  1329     if (iIPDownlink)
  1312     if (iIPDownlink && iDnlState == EActivated)
  1330         {
  1313         {
  1331         status = iIPDownlink->ConcealErrorForNextBuffer();
  1314         status = iIPDownlink->ConcealErrorForNextBuffer();
  1332         }
  1315         }
  1333     return status;
  1316     return status;
  1334     }
  1317     }
  1338 //
  1321 //
  1339 // -----------------------------------------------------------------------------
  1322 // -----------------------------------------------------------------------------
  1340 //
  1323 //
  1341 gint TMSCallIPAdpt::BadLsfNextBuffer()
  1324 gint TMSCallIPAdpt::BadLsfNextBuffer()
  1342     {
  1325     {
  1343     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
  1326     gint status(TMS_RESULT_INVALID_STATE);
  1344     if (iIPDownlink)
  1327     if (iIPDownlink && iDnlState == EActivated)
  1345         {
  1328         {
  1346         status = iIPDownlink->BadLsfNextBuffer();
  1329         status = iIPDownlink->BadLsfNextBuffer();
  1347         }
  1330         }
  1348     return status;
  1331     return status;
  1349     }
  1332     }
  1354 // -----------------------------------------------------------------------------
  1337 // -----------------------------------------------------------------------------
  1355 //
  1338 //
  1356 gint TMSCallIPAdpt::SetOutput(TMSAudioOutput output)
  1339 gint TMSCallIPAdpt::SetOutput(TMSAudioOutput output)
  1357     {
  1340     {
  1358     TRACE_PRN_FN_ENT;
  1341     TRACE_PRN_FN_ENT;
  1359     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
  1342     gint status(TMS_RESULT_INVALID_STATE);
  1360     if (iDnlinkInitialized && iIPDownlink)
  1343     if (iIPDownlink && iDnlState != EIdle)
  1361         {
  1344         {
  1362         TRAP(status, iIPDownlink->SetAudioDeviceL(output));
  1345         TRAP(status, iIPDownlink->SetAudioDeviceL(output));
  1363         }
  1346         }
  1364     TRACE_PRN_FN_EXT;
  1347     TRACE_PRN_FN_EXT;
  1365     return status;
  1348     return status;
  1366     }
  1349     }
       
  1350 
  1367 // -----------------------------------------------------------------------------
  1351 // -----------------------------------------------------------------------------
  1368 // TMSCallIPAdpt::GetOutput
  1352 // TMSCallIPAdpt::GetOutput
  1369 //
  1353 //
  1370 // -----------------------------------------------------------------------------
  1354 // -----------------------------------------------------------------------------
  1371 //
  1355 //
  1372 gint TMSCallIPAdpt::GetOutput(TMSAudioOutput& output)
  1356 gint TMSCallIPAdpt::GetOutput(TMSAudioOutput& output)
  1373     {
  1357     {
  1374     TRACE_PRN_FN_ENT;
  1358     TRACE_PRN_FN_ENT;
  1375     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
  1359     gint status(TMS_RESULT_INVALID_STATE);
  1376     if (iDnlinkInitialized && iIPDownlink)
  1360     if (iIPDownlink && iDnlState != EIdle)
  1377         {
  1361         {
  1378         TRAP(status, iIPDownlink->GetAudioDeviceL(output));
  1362         TRAP(status, iIPDownlink->GetAudioDeviceL(output));
  1379         }
  1363         }
  1380     TRACE_PRN_FN_EXT;
  1364     TRACE_PRN_FN_EXT;
  1381     return status;
  1365     return status;
  1397 // -----------------------------------------------------------------------------
  1381 // -----------------------------------------------------------------------------
  1398 //
  1382 //
  1399 gint TMSCallIPAdpt::GetAvailableOutputsL(gint& /*count*/,
  1383 gint TMSCallIPAdpt::GetAvailableOutputsL(gint& /*count*/,
  1400         CBufFlat*& /*outputsbuf*/)
  1384         CBufFlat*& /*outputsbuf*/)
  1401     {
  1385     {
       
  1386     //TODO: return public & private
  1402     return TMS_RESULT_FEATURE_NOT_SUPPORTED;
  1387     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     }
  1388     }
  1556 
  1389 
  1557 // -----------------------------------------------------------------------------
  1390 // -----------------------------------------------------------------------------
  1558 // TMSCallIPAdpt::DownlinkInitCompleted
  1391 // TMSCallIPAdpt::DownlinkInitCompleted
  1559 // From TMSIPDevSoundObserver
  1392 // From TMSIPDevSoundObserver
  1562 void TMSCallIPAdpt::DownlinkInitCompleted(gint status)
  1395 void TMSCallIPAdpt::DownlinkInitCompleted(gint status)
  1563     {
  1396     {
  1564     TRACE_PRN_FN_ENT;
  1397     TRACE_PRN_FN_ENT;
  1565     if (status == TMS_RESULT_SUCCESS)
  1398     if (status == TMS_RESULT_SUCCESS)
  1566         {
  1399         {
  1567         iDnlinkInitialized = TRUE;
  1400         iDnlState = EInitialized;
  1568         }
  1401         }
  1569     NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status);
  1402     NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status);
  1570     TRACE_PRN_FN_EXT;
  1403     TRACE_PRN_FN_EXT;
  1571     }
  1404     }
  1572 
  1405 
  1578 void TMSCallIPAdpt::UplinkInitCompleted(gint status)
  1411 void TMSCallIPAdpt::UplinkInitCompleted(gint status)
  1579     {
  1412     {
  1580     TRACE_PRN_FN_ENT;
  1413     TRACE_PRN_FN_ENT;
  1581     if (status == TMS_RESULT_SUCCESS)
  1414     if (status == TMS_RESULT_SUCCESS)
  1582         {
  1415         {
  1583         iUplinkInitialized = TRUE;
  1416         iUplState = EInitialized;
  1584         }
  1417         }
  1585     NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status);
  1418     NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status);
  1586     TRACE_PRN_FN_EXT;
  1419     TRACE_PRN_FN_EXT;
  1587     }
  1420     }
  1588 
  1421 
  1592 // -----------------------------------------------------------------------------
  1425 // -----------------------------------------------------------------------------
  1593 //
  1426 //
  1594 void TMSCallIPAdpt::UplinkStarted(gint status)
  1427 void TMSCallIPAdpt::UplinkStarted(gint status)
  1595     {
  1428     {
  1596     TRACE_PRN_FN_ENT;
  1429     TRACE_PRN_FN_ENT;
       
  1430     if (status == TMS_RESULT_SUCCESS)
       
  1431         {
       
  1432         iUplState = EActivated;
       
  1433         }
  1597     NotifyClient(iUplinkStreamId, ECmdUplinkStarted, status);
  1434     NotifyClient(iUplinkStreamId, ECmdUplinkStarted, status);
  1598     TRACE_PRN_FN_EXT;
  1435     TRACE_PRN_FN_EXT;
  1599     }
  1436     }
  1600 
  1437 
  1601 // -----------------------------------------------------------------------------
  1438 // -----------------------------------------------------------------------------
  1604 // -----------------------------------------------------------------------------
  1441 // -----------------------------------------------------------------------------
  1605 //
  1442 //
  1606 void TMSCallIPAdpt::DownlinkStarted(gint status)
  1443 void TMSCallIPAdpt::DownlinkStarted(gint status)
  1607     {
  1444     {
  1608     TRACE_PRN_FN_ENT;
  1445     TRACE_PRN_FN_ENT;
       
  1446     if (status == TMS_RESULT_SUCCESS)
       
  1447         {
       
  1448         iDnlState = EActivated;
       
  1449         }
  1609     NotifyClient(iDnlinkStreamId, ECmdDownlinkStarted, status);
  1450     NotifyClient(iDnlinkStreamId, ECmdDownlinkStarted, status);
  1610     TRACE_PRN_FN_EXT;
  1451     TRACE_PRN_FN_EXT;
  1611     }
  1452     }
  1612 
  1453 
  1613 // -----------------------------------------------------------------------------
  1454 // -----------------------------------------------------------------------------
  1628         {
  1469         {
  1629         iMsgQueueDn.Send(iMsgBuffer);
  1470         iMsgQueueDn.Send(iMsgBuffer);
  1630         }
  1471         }
  1631     }
  1472     }
  1632 
  1473 
  1633 // End of file