mmserv/tms/tmscallserver/src/tmscallsession.cpp
changeset 0 71ca22bcf22a
child 3 4f62049db6ac
child 12 5a06f39ad45b
equal deleted inserted replaced
-1:000000000000 0:71ca22bcf22a
       
     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 "tmsutility.h"
       
    19 #include "tmsutility.h"
       
    20 #include "calladpt.h"
       
    21 #include "tmscallserver.h"
       
    22 #include "tmscallclisrv.h"
       
    23 #include "tmscallsession.h"
       
    24 
       
    25 using namespace TMS;
       
    26 
       
    27 const guint KArrayExpandSize = 8;
       
    28 
       
    29 // -----------------------------------------------------------------------------
       
    30 // TMSCallSession::TMSCallSession
       
    31 // -----------------------------------------------------------------------------
       
    32 //
       
    33 TMSCallSession::TMSCallSession(TMSCallServer &aServer) :
       
    34     iTMSCallServer(aServer)
       
    35     {
       
    36     TRACE_PRN_FN_ENT;
       
    37     TRACE_PRN_FN_EXT;
       
    38     }
       
    39 
       
    40 // -----------------------------------------------------------------------------
       
    41 // TMSCallSession::~TMSCallSession
       
    42 // The destructor
       
    43 // -----------------------------------------------------------------------------
       
    44 //
       
    45 TMSCallSession::~TMSCallSession()
       
    46     {
       
    47     TRACE_PRN_FN_ENT;
       
    48     delete iCallAdpt;
       
    49     iTMSCallServer.DropSession();
       
    50     TRACE_PRN_FN_EXT;
       
    51     }
       
    52 
       
    53 // -----------------------------------------------------------------------------
       
    54 // TMSCallSession::NewL
       
    55 // Symbian constructor.
       
    56 // -----------------------------------------------------------------------------
       
    57 //
       
    58 TMSCallSession* TMSCallSession::NewL(TMSCallServer &aServer)
       
    59     {
       
    60     TRACE_PRN_FN_ENT;
       
    61     TMSCallSession* self = new (ELeave) TMSCallSession(aServer);
       
    62     CleanupStack::PushL(self);
       
    63     self->ConstructL();
       
    64     CleanupStack::Pop(self);
       
    65     TRACE_PRN_FN_EXT;
       
    66     return self;
       
    67     }
       
    68 
       
    69 // -----------------------------------------------------------------------------
       
    70 // TMSCallSession::ConstructL
       
    71 // 2-nd phase constructor.
       
    72 // -----------------------------------------------------------------------------
       
    73 //
       
    74 void TMSCallSession::ConstructL()
       
    75     {
       
    76     TRACE_PRN_FN_ENT;
       
    77     iTMSCallServer.AddSession(); //add new session
       
    78     TRACE_PRN_FN_EXT;
       
    79     }
       
    80 
       
    81 // -----------------------------------------------------------------------------
       
    82 // TMSCallSession::ServiceL
       
    83 // Service request handler.
       
    84 // -----------------------------------------------------------------------------
       
    85 //
       
    86 void TMSCallSession::ServiceL(const RMessage2& aMessage)
       
    87     {
       
    88     TRACE_PRN_FN_ENT;
       
    89     TRAPD(status, HandleMessageL(aMessage));
       
    90     if (status != TMS_RESULT_SUCCESS)
       
    91         {
       
    92         aMessage.Complete(status);
       
    93         }
       
    94     TRACE_PRN_FN_EXT;
       
    95     }
       
    96 
       
    97 // -----------------------------------------------------------------------------
       
    98 // TMSCallSession::HandleMessageL
       
    99 // Service request handler.
       
   100 // -----------------------------------------------------------------------------
       
   101 //
       
   102 void TMSCallSession::HandleMessageL(const RMessage2& aMessage)
       
   103     {
       
   104     TRACE_PRN_FN_ENT;
       
   105     switch (aMessage.Function())
       
   106         {
       
   107         case TMS_CREATE_CALL:
       
   108             HandleCreateCallL(aMessage);
       
   109             break;
       
   110         case TMS_CREATE_STREAM:
       
   111             HandleCreateStreamL(aMessage);
       
   112             break;
       
   113         case TMS_INIT_STREAM:
       
   114             HandleInitStreamL(aMessage);
       
   115             break;
       
   116         case TMS_START_STREAM:
       
   117             HandleStartStreamL(aMessage);
       
   118             break;
       
   119         case TMS_PAUSE_STREAM:
       
   120             HandlePauseStreamL(aMessage);
       
   121             break;
       
   122         case TMS_STOP_STREAM:
       
   123             HandleStopStreamL(aMessage);
       
   124             break;
       
   125         case TMS_DEINIT_STREAM:
       
   126             HandleDeinitStreamL(aMessage);
       
   127             break;
       
   128         case TMS_DELETE_STREAM:
       
   129             HandleDeleteStreamL(aMessage);
       
   130             break;
       
   131         case TMS_DELETE_CALL:
       
   132             HandleDeleteCallL(aMessage);
       
   133             break;
       
   134         case TMS_DATA_XFER_BUFFER_EMPTIED:
       
   135             HandleDataXferBufferEmptiedCallL(aMessage);
       
   136             break;
       
   137         case TMS_DATA_XFER_BUFFER_FILLED:
       
   138             HandleDataXferBufferFilledCallL(aMessage);
       
   139             break;
       
   140         case TMS_DATA_XFER_BUFFER_GET_HNDL:
       
   141             HandleDataXferBufferGetHndlCallL(aMessage);
       
   142             break;
       
   143         case TMS_EFFECT_VOLUME_GETMAX:
       
   144             HandleEffectVolumeGetMaxVolL(aMessage);
       
   145             break;
       
   146         case TMS_EFFECT_VOLUME_SET:
       
   147             HandleEffectVolumeSetVolL(aMessage);
       
   148             break;
       
   149         case TMS_EFFECT_VOLUME_GET:
       
   150             HandleEffectVolumeGetVolL(aMessage);
       
   151             break;
       
   152         case TMS_EFFECT_GAIN_GETMAX:
       
   153             HandleEffectVolumeGetMaxGainL(aMessage);
       
   154             break;
       
   155         case TMS_EFFECT_GAIN_SET:
       
   156             HandleEffectVolumeSetGainL(aMessage);
       
   157             break;
       
   158         case TMS_EFFECT_GAIN_GET:
       
   159             HandleEffectVolumeGetGainL(aMessage);
       
   160             break;
       
   161         case TMS_EFFECT_GLOBAL_VOL_SET:
       
   162             HandleGlobalEffectVolumeSetVolL(aMessage);
       
   163             break;
       
   164         case TMS_EFFECT_GLOBAL_VOL_GET:
       
   165             HandleGlobalEffectVolumeGetVolL(aMessage);
       
   166             break;
       
   167         case TMS_EFFECT_GLOBAL_VOL_GETMAX:
       
   168             HandleGlobalEffectVolumeGetMaxVolL(aMessage);
       
   169             break;
       
   170         case TMS_EFFECT_GLOBAL_GAIN_SET:
       
   171             HandleGlobalEffectVolumeSetGainL(aMessage);
       
   172             break;
       
   173         case TMS_EFFECT_GLOBAL_GAIN_GET:
       
   174             HandleGlobalEffectVolumeGetGainL(aMessage);
       
   175             break;
       
   176         case TMS_EFFECT_GLOBAL_GAIN_GETMAX:
       
   177             HandleGlobalEffectVolumeGetMaxGainL(aMessage);
       
   178             break;
       
   179         case TMS_FORMAT_SETCODECMODE:
       
   180             HandleFormatSetCodecModeL(aMessage);
       
   181             break;
       
   182         case TMS_FORMAT_GETCODECMODE:
       
   183             HandleFormatGetCodecModeL(aMessage);
       
   184             break;
       
   185         case TMS_FORMAT_GETSUPPORTEDBITRATESCOUNT:
       
   186             HandleFormatGetSupportedBitRatesCountL(aMessage);
       
   187             break;
       
   188         case TMS_FORMAT_GETSUPPORTEDBITRATES:
       
   189             HandleFormatGetSupportedBitRatesL(aMessage);
       
   190             break;
       
   191         case TMS_FORMAT_SETBITRATE:
       
   192             HandleFormatSetBitRateL(aMessage);
       
   193             break;
       
   194         case TMS_FORMAT_GETBITRATE:
       
   195             HandleFormatGetBitRateL(aMessage);
       
   196             break;
       
   197         case TMS_FORMAT_SETVAD:
       
   198             HandleFormatSetVADL(aMessage);
       
   199             break;
       
   200         case TMS_FORMAT_GETVAD:
       
   201             HandleFormatGetVADL(aMessage);
       
   202             break;
       
   203         case TMS_FORMAT_SETCNG:
       
   204             HandleFormatSetCNGL(aMessage);
       
   205             break;
       
   206         case TMS_FORMAT_GETCNG:
       
   207             HandleFormatGetCNGL(aMessage);
       
   208             break;
       
   209         case TMS_FORMAT_SETPLC:
       
   210             HandleFormatSetPlcL(aMessage);
       
   211             break;
       
   212         case TMS_FORMAT_GETPLC:
       
   213             HandleFormatGetPlcL(aMessage);
       
   214             break;
       
   215         case TMS_ROUTING_OUTPUT_SET:
       
   216             HandleRoutingSetOutputL(aMessage);
       
   217             break;
       
   218         case TMS_ROUTING_OUTPUT_GET:
       
   219             HandleRoutingGetOutputL(aMessage);
       
   220             break;
       
   221         case TMS_ROUTING_PREVIOUSOUTPUT_GET:
       
   222             HandleRoutingGetPreviousOutputL(aMessage);
       
   223             break;
       
   224         case TMS_ROUTING_AVAILABLE_OUTPUT_GET:
       
   225             HandleRoutingGetAvailableOutputsL(aMessage);
       
   226             break;
       
   227         default:
       
   228             User::Leave(TMS_RESULT_ILLEGAL_OPERATION);
       
   229             break;
       
   230         }
       
   231     TRACE_PRN_FN_EXT;
       
   232     }
       
   233 
       
   234 // -----------------------------------------------------------------------------
       
   235 // TMSCallSession::HandleCreateCallL
       
   236 //
       
   237 // -----------------------------------------------------------------------------
       
   238 //
       
   239 void TMSCallSession::HandleCreateCallL(const RMessage2& aMessage)
       
   240     {
       
   241     TRACE_PRN_FN_ENT;
       
   242     gint status(TMS_RESULT_ALREADY_EXIST);
       
   243     if (!iCallAdpt)
       
   244         {
       
   245         // Get Call type
       
   246         gint callType = aMessage.Int0();
       
   247         status = CallAdpt::CreateCallL(callType, iCallAdpt);
       
   248         }
       
   249     aMessage.Complete(status);
       
   250     TRACE_PRN_FN_EXT;
       
   251     }
       
   252 
       
   253 // -----------------------------------------------------------------------------
       
   254 // TMSCallSession::HandleCreateStreamL
       
   255 //
       
   256 // -----------------------------------------------------------------------------
       
   257 //
       
   258 void TMSCallSession::HandleCreateStreamL(const RMessage2& aMessage)
       
   259     {
       
   260     TRACE_PRN_FN_ENT;
       
   261     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   262     if (iCallAdpt)
       
   263         {
       
   264         TMSCliSrvStreamCreateDataStructBufPckg pckg;
       
   265         aMessage.ReadL(0, pckg);
       
   266         gint outStrmId;
       
   267         status = iCallAdpt->CreateStream(pckg().CallType, pckg().StreamType,
       
   268                 outStrmId);
       
   269         if (status == TMS_RESULT_SUCCESS)
       
   270             {
       
   271             TPckgBuf<gint> outPckg(outStrmId);
       
   272             aMessage.WriteL(1, outPckg);
       
   273             }
       
   274         }
       
   275     aMessage.Complete(status);
       
   276     TRACE_PRN_FN_EXT;
       
   277     }
       
   278 
       
   279 // -----------------------------------------------------------------------------
       
   280 // TMSCallSession::HandleInitStreamL
       
   281 //
       
   282 // -----------------------------------------------------------------------------
       
   283 //
       
   284 void TMSCallSession::HandleInitStreamL(const RMessage2& aMessage)
       
   285     {
       
   286     TRACE_PRN_FN_ENT;
       
   287     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   288     if (iCallAdpt)
       
   289         {
       
   290         TMSCliSrvStreamInitDataStructBufPckg pckg;
       
   291         aMessage.ReadL(0, pckg);
       
   292         status = iCallAdpt->InitStreamL(pckg().CallType, pckg().StreamType,
       
   293                 pckg().StreamId, pckg().FormatType, aMessage);
       
   294 
       
   295         switch (pckg().StreamType)
       
   296             {
       
   297             case TMS_STREAM_DOWNLINK:
       
   298                 {
       
   299                 iCallAdpt->SetGlobalVolume(iGlobalVol);
       
   300                 }
       
   301                 break;
       
   302             case TMS_STREAM_UPLINK:
       
   303                 {
       
   304                 iCallAdpt->SetGlobalGain(iGlobalGain);
       
   305                 }
       
   306                 break;
       
   307             default:
       
   308                 break;
       
   309             }
       
   310         }
       
   311     aMessage.Complete(status);
       
   312     TRACE_PRN_FN_EXT;
       
   313     }
       
   314 
       
   315 // -----------------------------------------------------------------------------
       
   316 // TMSCallSession::HandleStartStreamL
       
   317 //
       
   318 // -----------------------------------------------------------------------------
       
   319 //
       
   320 void TMSCallSession::HandleStartStreamL(const RMessage2& aMessage)
       
   321     {
       
   322     TRACE_PRN_FN_ENT;
       
   323     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   324     if (iCallAdpt)
       
   325         {
       
   326         TMSCliSrvStreamOpDataStructBufPckg pckg;
       
   327         aMessage.ReadL(0, pckg);
       
   328         status = iCallAdpt->StartStream(pckg().CallType, pckg().StreamType,
       
   329                 pckg().StreamId);
       
   330         }
       
   331     aMessage.Complete(status);
       
   332     TRACE_PRN_FN_EXT;
       
   333     }
       
   334 
       
   335 // -----------------------------------------------------------------------------
       
   336 // TMSCallSession::HandlePauseStreamL
       
   337 //
       
   338 // -----------------------------------------------------------------------------
       
   339 //
       
   340 void TMSCallSession::HandlePauseStreamL(const RMessage2& aMessage)
       
   341     {
       
   342     TRACE_PRN_FN_ENT;
       
   343     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   344     if (iCallAdpt)
       
   345         {
       
   346         TMSCliSrvStreamOpDataStructBufPckg pckg;
       
   347         aMessage.ReadL(0, pckg);
       
   348         status = iCallAdpt->PauseStream(pckg().CallType, pckg().StreamType,
       
   349                 pckg().StreamId);
       
   350         }
       
   351     aMessage.Complete(status);
       
   352     TRACE_PRN_FN_EXT;
       
   353     }
       
   354 
       
   355 // -----------------------------------------------------------------------------
       
   356 // TMSCallSession::HandleStopStreamL
       
   357 //
       
   358 // -----------------------------------------------------------------------------
       
   359 //
       
   360 void TMSCallSession::HandleStopStreamL(const RMessage2& aMessage)
       
   361     {
       
   362     TRACE_PRN_FN_ENT;
       
   363     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   364     if (iCallAdpt)
       
   365         {
       
   366         TMSCliSrvStreamOpDataStructBufPckg pckg;
       
   367         aMessage.ReadL(0, pckg);
       
   368         status = iCallAdpt->StopStream(pckg().CallType, pckg().StreamType,
       
   369                 pckg().StreamId);
       
   370         }
       
   371     aMessage.Complete(status);
       
   372     TRACE_PRN_FN_EXT;
       
   373     }
       
   374 
       
   375 // -----------------------------------------------------------------------------
       
   376 // TMSCallSession::HandleDeinitStreamL
       
   377 //
       
   378 // -----------------------------------------------------------------------------
       
   379 //
       
   380 void TMSCallSession::HandleDeinitStreamL(const RMessage2& aMessage)
       
   381     {
       
   382     TRACE_PRN_FN_ENT;
       
   383     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   384     if (iCallAdpt)
       
   385         {
       
   386         TMSCliSrvStreamOpDataStructBufPckg pckg;
       
   387         aMessage.ReadL(0, pckg);
       
   388         status = iCallAdpt->DeinitStream(pckg().CallType, pckg().StreamType,
       
   389                 pckg().StreamId);
       
   390         }
       
   391     aMessage.Complete(status);
       
   392     TRACE_PRN_FN_EXT;
       
   393     }
       
   394 
       
   395 // -----------------------------------------------------------------------------
       
   396 // TMSCallSession::HandleDeleteStreamL
       
   397 //
       
   398 // -----------------------------------------------------------------------------
       
   399 //
       
   400 void TMSCallSession::HandleDeleteStreamL(const RMessage2& aMessage)
       
   401     {
       
   402     TRACE_PRN_FN_ENT;
       
   403     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   404     if (iCallAdpt)
       
   405         {
       
   406         TMSCliSrvStreamOpDataStructBufPckg pckg;
       
   407         aMessage.ReadL(0, pckg);
       
   408         status = iCallAdpt->DeleteStream(pckg().CallType, pckg().StreamType,
       
   409                 pckg().StreamId);
       
   410         }
       
   411     aMessage.Complete(status);
       
   412     TRACE_PRN_FN_EXT;
       
   413     }
       
   414 
       
   415 // -----------------------------------------------------------------------------
       
   416 // TMSCallSession::HandleDeleteCallL
       
   417 //
       
   418 // -----------------------------------------------------------------------------
       
   419 //
       
   420 void TMSCallSession::HandleDeleteCallL(const RMessage2& aMessage)
       
   421     {
       
   422     TRACE_PRN_FN_ENT;
       
   423     delete iCallAdpt;
       
   424     iCallAdpt = NULL;
       
   425     aMessage.Complete(TMS_RESULT_SUCCESS);
       
   426     TRACE_PRN_FN_EXT;
       
   427     }
       
   428 
       
   429 // -----------------------------------------------------------------------------
       
   430 // TMSCallSession::HandleDataXferBufferEmptiedCallL
       
   431 //
       
   432 // -----------------------------------------------------------------------------
       
   433 //
       
   434 void TMSCallSession::HandleDataXferBufferEmptiedCallL(
       
   435         const RMessage2& aMessage)
       
   436     {
       
   437     TRACE_PRN_FN_ENT;
       
   438     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   439     if (iCallAdpt)
       
   440         {
       
   441         TMSCliSrvDataXferDataStructBufPckg pckg;
       
   442         aMessage.ReadL(0, pckg);
       
   443         status = iCallAdpt->DataXferBufferEmptied(pckg().CallType,
       
   444                 pckg().StreamType, pckg().StreamId);
       
   445         }
       
   446     aMessage.Complete(status);
       
   447     TRACE_PRN_FN_EXT;
       
   448     }
       
   449 
       
   450 // -----------------------------------------------------------------------------
       
   451 // TMSCallSession::HandleDataXferBufferFilledCallL
       
   452 //
       
   453 // -----------------------------------------------------------------------------
       
   454 //
       
   455 void TMSCallSession::HandleDataXferBufferFilledCallL(const RMessage2& aMessage)
       
   456     {
       
   457     TRACE_PRN_FN_ENT;
       
   458     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   459     if (iCallAdpt)
       
   460         {
       
   461         TMSCliSrvDataXferDataStructBufPckg pckg;
       
   462         aMessage.ReadL(0, pckg);
       
   463         status = iCallAdpt->DataXferBufferFilled(pckg().CallType,
       
   464                 pckg().StreamType, pckg().StreamId, pckg().DataSize);
       
   465         }
       
   466     aMessage.Complete(status);
       
   467     TRACE_PRN_FN_EXT;
       
   468     }
       
   469 
       
   470 // -----------------------------------------------------------------------------
       
   471 // TMSCallSession::HandleDataXferBufferGetHndlCallL
       
   472 //
       
   473 // -----------------------------------------------------------------------------
       
   474 //
       
   475 void TMSCallSession::HandleDataXferBufferGetHndlCallL(
       
   476         const RMessage2& aMessage)
       
   477     {
       
   478     TRACE_PRN_FN_ENT;
       
   479     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   480     RChunk chunk;
       
   481 
       
   482     if (iCallAdpt)
       
   483         {
       
   484         TMSCliSrvDataXferChunkHndlDataStructBufPckg pckg;
       
   485         aMessage.ReadL(0, pckg);
       
   486         status = iCallAdpt->GetDataXferBufferHndl(pckg().CallType,
       
   487                 pckg().StreamType, pckg().StreamId, pckg().Key, chunk);
       
   488         }
       
   489 
       
   490     if (status == TMS_RESULT_SUCCESS && chunk.Handle() > 0)
       
   491         {
       
   492         aMessage.Complete(chunk);
       
   493         }
       
   494     else
       
   495         {
       
   496         // TODO: make sure error code is negative or zero
       
   497         aMessage.Complete(0);
       
   498         }
       
   499 
       
   500     TRACE_PRN_FN_EXT;
       
   501     }
       
   502 
       
   503 // -----------------------------------------------------------------------------
       
   504 // TMSCallSession::HandleEffectVolumeGetMaxVolL
       
   505 //
       
   506 // -----------------------------------------------------------------------------
       
   507 //
       
   508 void TMSCallSession::HandleEffectVolumeGetMaxVolL(const RMessage2& aMessage)
       
   509     {
       
   510     TRACE_PRN_FN_ENT;
       
   511     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   512     if (iCallAdpt)
       
   513         {
       
   514         guint vol;
       
   515         status = iCallAdpt->GetMaxVolume(vol);
       
   516         if (status == TMS_RESULT_SUCCESS)
       
   517             {
       
   518             TPckgBuf<guint> pckg(vol);
       
   519             aMessage.WriteL(0, pckg);
       
   520             }
       
   521         }
       
   522     aMessage.Complete(status);
       
   523     TRACE_PRN_FN_EXT;
       
   524     }
       
   525 
       
   526 // -----------------------------------------------------------------------------
       
   527 // TMSCallSession::HandleEffectVolumeSetVolL
       
   528 //
       
   529 // -----------------------------------------------------------------------------
       
   530 //
       
   531 void TMSCallSession::HandleEffectVolumeSetVolL(const RMessage2& aMessage)
       
   532     {
       
   533     TRACE_PRN_FN_ENT;
       
   534     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   535     if (iCallAdpt)
       
   536         {
       
   537         guint vol;
       
   538         vol = aMessage.Int0();
       
   539         status = iCallAdpt->SetVolume(vol);
       
   540         }
       
   541     aMessage.Complete(status);
       
   542     TRACE_PRN_FN_EXT;
       
   543     }
       
   544 
       
   545 // -----------------------------------------------------------------------------
       
   546 // TMSCallSession::HandleEffectVolumeGetVolL
       
   547 //
       
   548 // -----------------------------------------------------------------------------
       
   549 //
       
   550 void TMSCallSession::HandleEffectVolumeGetVolL(const RMessage2& aMessage)
       
   551     {
       
   552     TRACE_PRN_FN_ENT;
       
   553     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   554     if (iCallAdpt)
       
   555         {
       
   556         guint vol;
       
   557         status = iCallAdpt->GetVolume(vol);
       
   558         if (status == TMS_RESULT_SUCCESS)
       
   559             {
       
   560             TPckgBuf<guint> pckg(vol);
       
   561             aMessage.WriteL(0, pckg);
       
   562             }
       
   563         }
       
   564     aMessage.Complete(status);
       
   565     TRACE_PRN_FN_EXT;
       
   566     }
       
   567 
       
   568 // -----------------------------------------------------------------------------
       
   569 // TMSCallSession::HandleEffectVolumeGetMaxGainL
       
   570 //
       
   571 // -----------------------------------------------------------------------------
       
   572 //
       
   573 void TMSCallSession::HandleEffectVolumeGetMaxGainL(const RMessage2& aMessage)
       
   574     {
       
   575     TRACE_PRN_FN_ENT;
       
   576     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   577     if (iCallAdpt)
       
   578         {
       
   579         guint gain;
       
   580         status = iCallAdpt->GetMaxGain(gain);
       
   581         if (status == TMS_RESULT_SUCCESS)
       
   582             {
       
   583             TPckgBuf<guint> pckg(gain);
       
   584             aMessage.WriteL(0, pckg);
       
   585             }
       
   586         }
       
   587     aMessage.Complete(status);
       
   588     TRACE_PRN_FN_EXT;
       
   589     }
       
   590 
       
   591 // -----------------------------------------------------------------------------
       
   592 // TMSCallSession::HandleEffectVolumeSetGainL
       
   593 //
       
   594 // -----------------------------------------------------------------------------
       
   595 //
       
   596 void TMSCallSession::HandleEffectVolumeSetGainL(const RMessage2& aMessage)
       
   597     {
       
   598     TRACE_PRN_FN_ENT;
       
   599     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   600     if (iCallAdpt)
       
   601         {
       
   602         guint gain;
       
   603         gain = aMessage.Int0();
       
   604         status = iCallAdpt->SetGain(gain);
       
   605         }
       
   606     aMessage.Complete(status);
       
   607     TRACE_PRN_FN_EXT;
       
   608     }
       
   609 
       
   610 // -----------------------------------------------------------------------------
       
   611 // TMSCallSession::HandleEffectVolumeGetGainL
       
   612 //
       
   613 // -----------------------------------------------------------------------------
       
   614 //
       
   615 void TMSCallSession::HandleEffectVolumeGetGainL(const RMessage2& aMessage)
       
   616     {
       
   617     TRACE_PRN_FN_ENT;
       
   618     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   619     if (iCallAdpt)
       
   620         {
       
   621         guint gain;
       
   622         status = iCallAdpt->GetGain(gain);
       
   623         if (status == TMS_RESULT_SUCCESS)
       
   624             {
       
   625             TPckgBuf<guint> pckg(gain);
       
   626             aMessage.WriteL(0, pckg);
       
   627             }
       
   628         }
       
   629     aMessage.Complete(status);
       
   630     TRACE_PRN_FN_EXT;
       
   631     }
       
   632 
       
   633 // -----------------------------------------------------------------------------
       
   634 // TMSCallSession::HandleGlobalEffectVolumeGetMaxVolL
       
   635 //
       
   636 // -----------------------------------------------------------------------------
       
   637 //
       
   638 void TMSCallSession::HandleGlobalEffectVolumeGetMaxVolL(
       
   639         const RMessage2& aMessage)
       
   640     {
       
   641     TRACE_PRN_FN_ENT;
       
   642     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   643     if (iCallAdpt)
       
   644         {
       
   645         guint vol(0);
       
   646         status = iCallAdpt->GetGlobalMaxVolume(vol);
       
   647         if (status == TMS_RESULT_SUCCESS)
       
   648             {
       
   649             TPckgBuf<guint> pckg(vol);
       
   650             aMessage.WriteL(0, pckg);
       
   651             }
       
   652         }
       
   653     aMessage.Complete(status);
       
   654     TRACE_PRN_FN_EXT;
       
   655     }
       
   656 
       
   657 // -----------------------------------------------------------------------------
       
   658 // TMSCallSession::HandleGlobalEffectVolumeSetVolL
       
   659 //
       
   660 // -----------------------------------------------------------------------------
       
   661 //
       
   662 void TMSCallSession::HandleGlobalEffectVolumeSetVolL(const RMessage2& aMessage)
       
   663     {
       
   664     TRACE_PRN_FN_ENT;
       
   665     gint status(TMS_RESULT_SUCCESS);
       
   666     iGlobalVol = aMessage.Int0();
       
   667     if (iCallAdpt)
       
   668         {
       
   669         guint vol(0);
       
   670         vol = aMessage.Int0();
       
   671         status = iCallAdpt->SetGlobalVolume(vol);
       
   672         }
       
   673     aMessage.Complete(status);
       
   674     TRACE_PRN_FN_EXT;
       
   675     }
       
   676 
       
   677 // -----------------------------------------------------------------------------
       
   678 // TMSCallSession::HandleGlobalEffectVolumeGetVolL
       
   679 //
       
   680 // -----------------------------------------------------------------------------
       
   681 //
       
   682 void TMSCallSession::HandleGlobalEffectVolumeGetVolL(const RMessage2& aMessage)
       
   683     {
       
   684     TRACE_PRN_FN_ENT;
       
   685     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   686     if (iCallAdpt)
       
   687         {
       
   688         guint vol(0);
       
   689         status = iCallAdpt->GetGlobalVolume(vol);
       
   690         if (status == TMS_RESULT_SUCCESS)
       
   691             {
       
   692             TPckgBuf<guint> pckg(vol);
       
   693             aMessage.WriteL(0, pckg);
       
   694             }
       
   695         }
       
   696     aMessage.Complete(status);
       
   697     TRACE_PRN_FN_EXT;
       
   698     }
       
   699 
       
   700 // -----------------------------------------------------------------------------
       
   701 // TMSCallSession::HandleGlobalEffectVolumeGetMaxGainL
       
   702 //
       
   703 // -----------------------------------------------------------------------------
       
   704 //
       
   705 void TMSCallSession::HandleGlobalEffectVolumeGetMaxGainL(
       
   706         const RMessage2& aMessage)
       
   707     {
       
   708     TRACE_PRN_FN_ENT;
       
   709     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   710     if (iCallAdpt)
       
   711         {
       
   712         guint gain;
       
   713         status = iCallAdpt->GetGlobalMaxGain(gain);
       
   714         if (status == TMS_RESULT_SUCCESS)
       
   715             {
       
   716             TPckgBuf<guint> pckg(gain);
       
   717             aMessage.WriteL(0, pckg);
       
   718             }
       
   719         }
       
   720     aMessage.Complete(status);
       
   721     TRACE_PRN_FN_EXT;
       
   722     }
       
   723 
       
   724 // -----------------------------------------------------------------------------
       
   725 // TMSCallSession::HandleGlobalEffectVolumeSetGainL
       
   726 //
       
   727 // -----------------------------------------------------------------------------
       
   728 //
       
   729 void TMSCallSession::HandleGlobalEffectVolumeSetGainL(
       
   730         const RMessage2& aMessage)
       
   731     {
       
   732     TRACE_PRN_FN_ENT;
       
   733     gint status(TMS_RESULT_SUCCESS);
       
   734     iGlobalGain = aMessage.Int0();
       
   735     if (iCallAdpt)
       
   736         {
       
   737         guint gain;
       
   738         gain = aMessage.Int0();
       
   739         status = iCallAdpt->SetGlobalGain(gain);
       
   740         }
       
   741     aMessage.Complete(status);
       
   742     TRACE_PRN_FN_EXT;
       
   743     }
       
   744 
       
   745 // -----------------------------------------------------------------------------
       
   746 // TMSCallSession::HandleGlobalEffectVolumeGetGainL
       
   747 //
       
   748 // -----------------------------------------------------------------------------
       
   749 //
       
   750 void TMSCallSession::HandleGlobalEffectVolumeGetGainL(
       
   751         const RMessage2& aMessage)
       
   752     {
       
   753     TRACE_PRN_FN_ENT;
       
   754     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   755     if (iCallAdpt)
       
   756         {
       
   757         guint gain;
       
   758         status = iCallAdpt->GetGlobalGain(gain);
       
   759         if (status == TMS_RESULT_SUCCESS)
       
   760             {
       
   761             TPckgBuf<guint> pckg(gain);
       
   762             aMessage.WriteL(0, pckg);
       
   763             }
       
   764         }
       
   765     aMessage.Complete(status);
       
   766     TRACE_PRN_FN_EXT;
       
   767     }
       
   768 
       
   769 // -----------------------------------------------------------------------------
       
   770 // TMSCallSession::HandleFormatGetCodecModeL
       
   771 //
       
   772 // -----------------------------------------------------------------------------
       
   773 //
       
   774 void TMSCallSession::HandleFormatGetCodecModeL(const RMessage2& aMessage)
       
   775     {
       
   776     TRACE_PRN_FN_ENT;
       
   777     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   778 
       
   779     if (iCallAdpt)
       
   780         {
       
   781         gint mode;
       
   782         TMSFormatType fmttype;
       
   783         TMSStreamType strmtype;
       
   784         fmttype = aMessage.Int0();
       
   785         strmtype = aMessage.Int1();
       
   786         status = iCallAdpt->GetCodecMode(fmttype, strmtype, mode);
       
   787         TPckgBuf<gint> pckg(mode);
       
   788         aMessage.WriteL(2, pckg);
       
   789         }
       
   790     aMessage.Complete(status);
       
   791     TRACE_PRN_FN_EXT;
       
   792     }
       
   793 
       
   794 // -----------------------------------------------------------------------------
       
   795 // TMSCallSession::HandleFormatSetCodecModeL
       
   796 //
       
   797 // -----------------------------------------------------------------------------
       
   798 //
       
   799 void TMSCallSession::HandleFormatSetCodecModeL(const RMessage2& aMessage)
       
   800     {
       
   801     TRACE_PRN_FN_ENT;
       
   802     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   803     if (iCallAdpt)
       
   804         {
       
   805         gint mode;
       
   806         TMSFormatType fmttype;
       
   807         TMSStreamType strmtype;
       
   808         fmttype = aMessage.Int0();
       
   809         strmtype = aMessage.Int1();
       
   810         mode = aMessage.Int2();
       
   811         status = iCallAdpt->SetCodecMode(fmttype, strmtype, mode);
       
   812         }
       
   813     aMessage.Complete(status);
       
   814     TRACE_PRN_FN_EXT;
       
   815     }
       
   816 
       
   817 // -----------------------------------------------------------------------------
       
   818 // TMSCallSession::HandleFormatGetSupportedBitRatesCountL
       
   819 //
       
   820 // -----------------------------------------------------------------------------
       
   821 //
       
   822 void TMSCallSession::HandleFormatGetSupportedBitRatesCountL(
       
   823         const RMessage2& aMessage)
       
   824     {
       
   825     TRACE_PRN_FN_ENT;
       
   826     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   827     if (iCallAdpt)
       
   828         {
       
   829         guint count;
       
   830         status = iCallAdpt->GetSupportedBitRatesCount(count);
       
   831         TPckgBuf<guint> pckg(count);
       
   832         aMessage.WriteL(0, pckg);
       
   833         }
       
   834     aMessage.Complete(status);
       
   835     TRACE_PRN_FN_EXT;
       
   836     }
       
   837 
       
   838 // -----------------------------------------------------------------------------
       
   839 // TMSCallSession::HandleFormatGetSupportedBitRatesL
       
   840 //
       
   841 // -----------------------------------------------------------------------------
       
   842 //
       
   843 void TMSCallSession::HandleFormatGetSupportedBitRatesL(
       
   844         const RMessage2& aMessage)
       
   845     {
       
   846     TRACE_PRN_FN_ENT;
       
   847     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   848     if (iCallAdpt)
       
   849         {
       
   850         CBufFlat* brbuf = CBufFlat::NewL(KArrayExpandSize);
       
   851         CleanupStack::PushL(brbuf);
       
   852         status = iCallAdpt->GetSupportedBitRates(brbuf);
       
   853         aMessage.WriteL(0, brbuf->Ptr(0));
       
   854         CleanupStack::PopAndDestroy(brbuf);
       
   855         }
       
   856     aMessage.Complete(status);
       
   857     TRACE_PRN_FN_EXT;
       
   858     }
       
   859 
       
   860 // -----------------------------------------------------------------------------
       
   861 // TMSCallSession::HandleFormatGetBitRateL
       
   862 //
       
   863 // -----------------------------------------------------------------------------
       
   864 //
       
   865 void TMSCallSession::HandleFormatGetBitRateL(const RMessage2& aMessage)
       
   866     {
       
   867     TRACE_PRN_FN_ENT;
       
   868     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   869     if (iCallAdpt)
       
   870         {
       
   871         guint bitrate;
       
   872         status = iCallAdpt->GetBitRate(bitrate);
       
   873         TPckgBuf<guint> pckg(bitrate);
       
   874         aMessage.WriteL(0, pckg);
       
   875         }
       
   876     aMessage.Complete(status);
       
   877     TRACE_PRN_FN_EXT;
       
   878     }
       
   879 
       
   880 // -----------------------------------------------------------------------------
       
   881 // TMSCallSession::HandleFormatSetBitRateL
       
   882 //
       
   883 // -----------------------------------------------------------------------------
       
   884 //
       
   885 void TMSCallSession::HandleFormatSetBitRateL(const RMessage2& aMessage)
       
   886     {
       
   887     TRACE_PRN_FN_ENT;
       
   888     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   889     if (iCallAdpt)
       
   890         {
       
   891         guint bitrate;
       
   892         bitrate = aMessage.Int0();
       
   893         status = iCallAdpt->SetBitRate(bitrate);
       
   894         }
       
   895     aMessage.Complete(status);
       
   896     TRACE_PRN_FN_EXT;
       
   897     }
       
   898 
       
   899 // -----------------------------------------------------------------------------
       
   900 // TMSCallSession::HandleFormatGetVADL
       
   901 //
       
   902 // -----------------------------------------------------------------------------
       
   903 //
       
   904 void TMSCallSession::HandleFormatGetVADL(const RMessage2& aMessage)
       
   905     {
       
   906     TRACE_PRN_FN_ENT;
       
   907     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   908     if (iCallAdpt)
       
   909         {
       
   910         gboolean vad;
       
   911         TMSFormatType fmttype;
       
   912         fmttype = (TMSFormatType) aMessage.Int0();
       
   913         status = iCallAdpt->GetVAD(fmttype, vad);
       
   914         TPckgBuf<gboolean> pckg(vad);
       
   915         aMessage.WriteL(1, pckg);
       
   916         }
       
   917     aMessage.Complete(status);
       
   918     TRACE_PRN_FN_EXT;
       
   919     }
       
   920 
       
   921 // -----------------------------------------------------------------------------
       
   922 // TMSCallSession::HandleFormatSetVADL
       
   923 //
       
   924 // -----------------------------------------------------------------------------
       
   925 //
       
   926 void TMSCallSession::HandleFormatSetVADL(const RMessage2& aMessage)
       
   927     {
       
   928     TRACE_PRN_FN_ENT;
       
   929     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   930     if (iCallAdpt)
       
   931         {
       
   932         gboolean vad;
       
   933         TMSFormatType fmttype;
       
   934         fmttype = (TMSFormatType) aMessage.Int0();
       
   935         vad = (gboolean) aMessage.Int1();
       
   936         status = iCallAdpt->SetVAD(fmttype, vad);
       
   937         }
       
   938     aMessage.Complete(status);
       
   939     TRACE_PRN_FN_EXT;
       
   940     }
       
   941 
       
   942 // -----------------------------------------------------------------------------
       
   943 // TMSCallSession::HandleFormatGetCNGL
       
   944 //
       
   945 // -----------------------------------------------------------------------------
       
   946 //
       
   947 void TMSCallSession::HandleFormatGetCNGL(const RMessage2& aMessage)
       
   948     {
       
   949     TRACE_PRN_FN_ENT;
       
   950     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   951     if (iCallAdpt)
       
   952         {
       
   953         gboolean cng;
       
   954         TMSFormatType fmttype;
       
   955         fmttype = (TMSFormatType) aMessage.Int0();
       
   956         status = iCallAdpt->GetCNG(fmttype, cng);
       
   957         TPckgBuf<gboolean> pckg(cng);
       
   958         aMessage.WriteL(1, pckg);
       
   959         }
       
   960     aMessage.Complete(status);
       
   961     TRACE_PRN_FN_EXT;
       
   962     }
       
   963 
       
   964 // -----------------------------------------------------------------------------
       
   965 // TMSCallSession::HandleFormatSetCNGL
       
   966 //
       
   967 // -----------------------------------------------------------------------------
       
   968 //
       
   969 void TMSCallSession::HandleFormatSetCNGL(const RMessage2& aMessage)
       
   970     {
       
   971     TRACE_PRN_FN_ENT;
       
   972     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   973     if (iCallAdpt)
       
   974         {
       
   975         gboolean cng;
       
   976         TMSFormatType fmttype;
       
   977         fmttype = (TMSFormatType) aMessage.Int0();
       
   978         cng = (gboolean) aMessage.Int1();
       
   979         status = iCallAdpt->SetCNG(fmttype, cng);
       
   980         }
       
   981     aMessage.Complete(status);
       
   982     TRACE_PRN_FN_EXT;
       
   983     }
       
   984 
       
   985 // -----------------------------------------------------------------------------
       
   986 // TMSCallSession::HandleFormatGetPlcL
       
   987 //
       
   988 // -----------------------------------------------------------------------------
       
   989 //
       
   990 void TMSCallSession::HandleFormatGetPlcL(const RMessage2& aMessage)
       
   991     {
       
   992     TRACE_PRN_FN_ENT;
       
   993     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
   994     if (iCallAdpt)
       
   995         {
       
   996         gboolean plc;
       
   997         TMSFormatType fmttype;
       
   998         fmttype = (TMSFormatType) aMessage.Int0();
       
   999         status = iCallAdpt->GetPlc(fmttype, plc);
       
  1000         TPckgBuf<gboolean> pckg(plc);
       
  1001         aMessage.WriteL(1, pckg);
       
  1002         }
       
  1003     aMessage.Complete(status);
       
  1004     TRACE_PRN_FN_EXT;
       
  1005     }
       
  1006 
       
  1007 // -----------------------------------------------------------------------------
       
  1008 // TMSCallSession::HandleFormatSetPlcL
       
  1009 //
       
  1010 // -----------------------------------------------------------------------------
       
  1011 //
       
  1012 void TMSCallSession::HandleFormatSetPlcL(const RMessage2& aMessage)
       
  1013     {
       
  1014     TRACE_PRN_FN_ENT;
       
  1015     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
  1016     if (iCallAdpt)
       
  1017         {
       
  1018         gboolean plc;
       
  1019         TMSFormatType fmttype;
       
  1020         fmttype = (TMSFormatType) aMessage.Int0();
       
  1021         plc = (gboolean) aMessage.Int1();
       
  1022         status = iCallAdpt->SetPlc(fmttype, plc);
       
  1023         }
       
  1024     aMessage.Complete(status);
       
  1025     TRACE_PRN_FN_EXT;
       
  1026     }
       
  1027 
       
  1028 // -----------------------------------------------------------------------------
       
  1029 // TMSCallSession::HandleRoutingSetOutputL
       
  1030 //
       
  1031 // -----------------------------------------------------------------------------
       
  1032 //
       
  1033 void TMSCallSession::HandleRoutingSetOutputL(const RMessage2& aMessage)
       
  1034     {
       
  1035     TRACE_PRN_FN_ENT;
       
  1036     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
  1037     if (iCallAdpt)
       
  1038         {
       
  1039         TMSAudioOutput outputtype;
       
  1040         outputtype = (TMSAudioOutput) aMessage.Int0();
       
  1041         status = iCallAdpt->SetOutput(outputtype);
       
  1042         }
       
  1043     aMessage.Complete(status);
       
  1044     TRACE_PRN_FN_EXT;
       
  1045 
       
  1046     }
       
  1047 // -----------------------------------------------------------------------------
       
  1048 // TMSCallSession::HandleRoutingGetOutputL
       
  1049 //
       
  1050 // -----------------------------------------------------------------------------
       
  1051 //
       
  1052 void TMSCallSession::HandleRoutingGetOutputL(const RMessage2& aMessage)
       
  1053     {
       
  1054     TRACE_PRN_FN_ENT;
       
  1055     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
  1056     TMSAudioOutput outputtype;
       
  1057     if (iCallAdpt)
       
  1058         {
       
  1059         status = iCallAdpt->GetOutput(outputtype);
       
  1060         }
       
  1061     TPckgBuf<gint> p(outputtype);
       
  1062     aMessage.Write(0, p);
       
  1063     aMessage.Complete(status);
       
  1064     TRACE_PRN_FN_EXT;
       
  1065     }
       
  1066 // -----------------------------------------------------------------------------
       
  1067 // TMSCallSession::HandleRoutingGetPreviousOutputL
       
  1068 //
       
  1069 // -----------------------------------------------------------------------------
       
  1070 //
       
  1071 void TMSCallSession::HandleRoutingGetPreviousOutputL(
       
  1072         const RMessage2& aMessage)
       
  1073     {
       
  1074     TRACE_PRN_FN_ENT;
       
  1075     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
  1076     TMSAudioOutput outputtype;
       
  1077     if (iCallAdpt)
       
  1078         {
       
  1079         status = iCallAdpt->GetPreviousOutput(outputtype);
       
  1080         }
       
  1081     TPckgBuf<gint> p(outputtype);
       
  1082     aMessage.Write(0, p);
       
  1083     aMessage.Complete(status);
       
  1084     TRACE_PRN_FN_EXT;
       
  1085     }
       
  1086 // -----------------------------------------------------------------------------
       
  1087 // TMSCallSession::HandleRoutingGetAvailableOutputsL
       
  1088 //
       
  1089 // -----------------------------------------------------------------------------
       
  1090 //
       
  1091 void TMSCallSession::HandleRoutingGetAvailableOutputsL(
       
  1092         const RMessage2& aMessage)
       
  1093     {
       
  1094     TRACE_PRN_FN_ENT;
       
  1095     gint status(TMS_RESULT_DOES_NOT_EXIST);
       
  1096     TPckgBuf<gint> countpkg;
       
  1097     gint count;
       
  1098     if (iCallAdpt)
       
  1099         {
       
  1100         CBufFlat* outputbuf = CBufFlat::NewL(10);
       
  1101         CleanupStack::PushL(outputbuf);
       
  1102         status = iCallAdpt->GetAvailableOutputsL(count, outputbuf);
       
  1103 
       
  1104         countpkg() = count;
       
  1105         aMessage.WriteL(0, countpkg);
       
  1106         aMessage.WriteL(1, outputbuf->Ptr(0));
       
  1107         CleanupStack::PopAndDestroy(outputbuf);
       
  1108         }
       
  1109     aMessage.Complete(status);
       
  1110     }
       
  1111 
       
  1112 // End of file