mmserv/tms/tmscallserver/src/tmscallcsadpt.cpp
branchRCL_3
changeset 11 3570217d8c21
child 12 2eb3b066cc7d
equal deleted inserted replaced
9:f5c5c82a163e 11:3570217d8c21
       
     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 
       
    30 using namespace TMS;
       
    31 
       
    32 // -----------------------------------------------------------------------------
       
    33 // TMSCallCSAdpt::TMSCallCSAdpt
       
    34 //
       
    35 // -----------------------------------------------------------------------------
       
    36 //
       
    37 TMSCallCSAdpt::TMSCallCSAdpt()
       
    38     {
       
    39     TRACE_PRN_FN_ENT;
       
    40 
       
    41     iCSDownlink = NULL;
       
    42     iCSUplink = NULL;
       
    43     iRouting = NULL;
       
    44     iTarSettings = NULL;
       
    45 
       
    46     TRACE_PRN_FN_EXT;
       
    47     }
       
    48 
       
    49 // -----------------------------------------------------------------------------
       
    50 // TMSCallCSAdpt::~TMSCallCSAdpt
       
    51 //
       
    52 // -----------------------------------------------------------------------------
       
    53 //
       
    54 TMSCallCSAdpt::~TMSCallCSAdpt()
       
    55     {
       
    56     TRACE_PRN_FN_ENT;
       
    57     delete iCSDownlink;
       
    58     delete iCSUplink;
       
    59     delete iRouting;
       
    60     delete iTarSettings;
       
    61 
       
    62     if (iMsgQueueUp.Handle() > 0)
       
    63         {
       
    64         iMsgQueueUp.Close();
       
    65         }
       
    66 
       
    67     if (iMsgQueueDn.Handle() > 0)
       
    68         {
       
    69         iMsgQueueDn.Close();
       
    70         }
       
    71 
       
    72     TRACE_PRN_FN_EXT;
       
    73     }
       
    74 
       
    75 // -----------------------------------------------------------------------------
       
    76 // TMSCallCSAdpt::PostConstruct
       
    77 //
       
    78 // -----------------------------------------------------------------------------
       
    79 //
       
    80 gint TMSCallCSAdpt::PostConstruct()
       
    81     {
       
    82     TRACE_PRN_FN_ENT;
       
    83     gint status(TMS_RESULT_SUCCESS);
       
    84     iNextStreamId = 1;
       
    85     iUplinkInitialized = FALSE;
       
    86     iDnlinkInitialized = FALSE;
       
    87 
       
    88     TRACE_PRN_FN_EXT;
       
    89     return status;
       
    90     }
       
    91 
       
    92 // -----------------------------------------------------------------------------
       
    93 // TMSCallCSAdpt::CreateStream
       
    94 //
       
    95 // -----------------------------------------------------------------------------
       
    96 //
       
    97 gint TMSCallCSAdpt::CreateStream(TMSCallType /*callType*/,
       
    98         TMSStreamType strmType, gint& outStrmId)
       
    99     {
       
   100     TRACE_PRN_FN_ENT;
       
   101     gint status(TMS_RESULT_SUCCESS);
       
   102     switch (strmType)
       
   103         {
       
   104         case TMS_STREAM_UPLINK:
       
   105             status = TMS_RESULT_ALREADY_EXIST;
       
   106             if (!iUplinkInitialized)
       
   107                 {
       
   108                 iUplinkInitialized = TRUE;
       
   109                 iUplinkStreamId = iNextStreamId;
       
   110                 outStrmId = iUplinkStreamId;
       
   111                 iNextStreamId++;
       
   112                 iUplinkInitialized = TRUE;
       
   113                 status = TMS_RESULT_SUCCESS;
       
   114                 }
       
   115             break;
       
   116         case TMS_STREAM_DOWNLINK:
       
   117             status = TMS_RESULT_ALREADY_EXIST;
       
   118             if (!iDnlinkInitialized)
       
   119                 {
       
   120                 iDnlinkInitialized = TRUE;
       
   121                 iDnlinkStreamId = iNextStreamId;
       
   122                 outStrmId = iDnlinkStreamId;
       
   123                 iNextStreamId++;
       
   124                 iDnlinkInitialized = TRUE;
       
   125                 status = TMS_RESULT_SUCCESS;
       
   126                 }
       
   127             break;
       
   128         default:
       
   129             status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED;
       
   130             break;
       
   131         }
       
   132     TRACE_PRN_FN_EXT;
       
   133     return status;
       
   134     }
       
   135 
       
   136 // -----------------------------------------------------------------------------
       
   137 // TMSCallCSAdpt::InitStream
       
   138 //
       
   139 // -----------------------------------------------------------------------------
       
   140 //
       
   141 gint TMSCallCSAdpt::InitStreamL(TMSCallType /*callType*/,
       
   142         TMSStreamType strmType, gint strmId, TMSFormatType /*frmtType*/,
       
   143         const RMessage2& aMessage)
       
   144     {
       
   145     TRACE_PRN_FN_ENT;
       
   146     gint status(TMS_RESULT_SUCCESS);
       
   147 
       
   148     switch (strmType)
       
   149         {
       
   150         case TMS_STREAM_UPLINK:
       
   151             if (strmId == iUplinkStreamId)
       
   152                 {
       
   153                 // Open message queue handling client-server communication
       
   154                 if (iMsgQueueUp.Handle() <= 0)
       
   155                     {
       
   156                     // Third argument in TMSCallProxy::InitStream
       
   157                     status = iMsgQueueUp.Open(aMessage, 1);
       
   158                     }
       
   159                 if (status == TMS_RESULT_SUCCESS)
       
   160                     {
       
   161                     TRAP(status, iCSUplink = TMSCSUplink::NewL(*this));
       
   162                     }
       
   163                 iStrmtype = TMS_STREAM_UPLINK;
       
   164                 }
       
   165             else
       
   166                 {
       
   167                 status = TMS_RESULT_DOES_NOT_EXIST;
       
   168                 }
       
   169             break;
       
   170         case TMS_STREAM_DOWNLINK:
       
   171             if (strmId == iDnlinkStreamId)
       
   172                 {
       
   173                 // Open message queue handling client-server communication
       
   174                 if (iMsgQueueDn.Handle() <= 0)
       
   175                     {
       
   176                     // Third argument in TMSCallProxy::InitStream
       
   177                     status = iMsgQueueDn.Open(aMessage, 1);
       
   178                     }
       
   179                 if (status == TMS_RESULT_SUCCESS)
       
   180                     {
       
   181                     TRAP(status, iCSDownlink = TMSCSDownlink::NewL(*this));
       
   182                     if (status == TMS_RESULT_SUCCESS)
       
   183                         {
       
   184                         TRAP(status, iRouting =
       
   185                              CTelephonyAudioRouting::NewL(*this));
       
   186                         if (status == TMS_RESULT_SUCCESS)
       
   187                             {
       
   188                             iTarSettings = TMSTarSettings::NewL();
       
   189                             }
       
   190                         }
       
   191                     }
       
   192                 iStrmtype = TMS_STREAM_DOWNLINK;
       
   193                 }
       
   194             else
       
   195                 {
       
   196                 status = TMS_RESULT_DOES_NOT_EXIST;
       
   197                 }
       
   198             break;
       
   199         default:
       
   200             status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED;
       
   201             break;
       
   202         }
       
   203 
       
   204     TRACE_PRN_IF_ERR(status);
       
   205     TRACE_PRN_FN_EXT;
       
   206     return status;
       
   207     }
       
   208 
       
   209 // -----------------------------------------------------------------------------
       
   210 // TMSCallCSAdpt::StartStream
       
   211 //
       
   212 // -----------------------------------------------------------------------------
       
   213 //
       
   214 gint TMSCallCSAdpt::StartStream(TMSCallType /*callType*/,
       
   215         TMSStreamType strmType, gint strmId)
       
   216     {
       
   217     TRACE_PRN_FN_ENT;
       
   218     gint status(TMS_RESULT_SUCCESS);
       
   219     switch (strmType)
       
   220         {
       
   221         case TMS_STREAM_UPLINK:
       
   222             if (iCSUplink && strmId == iUplinkStreamId)
       
   223                 {
       
   224                 iCSUplink->Activate();
       
   225                 }
       
   226             break;
       
   227         case TMS_STREAM_DOWNLINK:
       
   228             if (iCSDownlink && strmId == iDnlinkStreamId)
       
   229                 {
       
   230                 iCSDownlink->Activate();
       
   231                 }
       
   232             break;
       
   233         default:
       
   234             status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED;
       
   235             break;
       
   236         }
       
   237     TRACE_PRN_FN_EXT;
       
   238     return status;
       
   239     }
       
   240 
       
   241 // -----------------------------------------------------------------------------
       
   242 // TMSCallCSAdpt::PauseStream
       
   243 //
       
   244 // -----------------------------------------------------------------------------
       
   245 //
       
   246 gint TMSCallCSAdpt::PauseStream(TMSCallType /*callType*/,
       
   247         TMSStreamType /*strmType*/, gint /*strmId*/)
       
   248     {
       
   249     TRACE_PRN_FN_ENT;
       
   250     gint status(TMS_RESULT_SUCCESS);
       
   251     TRACE_PRN_FN_EXT;
       
   252     return status;
       
   253     }
       
   254 
       
   255 // -----------------------------------------------------------------------------
       
   256 // TMSCallCSAdpt::StopStream
       
   257 //
       
   258 // -----------------------------------------------------------------------------
       
   259 //
       
   260 gint TMSCallCSAdpt::StopStream(TMSCallType /*callType*/, TMSStreamType strmType,
       
   261         gint strmId)
       
   262     {
       
   263     TRACE_PRN_FN_ENT;
       
   264     gint status(TMS_RESULT_SUCCESS);
       
   265     switch (strmType)
       
   266         {
       
   267         case TMS_STREAM_UPLINK:
       
   268             if (iCSUplink && strmId == iUplinkStreamId)
       
   269                 {
       
   270                 iCSUplink->Deactivate();
       
   271                 NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete,
       
   272                         status, 0);
       
   273                 }
       
   274             break;
       
   275         case TMS_STREAM_DOWNLINK:
       
   276             if (iCSDownlink && strmId == iDnlinkStreamId)
       
   277                 {
       
   278                 iCSDownlink->Deactivate();
       
   279                 NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete,
       
   280                         status, 0);
       
   281                 }
       
   282             break;
       
   283         default:
       
   284             status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED;
       
   285             break;
       
   286         }
       
   287     TRACE_PRN_FN_EXT;
       
   288     return status;
       
   289     }
       
   290 
       
   291 // -----------------------------------------------------------------------------
       
   292 // TMSCallCSAdpt::DeinitStream
       
   293 //
       
   294 // -----------------------------------------------------------------------------
       
   295 //
       
   296 gint TMSCallCSAdpt::DeinitStream(TMSCallType /*callType*/,
       
   297         TMSStreamType strmType, gint strmId)
       
   298     {
       
   299     TRACE_PRN_FN_ENT;
       
   300     gint status(TMS_RESULT_SUCCESS);
       
   301     switch (strmType)
       
   302         {
       
   303         case TMS_STREAM_UPLINK:
       
   304             if (iCSUplink && strmId == iUplinkStreamId)
       
   305                 {
       
   306                 iCSUplink->Deactivate();
       
   307                 iUplinkInitialized = FALSE;
       
   308                 NotifyClient(iUplinkStreamId, ECmdUplinkDeInitComplete,
       
   309                         status, 0);
       
   310                 }
       
   311             break;
       
   312         case TMS_STREAM_DOWNLINK:
       
   313             if (iCSDownlink && strmId == iDnlinkStreamId)
       
   314                 {
       
   315                 iCSDownlink->Deactivate();
       
   316                 iDnlinkInitialized = FALSE;
       
   317                 NotifyClient(iDnlinkStreamId, ECmdDownlinkDeInitComplete,
       
   318                         status, 0);
       
   319                 }
       
   320             break;
       
   321         default:
       
   322             status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED;
       
   323             break;
       
   324         }
       
   325     TRACE_PRN_FN_EXT;
       
   326     return status;
       
   327     }
       
   328 
       
   329 // -----------------------------------------------------------------------------
       
   330 // TMSCallCSAdpt::DeleteStream
       
   331 //
       
   332 // -----------------------------------------------------------------------------
       
   333 //
       
   334 gint TMSCallCSAdpt::DeleteStream(TMSCallType /*callType*/,
       
   335         TMSStreamType strmType, gint strmId)
       
   336     {
       
   337     TRACE_PRN_FN_ENT;
       
   338     gint status(TMS_RESULT_SUCCESS);
       
   339     switch (strmType)
       
   340         {
       
   341         case TMS_STREAM_UPLINK:
       
   342             if (strmId == iUplinkStreamId)
       
   343                 {
       
   344                 iUplinkStreamId = -1;
       
   345                 iUplinkInitialized = FALSE;
       
   346                 }
       
   347             break;
       
   348         case TMS_STREAM_DOWNLINK:
       
   349             if (strmId == iDnlinkStreamId)
       
   350                 {
       
   351                 iDnlinkStreamId = -1;
       
   352                 iDnlinkInitialized = FALSE;
       
   353                 }
       
   354             break;
       
   355         default:
       
   356             status = TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED;
       
   357             break;
       
   358         }
       
   359     TRACE_PRN_FN_EXT;
       
   360     return status;
       
   361     }
       
   362 
       
   363 // -----------------------------------------------------------------------------
       
   364 // TMSCallCSAdpt::DataXferBufferEmptied
       
   365 //
       
   366 // -----------------------------------------------------------------------------
       
   367 //
       
   368 gint TMSCallCSAdpt::DataXferBufferEmptied(TMSCallType /*callType*/,
       
   369         TMSStreamType /*strmType*/, gint /*strmId*/)
       
   370     {
       
   371     TRACE_PRN_FN_ENT;
       
   372     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   373     TRACE_PRN_FN_EXT;
       
   374     return status;
       
   375     }
       
   376 
       
   377 // -----------------------------------------------------------------------------
       
   378 // TMSCallCSAdpt::DataXferBufferFilled
       
   379 //
       
   380 // -----------------------------------------------------------------------------
       
   381 //
       
   382 gint TMSCallCSAdpt::DataXferBufferFilled(TMSCallType /*callType*/,
       
   383         TMSStreamType /*strmType*/, gint /*strmId*/, guint /*datasize*/)
       
   384     {
       
   385     TRACE_PRN_FN_ENT;
       
   386     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   387     TRACE_PRN_FN_EXT;
       
   388     return status;
       
   389     }
       
   390 
       
   391 // -----------------------------------------------------------------------------
       
   392 // TMSCallCSAdpt::GetDataXferBufferHndl
       
   393 //
       
   394 // -----------------------------------------------------------------------------
       
   395 //
       
   396 gint TMSCallCSAdpt::GetDataXferBufferHndl(const TMSCallType /*callType*/,
       
   397         const TMSStreamType /*strmType*/, const gint /*strmId*/,
       
   398         const guint32 /*key*/, RChunk& /*chunk*/)
       
   399     {
       
   400     TRACE_PRN_FN_ENT;
       
   401     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   402     TRACE_PRN_FN_EXT;
       
   403     return status;
       
   404     }
       
   405 
       
   406 // -----------------------------------------------------------------------------
       
   407 // TMSCallCSAdpt::GetMaxVolume
       
   408 //
       
   409 // -----------------------------------------------------------------------------
       
   410 //
       
   411 gint TMSCallCSAdpt::GetMaxVolume(guint& volume)
       
   412     {
       
   413     TRACE_PRN_FN_ENT;
       
   414     gint status(TMS_RESULT_ILLEGAL_OPERATION);
       
   415     if (iCSDownlink && iDnlinkInitialized)
       
   416         {
       
   417         volume = iCSDownlink->MaxVolume();
       
   418         status = TMS_RESULT_SUCCESS;
       
   419         }
       
   420     TRACE_PRN_FN_EXT;
       
   421     return status;
       
   422     }
       
   423 
       
   424 // -----------------------------------------------------------------------------
       
   425 // TMSCallCSAdpt::SetVolume
       
   426 //
       
   427 // -----------------------------------------------------------------------------
       
   428 //
       
   429 gint TMSCallCSAdpt::SetVolume(const guint volume)
       
   430     {
       
   431     TRACE_PRN_FN_ENT;
       
   432     gint status(TMS_RESULT_ILLEGAL_OPERATION);
       
   433     if (iCSDownlink && iDnlinkInitialized)
       
   434         {
       
   435         iCSDownlink->SetVolume(volume);
       
   436         status = TMS_RESULT_SUCCESS;
       
   437         NotifyClient(iDnlinkStreamId, ECmdSetVolume, status, 0);
       
   438         }
       
   439     TRACE_PRN_FN_EXT;
       
   440     return status;
       
   441     }
       
   442 
       
   443 // -----------------------------------------------------------------------------
       
   444 // TMSCallCSAdpt::GetVolume
       
   445 //
       
   446 // -----------------------------------------------------------------------------
       
   447 //
       
   448 gint TMSCallCSAdpt::GetVolume(guint& volume)
       
   449     {
       
   450     TRACE_PRN_FN_ENT;
       
   451     gint status(TMS_RESULT_ILLEGAL_OPERATION);
       
   452     if (iCSDownlink && iDnlinkInitialized)
       
   453         {
       
   454         volume = iCSDownlink->Volume();
       
   455         status = TMS_RESULT_SUCCESS;
       
   456         }
       
   457 
       
   458     TRACE_PRN_FN_EXT;
       
   459     return status;
       
   460     }
       
   461 
       
   462 // -----------------------------------------------------------------------------
       
   463 // TMSCallCSAdpt::GetMaxGain
       
   464 //
       
   465 // -----------------------------------------------------------------------------
       
   466 //
       
   467 gint TMSCallCSAdpt::GetMaxGain(guint& gain)
       
   468     {
       
   469     TRACE_PRN_FN_ENT;
       
   470     gint status(TMS_RESULT_ILLEGAL_OPERATION);
       
   471     if (iCSUplink && iUplinkInitialized)
       
   472         {
       
   473         gain = iCSUplink->MaxGain();
       
   474         status = TMS_RESULT_SUCCESS;
       
   475         }
       
   476     TRACE_PRN_FN_EXT;
       
   477     return status;
       
   478     }
       
   479 
       
   480 // -----------------------------------------------------------------------------
       
   481 // TMSCallCSAdpt::SetGain
       
   482 //
       
   483 // -----------------------------------------------------------------------------
       
   484 //
       
   485 gint TMSCallCSAdpt::SetGain(const guint gain)
       
   486     {
       
   487     TRACE_PRN_FN_ENT;
       
   488     gint status(TMS_RESULT_ILLEGAL_OPERATION);
       
   489     if (iUplinkInitialized)
       
   490         {
       
   491         iCSUplink->SetGain(gain);
       
   492         status = TMS_RESULT_SUCCESS;
       
   493         NotifyClient(iUplinkInitialized, ECmdSetGain, status, 0);
       
   494         }
       
   495     TRACE_PRN_FN_EXT;
       
   496     return status;
       
   497     }
       
   498 
       
   499 // -----------------------------------------------------------------------------
       
   500 // TMSCallCSAdpt::GetGain
       
   501 //
       
   502 // -----------------------------------------------------------------------------
       
   503 //
       
   504 gint TMSCallCSAdpt::GetGain(guint& gain)
       
   505     {
       
   506     TRACE_PRN_FN_ENT;
       
   507     gint status(TMS_RESULT_ILLEGAL_OPERATION);
       
   508     if (iCSUplink && iUplinkInitialized)
       
   509         {
       
   510         gain = iCSUplink->Gain();
       
   511         status = TMS_RESULT_SUCCESS;
       
   512         }
       
   513     TRACE_PRN_FN_EXT;
       
   514     return status;
       
   515     }
       
   516 
       
   517 // -----------------------------------------------------------------------------
       
   518 // TMSCallCSAdpt::GetGlobalMaxVolume
       
   519 //
       
   520 // -----------------------------------------------------------------------------
       
   521 //
       
   522 gint TMSCallCSAdpt::GetGlobalMaxVolume(guint& volume)
       
   523     {
       
   524     TRACE_PRN_FN_ENT;
       
   525     gint status(TMS_RESULT_ILLEGAL_OPERATION);
       
   526     if (iCSDownlink && iDnlinkInitialized)
       
   527         {
       
   528         volume = iCSDownlink->MaxVolume();
       
   529         status = TMS_RESULT_SUCCESS;
       
   530         }
       
   531     TRACE_PRN_FN_EXT;
       
   532     return status;
       
   533     }
       
   534 
       
   535 // -----------------------------------------------------------------------------
       
   536 // TMSCallCSAdpt::SetGlobalVolume
       
   537 //
       
   538 // -----------------------------------------------------------------------------
       
   539 //
       
   540 gint TMSCallCSAdpt::SetGlobalVolume(const guint volume)
       
   541     {
       
   542     TRACE_PRN_FN_ENT;
       
   543     gint status(TMS_RESULT_SUCCESS);
       
   544 
       
   545     iGlobalVol = volume;
       
   546     if (iCSDownlink && iDnlinkInitialized)
       
   547         {
       
   548         iCSDownlink->SetVolume(volume);
       
   549         status = TMS_RESULT_SUCCESS;
       
   550         }
       
   551     TRACE_PRN_FN_EXT;
       
   552     return status;
       
   553     }
       
   554 
       
   555 // -----------------------------------------------------------------------------
       
   556 // TMSCallCSAdpt::GetGlobalVolume
       
   557 //
       
   558 // -----------------------------------------------------------------------------
       
   559 //
       
   560 gint TMSCallCSAdpt::GetGlobalVolume(guint& volume)
       
   561     {
       
   562     TRACE_PRN_FN_ENT;
       
   563     gint status(TMS_RESULT_ILLEGAL_OPERATION);
       
   564     if (iCSDownlink && iDnlinkInitialized)
       
   565         {
       
   566         volume = iCSDownlink->Volume();
       
   567         status = TMS_RESULT_SUCCESS;
       
   568         }
       
   569 
       
   570     TRACE_PRN_FN_EXT;
       
   571     return status;
       
   572     }
       
   573 
       
   574 // -----------------------------------------------------------------------------
       
   575 // TMSCallCSAdpt::GetMaxGain
       
   576 //
       
   577 // -----------------------------------------------------------------------------
       
   578 //
       
   579 gint TMSCallCSAdpt::GetGlobalMaxGain(guint& gain)
       
   580     {
       
   581     TRACE_PRN_FN_ENT;
       
   582     gint status(TMS_RESULT_ILLEGAL_OPERATION);
       
   583     if (iCSUplink && iUplinkInitialized)
       
   584         {
       
   585         gain = iCSUplink->MaxGain();
       
   586         status = TMS_RESULT_SUCCESS;
       
   587         }
       
   588     TRACE_PRN_FN_EXT;
       
   589     return status;
       
   590     }
       
   591 
       
   592 // -----------------------------------------------------------------------------
       
   593 // TMSCallCSAdpt::SetGain
       
   594 //
       
   595 // -----------------------------------------------------------------------------
       
   596 //
       
   597 gint TMSCallCSAdpt::SetGlobalGain(const guint gain)
       
   598     {
       
   599     TRACE_PRN_FN_ENT;
       
   600     gint status(TMS_RESULT_SUCCESS);
       
   601 
       
   602     iGlobalGain = gain;
       
   603     if (iCSUplink && iUplinkInitialized)
       
   604         {
       
   605         iCSUplink->SetGain(gain);
       
   606         status = TMS_RESULT_SUCCESS;
       
   607         }
       
   608     TRACE_PRN_FN_EXT;
       
   609     return status;
       
   610     }
       
   611 
       
   612 // -----------------------------------------------------------------------------
       
   613 // TMSCallCSAdpt::GetGlobalGain
       
   614 //
       
   615 // -----------------------------------------------------------------------------
       
   616 //
       
   617 gint TMSCallCSAdpt::GetGlobalGain(guint& gain)
       
   618     {
       
   619     TRACE_PRN_FN_ENT;
       
   620     gint status(TMS_RESULT_ILLEGAL_OPERATION);
       
   621     if (iCSUplink && iUplinkInitialized)
       
   622         {
       
   623         gain = iCSUplink->Gain();
       
   624         status = TMS_RESULT_SUCCESS;
       
   625         }
       
   626     TRACE_PRN_FN_EXT;
       
   627     return status;
       
   628     }
       
   629 
       
   630 // -----------------------------------------------------------------------------
       
   631 // TMSCallCSAdpt::GetCodecMode
       
   632 //
       
   633 // -----------------------------------------------------------------------------
       
   634 //
       
   635 gint TMSCallCSAdpt::GetCodecMode(const TMSFormatType /*fmttype*/,
       
   636         const TMSStreamType /*strmtype*/, gint& /*mode*/)
       
   637     {
       
   638     TRACE_PRN_FN_ENT;
       
   639     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   640     TRACE_PRN_FN_EXT;
       
   641     return status;
       
   642     }
       
   643 
       
   644 // -----------------------------------------------------------------------------
       
   645 // TMSCallCSAdpt::SetCodecMode
       
   646 //
       
   647 // -----------------------------------------------------------------------------
       
   648 //
       
   649 gint TMSCallCSAdpt::SetCodecMode(const TMSFormatType /*fmttype*/,
       
   650         const TMSStreamType /*strmtype*/, const gint /*mode*/)
       
   651     {
       
   652     TRACE_PRN_FN_ENT;
       
   653     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   654     TRACE_PRN_FN_EXT;
       
   655     return status;
       
   656     }
       
   657 
       
   658 // -----------------------------------------------------------------------------
       
   659 // TMSCallCSAdpt::GetSupportedBitRatesCount
       
   660 //
       
   661 // -----------------------------------------------------------------------------
       
   662 //
       
   663 gint TMSCallCSAdpt::GetSupportedBitRatesCount(guint& /*count*/)
       
   664     {
       
   665     TRACE_PRN_FN_ENT;
       
   666     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   667     TRACE_PRN_FN_EXT;
       
   668     return status;
       
   669     }
       
   670 
       
   671 // -----------------------------------------------------------------------------
       
   672 // TMSCallCSAdpt::GetSupportedBitRates
       
   673 //
       
   674 // -----------------------------------------------------------------------------
       
   675 //
       
   676 gint TMSCallCSAdpt::GetSupportedBitRates(CBufFlat*& brbuffer)
       
   677     {
       
   678     TRACE_PRN_FN_ENT;
       
   679     TRAPD(status, GetSupportedBitRatesL(brbuffer));
       
   680     TRACE_PRN_FN_EXT;
       
   681     return status;
       
   682     }
       
   683 
       
   684 // -----------------------------------------------------------------------------
       
   685 // TMSCallCSAdpt::GetSupportedBitRatesL
       
   686 //
       
   687 // GetSupportedBitRates implementation which can leave.
       
   688 // -----------------------------------------------------------------------------
       
   689 //
       
   690 void TMSCallCSAdpt::GetSupportedBitRatesL(CBufFlat*& /*brbuffer*/)
       
   691     {
       
   692     User::Leave(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   693     }
       
   694 
       
   695 // -----------------------------------------------------------------------------
       
   696 // TMSCallCSAdpt::GetBitRate
       
   697 //
       
   698 // -----------------------------------------------------------------------------
       
   699 //
       
   700 gint TMSCallCSAdpt::GetBitRate(guint& /*bitrate*/)
       
   701     {
       
   702     TRACE_PRN_FN_ENT;
       
   703     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   704     TRACE_PRN_FN_EXT;
       
   705     return status;
       
   706     }
       
   707 
       
   708 // -----------------------------------------------------------------------------
       
   709 // TMSCallCSAdpt::SetBitRate
       
   710 //
       
   711 // -----------------------------------------------------------------------------
       
   712 //
       
   713 gint TMSCallCSAdpt::SetBitRate(const guint /*bitrate*/)
       
   714     {
       
   715     TRACE_PRN_FN_ENT;
       
   716     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   717     TRACE_PRN_FN_EXT;
       
   718     return status;
       
   719     }
       
   720 
       
   721 // -----------------------------------------------------------------------------
       
   722 // TMSCallCSAdpt::GetVAD
       
   723 //
       
   724 // -----------------------------------------------------------------------------
       
   725 //
       
   726 gint TMSCallCSAdpt::GetVAD(const TMSFormatType /*fmttype*/, gboolean& /*vad*/)
       
   727     {
       
   728     TRACE_PRN_FN_ENT;
       
   729     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   730     TRACE_PRN_FN_EXT;
       
   731     return status;
       
   732     }
       
   733 
       
   734 // -----------------------------------------------------------------------------
       
   735 // TMSCallCSAdpt::SetVAD
       
   736 //
       
   737 // -----------------------------------------------------------------------------
       
   738 //
       
   739 gint TMSCallCSAdpt::SetVAD(const TMSFormatType /*fmttype*/, const gboolean /*vad*/)
       
   740     {
       
   741     TRACE_PRN_FN_ENT;
       
   742     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   743     TRACE_PRN_FN_EXT;
       
   744     return status;
       
   745     }
       
   746 
       
   747 // -----------------------------------------------------------------------------
       
   748 // TMSCallCSAdpt::GetCNG
       
   749 //
       
   750 // -----------------------------------------------------------------------------
       
   751 //
       
   752 gint TMSCallCSAdpt::GetCNG(const TMSFormatType /*fmttype*/, gboolean& /*cng*/)
       
   753     {
       
   754     TRACE_PRN_FN_ENT;
       
   755     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   756     TRACE_PRN_FN_EXT;
       
   757     return status;
       
   758     }
       
   759 
       
   760 // -----------------------------------------------------------------------------
       
   761 // TMSCallCSAdpt::SetCNG
       
   762 //
       
   763 // -----------------------------------------------------------------------------
       
   764 //
       
   765 gint TMSCallCSAdpt::SetCNG(const TMSFormatType /*fmttype*/,
       
   766         const gboolean /*cng*/)
       
   767     {
       
   768     TRACE_PRN_FN_ENT;
       
   769     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   770     TRACE_PRN_FN_EXT;
       
   771     return status;
       
   772     }
       
   773 
       
   774 // -----------------------------------------------------------------------------
       
   775 // TMSCallCSAdpt::GetPlc
       
   776 //
       
   777 // -----------------------------------------------------------------------------
       
   778 //
       
   779 gint TMSCallCSAdpt::GetPlc(const TMSFormatType /*fmttype*/, gboolean& /*plc*/)
       
   780     {
       
   781     TRACE_PRN_FN_ENT;
       
   782     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   783     TRACE_PRN_FN_EXT;
       
   784     return status;
       
   785     }
       
   786 
       
   787 // -----------------------------------------------------------------------------
       
   788 // TMSCallCSAdpt::SetPlc
       
   789 //
       
   790 // -----------------------------------------------------------------------------
       
   791 //
       
   792 gint TMSCallCSAdpt::SetPlc(const TMSFormatType /*fmttype*/,
       
   793         const gboolean /*plc*/)
       
   794     {
       
   795     TRACE_PRN_FN_ENT;
       
   796     gint status(TMS_RESULT_FEATURE_NOT_SUPPORTED);
       
   797     TRACE_PRN_FN_EXT;
       
   798     return status;
       
   799     }
       
   800 
       
   801 // -----------------------------------------------------------------------------
       
   802 // TMSCallCSAdpt::SetOutput
       
   803 //
       
   804 // -----------------------------------------------------------------------------
       
   805 //
       
   806 gint TMSCallCSAdpt::SetOutput(TMSAudioOutput output)
       
   807     {
       
   808     TRACE_PRN_FN_ENT;
       
   809     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
       
   810 
       
   811     if (iRouting)
       
   812         {
       
   813         CTelephonyAudioRouting::TAudioOutput taroutput = TOTAROUTPUT(output);
       
   814         TRAP(status, iRouting->SetOutputL(taroutput));
       
   815         if (status == KErrArgument)
       
   816             {
       
   817             status = TMS_RESULT_INVALID_ARGUMENT;
       
   818             }
       
   819         else
       
   820             {
       
   821             status = TMS_RESULT_SUCCESS;
       
   822             }
       
   823         }
       
   824 
       
   825     TRACE_PRN_FN_EXT;
       
   826     return status;
       
   827     }
       
   828 
       
   829 // -----------------------------------------------------------------------------
       
   830 // TMSCallCSAdpt::GetOutput
       
   831 //
       
   832 // -----------------------------------------------------------------------------
       
   833 //
       
   834 gint TMSCallCSAdpt::GetOutput(TMSAudioOutput& output)
       
   835     {
       
   836     TRACE_PRN_FN_ENT;
       
   837     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
       
   838 
       
   839     if (iRouting)
       
   840         {
       
   841         CTelephonyAudioRouting::TAudioOutput taroutput;
       
   842         taroutput = iRouting->Output();
       
   843         status = TMS_RESULT_SUCCESS;
       
   844         output = TOTMSOUTPUT(taroutput);
       
   845         }
       
   846 
       
   847     TRACE_PRN_FN_EXT;
       
   848     return status;
       
   849     }
       
   850 
       
   851 // -----------------------------------------------------------------------------
       
   852 // TMSCallCSAdpt::GetPreviousOutput
       
   853 //
       
   854 // -----------------------------------------------------------------------------
       
   855 //
       
   856 gint TMSCallCSAdpt::GetPreviousOutput(TMSAudioOutput& output)
       
   857     {
       
   858     TRACE_PRN_FN_ENT;
       
   859     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
       
   860 
       
   861     if (iRouting)
       
   862         {
       
   863         CTelephonyAudioRouting::TAudioOutput taroutput;
       
   864         taroutput = iRouting->PreviousOutput();
       
   865         status = TMS_RESULT_SUCCESS;
       
   866         output = TOTMSOUTPUT(taroutput);
       
   867         }
       
   868     TRACE_PRN_FN_EXT;
       
   869     return status;
       
   870     }
       
   871 
       
   872 // -----------------------------------------------------------------------------
       
   873 // TMSCallCSAdpt::GetAvailableOutputsL
       
   874 //
       
   875 // -----------------------------------------------------------------------------
       
   876 //
       
   877 gint TMSCallCSAdpt::GetAvailableOutputsL(gint& count, CBufFlat*& outputsbuffer)
       
   878     {
       
   879     TRACE_PRN_FN_ENT;
       
   880     gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
       
   881     TMSAudioOutput tmsoutput;
       
   882 
       
   883     if (iRouting)
       
   884         {
       
   885         RBufWriteStream stream;
       
   886         stream.Open(*outputsbuffer);
       
   887         CleanupClosePushL(stream);
       
   888 
       
   889         TArray<CTelephonyAudioRouting::TAudioOutput> availableOutputs =
       
   890                 iRouting->AvailableOutputs();
       
   891 
       
   892         guint numOfItems = availableOutputs.Count();
       
   893         count = numOfItems;
       
   894         for (guint i = 0; i < numOfItems; i++)
       
   895             {
       
   896             tmsoutput = TOTMSOUTPUT(availableOutputs[i]);
       
   897             stream.WriteUint32L(tmsoutput);
       
   898             //TRACE_PRN_N1(_L("TMS->CallIPAdpt: outputs: [%d]"), availableOutputs[i]);
       
   899             }
       
   900 
       
   901         CleanupStack::PopAndDestroy(&stream);
       
   902         status = TMS_RESULT_SUCCESS;
       
   903         }
       
   904 
       
   905     TRACE_PRN_FN_EXT;
       
   906     return status;
       
   907     }
       
   908 
       
   909 
       
   910 // From TMSCSPDevSoundObserver
       
   911 
       
   912 // -----------------------------------------------------------------------------
       
   913 // TMSCallCSAdpt::DownlinkInitCompleted
       
   914 //
       
   915 // -----------------------------------------------------------------------------
       
   916 //
       
   917 void TMSCallCSAdpt::DownlinkInitCompleted(TInt status)
       
   918     {
       
   919     TRACE_PRN_FN_ENT;
       
   920     NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status, 0);
       
   921     TRACE_PRN_FN_EXT;
       
   922     }
       
   923 
       
   924 // -----------------------------------------------------------------------------
       
   925 // TMSCallCSAdpt::UplinkInitCompleted
       
   926 //
       
   927 // -----------------------------------------------------------------------------
       
   928 //
       
   929 void TMSCallCSAdpt::UplinkInitCompleted(TInt status)
       
   930     {
       
   931     TRACE_PRN_FN_ENT;
       
   932     NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status, 0);
       
   933     TRACE_PRN_FN_EXT;
       
   934     }
       
   935 
       
   936 // -----------------------------------------------------------------------------
       
   937 // TMSCallCSAdpt::UplinkActivatedSuccessfully
       
   938 //
       
   939 // -----------------------------------------------------------------------------
       
   940 //
       
   941 void TMSCallCSAdpt::UplinkActivatedSuccessfully()
       
   942     {
       
   943     TRACE_PRN_FN_ENT;
       
   944     NotifyClient(iUplinkStreamId, ECmdUplinkStarted, KErrNone, 0);
       
   945     TRACE_PRN_FN_EXT;
       
   946     }
       
   947 
       
   948 // -----------------------------------------------------------------------------
       
   949 // TMSCallCSAdpt::DownlinkActivatedSuccessfully
       
   950 //
       
   951 // -----------------------------------------------------------------------------
       
   952 //
       
   953 void TMSCallCSAdpt::DownlinkActivatedSuccessfully()
       
   954     {
       
   955     TRACE_PRN_FN_ENT;
       
   956     NotifyClient(iDnlinkStreamId, ECmdDownlinkStarted, KErrNone, 0);
       
   957     TRACE_PRN_FN_EXT;
       
   958     }
       
   959 
       
   960 // -----------------------------------------------------------------------------
       
   961 // TMSCallCSAdpt::UplinkActivationFailed
       
   962 //
       
   963 // -----------------------------------------------------------------------------
       
   964 //
       
   965 void TMSCallCSAdpt::UplinkActivationFailed()
       
   966     {
       
   967     TRACE_PRN_FN_ENT;
       
   968     NotifyClient(iUplinkStreamId, ECmdUplinkStarted, TMS_RESULT_FATAL_ERROR, 0);
       
   969     TRACE_PRN_FN_EXT;
       
   970     }
       
   971 
       
   972 // -----------------------------------------------------------------------------
       
   973 // TMSCallCSAdpt::DownlinkActivationFailed
       
   974 //
       
   975 // -----------------------------------------------------------------------------
       
   976 //
       
   977 void TMSCallCSAdpt::DownlinkActivationFailed()
       
   978     {
       
   979     TRACE_PRN_FN_ENT;
       
   980     NotifyClient(iDnlinkStreamId, ECmdDownlinkStarted,
       
   981             TMS_RESULT_FATAL_ERROR, 0);
       
   982     TRACE_PRN_FN_EXT;
       
   983     }
       
   984 
       
   985 // -----------------------------------------------------------------------------
       
   986 // TMSCallCSAdpt::AvailableOutputsChanged
       
   987 //
       
   988 // -----------------------------------------------------------------------------
       
   989 //
       
   990 void TMSCallCSAdpt::AvailableOutputsChanged(
       
   991         CTelephonyAudioRouting& /*aTelephonyAudioRouting*/)
       
   992     {
       
   993     TRACE_PRN_FN_ENT;
       
   994     TRoutingMsgBufPckg pckg;
       
   995     pckg().iEvent = TMS_EVENT_ROUTING_AVAIL_OUTPUTS_CHANGED;
       
   996     iTarSettings->SetTar(pckg, ETrue);
       
   997     TRACE_PRN_FN_EXT;
       
   998     }
       
   999 
       
  1000 // -----------------------------------------------------------------------------
       
  1001 // TMSCallCSAdpt::OutputChanged
       
  1002 //
       
  1003 // -----------------------------------------------------------------------------
       
  1004 //
       
  1005 void TMSCallCSAdpt::OutputChanged(
       
  1006         CTelephonyAudioRouting& aTelephonyAudioRouting)
       
  1007     {
       
  1008     TRACE_PRN_FN_ENT;
       
  1009     TRoutingMsgBufPckg pckg;
       
  1010     pckg().iEvent = TMS_EVENT_ROUTING_OUTPUT_CHANGED;
       
  1011     pckg().iOutput = TOTMSOUTPUT(aTelephonyAudioRouting.Output());
       
  1012     iTarSettings->SetTar(pckg, ETrue);
       
  1013     TRACE_PRN_FN_EXT;
       
  1014     }
       
  1015 
       
  1016 // -----------------------------------------------------------------------------
       
  1017 // TMSCallCSAdpt::SetOutputComplete
       
  1018 //
       
  1019 // -----------------------------------------------------------------------------
       
  1020 //
       
  1021 void TMSCallCSAdpt::SetOutputComplete(
       
  1022         CTelephonyAudioRouting& aTelephonyAudioRouting, gint /*aError*/)
       
  1023     {
       
  1024     TRACE_PRN_FN_ENT;
       
  1025     TRoutingMsgBufPckg pckg;
       
  1026     pckg().iEvent = TMS_EVENT_ROUTING_SET_OUTPUT_COMPLETE;
       
  1027     pckg().iOutput = TOTMSOUTPUT(aTelephonyAudioRouting.Output());
       
  1028     if (iTarSettings)
       
  1029         {
       
  1030         iTarSettings->SetTar(pckg, ETrue);
       
  1031         }
       
  1032     //TRACE_PRN_IF_ERR(aError);
       
  1033     TRACE_PRN_FN_EXT;
       
  1034     }
       
  1035 
       
  1036 // -----------------------------------------------------------------------------
       
  1037 // TMSCallCSAdpt::NotifyClient
       
  1038 //
       
  1039 // -----------------------------------------------------------------------------
       
  1040 //
       
  1041 void TMSCallCSAdpt::NotifyClient(const gint strmId, const gint aCommand,
       
  1042         const gint aStatus, const gint64 /*aInt64*/)
       
  1043     {
       
  1044     iMsgBuffer.iRequest = aCommand;
       
  1045     iMsgBuffer.iStatus = aStatus;
       
  1046 
       
  1047     if (strmId == iUplinkStreamId)
       
  1048         {
       
  1049         iMsgQueueUp.Send(iMsgBuffer);
       
  1050         }
       
  1051     else if (strmId == iDnlinkStreamId)
       
  1052         {
       
  1053         iMsgQueueDn.Send(iMsgBuffer);
       
  1054         }
       
  1055     }
       
  1056 
       
  1057 // End of file