mmserv/tms/tmscallserver/src/tmscallcsadpt.cpp
changeset 14 80975da52420
child 16 43d09473c595
equal deleted inserted replaced
12:5a06f39ad45b 14:80975da52420
       
     1 /*
       
     2  * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3  * All rights reserved.
       
     4  * This component and the accompanying materials are made available
       
     5  * under the terms of "Eclipse Public License v1.0"
       
     6  * which accompanies this distribution, and is available
       
     7  * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8  *
       
     9  * Initial Contributors:
       
    10  * Nokia Corporation - initial contribution.
       
    11  *
       
    12  * Contributors:
       
    13  *
       
    14  * Description: Telephony Multimedia Service
       
    15  *
       
    16  */
       
    17 
       
    18 #include <tms.h>
       
    19 #include <S60FourCC.h>
       
    20 #include <AudioPreference.h>
       
    21 #include <TelephonyAudioRouting.h>
       
    22 #include "tmscsuplink.h"
       
    23 #include "tmscsdownlink.h"
       
    24 #include "tmscallcsadpt.h"
       
    25 #include "tmsutility.h"
       
    26 #include "tmsshared.h"
       
    27 #include "tmsclientserver.h"
       
    28 #include "tmstarsettings.h"
       
    29 #include "tmsdtmftoneplayer.h"
       
    30 #include "tmsdtmfprovider.h"
       
    31 #include "tmsdtmfnotifier.h"
       
    32 
       
    33 using namespace TMS;
       
    34 
       
    35 // -----------------------------------------------------------------------------
       
    36 // TMSCallCSAdpt::TMSCallCSAdpt
       
    37 //
       
    38 // -----------------------------------------------------------------------------
       
    39 //
       
    40 TMSCallCSAdpt::TMSCallCSAdpt()
       
    41     {
       
    42     TRACE_PRN_FN_ENT;
       
    43 
       
    44     iCSDownlink = NULL;
       
    45     iCSUplink = NULL;
       
    46     iRouting = NULL;
       
    47     iTarSettings = NULL;
       
    48     iDTMFDnlinkPlayer = NULL;
       
    49     iDTMFUplinkPlayer = NULL;
       
    50     iDTMFNotifier = NULL;
       
    51 
       
    52     TRACE_PRN_FN_EXT;
       
    53     }
       
    54 
       
    55 // -----------------------------------------------------------------------------
       
    56 // TMSCallCSAdpt::~TMSCallCSAdpt
       
    57 //
       
    58 // -----------------------------------------------------------------------------
       
    59 //
       
    60 TMSCallCSAdpt::~TMSCallCSAdpt()
       
    61     {
       
    62     TRACE_PRN_FN_ENT;
       
    63     delete iCSDownlink;
       
    64     delete iCSUplink;
       
    65     delete iRouting;
       
    66     delete iTarSettings;
       
    67     delete iDTMFDnlinkPlayer;
       
    68     delete iDTMFUplinkPlayer;
       
    69     delete iDTMFNotifier;
       
    70 
       
    71     if (iMsgQueueUp.Handle() > 0)
       
    72         {
       
    73         iMsgQueueUp.Close();
       
    74         }
       
    75 
       
    76     if (iMsgQueueDn.Handle() > 0)
       
    77         {
       
    78         iMsgQueueDn.Close();
       
    79         }
       
    80 
       
    81     TRACE_PRN_FN_EXT;
       
    82     }
       
    83 
       
    84 // -----------------------------------------------------------------------------
       
    85 // TMSCallCSAdpt::PostConstruct
       
    86 //
       
    87 // -----------------------------------------------------------------------------
       
    88 //
       
    89 gint TMSCallCSAdpt::PostConstruct()
       
    90     {
       
    91     TRACE_PRN_FN_ENT;
       
    92     gint status(TMS_RESULT_SUCCESS);
       
    93     iNextStreamId = 1;
       
    94     iUplinkInitialized = FALSE;
       
    95     iDnlinkInitialized = FALSE;
       
    96 
       
    97     TRACE_PRN_FN_EXT;
       
    98     return status;
       
    99     }
       
   100 
       
   101 // -----------------------------------------------------------------------------
       
   102 // TMSCallCSAdpt::CreateStream
       
   103 //
       
   104 // -----------------------------------------------------------------------------
       
   105 //
       
   106 gint TMSCallCSAdpt::CreateStream(TMSCallType /*callType*/,
       
   107         TMSStreamType strmType, gint& outStrmId)
       
   108     {
       
   109     TRACE_PRN_FN_ENT;
       
   110     gint status(TMS_RESULT_SUCCESS);
       
   111     switch (strmType)
       
   112         {
       
   113         case TMS_STREAM_UPLINK:
       
   114             status = TMS_RESULT_ALREADY_EXIST;
       
   115             if (!iUplinkInitialized)
       
   116                 {
       
   117                 iUplinkInitialized = TRUE;
       
   118                 iUplinkStreamId = iNextStreamId;
       
   119                 outStrmId = iUplinkStreamId;
       
   120                 iNextStreamId++;
       
   121                 iUplinkInitialized = TRUE;
       
   122                 status = TMS_RESULT_SUCCESS;
       
   123                 }
       
   124             break;
       
   125         case TMS_STREAM_DOWNLINK:
       
   126             status = TMS_RESULT_ALREADY_EXIST;
       
   127             if (!iDnlinkInitialized)
       
   128                 {
       
   129                 iDnlinkInitialized = TRUE;
       
   130                 iDnlinkStreamId = iNextStreamId;
       
   131                 outStrmId = iDnlinkStreamId;
       
   132                 iNextStreamId++;
       
   133                 iDnlinkInitialized = TRUE;
       
   134                 status = TMS_RESULT_SUCCESS;
       
   135                 }
       
   136             break;
       
   137         default:
       
   138             status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED;
       
   139             break;
       
   140         }
       
   141     TRACE_PRN_FN_EXT;
       
   142     return status;
       
   143     }
       
   144 
       
   145 // -----------------------------------------------------------------------------
       
   146 // TMSCallCSAdpt::InitStream
       
   147 //
       
   148 // -----------------------------------------------------------------------------
       
   149 //
       
   150 gint TMSCallCSAdpt::InitStreamL(TMSCallType /*callType*/,
       
   151         TMSStreamType strmType, gint strmId, TMSFormatType /*frmtType*/,
       
   152         const RMessage2& aMessage)
       
   153     {
       
   154     TRACE_PRN_FN_ENT;
       
   155     gint status(TMS_RESULT_SUCCESS);
       
   156 
       
   157     switch (strmType)
       
   158         {
       
   159         case TMS_STREAM_UPLINK:
       
   160             if (strmId == iUplinkStreamId)
       
   161                 {
       
   162                 // Open message queue handling client-server communication
       
   163                 if (iMsgQueueUp.Handle() <= 0)
       
   164                     {
       
   165                     // Third argument in TMSCallProxy::InitStream
       
   166                     status = iMsgQueueUp.Open(aMessage, 1);
       
   167                     }
       
   168                 if (status == TMS_RESULT_SUCCESS)
       
   169                     {
       
   170                     TRAP(status, iCSUplink = TMSCSUplink::NewL(*this));
       
   171 
       
   172                     if (status == TMS_RESULT_SUCCESS)
       
   173                         {
       
   174                         iDTMFUplinkPlayer =  TMSDTMFProvider::NewL();
       
   175                         iDTMFUplinkPlayer->AddObserverL(*this);
       
   176                         if(!iDTMFNotifier)
       
   177                             {
       
   178                             iDTMFNotifier = TMSDtmfNotifier::NewL();
       
   179                             }
       
   180                         }
       
   181                     }
       
   182                 iStrmtype = TMS_STREAM_UPLINK;
       
   183                 }
       
   184             else
       
   185                 {
       
   186                 status = TMS_RESULT_DOES_NOT_EXIST;
       
   187                 }
       
   188             break;
       
   189         case TMS_STREAM_DOWNLINK:
       
   190             if (strmId == iDnlinkStreamId)
       
   191                 {
       
   192                 // Open message queue handling client-server communication
       
   193                 if (iMsgQueueDn.Handle() <= 0)
       
   194                     {
       
   195                     // Third argument in TMSCallProxy::InitStream
       
   196                     status = iMsgQueueDn.Open(aMessage, 1);
       
   197                     }
       
   198                 if (status == TMS_RESULT_SUCCESS)
       
   199                     {
       
   200                     TRAP(status, iCSDownlink = TMSCSDownlink::NewL(*this));
       
   201                     if (status == TMS_RESULT_SUCCESS)
       
   202                         {
       
   203                         TRAP(status, iRouting =
       
   204                              CTelephonyAudioRouting::NewL(*this));
       
   205                         if (status == TMS_RESULT_SUCCESS)
       
   206                             {
       
   207                             iTarSettings = TMSTarSettings::NewL();
       
   208                             }
       
   209                         if (status == TMS_RESULT_SUCCESS)
       
   210                             {
       
   211                             TRAP(status, iDTMFDnlinkPlayer =
       
   212                                  TMSAudioDtmfTonePlayer::NewL(*this,
       
   213                                  KAudioPrefKeyDownDTMF,
       
   214                                  KAudioPriorityDtmfKeyPress));
       
   215                             if(!iDTMFNotifier)
       
   216                                 {
       
   217                                 iDTMFNotifier = TMSDtmfNotifier::NewL();
       
   218                                 }
       
   219                             }
       
   220                         }
       
   221                     }
       
   222                 iStrmtype = TMS_STREAM_DOWNLINK;
       
   223                 }
       
   224             else
       
   225                 {
       
   226                 status = TMS_RESULT_DOES_NOT_EXIST;
       
   227                 }
       
   228             break;
       
   229         default:
       
   230             status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED;
       
   231             break;
       
   232         }
       
   233 
       
   234     TRACE_PRN_IF_ERR(status);
       
   235     TRACE_PRN_FN_EXT;
       
   236     return status;
       
   237     }
       
   238 
       
   239 // -----------------------------------------------------------------------------
       
   240 // TMSCallCSAdpt::StartStream
       
   241 //
       
   242 // -----------------------------------------------------------------------------
       
   243 //
       
   244 gint TMSCallCSAdpt::StartStream(TMSCallType /*callType*/,
       
   245         TMSStreamType strmType, gint strmId)
       
   246     {
       
   247     TRACE_PRN_FN_ENT;
       
   248     gint status(TMS_RESULT_SUCCESS);
       
   249     switch (strmType)
       
   250         {
       
   251         case TMS_STREAM_UPLINK:
       
   252             if (iCSUplink && strmId == iUplinkStreamId)
       
   253                 {
       
   254                 iCSUplink->Activate();
       
   255                 }
       
   256             break;
       
   257         case TMS_STREAM_DOWNLINK:
       
   258             if (iCSDownlink && strmId == iDnlinkStreamId)
       
   259                 {
       
   260                 iCSDownlink->Activate();
       
   261                 }
       
   262             break;
       
   263         default:
       
   264             status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED;
       
   265             break;
       
   266         }
       
   267     TRACE_PRN_FN_EXT;
       
   268     return status;
       
   269     }
       
   270 
       
   271 // -----------------------------------------------------------------------------
       
   272 // TMSCallCSAdpt::PauseStream
       
   273 //
       
   274 // -----------------------------------------------------------------------------
       
   275 //
       
   276 gint TMSCallCSAdpt::PauseStream(TMSCallType /*callType*/,
       
   277         TMSStreamType /*strmType*/, gint /*strmId*/)
       
   278     {
       
   279     TRACE_PRN_FN_ENT;
       
   280     gint status(TMS_RESULT_SUCCESS);
       
   281     TRACE_PRN_FN_EXT;
       
   282     return status;
       
   283     }
       
   284 
       
   285 // -----------------------------------------------------------------------------
       
   286 // TMSCallCSAdpt::StopStream
       
   287 //
       
   288 // -----------------------------------------------------------------------------
       
   289 //
       
   290 gint TMSCallCSAdpt::StopStream(TMSCallType /*callType*/, TMSStreamType strmType,
       
   291         gint strmId)
       
   292     {
       
   293     TRACE_PRN_FN_ENT;
       
   294     gint status(TMS_RESULT_SUCCESS);
       
   295     switch (strmType)
       
   296         {
       
   297         case TMS_STREAM_UPLINK:
       
   298             if (iCSUplink && strmId == iUplinkStreamId)
       
   299                 {
       
   300                 iCSUplink->Deactivate();
       
   301                 NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete,
       
   302                         status, 0);
       
   303                 }
       
   304             break;
       
   305         case TMS_STREAM_DOWNLINK:
       
   306             if (iCSDownlink && strmId == iDnlinkStreamId)
       
   307                 {
       
   308                 iCSDownlink->Deactivate();
       
   309                 NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete,
       
   310                         status, 0);
       
   311                 }
       
   312             break;
       
   313         default:
       
   314             status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED;
       
   315             break;
       
   316         }
       
   317     TRACE_PRN_FN_EXT;
       
   318     return status;
       
   319     }
       
   320 
       
   321 // -----------------------------------------------------------------------------
       
   322 // TMSCallCSAdpt::DeinitStream
       
   323 //
       
   324 // -----------------------------------------------------------------------------
       
   325 //
       
   326 gint TMSCallCSAdpt::DeinitStream(TMSCallType /*callType*/,
       
   327         TMSStreamType strmType, gint strmId)
       
   328     {
       
   329     TRACE_PRN_FN_ENT;
       
   330     gint status(TMS_RESULT_SUCCESS);
       
   331     switch (strmType)
       
   332         {
       
   333         case TMS_STREAM_UPLINK:
       
   334             if (iCSUplink && strmId == iUplinkStreamId)
       
   335                 {
       
   336                 iCSUplink->Deactivate();
       
   337                 iUplinkInitialized = FALSE;
       
   338                 NotifyClient(iUplinkStreamId, ECmdUplinkDeInitComplete,
       
   339                         status, 0);
       
   340                 }
       
   341             break;
       
   342         case TMS_STREAM_DOWNLINK:
       
   343             if (iCSDownlink && strmId == iDnlinkStreamId)
       
   344                 {
       
   345                 iCSDownlink->Deactivate();
       
   346                 iDnlinkInitialized = FALSE;
       
   347                 NotifyClient(iDnlinkStreamId, ECmdDownlinkDeInitComplete,
       
   348                         status, 0);
       
   349                 }
       
   350             break;
       
   351         default:
       
   352             status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED;
       
   353             break;
       
   354         }
       
   355     TRACE_PRN_FN_EXT;
       
   356     return status;
       
   357     }
       
   358 
       
   359 // -----------------------------------------------------------------------------
       
   360 // TMSCallCSAdpt::DeleteStream
       
   361 //
       
   362 // -----------------------------------------------------------------------------
       
   363 //
       
   364 gint TMSCallCSAdpt::DeleteStream(TMSCallType /*callType*/,
       
   365         TMSStreamType strmType, gint strmId)
       
   366     {
       
   367     TRACE_PRN_FN_ENT;
       
   368     gint status(TMS_RESULT_SUCCESS);
       
   369     switch (strmType)
       
   370         {
       
   371         case TMS_STREAM_UPLINK:
       
   372             if (strmId == iUplinkStreamId)
       
   373                 {
       
   374                 iUplinkStreamId = -1;
       
   375                 iUplinkInitialized = FALSE;
       
   376                 }
       
   377             break;
       
   378         case TMS_STREAM_DOWNLINK:
       
   379             if (strmId == iDnlinkStreamId)
       
   380                 {
       
   381                 iDnlinkStreamId = -1;
       
   382                 iDnlinkInitialized = FALSE;
       
   383                 }
       
   384             break;
       
   385         default:
       
   386             status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED;
       
   387             break;
       
   388         }
       
   389     TRACE_PRN_FN_EXT;
       
   390     return status;
       
   391     }
       
   392 
       
   393 // -----------------------------------------------------------------------------
       
   394 // TMSCallCSAdpt::DataXferBufferEmptied
       
   395 //
       
   396 // -----------------------------------------------------------------------------
       
   397 //
       
   398 gint TMSCallCSAdpt::DataXferBufferEmptied(TMSCallType /*callType*/,
       
   399         TMSStreamType /*strmType*/, gint /*strmId*/)
       
   400     {
       
   401     TRACE_PRN_FN_ENT;
       
   402     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   403     TRACE_PRN_FN_EXT;
       
   404     return status;
       
   405     }
       
   406 
       
   407 // -----------------------------------------------------------------------------
       
   408 // TMSCallCSAdpt::DataXferBufferFilled
       
   409 //
       
   410 // -----------------------------------------------------------------------------
       
   411 //
       
   412 gint TMSCallCSAdpt::DataXferBufferFilled(TMSCallType /*callType*/,
       
   413         TMSStreamType /*strmType*/, gint /*strmId*/, guint /*datasize*/)
       
   414     {
       
   415     TRACE_PRN_FN_ENT;
       
   416     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   417     TRACE_PRN_FN_EXT;
       
   418     return status;
       
   419     }
       
   420 
       
   421 // -----------------------------------------------------------------------------
       
   422 // TMSCallCSAdpt::GetDataXferBufferHndl
       
   423 //
       
   424 // -----------------------------------------------------------------------------
       
   425 //
       
   426 gint TMSCallCSAdpt::GetDataXferBufferHndl(const TMSCallType /*callType*/,
       
   427         const TMSStreamType /*strmType*/, const gint /*strmId*/,
       
   428         const guint32 /*key*/, RChunk& /*chunk*/)
       
   429     {
       
   430     TRACE_PRN_FN_ENT;
       
   431     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   432     TRACE_PRN_FN_EXT;
       
   433     return status;
       
   434     }
       
   435 
       
   436 // -----------------------------------------------------------------------------
       
   437 // TMSCallCSAdpt::GetMaxVolume
       
   438 //
       
   439 // -----------------------------------------------------------------------------
       
   440 //
       
   441 gint TMSCallCSAdpt::GetMaxVolume(guint& volume)
       
   442     {
       
   443     TRACE_PRN_FN_ENT;
       
   444     gint status(TMS_RESULT_ILLEGAL_OPERATION);
       
   445     if (iCSDownlink && iDnlinkInitialized)
       
   446         {
       
   447         volume = iCSDownlink->MaxVolume();
       
   448         status = TMS_RESULT_SUCCESS;
       
   449         }
       
   450     TRACE_PRN_FN_EXT;
       
   451     return status;
       
   452     }
       
   453 
       
   454 // -----------------------------------------------------------------------------
       
   455 // TMSCallCSAdpt::SetVolume
       
   456 //
       
   457 // -----------------------------------------------------------------------------
       
   458 //
       
   459 gint TMSCallCSAdpt::SetVolume(const guint volume)
       
   460     {
       
   461     TRACE_PRN_FN_ENT;
       
   462     gint status(TMS_RESULT_ILLEGAL_OPERATION);
       
   463     if (iCSDownlink && iDnlinkInitialized)
       
   464         {
       
   465         iCSDownlink->SetVolume(volume);
       
   466         status = TMS_RESULT_SUCCESS;
       
   467         NotifyClient(iDnlinkStreamId, ECmdSetVolume, status, 0);
       
   468         }
       
   469     TRACE_PRN_FN_EXT;
       
   470     return status;
       
   471     }
       
   472 
       
   473 // -----------------------------------------------------------------------------
       
   474 // TMSCallCSAdpt::GetVolume
       
   475 //
       
   476 // -----------------------------------------------------------------------------
       
   477 //
       
   478 gint TMSCallCSAdpt::GetVolume(guint& volume)
       
   479     {
       
   480     TRACE_PRN_FN_ENT;
       
   481     gint status(TMS_RESULT_ILLEGAL_OPERATION);
       
   482     if (iCSDownlink && iDnlinkInitialized)
       
   483         {
       
   484         volume = iCSDownlink->Volume();
       
   485         status = TMS_RESULT_SUCCESS;
       
   486         }
       
   487 
       
   488     TRACE_PRN_FN_EXT;
       
   489     return status;
       
   490     }
       
   491 
       
   492 // -----------------------------------------------------------------------------
       
   493 // TMSCallCSAdpt::GetMaxGain
       
   494 //
       
   495 // -----------------------------------------------------------------------------
       
   496 //
       
   497 gint TMSCallCSAdpt::GetMaxGain(guint& gain)
       
   498     {
       
   499     TRACE_PRN_FN_ENT;
       
   500     gint status(TMS_RESULT_ILLEGAL_OPERATION);
       
   501     if (iCSUplink && iUplinkInitialized)
       
   502         {
       
   503         gain = iCSUplink->MaxGain();
       
   504         status = TMS_RESULT_SUCCESS;
       
   505         }
       
   506     TRACE_PRN_FN_EXT;
       
   507     return status;
       
   508     }
       
   509 
       
   510 // -----------------------------------------------------------------------------
       
   511 // TMSCallCSAdpt::SetGain
       
   512 //
       
   513 // -----------------------------------------------------------------------------
       
   514 //
       
   515 gint TMSCallCSAdpt::SetGain(const guint gain)
       
   516     {
       
   517     TRACE_PRN_FN_ENT;
       
   518     gint status(TMS_RESULT_ILLEGAL_OPERATION);
       
   519     if (iUplinkInitialized)
       
   520         {
       
   521         iCSUplink->SetGain(gain);
       
   522         status = TMS_RESULT_SUCCESS;
       
   523         NotifyClient(iUplinkInitialized, ECmdSetGain, status, 0);
       
   524         }
       
   525     TRACE_PRN_FN_EXT;
       
   526     return status;
       
   527     }
       
   528 
       
   529 // -----------------------------------------------------------------------------
       
   530 // TMSCallCSAdpt::GetGain
       
   531 //
       
   532 // -----------------------------------------------------------------------------
       
   533 //
       
   534 gint TMSCallCSAdpt::GetGain(guint& gain)
       
   535     {
       
   536     TRACE_PRN_FN_ENT;
       
   537     gint status(TMS_RESULT_ILLEGAL_OPERATION);
       
   538     if (iCSUplink && iUplinkInitialized)
       
   539         {
       
   540         gain = iCSUplink->Gain();
       
   541         status = TMS_RESULT_SUCCESS;
       
   542         }
       
   543     TRACE_PRN_FN_EXT;
       
   544     return status;
       
   545     }
       
   546 
       
   547 // -----------------------------------------------------------------------------
       
   548 // TMSCallCSAdpt::GetGlobalMaxVolume
       
   549 //
       
   550 // -----------------------------------------------------------------------------
       
   551 //
       
   552 gint TMSCallCSAdpt::GetGlobalMaxVolume(guint& volume)
       
   553     {
       
   554     TRACE_PRN_FN_ENT;
       
   555     gint status(TMS_RESULT_ILLEGAL_OPERATION);
       
   556     if (iCSDownlink && iDnlinkInitialized)
       
   557         {
       
   558         volume = iCSDownlink->MaxVolume();
       
   559         status = TMS_RESULT_SUCCESS;
       
   560         }
       
   561     TRACE_PRN_FN_EXT;
       
   562     return status;
       
   563     }
       
   564 
       
   565 // -----------------------------------------------------------------------------
       
   566 // TMSCallCSAdpt::SetGlobalVolume
       
   567 //
       
   568 // -----------------------------------------------------------------------------
       
   569 //
       
   570 gint TMSCallCSAdpt::SetGlobalVolume(const guint volume)
       
   571     {
       
   572     TRACE_PRN_FN_ENT;
       
   573     gint status(TMS_RESULT_SUCCESS);
       
   574 
       
   575     iGlobalVol = volume;
       
   576     if (iCSDownlink && iDnlinkInitialized)
       
   577         {
       
   578         iCSDownlink->SetVolume(volume);
       
   579         status = TMS_RESULT_SUCCESS;
       
   580         }
       
   581     TRACE_PRN_FN_EXT;
       
   582     return status;
       
   583     }
       
   584 
       
   585 // -----------------------------------------------------------------------------
       
   586 // TMSCallCSAdpt::GetGlobalVolume
       
   587 //
       
   588 // -----------------------------------------------------------------------------
       
   589 //
       
   590 gint TMSCallCSAdpt::GetGlobalVolume(guint& volume)
       
   591     {
       
   592     TRACE_PRN_FN_ENT;
       
   593     gint status(TMS_RESULT_ILLEGAL_OPERATION);
       
   594     if (iCSDownlink && iDnlinkInitialized)
       
   595         {
       
   596         volume = iCSDownlink->Volume();
       
   597         status = TMS_RESULT_SUCCESS;
       
   598         }
       
   599 
       
   600     TRACE_PRN_FN_EXT;
       
   601     return status;
       
   602     }
       
   603 
       
   604 // -----------------------------------------------------------------------------
       
   605 // TMSCallCSAdpt::GetMaxGain
       
   606 //
       
   607 // -----------------------------------------------------------------------------
       
   608 //
       
   609 gint TMSCallCSAdpt::GetGlobalMaxGain(guint& gain)
       
   610     {
       
   611     TRACE_PRN_FN_ENT;
       
   612     gint status(TMS_RESULT_ILLEGAL_OPERATION);
       
   613     if (iCSUplink && iUplinkInitialized)
       
   614         {
       
   615         gain = iCSUplink->MaxGain();
       
   616         status = TMS_RESULT_SUCCESS;
       
   617         }
       
   618     TRACE_PRN_FN_EXT;
       
   619     return status;
       
   620     }
       
   621 
       
   622 // -----------------------------------------------------------------------------
       
   623 // TMSCallCSAdpt::SetGain
       
   624 //
       
   625 // -----------------------------------------------------------------------------
       
   626 //
       
   627 gint TMSCallCSAdpt::SetGlobalGain(const guint gain)
       
   628     {
       
   629     TRACE_PRN_FN_ENT;
       
   630     gint status(TMS_RESULT_SUCCESS);
       
   631 
       
   632     iGlobalGain = gain;
       
   633     if (iCSUplink && iUplinkInitialized)
       
   634         {
       
   635         iCSUplink->SetGain(gain);
       
   636         status = TMS_RESULT_SUCCESS;
       
   637         }
       
   638     TRACE_PRN_FN_EXT;
       
   639     return status;
       
   640     }
       
   641 
       
   642 // -----------------------------------------------------------------------------
       
   643 // TMSCallCSAdpt::GetGlobalGain
       
   644 //
       
   645 // -----------------------------------------------------------------------------
       
   646 //
       
   647 gint TMSCallCSAdpt::GetGlobalGain(guint& gain)
       
   648     {
       
   649     TRACE_PRN_FN_ENT;
       
   650     gint status(TMS_RESULT_ILLEGAL_OPERATION);
       
   651     if (iCSUplink && iUplinkInitialized)
       
   652         {
       
   653         gain = iCSUplink->Gain();
       
   654         status = TMS_RESULT_SUCCESS;
       
   655         }
       
   656     TRACE_PRN_FN_EXT;
       
   657     return status;
       
   658     }
       
   659 
       
   660 // -----------------------------------------------------------------------------
       
   661 // TMSCallCSAdpt::GetCodecMode
       
   662 //
       
   663 // -----------------------------------------------------------------------------
       
   664 //
       
   665 gint TMSCallCSAdpt::GetCodecMode(const TMSFormatType /*fmttype*/,
       
   666         const TMSStreamType /*strmtype*/, gint& /*mode*/)
       
   667     {
       
   668     TRACE_PRN_FN_ENT;
       
   669     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   670     TRACE_PRN_FN_EXT;
       
   671     return status;
       
   672     }
       
   673 
       
   674 // -----------------------------------------------------------------------------
       
   675 // TMSCallCSAdpt::SetCodecMode
       
   676 //
       
   677 // -----------------------------------------------------------------------------
       
   678 //
       
   679 gint TMSCallCSAdpt::SetCodecMode(const TMSFormatType /*fmttype*/,
       
   680         const TMSStreamType /*strmtype*/, const gint /*mode*/)
       
   681     {
       
   682     TRACE_PRN_FN_ENT;
       
   683     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   684     TRACE_PRN_FN_EXT;
       
   685     return status;
       
   686     }
       
   687 
       
   688 // -----------------------------------------------------------------------------
       
   689 // TMSCallCSAdpt::GetSupportedBitRatesCount
       
   690 //
       
   691 // -----------------------------------------------------------------------------
       
   692 //
       
   693 gint TMSCallCSAdpt::GetSupportedBitRatesCount(guint& /*count*/)
       
   694     {
       
   695     TRACE_PRN_FN_ENT;
       
   696     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   697     TRACE_PRN_FN_EXT;
       
   698     return status;
       
   699     }
       
   700 
       
   701 // -----------------------------------------------------------------------------
       
   702 // TMSCallCSAdpt::GetSupportedBitRates
       
   703 //
       
   704 // -----------------------------------------------------------------------------
       
   705 //
       
   706 gint TMSCallCSAdpt::GetSupportedBitRates(CBufFlat*& brbuffer)
       
   707     {
       
   708     TRACE_PRN_FN_ENT;
       
   709     TRAPD(status, GetSupportedBitRatesL(brbuffer));
       
   710     TRACE_PRN_FN_EXT;
       
   711     return status;
       
   712     }
       
   713 
       
   714 // -----------------------------------------------------------------------------
       
   715 // TMSCallCSAdpt::GetSupportedBitRatesL
       
   716 //
       
   717 // GetSupportedBitRates implementation which can leave.
       
   718 // -----------------------------------------------------------------------------
       
   719 //
       
   720 void TMSCallCSAdpt::GetSupportedBitRatesL(CBufFlat*& /*brbuffer*/)
       
   721     {
       
   722     User::Leave(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   723     }
       
   724 
       
   725 // -----------------------------------------------------------------------------
       
   726 // TMSCallCSAdpt::GetBitRate
       
   727 //
       
   728 // -----------------------------------------------------------------------------
       
   729 //
       
   730 gint TMSCallCSAdpt::GetBitRate(guint& /*bitrate*/)
       
   731     {
       
   732     TRACE_PRN_FN_ENT;
       
   733     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   734     TRACE_PRN_FN_EXT;
       
   735     return status;
       
   736     }
       
   737 
       
   738 // -----------------------------------------------------------------------------
       
   739 // TMSCallCSAdpt::SetBitRate
       
   740 //
       
   741 // -----------------------------------------------------------------------------
       
   742 //
       
   743 gint TMSCallCSAdpt::SetBitRate(const guint /*bitrate*/)
       
   744     {
       
   745     TRACE_PRN_FN_ENT;
       
   746     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   747     TRACE_PRN_FN_EXT;
       
   748     return status;
       
   749     }
       
   750 
       
   751 // -----------------------------------------------------------------------------
       
   752 // TMSCallCSAdpt::GetVAD
       
   753 //
       
   754 // -----------------------------------------------------------------------------
       
   755 //
       
   756 gint TMSCallCSAdpt::GetVAD(const TMSFormatType /*fmttype*/, gboolean& /*vad*/)
       
   757     {
       
   758     TRACE_PRN_FN_ENT;
       
   759     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   760     TRACE_PRN_FN_EXT;
       
   761     return status;
       
   762     }
       
   763 
       
   764 // -----------------------------------------------------------------------------
       
   765 // TMSCallCSAdpt::SetVAD
       
   766 //
       
   767 // -----------------------------------------------------------------------------
       
   768 //
       
   769 gint TMSCallCSAdpt::SetVAD(const TMSFormatType /*fmttype*/, const gboolean /*vad*/)
       
   770     {
       
   771     TRACE_PRN_FN_ENT;
       
   772     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   773     TRACE_PRN_FN_EXT;
       
   774     return status;
       
   775     }
       
   776 
       
   777 // -----------------------------------------------------------------------------
       
   778 // TMSCallCSAdpt::GetCNG
       
   779 //
       
   780 // -----------------------------------------------------------------------------
       
   781 //
       
   782 gint TMSCallCSAdpt::GetCNG(const TMSFormatType /*fmttype*/, gboolean& /*cng*/)
       
   783     {
       
   784     TRACE_PRN_FN_ENT;
       
   785     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   786     TRACE_PRN_FN_EXT;
       
   787     return status;
       
   788     }
       
   789 
       
   790 // -----------------------------------------------------------------------------
       
   791 // TMSCallCSAdpt::SetCNG
       
   792 //
       
   793 // -----------------------------------------------------------------------------
       
   794 //
       
   795 gint TMSCallCSAdpt::SetCNG(const TMSFormatType /*fmttype*/,
       
   796         const gboolean /*cng*/)
       
   797     {
       
   798     TRACE_PRN_FN_ENT;
       
   799     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   800     TRACE_PRN_FN_EXT;
       
   801     return status;
       
   802     }
       
   803 
       
   804 // -----------------------------------------------------------------------------
       
   805 // TMSCallCSAdpt::GetPlc
       
   806 //
       
   807 // -----------------------------------------------------------------------------
       
   808 //
       
   809 gint TMSCallCSAdpt::GetPlc(const TMSFormatType /*fmttype*/, gboolean& /*plc*/)
       
   810     {
       
   811     TRACE_PRN_FN_ENT;
       
   812     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   813     TRACE_PRN_FN_EXT;
       
   814     return status;
       
   815     }
       
   816 
       
   817 // -----------------------------------------------------------------------------
       
   818 // TMSCallCSAdpt::SetPlc
       
   819 //
       
   820 // -----------------------------------------------------------------------------
       
   821 //
       
   822 gint TMSCallCSAdpt::SetPlc(const TMSFormatType /*fmttype*/,
       
   823         const gboolean /*plc*/)
       
   824     {
       
   825     TRACE_PRN_FN_ENT;
       
   826     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   827     TRACE_PRN_FN_EXT;
       
   828     return status;
       
   829     }
       
   830 
       
   831 // -----------------------------------------------------------------------------
       
   832 // TMSCallCSAdpt::SetOutput
       
   833 //
       
   834 // -----------------------------------------------------------------------------
       
   835 //
       
   836 gint TMSCallCSAdpt::SetOutput(TMSAudioOutput output)
       
   837     {
       
   838     TRACE_PRN_FN_ENT;
       
   839     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
       
   840 
       
   841     if (iRouting)
       
   842         {
       
   843         CTelephonyAudioRouting::TAudioOutput taroutput = TOTAROUTPUT(output);
       
   844         TRAP(status, iRouting->SetOutputL(taroutput));
       
   845         if (status == KErrArgument)
       
   846             {
       
   847             status = TMS_RESULT_INVALID_ARGUMENT;
       
   848             }
       
   849         else
       
   850             {
       
   851             status = TMS_RESULT_SUCCESS;
       
   852             }
       
   853         }
       
   854 
       
   855     TRACE_PRN_FN_EXT;
       
   856     return status;
       
   857     }
       
   858 
       
   859 // -----------------------------------------------------------------------------
       
   860 // TMSCallCSAdpt::GetOutput
       
   861 //
       
   862 // -----------------------------------------------------------------------------
       
   863 //
       
   864 gint TMSCallCSAdpt::GetOutput(TMSAudioOutput& output)
       
   865     {
       
   866     TRACE_PRN_FN_ENT;
       
   867     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
       
   868 
       
   869     if (iRouting)
       
   870         {
       
   871         CTelephonyAudioRouting::TAudioOutput taroutput;
       
   872         taroutput = iRouting->Output();
       
   873         status = TMS_RESULT_SUCCESS;
       
   874         output = TOTMSOUTPUT(taroutput);
       
   875         }
       
   876 
       
   877     TRACE_PRN_FN_EXT;
       
   878     return status;
       
   879     }
       
   880 
       
   881 // -----------------------------------------------------------------------------
       
   882 // TMSCallCSAdpt::GetPreviousOutput
       
   883 //
       
   884 // -----------------------------------------------------------------------------
       
   885 //
       
   886 gint TMSCallCSAdpt::GetPreviousOutput(TMSAudioOutput& output)
       
   887     {
       
   888     TRACE_PRN_FN_ENT;
       
   889     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
       
   890 
       
   891     if (iRouting)
       
   892         {
       
   893         CTelephonyAudioRouting::TAudioOutput taroutput;
       
   894         taroutput = iRouting->PreviousOutput();
       
   895         status = TMS_RESULT_SUCCESS;
       
   896         output = TOTMSOUTPUT(taroutput);
       
   897         }
       
   898     TRACE_PRN_FN_EXT;
       
   899     return status;
       
   900     }
       
   901 
       
   902 // -----------------------------------------------------------------------------
       
   903 // TMSCallCSAdpt::GetAvailableOutputsL
       
   904 //
       
   905 // -----------------------------------------------------------------------------
       
   906 //
       
   907 gint TMSCallCSAdpt::GetAvailableOutputsL(gint& count, CBufFlat*& outputsbuffer)
       
   908     {
       
   909     TRACE_PRN_FN_ENT;
       
   910     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
       
   911     TMSAudioOutput tmsoutput;
       
   912 
       
   913     if (iRouting)
       
   914         {
       
   915         RBufWriteStream stream;
       
   916         stream.Open(*outputsbuffer);
       
   917         CleanupClosePushL(stream);
       
   918 
       
   919         TArray<CTelephonyAudioRouting::TAudioOutput> availableOutputs =
       
   920                 iRouting->AvailableOutputs();
       
   921 
       
   922         guint numOfItems = availableOutputs.Count();
       
   923         count = numOfItems;
       
   924         for (guint i = 0; i < numOfItems; i++)
       
   925             {
       
   926             tmsoutput = TOTMSOUTPUT(availableOutputs[i]);
       
   927             stream.WriteUint32L(tmsoutput);
       
   928             //TRACE_PRN_N1(_L("TMS->CallIPAdpt: outputs: [%d]"), availableOutputs[i]);
       
   929             }
       
   930 
       
   931         CleanupStack::PopAndDestroy(&stream);
       
   932         status = TMS_RESULT_SUCCESS;
       
   933         }
       
   934 
       
   935     TRACE_PRN_FN_EXT;
       
   936     return status;
       
   937     }
       
   938 
       
   939 // -----------------------------------------------------------------------------
       
   940 // TMSCallCSAdpt::StartDTMF
       
   941 //
       
   942 // -----------------------------------------------------------------------------
       
   943 //
       
   944 gint TMSCallCSAdpt::StartDTMF(TMSStreamType strmtype, TDes& dtmfstring)
       
   945     {
       
   946     TRACE_PRN_FN_ENT;
       
   947     gint status(TMS_RESULT_SUCCESS);
       
   948 
       
   949     TmsMsgBufPckg dtmfpckg;
       
   950 
       
   951     if (strmtype == TMS_STREAM_DOWNLINK && iDnlinkInitialized)
       
   952         {
       
   953         if (iDTMFDnlinkPlayer)
       
   954             {
       
   955             iDTMFDnlinkPlayer->PlayDtmfTone(dtmfstring);
       
   956             }
       
   957 
       
   958         dtmfpckg().iStatus = TMS_RESULT_SUCCESS;
       
   959         //TMS_EVENT_DTMF_TONE_STARTED;
       
   960         dtmfpckg().iRequest = ECmdDTMFOpenDnlinkComplete;
       
   961         if (iDTMFNotifier)
       
   962             {
       
   963             iDTMFNotifier->SetDtmf(dtmfpckg, TRUE);
       
   964             }
       
   965         }
       
   966     else if (strmtype == TMS_STREAM_UPLINK && iUplinkInitialized)
       
   967         {
       
   968         //use etel for uplink
       
   969         if (iDTMFUplinkPlayer)
       
   970             {
       
   971             status = iDTMFUplinkPlayer->SendDtmfToneString(dtmfstring);
       
   972             }
       
   973 
       
   974         dtmfpckg().iStatus = TMSUtility::EtelToTMSResult(status);
       
   975         //TMS_EVENT_DTMF_TONE_STARTED;
       
   976         dtmfpckg().iRequest = ECmdDTMFOpenUplinkComplete;
       
   977 
       
   978         if (iDTMFNotifier)
       
   979             {
       
   980             iDTMFNotifier->SetDtmf(dtmfpckg, TRUE);
       
   981             }
       
   982         }
       
   983 
       
   984     TRACE_PRN_FN_EXT;
       
   985     return status;
       
   986     }
       
   987 
       
   988 // -----------------------------------------------------------------------------
       
   989 // TMSCallCSAdpt::StopDTMF
       
   990 //
       
   991 // -----------------------------------------------------------------------------
       
   992 //
       
   993 gint TMSCallCSAdpt::StopDTMF(TMSStreamType streamtype)
       
   994     {
       
   995     TRACE_PRN_FN_ENT;
       
   996     gint status(TMS_RESULT_SUCCESS);
       
   997 
       
   998     if (streamtype == TMS_STREAM_DOWNLINK && iDTMFDnlinkPlayer)
       
   999         {
       
  1000         iDTMFDnlinkPlayer->Cancel();
       
  1001         }
       
  1002     else if (streamtype == TMS_STREAM_UPLINK && iDTMFUplinkPlayer)
       
  1003         {
       
  1004         status = iDTMFUplinkPlayer->StopDtmfTone();
       
  1005         status = TMSUtility::EtelToTMSResult(status);
       
  1006         }
       
  1007 
       
  1008     TRACE_PRN_FN_EXT;
       
  1009     return status;
       
  1010     }
       
  1011 
       
  1012 // -----------------------------------------------------------------------------
       
  1013 // TMSCallCSAdpt::ContinueDTMF
       
  1014 //
       
  1015 // -----------------------------------------------------------------------------
       
  1016 //
       
  1017 gint TMSCallCSAdpt::ContinueDTMF(TBool continuesending)
       
  1018     {
       
  1019     TRACE_PRN_FN_ENT;
       
  1020     gint status(TMS_RESULT_SUCCESS);
       
  1021 
       
  1022     if (iDTMFUplinkPlayer)
       
  1023         {
       
  1024         status = iDTMFUplinkPlayer->ContinueDtmfStringSending(continuesending);
       
  1025         status = TMSUtility::EtelToTMSResult(status);
       
  1026         }
       
  1027 
       
  1028     TRACE_PRN_FN_EXT;
       
  1029     return status;
       
  1030     }
       
  1031 
       
  1032 //From DTMFTonePlayerObserver
       
  1033 // -----------------------------------------------------------------------------
       
  1034 // TMSCallCSAdpt::DTMFInitCompleted
       
  1035 //
       
  1036 // -----------------------------------------------------------------------------
       
  1037 //
       
  1038 void TMSCallCSAdpt::DTMFInitCompleted(TInt /*error*/)
       
  1039     {
       
  1040     TRACE_PRN_FN_ENT;
       
  1041     TRACE_PRN_FN_EXT;
       
  1042     }
       
  1043 
       
  1044 // -----------------------------------------------------------------------------
       
  1045 // TMSCallCSAdpt::DTMFToneFinished
       
  1046 //
       
  1047 // -----------------------------------------------------------------------------
       
  1048 //
       
  1049 void TMSCallCSAdpt::DTMFToneFinished(TInt error)
       
  1050     {
       
  1051     TRACE_PRN_FN_ENT;
       
  1052     TmsMsgBufPckg dtmfpckg;
       
  1053 
       
  1054     if (error == KErrUnderflow || error == KErrInUse)
       
  1055         {
       
  1056         error = TMS_RESULT_SUCCESS;
       
  1057         }
       
  1058 
       
  1059     dtmfpckg().iStatus = TMSUtility::TMSResult(error);
       
  1060     //TMS_EVENT_DTMF_TONE_STOPPED
       
  1061     dtmfpckg().iRequest = ECmdDTMFTonePlayFinished;
       
  1062     if (iDTMFNotifier)
       
  1063         {
       
  1064         iDTMFNotifier->SetDtmf(dtmfpckg, TRUE);
       
  1065         }
       
  1066 
       
  1067     TRACE_PRN_FN_EXT;
       
  1068     }
       
  1069 
       
  1070 // -----------------------------------------------------------------------------
       
  1071 // TMSCallCSAdpt::HandleDTMFEvent
       
  1072 //
       
  1073 // -----------------------------------------------------------------------------
       
  1074 //
       
  1075 void TMSCallCSAdpt::HandleDTMFEvent(
       
  1076         const TMSDTMFObserver::TCCPDtmfEvent aEvent, const TInt aError,
       
  1077         const TChar /*aTone*/)
       
  1078     {
       
  1079     TRACE_PRN_FN_ENT;
       
  1080     TmsMsgBufPckg dtmfpckg;
       
  1081 
       
  1082     TRACE_PRN_N1(_L("**TMS TMSCallCSAdpt::HandleDTMFEvent error:%d"),aError);
       
  1083 
       
  1084     dtmfpckg().iStatus = TMSUtility::EtelToTMSResult(aError);
       
  1085 
       
  1086     switch (aEvent)
       
  1087         {
       
  1088             /** Unknown */
       
  1089         case ECCPDtmfUnknown:
       
  1090             break;
       
  1091             /** DTMF sending started manually */
       
  1092         case ECCPDtmfManualStart:
       
  1093             /** Automatic DTMF sending initialized */
       
  1094         case ECCPDtmfSequenceStart:
       
  1095             //TMS_EVENT_DTMF_TONE_STARTED
       
  1096             dtmfpckg().iRequest = ECmdDTMFOpenUplinkComplete;
       
  1097             break;
       
  1098 
       
  1099             /** DTMF sending stopped manually */
       
  1100         case ECCPDtmfManualStop:
       
  1101             //break;
       
  1102             /** DTMF sending aborted manually */
       
  1103         case ECCPDtmfManualAbort:
       
  1104             //break;
       
  1105             /** Automatic DTMF sending stopped */
       
  1106         case ECCPDtmfSequenceStop:
       
  1107             //break;
       
  1108             /** Automatic DTMF sending aborted */
       
  1109         case ECCPDtmfSequenceAbort:
       
  1110             //break;
       
  1111             /** There was stop mark in DTMF string */
       
  1112         case ECCPDtmfStopInDtmfString:
       
  1113             //break;
       
  1114             /** DTMF sending completed succesfully */
       
  1115         case ECCPDtmfStringSendingCompleted:
       
  1116             //TMS_EVENT_DTMF_TONE_STOPPED
       
  1117             dtmfpckg().iRequest = ECmdDTMFTonePlayFinished;
       
  1118             break;
       
  1119         default:
       
  1120             break;
       
  1121         }
       
  1122 
       
  1123     if (iDTMFNotifier)
       
  1124         {
       
  1125         iDTMFNotifier->SetDtmf(dtmfpckg, TRUE);
       
  1126         }
       
  1127     TRACE_PRN_FN_EXT;
       
  1128     }
       
  1129 
       
  1130 // From TMSCSPDevSoundObserver
       
  1131 
       
  1132 // -----------------------------------------------------------------------------
       
  1133 // TMSCallCSAdpt::DownlinkInitCompleted
       
  1134 //
       
  1135 // -----------------------------------------------------------------------------
       
  1136 //
       
  1137 void TMSCallCSAdpt::DownlinkInitCompleted(TInt status)
       
  1138     {
       
  1139     TRACE_PRN_FN_ENT;
       
  1140     NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status, 0);
       
  1141     TRACE_PRN_FN_EXT;
       
  1142     }
       
  1143 
       
  1144 // -----------------------------------------------------------------------------
       
  1145 // TMSCallCSAdpt::UplinkInitCompleted
       
  1146 //
       
  1147 // -----------------------------------------------------------------------------
       
  1148 //
       
  1149 void TMSCallCSAdpt::UplinkInitCompleted(TInt status)
       
  1150     {
       
  1151     TRACE_PRN_FN_ENT;
       
  1152     NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status, 0);
       
  1153     TRACE_PRN_FN_EXT;
       
  1154     }
       
  1155 
       
  1156 // -----------------------------------------------------------------------------
       
  1157 // TMSCallCSAdpt::UplinkActivatedSuccessfully
       
  1158 //
       
  1159 // -----------------------------------------------------------------------------
       
  1160 //
       
  1161 void TMSCallCSAdpt::UplinkActivatedSuccessfully()
       
  1162     {
       
  1163     TRACE_PRN_FN_ENT;
       
  1164     NotifyClient(iUplinkStreamId, ECmdUplinkStarted, KErrNone, 0);
       
  1165     TRACE_PRN_FN_EXT;
       
  1166     }
       
  1167 
       
  1168 // -----------------------------------------------------------------------------
       
  1169 // TMSCallCSAdpt::DownlinkActivatedSuccessfully
       
  1170 //
       
  1171 // -----------------------------------------------------------------------------
       
  1172 //
       
  1173 void TMSCallCSAdpt::DownlinkActivatedSuccessfully()
       
  1174     {
       
  1175     TRACE_PRN_FN_ENT;
       
  1176     NotifyClient(iDnlinkStreamId, ECmdDownlinkStarted, KErrNone, 0);
       
  1177     TRACE_PRN_FN_EXT;
       
  1178     }
       
  1179 
       
  1180 // -----------------------------------------------------------------------------
       
  1181 // TMSCallCSAdpt::UplinkActivationFailed
       
  1182 //
       
  1183 // -----------------------------------------------------------------------------
       
  1184 //
       
  1185 void TMSCallCSAdpt::UplinkActivationFailed()
       
  1186     {
       
  1187     TRACE_PRN_FN_ENT;
       
  1188     NotifyClient(iUplinkStreamId, ECmdUplinkStarted, TMS_RESULT_FATAL_ERROR, 0);
       
  1189     TRACE_PRN_FN_EXT;
       
  1190     }
       
  1191 
       
  1192 // -----------------------------------------------------------------------------
       
  1193 // TMSCallCSAdpt::DownlinkActivationFailed
       
  1194 //
       
  1195 // -----------------------------------------------------------------------------
       
  1196 //
       
  1197 void TMSCallCSAdpt::DownlinkActivationFailed()
       
  1198     {
       
  1199     TRACE_PRN_FN_ENT;
       
  1200     NotifyClient(iDnlinkStreamId, ECmdDownlinkStarted,
       
  1201             TMS_RESULT_FATAL_ERROR, 0);
       
  1202     TRACE_PRN_FN_EXT;
       
  1203     }
       
  1204 
       
  1205 // -----------------------------------------------------------------------------
       
  1206 // TMSCallCSAdpt::AvailableOutputsChanged
       
  1207 //
       
  1208 // -----------------------------------------------------------------------------
       
  1209 //
       
  1210 void TMSCallCSAdpt::AvailableOutputsChanged(
       
  1211         CTelephonyAudioRouting& /*aTelephonyAudioRouting*/)
       
  1212     {
       
  1213     TRACE_PRN_FN_ENT;
       
  1214     TRoutingMsgBufPckg pckg;
       
  1215     pckg().iEvent = TMS_EVENT_ROUTING_AVAIL_OUTPUTS_CHANGED;
       
  1216     iTarSettings->SetTar(pckg, ETrue);
       
  1217     TRACE_PRN_FN_EXT;
       
  1218     }
       
  1219 
       
  1220 // -----------------------------------------------------------------------------
       
  1221 // TMSCallCSAdpt::OutputChanged
       
  1222 //
       
  1223 // -----------------------------------------------------------------------------
       
  1224 //
       
  1225 void TMSCallCSAdpt::OutputChanged(
       
  1226         CTelephonyAudioRouting& aTelephonyAudioRouting)
       
  1227     {
       
  1228     TRACE_PRN_FN_ENT;
       
  1229     TRoutingMsgBufPckg pckg;
       
  1230     pckg().iEvent = TMS_EVENT_ROUTING_OUTPUT_CHANGED;
       
  1231     pckg().iOutput = TOTMSOUTPUT(aTelephonyAudioRouting.Output());
       
  1232     iTarSettings->SetTar(pckg, ETrue);
       
  1233     TRACE_PRN_FN_EXT;
       
  1234     }
       
  1235 
       
  1236 // -----------------------------------------------------------------------------
       
  1237 // TMSCallCSAdpt::SetOutputComplete
       
  1238 //
       
  1239 // -----------------------------------------------------------------------------
       
  1240 //
       
  1241 void TMSCallCSAdpt::SetOutputComplete(
       
  1242         CTelephonyAudioRouting& aTelephonyAudioRouting, gint /*aError*/)
       
  1243     {
       
  1244     TRACE_PRN_FN_ENT;
       
  1245     TRoutingMsgBufPckg pckg;
       
  1246     pckg().iEvent = TMS_EVENT_ROUTING_SET_OUTPUT_COMPLETE;
       
  1247     pckg().iOutput = TOTMSOUTPUT(aTelephonyAudioRouting.Output());
       
  1248     if (iTarSettings)
       
  1249         {
       
  1250         iTarSettings->SetTar(pckg, ETrue);
       
  1251         }
       
  1252     //TRACE_PRN_IF_ERR(aError);
       
  1253     TRACE_PRN_FN_EXT;
       
  1254     }
       
  1255 
       
  1256 // -----------------------------------------------------------------------------
       
  1257 // TMSCallCSAdpt::NotifyClient
       
  1258 //
       
  1259 // -----------------------------------------------------------------------------
       
  1260 //
       
  1261 void TMSCallCSAdpt::NotifyClient(const gint strmId, const gint aCommand,
       
  1262         const gint aStatus, const gint64 /*aInt64*/)
       
  1263     {
       
  1264     iMsgBuffer.iRequest = aCommand;
       
  1265     iMsgBuffer.iStatus = aStatus;
       
  1266 
       
  1267     if (strmId == iUplinkStreamId)
       
  1268         {
       
  1269         iMsgQueueUp.Send(iMsgBuffer);
       
  1270         }
       
  1271     else if (strmId == iDnlinkStreamId)
       
  1272         {
       
  1273         iMsgQueueDn.Send(iMsgBuffer);
       
  1274         }
       
  1275     }
       
  1276 
       
  1277 // End of file