qtms/tsrc/qttmstestapp/src/ctmstestengine.cpp
author hgs
Tue, 21 Sep 2010 11:25:55 -0500
changeset 62 b276843a15ba
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
62
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
 * All rights reserved.
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
 *
hgs
parents:
diff changeset
     9
 * Initial Contributors:
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
 *
hgs
parents:
diff changeset
    12
 * Contributors:
hgs
parents:
diff changeset
    13
 *
hgs
parents:
diff changeset
    14
 * Description: Telephony Multimedia Service - TestApp
hgs
parents:
diff changeset
    15
 *
hgs
parents:
diff changeset
    16
 */
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
// INCLUDES
hgs
parents:
diff changeset
    19
#include <e32base.h>
hgs
parents:
diff changeset
    20
#include <eikenv.h>
hgs
parents:
diff changeset
    21
#include <gstring.h>
hgs
parents:
diff changeset
    22
#include <tmsclientsink.h>
hgs
parents:
diff changeset
    23
#include <tmsclientsource.h>
hgs
parents:
diff changeset
    24
#include <tmspcmformat.h>
hgs
parents:
diff changeset
    25
#include <tmsamrformat.h>
hgs
parents:
diff changeset
    26
#include <tmsilbcformat.h>
hgs
parents:
diff changeset
    27
#include <tmsg711format.h>
hgs
parents:
diff changeset
    28
#include <tmsg729format.h>
hgs
parents:
diff changeset
    29
#include <tmsvolumeeffect.h>
hgs
parents:
diff changeset
    30
#include <tmsgaineffect.h>
hgs
parents:
diff changeset
    31
#include <tmsglobalvoleffect.h>
hgs
parents:
diff changeset
    32
#include <tmsglobalgaineffect.h>
hgs
parents:
diff changeset
    33
#include <tmsglobalrouting.h>
hgs
parents:
diff changeset
    34
#include <tmsver.h>
hgs
parents:
diff changeset
    35
#include "ctmstestengine.h"
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
#ifdef _DEBUG
hgs
parents:
diff changeset
    38
#include "e32debug.h"
hgs
parents:
diff changeset
    39
#define DEBPRN0(str)       RDebug::Print(str, this)
hgs
parents:
diff changeset
    40
#define DEBPRN1(str, val1) RDebug::Print(str, this, val1)
hgs
parents:
diff changeset
    41
#else
hgs
parents:
diff changeset
    42
#define DEBPRN0(str)
hgs
parents:
diff changeset
    43
#define DEBPRN1(str, val1)
hgs
parents:
diff changeset
    44
#endif //_DEBUG
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
//#define __PROFILING_ENABLED__
hgs
parents:
diff changeset
    47
hgs
parents:
diff changeset
    48
#ifdef __PROFILING_ENABLED__
hgs
parents:
diff changeset
    49
#include "perfutility.h"
hgs
parents:
diff changeset
    50
#endif //__PROFILING_ENABLED__
hgs
parents:
diff changeset
    51
hgs
parents:
diff changeset
    52
//#define __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
    53
hgs
parents:
diff changeset
    54
// CONSTANTS
hgs
parents:
diff changeset
    55
_LIT8(KRTBeepSequence, "\x00\x11\x0A\x0A\x08\x73\x0A\x40\x28\x0A\xF7\
hgs
parents:
diff changeset
    56
\x05\xFC\x40\x64\x0A\x08\x40\x32\x0A\xF7\x06\x0B");
hgs
parents:
diff changeset
    57
_LIT16(KTextToSpeak, "THE PHONE IS RINGING");
hgs
parents:
diff changeset
    58
_LIT16(KTestFile1, "C:\\Data\\Sounds\\Digital\\NokiaTest.aac");
hgs
parents:
diff changeset
    59
hgs
parents:
diff changeset
    60
#ifdef __RECORD_WAV_TO_FILE__
hgs
parents:
diff changeset
    61
_LIT(KFileName, "c:\\data\\tmsrec.amr");
hgs
parents:
diff changeset
    62
const TUint KFileBufLen = 4096;
hgs
parents:
diff changeset
    63
const TInt KAMRNBHeaderLen = 6;
hgs
parents:
diff changeset
    64
const TUint8 KAMRNBHeader[KAMRNBHeaderLen] = {0x23,0x21,0x41,0x4d,0x52,0x0a};
hgs
parents:
diff changeset
    65
#endif
hgs
parents:
diff changeset
    66
hgs
parents:
diff changeset
    67
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    68
// CTmsTestEngine::CTmsTestEngine()
hgs
parents:
diff changeset
    69
// constructor
hgs
parents:
diff changeset
    70
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    71
//
hgs
parents:
diff changeset
    72
CTmsTestEngine::CTmsTestEngine()
hgs
parents:
diff changeset
    73
    {
hgs
parents:
diff changeset
    74
    // Disable GLib slice allocators; will take care of memory leaks
hgs
parents:
diff changeset
    75
    // caused by g_string_free().
hgs
parents:
diff changeset
    76
    g_setenv("G_SLICE", "always-malloc", 1);
hgs
parents:
diff changeset
    77
    }
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    80
// CTmsTestEngine::~CTmsTestEngine
hgs
parents:
diff changeset
    81
// destructor
hgs
parents:
diff changeset
    82
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
    83
//
hgs
parents:
diff changeset
    84
CTmsTestEngine::~CTmsTestEngine()
hgs
parents:
diff changeset
    85
    {
hgs
parents:
diff changeset
    86
    EndCall();
hgs
parents:
diff changeset
    87
    CloseRingTonePlayer();
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
    if (iFactory && iGlobalVol)
hgs
parents:
diff changeset
    90
        {
hgs
parents:
diff changeset
    91
        static_cast<TMSGlobalVolEffect*> (iGlobalVol)->RemoveObserver(*this);
hgs
parents:
diff changeset
    92
        iFactory->DeleteEffect(iGlobalVol);
hgs
parents:
diff changeset
    93
        }
hgs
parents:
diff changeset
    94
    if (iFactory && iGlobalGain)
hgs
parents:
diff changeset
    95
        {
hgs
parents:
diff changeset
    96
        static_cast<TMSGlobalGainEffect*> (iGlobalGain)->RemoveObserver(*this);
hgs
parents:
diff changeset
    97
        iFactory->DeleteEffect(iGlobalGain);
hgs
parents:
diff changeset
    98
        }
hgs
parents:
diff changeset
    99
    if (iFactory && iTmsGlobalRouting)
hgs
parents:
diff changeset
   100
        {
hgs
parents:
diff changeset
   101
        iTmsGlobalRouting->RemoveObserver(*this);
hgs
parents:
diff changeset
   102
        iFactory->DeleteGlobalRouting(iTmsGlobalRouting);
hgs
parents:
diff changeset
   103
        }
hgs
parents:
diff changeset
   104
    if (iFactory && iInbandTonePlayer)
hgs
parents:
diff changeset
   105
        {
hgs
parents:
diff changeset
   106
        iInbandTonePlayer->RemoveObserver(*this);
hgs
parents:
diff changeset
   107
        iFactory->DeleteInbandTonePlayer(iInbandTonePlayer);
hgs
parents:
diff changeset
   108
        }
hgs
parents:
diff changeset
   109
hgs
parents:
diff changeset
   110
    delete iFactory;
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
#ifdef __PLAY_WAV_FROM_FILE__
hgs
parents:
diff changeset
   113
    iFile.Close();
hgs
parents:
diff changeset
   114
    iFs.Close();
hgs
parents:
diff changeset
   115
    delete iBuf;
hgs
parents:
diff changeset
   116
#endif
hgs
parents:
diff changeset
   117
#ifdef __RECORD_WAV_TO_FILE__
hgs
parents:
diff changeset
   118
    iFile.Close();
hgs
parents:
diff changeset
   119
    iFs.Close();
hgs
parents:
diff changeset
   120
    delete iWriteBuf;
hgs
parents:
diff changeset
   121
#endif
hgs
parents:
diff changeset
   122
    }
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   125
// CTmsTestEngine::NewL
hgs
parents:
diff changeset
   126
// Symbian constructor.
hgs
parents:
diff changeset
   127
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   128
//
hgs
parents:
diff changeset
   129
CTmsTestEngine* CTmsTestEngine::NewL(QTextEdit* statusDisplay)
hgs
parents:
diff changeset
   130
    {
hgs
parents:
diff changeset
   131
    CTmsTestEngine* self(NULL);
hgs
parents:
diff changeset
   132
    self=CTmsTestEngine::NewLC(statusDisplay);
hgs
parents:
diff changeset
   133
    return self;
hgs
parents:
diff changeset
   134
    }
hgs
parents:
diff changeset
   135
hgs
parents:
diff changeset
   136
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   137
// CTmsTestEngine::NewL
hgs
parents:
diff changeset
   138
// Symbian constructor with self pointer pushed into the cleanup stack.
hgs
parents:
diff changeset
   139
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   140
//
hgs
parents:
diff changeset
   141
CTmsTestEngine* CTmsTestEngine::NewLC(QTextEdit* statusDisplay)
hgs
parents:
diff changeset
   142
    {
hgs
parents:
diff changeset
   143
    CTmsTestEngine* self = new (ELeave) CTmsTestEngine;
hgs
parents:
diff changeset
   144
    //CleanupStack::PushL(self);
hgs
parents:
diff changeset
   145
    self->ConstructL(statusDisplay);
hgs
parents:
diff changeset
   146
    return self;
hgs
parents:
diff changeset
   147
    }
hgs
parents:
diff changeset
   148
hgs
parents:
diff changeset
   149
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   150
// CTmsTestEngine::NewL
hgs
parents:
diff changeset
   151
// Standard Symbian 2nd phase constructor
hgs
parents:
diff changeset
   152
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   153
//
hgs
parents:
diff changeset
   154
void CTmsTestEngine::ConstructL(QTextEdit* statusDisplay)
hgs
parents:
diff changeset
   155
    {
hgs
parents:
diff changeset
   156
    DEBPRN0(_L("CTmsTestEngine[0x%x]::ConstructL :>"));
hgs
parents:
diff changeset
   157
    iStatusDisplay = statusDisplay;
hgs
parents:
diff changeset
   158
hgs
parents:
diff changeset
   159
#ifdef __PLAY_WAV_FROM_FILE__
hgs
parents:
diff changeset
   160
    iReadSize = KFileBufLen;
hgs
parents:
diff changeset
   161
    TInt err = iFs.Connect();
hgs
parents:
diff changeset
   162
    if (err == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   163
        {
hgs
parents:
diff changeset
   164
        err = iFile.Open(iFs, KTestFile1, EFileShareAny | EFileRead);
hgs
parents:
diff changeset
   165
        }
hgs
parents:
diff changeset
   166
    if (err == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   167
        {
hgs
parents:
diff changeset
   168
        iFile.Size(iFileLen);
hgs
parents:
diff changeset
   169
        }
hgs
parents:
diff changeset
   170
    iBuf = HBufC8::NewL(iReadSize);
hgs
parents:
diff changeset
   171
#endif
hgs
parents:
diff changeset
   172
hgs
parents:
diff changeset
   173
#ifdef __RECORD_WAV_TO_FILE__
hgs
parents:
diff changeset
   174
    TInt err = iFs.Connect();
hgs
parents:
diff changeset
   175
    if (err == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   176
        {
hgs
parents:
diff changeset
   177
        err = iFile.Replace(iFs, KFileName, EFileWrite);
hgs
parents:
diff changeset
   178
#ifndef __WINSCW__
hgs
parents:
diff changeset
   179
        if (err == KErrNone)
hgs
parents:
diff changeset
   180
            {
hgs
parents:
diff changeset
   181
            // Prefix file with AMR-NB header
hgs
parents:
diff changeset
   182
            TBuf8<KAMRNBHeaderLen> buf;
hgs
parents:
diff changeset
   183
            buf.Append(KAMRNBHeader, 6);
hgs
parents:
diff changeset
   184
            iFile.Write(buf, KAMRNBHeaderLen);
hgs
parents:
diff changeset
   185
            }
hgs
parents:
diff changeset
   186
#endif //__WINSCW__
hgs
parents:
diff changeset
   187
        }
hgs
parents:
diff changeset
   188
    iWriteLen = KFileBufLen;
hgs
parents:
diff changeset
   189
    iWriteBuf = HBufC8::NewL(iWriteLen);
hgs
parents:
diff changeset
   190
#endif //__RECORD_WAV_TO_FILE__
hgs
parents:
diff changeset
   191
hgs
parents:
diff changeset
   192
    CreateFactory();
hgs
parents:
diff changeset
   193
    CreateGlobalRouting();
hgs
parents:
diff changeset
   194
    CreateGlobalVol();
hgs
parents:
diff changeset
   195
    CreateGlobalGain();
hgs
parents:
diff changeset
   196
    CreateRingTonePlayer();
hgs
parents:
diff changeset
   197
hgs
parents:
diff changeset
   198
    DEBPRN0(_L("CTmsTestEngine[0x%x]::ConstructL :<"));
hgs
parents:
diff changeset
   199
    }
hgs
parents:
diff changeset
   200
hgs
parents:
diff changeset
   201
gint CTmsTestEngine::CreateFactory()
hgs
parents:
diff changeset
   202
    {
hgs
parents:
diff changeset
   203
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   204
    TMSVer v(10,0,0);
hgs
parents:
diff changeset
   205
    status = TMSFactory::CreateFactory(iFactory, v);
hgs
parents:
diff changeset
   206
hgs
parents:
diff changeset
   207
    if (status != TMS_RESULT_SUCCESS || !iFactory)
hgs
parents:
diff changeset
   208
        {
hgs
parents:
diff changeset
   209
        DisplayText("Tms create factory failed ", status);
hgs
parents:
diff changeset
   210
        }
hgs
parents:
diff changeset
   211
    else
hgs
parents:
diff changeset
   212
        {
hgs
parents:
diff changeset
   213
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   214
        TMSBuffer* tmsbuffer(NULL);
hgs
parents:
diff changeset
   215
        TMSBufferType buftype(TMS_BUFFER_MEMORY);
hgs
parents:
diff changeset
   216
        guint size(100);
hgs
parents:
diff changeset
   217
        iFactory->CreateBuffer(TMS_BUFFER_MEMORY, size, tmsbuffer);
hgs
parents:
diff changeset
   218
        if (tmsbuffer)
hgs
parents:
diff changeset
   219
            {
hgs
parents:
diff changeset
   220
            tmsbuffer->GetType(buftype);
hgs
parents:
diff changeset
   221
            tmsbuffer->GetDataSize(size);
hgs
parents:
diff changeset
   222
            tmsbuffer->SetDataSize(size);
hgs
parents:
diff changeset
   223
            guint8* pbuf(NULL);
hgs
parents:
diff changeset
   224
            tmsbuffer->GetDataPtr(pbuf);
hgs
parents:
diff changeset
   225
            guint64 ts(0);
hgs
parents:
diff changeset
   226
            tmsbuffer->GetTimeStamp(ts);
hgs
parents:
diff changeset
   227
            tmsbuffer->SetTimeStamp(ts);
hgs
parents:
diff changeset
   228
            iFactory->DeleteBuffer(tmsbuffer);
hgs
parents:
diff changeset
   229
            }
hgs
parents:
diff changeset
   230
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   231
hgs
parents:
diff changeset
   232
        DisplayText("Tms factory created");
hgs
parents:
diff changeset
   233
        }
hgs
parents:
diff changeset
   234
    return status;
hgs
parents:
diff changeset
   235
    }
hgs
parents:
diff changeset
   236
hgs
parents:
diff changeset
   237
gint CTmsTestEngine::CreateCall(TMSCallType calltype)
hgs
parents:
diff changeset
   238
    {
hgs
parents:
diff changeset
   239
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   240
    if (iFactory && !iTmsCall)
hgs
parents:
diff changeset
   241
        {
hgs
parents:
diff changeset
   242
        status = iFactory->CreateCall(calltype, iTmsCall, 0);
hgs
parents:
diff changeset
   243
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   244
            {
hgs
parents:
diff changeset
   245
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   246
            guint ctxid;
hgs
parents:
diff changeset
   247
            iTmsCall->GetCallContextId(ctxid);
hgs
parents:
diff changeset
   248
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   249
            DisplayText("Tms call created");
hgs
parents:
diff changeset
   250
            }
hgs
parents:
diff changeset
   251
        else
hgs
parents:
diff changeset
   252
            {
hgs
parents:
diff changeset
   253
            DisplayText("Tms call create failed ", status);
hgs
parents:
diff changeset
   254
            }
hgs
parents:
diff changeset
   255
        }
hgs
parents:
diff changeset
   256
    return status;
hgs
parents:
diff changeset
   257
    }
hgs
parents:
diff changeset
   258
hgs
parents:
diff changeset
   259
gint CTmsTestEngine::CreateUplink()
hgs
parents:
diff changeset
   260
    {
hgs
parents:
diff changeset
   261
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   262
hgs
parents:
diff changeset
   263
    if (iTmsCall)
hgs
parents:
diff changeset
   264
        {
hgs
parents:
diff changeset
   265
        status = iTmsCall->CreateStream(TMS_STREAM_UPLINK, iTmsUplink);
hgs
parents:
diff changeset
   266
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   267
            {
hgs
parents:
diff changeset
   268
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   269
            guint ctxid;
hgs
parents:
diff changeset
   270
            iTmsCall->GetCallContextId(ctxid);
hgs
parents:
diff changeset
   271
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   272
            DisplayText("TMS uplink created");
hgs
parents:
diff changeset
   273
            }
hgs
parents:
diff changeset
   274
        else
hgs
parents:
diff changeset
   275
            {
hgs
parents:
diff changeset
   276
            DisplayText("TMS uplink failed ", status);
hgs
parents:
diff changeset
   277
            }
hgs
parents:
diff changeset
   278
        }
hgs
parents:
diff changeset
   279
    return status;
hgs
parents:
diff changeset
   280
    }
hgs
parents:
diff changeset
   281
hgs
parents:
diff changeset
   282
gint CTmsTestEngine::CreateDownlink()
hgs
parents:
diff changeset
   283
    {
hgs
parents:
diff changeset
   284
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   285
hgs
parents:
diff changeset
   286
    if (iTmsCall)
hgs
parents:
diff changeset
   287
        {
hgs
parents:
diff changeset
   288
        status = iTmsCall->CreateStream(TMS_STREAM_DOWNLINK, iTmsDnlink);
hgs
parents:
diff changeset
   289
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   290
            {
hgs
parents:
diff changeset
   291
            DisplayText("TMS downlink created");
hgs
parents:
diff changeset
   292
            }
hgs
parents:
diff changeset
   293
        else
hgs
parents:
diff changeset
   294
            {
hgs
parents:
diff changeset
   295
            DisplayText("TMS downlink failed ", status);
hgs
parents:
diff changeset
   296
            }
hgs
parents:
diff changeset
   297
        }
hgs
parents:
diff changeset
   298
    return status;
hgs
parents:
diff changeset
   299
    }
hgs
parents:
diff changeset
   300
hgs
parents:
diff changeset
   301
gint CTmsTestEngine::CreateClientSource()
hgs
parents:
diff changeset
   302
    {
hgs
parents:
diff changeset
   303
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   304
hgs
parents:
diff changeset
   305
    if (iFactory && !iTmsClientSource)
hgs
parents:
diff changeset
   306
        {
hgs
parents:
diff changeset
   307
        status = iFactory->CreateSource(TMS_SOURCE_CLIENT, iTmsClientSource);
hgs
parents:
diff changeset
   308
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   309
            {
hgs
parents:
diff changeset
   310
            DisplayText("TMS clientsource created");
hgs
parents:
diff changeset
   311
            }
hgs
parents:
diff changeset
   312
        else
hgs
parents:
diff changeset
   313
            {
hgs
parents:
diff changeset
   314
            DisplayText("TMS clientsource failed ", status);
hgs
parents:
diff changeset
   315
            }
hgs
parents:
diff changeset
   316
        }
hgs
parents:
diff changeset
   317
    return status;
hgs
parents:
diff changeset
   318
    }
hgs
parents:
diff changeset
   319
hgs
parents:
diff changeset
   320
gint CTmsTestEngine::CreateModemSource()
hgs
parents:
diff changeset
   321
    {
hgs
parents:
diff changeset
   322
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   323
hgs
parents:
diff changeset
   324
    if (iFactory && !iTmsModemSource)
hgs
parents:
diff changeset
   325
        {
hgs
parents:
diff changeset
   326
        status = iFactory->CreateSource(TMS_SOURCE_MODEM, iTmsModemSource);
hgs
parents:
diff changeset
   327
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   328
            {
hgs
parents:
diff changeset
   329
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   330
            TMSSourceType st;
hgs
parents:
diff changeset
   331
            iTmsModemSource->GetType(st);
hgs
parents:
diff changeset
   332
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   333
            DisplayText("TMS modemsource created");
hgs
parents:
diff changeset
   334
            }
hgs
parents:
diff changeset
   335
        else
hgs
parents:
diff changeset
   336
            {
hgs
parents:
diff changeset
   337
            DisplayText("TMS modemsource failed ", status);
hgs
parents:
diff changeset
   338
            }
hgs
parents:
diff changeset
   339
        }
hgs
parents:
diff changeset
   340
    return status;
hgs
parents:
diff changeset
   341
    }
hgs
parents:
diff changeset
   342
hgs
parents:
diff changeset
   343
gint CTmsTestEngine::AddClientSourceToStream()
hgs
parents:
diff changeset
   344
    {
hgs
parents:
diff changeset
   345
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   346
    if (iTmsDnlink && iTmsClientSource)
hgs
parents:
diff changeset
   347
        {
hgs
parents:
diff changeset
   348
        static_cast<TMSClientSource*> (iTmsClientSource)->AddObserver(*this,
hgs
parents:
diff changeset
   349
                NULL);
hgs
parents:
diff changeset
   350
        status = iTmsDnlink->AddSource(iTmsClientSource);
hgs
parents:
diff changeset
   351
hgs
parents:
diff changeset
   352
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   353
        TMSSourceType st;
hgs
parents:
diff changeset
   354
        static_cast<TMSClientSource*> (iTmsClientSource)->GetType(st);
hgs
parents:
diff changeset
   355
        gboolean enqueue(false);
hgs
parents:
diff changeset
   356
        static_cast<TMSClientSource*> (iTmsClientSource)->GetEnqueueMode(enqueue);
hgs
parents:
diff changeset
   357
        static_cast<TMSClientSource*> (iTmsClientSource)->SetEnqueueMode(FALSE);
hgs
parents:
diff changeset
   358
        static_cast<TMSClientSource*> (iTmsClientSource)->Flush();
hgs
parents:
diff changeset
   359
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   360
        }
hgs
parents:
diff changeset
   361
    return status;
hgs
parents:
diff changeset
   362
    }
hgs
parents:
diff changeset
   363
hgs
parents:
diff changeset
   364
gint CTmsTestEngine::AddModemSourceToStream()
hgs
parents:
diff changeset
   365
    {
hgs
parents:
diff changeset
   366
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   367
    if (iTmsDnlink && iTmsModemSource)
hgs
parents:
diff changeset
   368
        {
hgs
parents:
diff changeset
   369
        status = iTmsDnlink->AddSource(iTmsModemSource);
hgs
parents:
diff changeset
   370
        }
hgs
parents:
diff changeset
   371
    return status;
hgs
parents:
diff changeset
   372
    }
hgs
parents:
diff changeset
   373
hgs
parents:
diff changeset
   374
gint CTmsTestEngine::CreateClientSink()
hgs
parents:
diff changeset
   375
    {
hgs
parents:
diff changeset
   376
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   377
hgs
parents:
diff changeset
   378
    if (iFactory && !iTmsClientSink)
hgs
parents:
diff changeset
   379
        {
hgs
parents:
diff changeset
   380
        status = iFactory->CreateSink(TMS_SINK_CLIENT, iTmsClientSink);
hgs
parents:
diff changeset
   381
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   382
            {
hgs
parents:
diff changeset
   383
            DisplayText("TMS client sink created");
hgs
parents:
diff changeset
   384
            }
hgs
parents:
diff changeset
   385
        else
hgs
parents:
diff changeset
   386
            {
hgs
parents:
diff changeset
   387
            DisplayText("TMS client sink failed ", status);
hgs
parents:
diff changeset
   388
            }
hgs
parents:
diff changeset
   389
        }
hgs
parents:
diff changeset
   390
    return status;
hgs
parents:
diff changeset
   391
    }
hgs
parents:
diff changeset
   392
hgs
parents:
diff changeset
   393
gint CTmsTestEngine::CreateModemSink()
hgs
parents:
diff changeset
   394
    {
hgs
parents:
diff changeset
   395
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   396
hgs
parents:
diff changeset
   397
    if (iFactory && !iTmsModemSink)
hgs
parents:
diff changeset
   398
        {
hgs
parents:
diff changeset
   399
        status = iFactory->CreateSink(TMS_SINK_MODEM, iTmsModemSink);
hgs
parents:
diff changeset
   400
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   401
            {
hgs
parents:
diff changeset
   402
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   403
            TMSSinkType st;
hgs
parents:
diff changeset
   404
            iTmsModemSink->GetType(st);
hgs
parents:
diff changeset
   405
#endif  //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   406
            DisplayText("TMS modem sink created");
hgs
parents:
diff changeset
   407
            }
hgs
parents:
diff changeset
   408
        else
hgs
parents:
diff changeset
   409
            {
hgs
parents:
diff changeset
   410
            DisplayText("TMS modem sink failed ", status);
hgs
parents:
diff changeset
   411
            }
hgs
parents:
diff changeset
   412
        }
hgs
parents:
diff changeset
   413
    return status;
hgs
parents:
diff changeset
   414
    }
hgs
parents:
diff changeset
   415
hgs
parents:
diff changeset
   416
gint CTmsTestEngine::AddClientSinkToStream()
hgs
parents:
diff changeset
   417
    {
hgs
parents:
diff changeset
   418
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   419
hgs
parents:
diff changeset
   420
    if (iTmsUplink && iTmsClientSink)
hgs
parents:
diff changeset
   421
        {
hgs
parents:
diff changeset
   422
        status = static_cast<TMSClientSink*> (iTmsClientSink)->AddObserver(
hgs
parents:
diff changeset
   423
                *this, NULL);
hgs
parents:
diff changeset
   424
        status |= iTmsUplink->AddSink(iTmsClientSink);
hgs
parents:
diff changeset
   425
        }
hgs
parents:
diff changeset
   426
    return status;
hgs
parents:
diff changeset
   427
    }
hgs
parents:
diff changeset
   428
hgs
parents:
diff changeset
   429
gint CTmsTestEngine::AddModemSinkToStream()
hgs
parents:
diff changeset
   430
    {
hgs
parents:
diff changeset
   431
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   432
hgs
parents:
diff changeset
   433
    if (iTmsUplink && iTmsModemSink)
hgs
parents:
diff changeset
   434
        {
hgs
parents:
diff changeset
   435
        status = iTmsUplink->AddSink(iTmsModemSink);
hgs
parents:
diff changeset
   436
        }
hgs
parents:
diff changeset
   437
    return status;
hgs
parents:
diff changeset
   438
    }
hgs
parents:
diff changeset
   439
hgs
parents:
diff changeset
   440
gint CTmsTestEngine::CreateMicSource()
hgs
parents:
diff changeset
   441
    {
hgs
parents:
diff changeset
   442
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   443
hgs
parents:
diff changeset
   444
    if (iFactory && !iTmsMicSource)
hgs
parents:
diff changeset
   445
        {
hgs
parents:
diff changeset
   446
        status = iFactory->CreateSource(TMS_SOURCE_MIC, iTmsMicSource);
hgs
parents:
diff changeset
   447
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   448
            {
hgs
parents:
diff changeset
   449
            DisplayText("TMS mic source created");
hgs
parents:
diff changeset
   450
            }
hgs
parents:
diff changeset
   451
        else
hgs
parents:
diff changeset
   452
            {
hgs
parents:
diff changeset
   453
            DisplayText("TMS mic source failed ", status);
hgs
parents:
diff changeset
   454
            }
hgs
parents:
diff changeset
   455
        }
hgs
parents:
diff changeset
   456
    return status;
hgs
parents:
diff changeset
   457
    }
hgs
parents:
diff changeset
   458
hgs
parents:
diff changeset
   459
gint CTmsTestEngine::AddMicSourceToStream()
hgs
parents:
diff changeset
   460
    {
hgs
parents:
diff changeset
   461
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   462
    if (iTmsUplink && iTmsMicSource)
hgs
parents:
diff changeset
   463
        {
hgs
parents:
diff changeset
   464
        status = iTmsUplink->AddSource(iTmsMicSource);
hgs
parents:
diff changeset
   465
        }
hgs
parents:
diff changeset
   466
    return status;
hgs
parents:
diff changeset
   467
    }
hgs
parents:
diff changeset
   468
hgs
parents:
diff changeset
   469
gint CTmsTestEngine::CreateSpeakerSink()
hgs
parents:
diff changeset
   470
    {
hgs
parents:
diff changeset
   471
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   472
hgs
parents:
diff changeset
   473
    if (iFactory && !iTmsSpeakerSink)
hgs
parents:
diff changeset
   474
        {
hgs
parents:
diff changeset
   475
        status = iFactory->CreateSink(TMS_SINK_SPEAKER, iTmsSpeakerSink);
hgs
parents:
diff changeset
   476
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   477
            {
hgs
parents:
diff changeset
   478
            DisplayText("TMS speaker sink created");
hgs
parents:
diff changeset
   479
            }
hgs
parents:
diff changeset
   480
        else
hgs
parents:
diff changeset
   481
            {
hgs
parents:
diff changeset
   482
            DisplayText("TMS speaker sink failed ", status);
hgs
parents:
diff changeset
   483
            }
hgs
parents:
diff changeset
   484
        }
hgs
parents:
diff changeset
   485
    return status;
hgs
parents:
diff changeset
   486
    }
hgs
parents:
diff changeset
   487
hgs
parents:
diff changeset
   488
gint CTmsTestEngine::AddSpeakerSinkToStream()
hgs
parents:
diff changeset
   489
    {
hgs
parents:
diff changeset
   490
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   491
    if (iTmsDnlink && iTmsSpeakerSink)
hgs
parents:
diff changeset
   492
        {
hgs
parents:
diff changeset
   493
        status = iTmsDnlink->AddSink(iTmsSpeakerSink);
hgs
parents:
diff changeset
   494
        }
hgs
parents:
diff changeset
   495
    return status;
hgs
parents:
diff changeset
   496
    }
hgs
parents:
diff changeset
   497
hgs
parents:
diff changeset
   498
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   499
// CTmsTestEngine::SetCallType
hgs
parents:
diff changeset
   500
//
hgs
parents:
diff changeset
   501
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   502
//
hgs
parents:
diff changeset
   503
void CTmsTestEngine::SetCallType(TMSCallType calltype)
hgs
parents:
diff changeset
   504
    {
hgs
parents:
diff changeset
   505
    gint status(KErrNotFound);
hgs
parents:
diff changeset
   506
hgs
parents:
diff changeset
   507
#ifdef __PROFILING_ENABLED__
hgs
parents:
diff changeset
   508
    TAG_CALLBACK_TIME_PROFILING_START;
hgs
parents:
diff changeset
   509
#endif //__PROFILING_ENABLED__
hgs
parents:
diff changeset
   510
hgs
parents:
diff changeset
   511
    if (iFactory)
hgs
parents:
diff changeset
   512
        {
hgs
parents:
diff changeset
   513
        iCallType = calltype;
hgs
parents:
diff changeset
   514
hgs
parents:
diff changeset
   515
        if (!iTmsCall)
hgs
parents:
diff changeset
   516
            {
hgs
parents:
diff changeset
   517
            gboolean issupported(FALSE);
hgs
parents:
diff changeset
   518
            iFactory->IsCallTypeSupported(iCallType, issupported);
hgs
parents:
diff changeset
   519
            if (issupported)
hgs
parents:
diff changeset
   520
                {
hgs
parents:
diff changeset
   521
                status = iFactory->CreateCall(iCallType, iTmsCall);
hgs
parents:
diff changeset
   522
                }
hgs
parents:
diff changeset
   523
            else
hgs
parents:
diff changeset
   524
                {
hgs
parents:
diff changeset
   525
                status = KErrNotSupported;
hgs
parents:
diff changeset
   526
                }
hgs
parents:
diff changeset
   527
            }
hgs
parents:
diff changeset
   528
hgs
parents:
diff changeset
   529
        iCallType = iTmsCall->GetCallType();
hgs
parents:
diff changeset
   530
hgs
parents:
diff changeset
   531
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   532
            {
hgs
parents:
diff changeset
   533
            DisplayText("Tms call created");
hgs
parents:
diff changeset
   534
            }
hgs
parents:
diff changeset
   535
        else
hgs
parents:
diff changeset
   536
            {
hgs
parents:
diff changeset
   537
            DisplayText("Tms call creation failed ", status);
hgs
parents:
diff changeset
   538
            }
hgs
parents:
diff changeset
   539
        }
hgs
parents:
diff changeset
   540
    if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   541
        {
hgs
parents:
diff changeset
   542
        status = CreateUplink();
hgs
parents:
diff changeset
   543
        }
hgs
parents:
diff changeset
   544
    if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   545
        {
hgs
parents:
diff changeset
   546
        status = CreateDownlink();
hgs
parents:
diff changeset
   547
        }
hgs
parents:
diff changeset
   548
    if (iCallType == TMS_CALL_IP)
hgs
parents:
diff changeset
   549
        {
hgs
parents:
diff changeset
   550
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   551
            {
hgs
parents:
diff changeset
   552
            status = CreateMicSource();
hgs
parents:
diff changeset
   553
            status |= AddMicSourceToStream();
hgs
parents:
diff changeset
   554
            status |= CreateClientSink();
hgs
parents:
diff changeset
   555
            status |= AddClientSinkToStream();
hgs
parents:
diff changeset
   556
            }
hgs
parents:
diff changeset
   557
hgs
parents:
diff changeset
   558
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   559
            {
hgs
parents:
diff changeset
   560
            status |= CreateClientSource();
hgs
parents:
diff changeset
   561
            status |= AddClientSourceToStream();
hgs
parents:
diff changeset
   562
            status |= CreateSpeakerSink();
hgs
parents:
diff changeset
   563
            status |= AddSpeakerSinkToStream();
hgs
parents:
diff changeset
   564
            }
hgs
parents:
diff changeset
   565
        }
hgs
parents:
diff changeset
   566
    else if (iCallType == TMS_CALL_CS)
hgs
parents:
diff changeset
   567
        {
hgs
parents:
diff changeset
   568
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   569
            {
hgs
parents:
diff changeset
   570
            status = CreateMicSource();
hgs
parents:
diff changeset
   571
            status |= AddMicSourceToStream();
hgs
parents:
diff changeset
   572
            status |= CreateModemSink();
hgs
parents:
diff changeset
   573
            status |= AddModemSinkToStream();
hgs
parents:
diff changeset
   574
            }
hgs
parents:
diff changeset
   575
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   576
            {
hgs
parents:
diff changeset
   577
            status = CreateModemSource();
hgs
parents:
diff changeset
   578
            status |= AddModemSourceToStream();
hgs
parents:
diff changeset
   579
            status |= CreateSpeakerSink();
hgs
parents:
diff changeset
   580
            status |= AddSpeakerSinkToStream();
hgs
parents:
diff changeset
   581
            }
hgs
parents:
diff changeset
   582
        }
hgs
parents:
diff changeset
   583
hgs
parents:
diff changeset
   584
    if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   585
        {
hgs
parents:
diff changeset
   586
        status = CreateVolumeEffect();
hgs
parents:
diff changeset
   587
        status |= AddVolumeEffectToStream();
hgs
parents:
diff changeset
   588
        status |= CreateGainEffect();
hgs
parents:
diff changeset
   589
        status |= AddGainEffectToStream();
hgs
parents:
diff changeset
   590
        }
hgs
parents:
diff changeset
   591
hgs
parents:
diff changeset
   592
    //NOTE: CS does not call SetDownlinkFormat/SetUplinkFormat
hgs
parents:
diff changeset
   593
    //so it is OK to open downlink and uplink at this point.
hgs
parents:
diff changeset
   594
    if (status == TMS_RESULT_SUCCESS && iCallType == TMS_CALL_CS)
hgs
parents:
diff changeset
   595
        {
hgs
parents:
diff changeset
   596
        // To avoid asyc calback racing situation, it may be safer to
hgs
parents:
diff changeset
   597
        // start second stream after receiving TMS_STREAM_INITIALIZED event.
hgs
parents:
diff changeset
   598
        // But for now, let's try opening both at the same time.
hgs
parents:
diff changeset
   599
        OpenDownlink();
hgs
parents:
diff changeset
   600
        OpenUplink();
hgs
parents:
diff changeset
   601
        }
hgs
parents:
diff changeset
   602
    }
hgs
parents:
diff changeset
   603
hgs
parents:
diff changeset
   604
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   605
// CTmsTestEngine::GetSupportedDownlinkFormats
hgs
parents:
diff changeset
   606
//
hgs
parents:
diff changeset
   607
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   608
//
hgs
parents:
diff changeset
   609
void CTmsTestEngine::GetSupportedDownlinkFormats(TBool aDisplayList)
hgs
parents:
diff changeset
   610
    {
hgs
parents:
diff changeset
   611
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   612
hgs
parents:
diff changeset
   613
    if (iFactory)
hgs
parents:
diff changeset
   614
        {
hgs
parents:
diff changeset
   615
        status = iFactory->GetSupportedFormats(TMS_STREAM_DOWNLINK, iDnlCodecs);
hgs
parents:
diff changeset
   616
hgs
parents:
diff changeset
   617
        if (status != TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   618
            {
hgs
parents:
diff changeset
   619
            DisplayText("DNL Codecs retrieve error: ", status);
hgs
parents:
diff changeset
   620
            }
hgs
parents:
diff changeset
   621
hgs
parents:
diff changeset
   622
        if (iDnlCodecs.size() > 0 && aDisplayList)
hgs
parents:
diff changeset
   623
            {
hgs
parents:
diff changeset
   624
            DisplayText("Supported DNL codecs");
hgs
parents:
diff changeset
   625
            std::vector<TMSFormat*>::iterator itDnlCodecs = iDnlCodecs.begin();
hgs
parents:
diff changeset
   626
            TMSFormatType fmttype;
hgs
parents:
diff changeset
   627
            for (; itDnlCodecs < iDnlCodecs.end(); itDnlCodecs++)
hgs
parents:
diff changeset
   628
                {
hgs
parents:
diff changeset
   629
                (*itDnlCodecs)->GetType(fmttype);
hgs
parents:
diff changeset
   630
                DisplayFormat(fmttype);
hgs
parents:
diff changeset
   631
                }
hgs
parents:
diff changeset
   632
            gint size = iDnlCodecs.size();
hgs
parents:
diff changeset
   633
            for (gint i = 0; i < size; i++)
hgs
parents:
diff changeset
   634
                {
hgs
parents:
diff changeset
   635
                itDnlCodecs = iDnlCodecs.begin();
hgs
parents:
diff changeset
   636
                iFactory->DeleteFormat(*itDnlCodecs);
hgs
parents:
diff changeset
   637
                iDnlCodecs.erase(itDnlCodecs);
hgs
parents:
diff changeset
   638
                }
hgs
parents:
diff changeset
   639
            }
hgs
parents:
diff changeset
   640
        }
hgs
parents:
diff changeset
   641
    }
hgs
parents:
diff changeset
   642
hgs
parents:
diff changeset
   643
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   644
// CTmsTestEngine::GetSupportedUplinkFormats
hgs
parents:
diff changeset
   645
//
hgs
parents:
diff changeset
   646
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   647
//
hgs
parents:
diff changeset
   648
void CTmsTestEngine::GetSupportedUplinkFormats(TBool aDisplayList)
hgs
parents:
diff changeset
   649
    {
hgs
parents:
diff changeset
   650
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   651
hgs
parents:
diff changeset
   652
    if (iFactory)
hgs
parents:
diff changeset
   653
        {
hgs
parents:
diff changeset
   654
        status = iFactory->GetSupportedFormats(TMS_STREAM_UPLINK, iUplCodecs);
hgs
parents:
diff changeset
   655
        if (status != TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   656
            {
hgs
parents:
diff changeset
   657
            DisplayText("UPL Codecs retrieve error: ", status);
hgs
parents:
diff changeset
   658
            }
hgs
parents:
diff changeset
   659
hgs
parents:
diff changeset
   660
        if (iUplCodecs.size() > 0 && aDisplayList)
hgs
parents:
diff changeset
   661
            {
hgs
parents:
diff changeset
   662
            DisplayText("Supported UPL codecs");
hgs
parents:
diff changeset
   663
            std::vector<TMSFormat*>::iterator codecs = iUplCodecs.begin();
hgs
parents:
diff changeset
   664
            TMSFormatType fmttype;
hgs
parents:
diff changeset
   665
            for (; codecs < iUplCodecs.end(); codecs++)
hgs
parents:
diff changeset
   666
                {
hgs
parents:
diff changeset
   667
                (*codecs)->GetType(fmttype);
hgs
parents:
diff changeset
   668
                DisplayFormat(fmttype);
hgs
parents:
diff changeset
   669
                }
hgs
parents:
diff changeset
   670
            gint size = iUplCodecs.size();
hgs
parents:
diff changeset
   671
            for (gint i = 0; i < size; i++)
hgs
parents:
diff changeset
   672
                {
hgs
parents:
diff changeset
   673
                codecs = iUplCodecs.begin();
hgs
parents:
diff changeset
   674
                iFactory->DeleteFormat(*codecs);
hgs
parents:
diff changeset
   675
                iUplCodecs.erase(codecs);
hgs
parents:
diff changeset
   676
                }
hgs
parents:
diff changeset
   677
            }
hgs
parents:
diff changeset
   678
        }
hgs
parents:
diff changeset
   679
    }
hgs
parents:
diff changeset
   680
hgs
parents:
diff changeset
   681
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   682
// CTmsTestEngine::DisplayFormat
hgs
parents:
diff changeset
   683
//
hgs
parents:
diff changeset
   684
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   685
//
hgs
parents:
diff changeset
   686
void CTmsTestEngine::DisplayFormat(TMSFormatType aFormat)
hgs
parents:
diff changeset
   687
    {
hgs
parents:
diff changeset
   688
    switch (aFormat)
hgs
parents:
diff changeset
   689
        {
hgs
parents:
diff changeset
   690
        case TMS_FORMAT_AMR:
hgs
parents:
diff changeset
   691
            DisplayText("AMR-NB");
hgs
parents:
diff changeset
   692
            break;
hgs
parents:
diff changeset
   693
        case TMS_FORMAT_G711:
hgs
parents:
diff changeset
   694
            DisplayText("G.711");
hgs
parents:
diff changeset
   695
            break;
hgs
parents:
diff changeset
   696
        case TMS_FORMAT_G729:
hgs
parents:
diff changeset
   697
            DisplayText("G.729");
hgs
parents:
diff changeset
   698
            break;
hgs
parents:
diff changeset
   699
        case TMS_FORMAT_ILBC:
hgs
parents:
diff changeset
   700
            DisplayText("iLBC");
hgs
parents:
diff changeset
   701
            break;
hgs
parents:
diff changeset
   702
        case TMS_FORMAT_PCM:
hgs
parents:
diff changeset
   703
            DisplayText("PCM-16");
hgs
parents:
diff changeset
   704
            break;
hgs
parents:
diff changeset
   705
        default:
hgs
parents:
diff changeset
   706
            break;
hgs
parents:
diff changeset
   707
        }
hgs
parents:
diff changeset
   708
    }
hgs
parents:
diff changeset
   709
hgs
parents:
diff changeset
   710
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   711
// CTmsTestEngine::SetDownlinkFormat()
hgs
parents:
diff changeset
   712
//
hgs
parents:
diff changeset
   713
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   714
//
hgs
parents:
diff changeset
   715
void CTmsTestEngine::SetDownlinkFormat(TMSFormatType aCodecFormat)
hgs
parents:
diff changeset
   716
    {
hgs
parents:
diff changeset
   717
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   718
hgs
parents:
diff changeset
   719
    if (!iTmsCall)
hgs
parents:
diff changeset
   720
        {
hgs
parents:
diff changeset
   721
        SetCallType(TMS_CALL_IP);
hgs
parents:
diff changeset
   722
        }
hgs
parents:
diff changeset
   723
    if (iFactory && iDecFormatIntfc)
hgs
parents:
diff changeset
   724
        {
hgs
parents:
diff changeset
   725
        iFactory->DeleteFormat(iDecFormatIntfc);
hgs
parents:
diff changeset
   726
        }
hgs
parents:
diff changeset
   727
hgs
parents:
diff changeset
   728
    iDnLinkCodec = aCodecFormat;
hgs
parents:
diff changeset
   729
hgs
parents:
diff changeset
   730
    if (iFactory && iTmsDnlink)
hgs
parents:
diff changeset
   731
        {
hgs
parents:
diff changeset
   732
        status = iFactory->CreateFormat(iDnLinkCodec, iDecFormatIntfc);
hgs
parents:
diff changeset
   733
        status |= iTmsDnlink->SetFormat(iDecFormatIntfc);
hgs
parents:
diff changeset
   734
        }
hgs
parents:
diff changeset
   735
hgs
parents:
diff changeset
   736
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   737
    TMSFormatType ft;
hgs
parents:
diff changeset
   738
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   739
hgs
parents:
diff changeset
   740
    switch (iDnLinkCodec)
hgs
parents:
diff changeset
   741
        {
hgs
parents:
diff changeset
   742
        case TMS_FORMAT_G711:
hgs
parents:
diff changeset
   743
            {
hgs
parents:
diff changeset
   744
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   745
            status = iDecFormatIntfc->GetType(ft);
hgs
parents:
diff changeset
   746
            if (ft != TMS_FORMAT_G711)
hgs
parents:
diff changeset
   747
                {
hgs
parents:
diff changeset
   748
                status = KErrArgument;
hgs
parents:
diff changeset
   749
                }
hgs
parents:
diff changeset
   750
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   751
            DisplayText("G.711 DNL Codec Set");
hgs
parents:
diff changeset
   752
            break;
hgs
parents:
diff changeset
   753
            }
hgs
parents:
diff changeset
   754
        case TMS_FORMAT_G729:
hgs
parents:
diff changeset
   755
            {
hgs
parents:
diff changeset
   756
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   757
            status = iDecFormatIntfc->GetType(ft);
hgs
parents:
diff changeset
   758
            if (ft != TMS_FORMAT_G729)
hgs
parents:
diff changeset
   759
                {
hgs
parents:
diff changeset
   760
                status = KErrArgument;
hgs
parents:
diff changeset
   761
                }
hgs
parents:
diff changeset
   762
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   763
            DisplayText("G.729 DNL Codec Set");
hgs
parents:
diff changeset
   764
            break;
hgs
parents:
diff changeset
   765
            }
hgs
parents:
diff changeset
   766
        case TMS_FORMAT_ILBC:
hgs
parents:
diff changeset
   767
            {
hgs
parents:
diff changeset
   768
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   769
            status = iDecFormatIntfc->GetType(ft);
hgs
parents:
diff changeset
   770
            if (ft != TMS_FORMAT_ILBC)
hgs
parents:
diff changeset
   771
                {
hgs
parents:
diff changeset
   772
                status = KErrArgument;
hgs
parents:
diff changeset
   773
                }
hgs
parents:
diff changeset
   774
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   775
            DisplayText("iLBC DNL Codec Set");
hgs
parents:
diff changeset
   776
            break;
hgs
parents:
diff changeset
   777
            }
hgs
parents:
diff changeset
   778
        case TMS_FORMAT_AMR:
hgs
parents:
diff changeset
   779
            {
hgs
parents:
diff changeset
   780
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   781
            status = iDecFormatIntfc->GetType(ft);
hgs
parents:
diff changeset
   782
            if (ft != TMS_FORMAT_AMR)
hgs
parents:
diff changeset
   783
                {
hgs
parents:
diff changeset
   784
                status = KErrArgument;
hgs
parents:
diff changeset
   785
                }
hgs
parents:
diff changeset
   786
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   787
            DisplayText("AMR-NB DNL Codec Set");
hgs
parents:
diff changeset
   788
            break;
hgs
parents:
diff changeset
   789
            }
hgs
parents:
diff changeset
   790
        case TMS_FORMAT_PCM:
hgs
parents:
diff changeset
   791
            {
hgs
parents:
diff changeset
   792
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   793
            status = iDecFormatIntfc->GetType(ft);
hgs
parents:
diff changeset
   794
            if (ft != TMS_FORMAT_PCM)
hgs
parents:
diff changeset
   795
                {
hgs
parents:
diff changeset
   796
                status = KErrArgument;
hgs
parents:
diff changeset
   797
                }
hgs
parents:
diff changeset
   798
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   799
            DisplayText("PCM-16 DNL Codec Set");
hgs
parents:
diff changeset
   800
            break;
hgs
parents:
diff changeset
   801
            }
hgs
parents:
diff changeset
   802
        default:
hgs
parents:
diff changeset
   803
            {
hgs
parents:
diff changeset
   804
            status = KErrNotSupported;
hgs
parents:
diff changeset
   805
            }
hgs
parents:
diff changeset
   806
        }
hgs
parents:
diff changeset
   807
hgs
parents:
diff changeset
   808
    if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   809
        {
hgs
parents:
diff changeset
   810
        OpenDownlink(); //Initialize DNL
hgs
parents:
diff changeset
   811
        }
hgs
parents:
diff changeset
   812
    }
hgs
parents:
diff changeset
   813
hgs
parents:
diff changeset
   814
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   815
// CTmsTestEngine::OpenDownlink()
hgs
parents:
diff changeset
   816
//
hgs
parents:
diff changeset
   817
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   818
//
hgs
parents:
diff changeset
   819
void CTmsTestEngine::OpenDownlink()
hgs
parents:
diff changeset
   820
    {
hgs
parents:
diff changeset
   821
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   822
hgs
parents:
diff changeset
   823
    if (iTmsDnlink)
hgs
parents:
diff changeset
   824
        {
hgs
parents:
diff changeset
   825
        iTmsDnlink->AddObserver(*this, NULL);
hgs
parents:
diff changeset
   826
        status = iTmsDnlink->Init();
hgs
parents:
diff changeset
   827
        if (status != TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   828
            {
hgs
parents:
diff changeset
   829
            DisplayText("DNL init error ", status);
hgs
parents:
diff changeset
   830
            }
hgs
parents:
diff changeset
   831
        }
hgs
parents:
diff changeset
   832
    }
hgs
parents:
diff changeset
   833
hgs
parents:
diff changeset
   834
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   835
// CTmsTestEngine::StartDownlink()
hgs
parents:
diff changeset
   836
//
hgs
parents:
diff changeset
   837
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   838
//
hgs
parents:
diff changeset
   839
void CTmsTestEngine::StartDownlink()
hgs
parents:
diff changeset
   840
    {
hgs
parents:
diff changeset
   841
    if (iDnLinkStatus == EReady)
hgs
parents:
diff changeset
   842
        {
hgs
parents:
diff changeset
   843
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   844
        ConfigureDecoder();
hgs
parents:
diff changeset
   845
        gint id = iTmsDnlink->GetStreamId();
hgs
parents:
diff changeset
   846
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   847
hgs
parents:
diff changeset
   848
        iTmsDnlink->Start(2); //retry for ~2 sec
hgs
parents:
diff changeset
   849
        iDnLinkStatus = EStreaming;
hgs
parents:
diff changeset
   850
#ifdef __WINSCW__
hgs
parents:
diff changeset
   851
        iBufIndex = 0;
hgs
parents:
diff changeset
   852
#endif //__WINSCW__
hgs
parents:
diff changeset
   853
        }
hgs
parents:
diff changeset
   854
    else
hgs
parents:
diff changeset
   855
        {
hgs
parents:
diff changeset
   856
        DisplayText("DNL not ready");
hgs
parents:
diff changeset
   857
        }
hgs
parents:
diff changeset
   858
    }
hgs
parents:
diff changeset
   859
hgs
parents:
diff changeset
   860
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   861
// CTmsTestEngine::StopDownlink()
hgs
parents:
diff changeset
   862
//
hgs
parents:
diff changeset
   863
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   864
//
hgs
parents:
diff changeset
   865
void CTmsTestEngine::StopDownlink()
hgs
parents:
diff changeset
   866
    {
hgs
parents:
diff changeset
   867
    if (iDnLinkStatus == EStreaming)
hgs
parents:
diff changeset
   868
        {
hgs
parents:
diff changeset
   869
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   870
        iTmsDnlink->Pause();
hgs
parents:
diff changeset
   871
        iTmsDnlink->GetState();
hgs
parents:
diff changeset
   872
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
   873
hgs
parents:
diff changeset
   874
        iTmsDnlink->Stop();
hgs
parents:
diff changeset
   875
        iDnLinkStatus = EReady;
hgs
parents:
diff changeset
   876
        iOneTouchLoopback = EFalse;
hgs
parents:
diff changeset
   877
        DisplayText("DNL stopped");
hgs
parents:
diff changeset
   878
        }
hgs
parents:
diff changeset
   879
    }
hgs
parents:
diff changeset
   880
hgs
parents:
diff changeset
   881
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   882
// CTmsTestEngine::CloseDownlink()
hgs
parents:
diff changeset
   883
//
hgs
parents:
diff changeset
   884
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
   885
//
hgs
parents:
diff changeset
   886
void CTmsTestEngine::CloseDownlink()
hgs
parents:
diff changeset
   887
    {
hgs
parents:
diff changeset
   888
    if (iTmsDnlink && iDnLinkStatus != ENotReady)
hgs
parents:
diff changeset
   889
        {
hgs
parents:
diff changeset
   890
        if (iTmsDnlinkEffect)
hgs
parents:
diff changeset
   891
            {
hgs
parents:
diff changeset
   892
            iTmsDnlink->RemoveEffect(iTmsDnlinkEffect);
hgs
parents:
diff changeset
   893
            }
hgs
parents:
diff changeset
   894
        if (iTmsClientSource)
hgs
parents:
diff changeset
   895
            {
hgs
parents:
diff changeset
   896
            iTmsDnlink->RemoveSource(iTmsClientSource);
hgs
parents:
diff changeset
   897
            }
hgs
parents:
diff changeset
   898
        if (iTmsModemSource)
hgs
parents:
diff changeset
   899
            {
hgs
parents:
diff changeset
   900
            iTmsDnlink->RemoveSource(iTmsModemSource);
hgs
parents:
diff changeset
   901
            }
hgs
parents:
diff changeset
   902
        if (iTmsSpeakerSink)
hgs
parents:
diff changeset
   903
            {
hgs
parents:
diff changeset
   904
            iTmsDnlink->RemoveSink(iTmsSpeakerSink);
hgs
parents:
diff changeset
   905
            }
hgs
parents:
diff changeset
   906
        iTmsDnlink->Deinit();
hgs
parents:
diff changeset
   907
        iDnLinkStatus = ENotReady;
hgs
parents:
diff changeset
   908
        }
hgs
parents:
diff changeset
   909
    iPlayBufReady = EFalse;
hgs
parents:
diff changeset
   910
    iOneTouchLoopback = EFalse;
hgs
parents:
diff changeset
   911
    }
hgs
parents:
diff changeset
   912
hgs
parents:
diff changeset
   913
gint CTmsTestEngine::CreateVolumeEffect()
hgs
parents:
diff changeset
   914
    {
hgs
parents:
diff changeset
   915
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   916
hgs
parents:
diff changeset
   917
    if (iFactory && iTmsDnlink && !iTmsDnlinkEffect)
hgs
parents:
diff changeset
   918
        {
hgs
parents:
diff changeset
   919
        status = iFactory->CreateEffect(TMS_EFFECT_VOLUME, iTmsDnlinkEffect);
hgs
parents:
diff changeset
   920
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   921
            {
hgs
parents:
diff changeset
   922
            static_cast<TMSVolumeEffect*> (iTmsDnlinkEffect)->AddObserver(
hgs
parents:
diff changeset
   923
                    *this, NULL);
hgs
parents:
diff changeset
   924
            }
hgs
parents:
diff changeset
   925
        }
hgs
parents:
diff changeset
   926
    return status;
hgs
parents:
diff changeset
   927
    }
hgs
parents:
diff changeset
   928
hgs
parents:
diff changeset
   929
gint CTmsTestEngine::AddVolumeEffectToStream()
hgs
parents:
diff changeset
   930
    {
hgs
parents:
diff changeset
   931
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   932
hgs
parents:
diff changeset
   933
    if (iTmsDnlink && iTmsDnlinkEffect)
hgs
parents:
diff changeset
   934
        {
hgs
parents:
diff changeset
   935
        status = iTmsDnlink->AddEffect(iTmsDnlinkEffect);
hgs
parents:
diff changeset
   936
        }
hgs
parents:
diff changeset
   937
    return status;
hgs
parents:
diff changeset
   938
    }
hgs
parents:
diff changeset
   939
hgs
parents:
diff changeset
   940
gint CTmsTestEngine::CreateGainEffect()
hgs
parents:
diff changeset
   941
    {
hgs
parents:
diff changeset
   942
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   943
hgs
parents:
diff changeset
   944
    if (iFactory && iTmsUplink && !iTmsUplinkEffect)
hgs
parents:
diff changeset
   945
        {
hgs
parents:
diff changeset
   946
        status = iFactory->CreateEffect(TMS_EFFECT_GAIN, iTmsUplinkEffect);
hgs
parents:
diff changeset
   947
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   948
            {
hgs
parents:
diff changeset
   949
            static_cast<TMSGainEffect*> (iTmsUplinkEffect)->AddObserver(*this,
hgs
parents:
diff changeset
   950
                    NULL);
hgs
parents:
diff changeset
   951
            }
hgs
parents:
diff changeset
   952
        }
hgs
parents:
diff changeset
   953
    return status;
hgs
parents:
diff changeset
   954
    }
hgs
parents:
diff changeset
   955
hgs
parents:
diff changeset
   956
gint CTmsTestEngine::CreateGlobalRouting()
hgs
parents:
diff changeset
   957
    {
hgs
parents:
diff changeset
   958
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   959
hgs
parents:
diff changeset
   960
    if (iFactory)
hgs
parents:
diff changeset
   961
        {
hgs
parents:
diff changeset
   962
        status = iFactory->CreateGlobalRouting(iTmsGlobalRouting);
hgs
parents:
diff changeset
   963
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   964
            {
hgs
parents:
diff changeset
   965
            DisplayText("TMS routing created");
hgs
parents:
diff changeset
   966
            iTmsGlobalRouting->AddObserver(*this, NULL);
hgs
parents:
diff changeset
   967
            }
hgs
parents:
diff changeset
   968
        else
hgs
parents:
diff changeset
   969
            {
hgs
parents:
diff changeset
   970
            DisplayText("Global routing failed: ", status);
hgs
parents:
diff changeset
   971
            }
hgs
parents:
diff changeset
   972
        }
hgs
parents:
diff changeset
   973
    return status;
hgs
parents:
diff changeset
   974
    }
hgs
parents:
diff changeset
   975
hgs
parents:
diff changeset
   976
gint CTmsTestEngine::AddGainEffectToStream()
hgs
parents:
diff changeset
   977
    {
hgs
parents:
diff changeset
   978
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   979
hgs
parents:
diff changeset
   980
    if (iTmsUplink && iTmsUplinkEffect)
hgs
parents:
diff changeset
   981
        {
hgs
parents:
diff changeset
   982
        status = iTmsUplink->AddEffect(iTmsUplinkEffect);
hgs
parents:
diff changeset
   983
        }
hgs
parents:
diff changeset
   984
    return status;
hgs
parents:
diff changeset
   985
    }
hgs
parents:
diff changeset
   986
hgs
parents:
diff changeset
   987
gint CTmsTestEngine::CreateRingTonePlayer()
hgs
parents:
diff changeset
   988
    {
hgs
parents:
diff changeset
   989
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
   990
hgs
parents:
diff changeset
   991
    if (iFactory)
hgs
parents:
diff changeset
   992
        {
hgs
parents:
diff changeset
   993
        status = iFactory->CreateRingTonePlayer(iTmsRingTonePlayer);
hgs
parents:
diff changeset
   994
hgs
parents:
diff changeset
   995
        if (iTmsRingTonePlayer && status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
   996
            {
hgs
parents:
diff changeset
   997
            iTmsRingTonePlayer->AddObserver(*this, NULL);
hgs
parents:
diff changeset
   998
            DisplayText("RingTone Player created");
hgs
parents:
diff changeset
   999
            }
hgs
parents:
diff changeset
  1000
        else
hgs
parents:
diff changeset
  1001
            {
hgs
parents:
diff changeset
  1002
            DisplayText("RT create failed: ", status);
hgs
parents:
diff changeset
  1003
            }
hgs
parents:
diff changeset
  1004
        }
hgs
parents:
diff changeset
  1005
    return status;
hgs
parents:
diff changeset
  1006
    }
hgs
parents:
diff changeset
  1007
hgs
parents:
diff changeset
  1008
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1009
// CTmsTestEngine::ConfigureDecoder()
hgs
parents:
diff changeset
  1010
//
hgs
parents:
diff changeset
  1011
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1012
//
hgs
parents:
diff changeset
  1013
void CTmsTestEngine::ConfigureDecoder()
hgs
parents:
diff changeset
  1014
    {
hgs
parents:
diff changeset
  1015
    // NOTE: These calls can ONLY be made when codec is in a STOPPED state.
hgs
parents:
diff changeset
  1016
hgs
parents:
diff changeset
  1017
    switch (iDnLinkCodec)
hgs
parents:
diff changeset
  1018
        {
hgs
parents:
diff changeset
  1019
        case TMS_FORMAT_G711:
hgs
parents:
diff changeset
  1020
            {
hgs
parents:
diff changeset
  1021
            gboolean cng(TRUE);
hgs
parents:
diff changeset
  1022
            static_cast<TMSG711Format*> (iDecFormatIntfc)->SetCNG(cng);
hgs
parents:
diff changeset
  1023
            static_cast<TMSG711Format*> (iDecFormatIntfc)->GetCNG(cng);
hgs
parents:
diff changeset
  1024
            gboolean plc(FALSE);
hgs
parents:
diff changeset
  1025
            static_cast<TMSG711Format*> (iDecFormatIntfc)->SetPlc(plc);
hgs
parents:
diff changeset
  1026
            static_cast<TMSG711Format*> (iDecFormatIntfc)->GetPlc(plc);
hgs
parents:
diff changeset
  1027
            TMSG711CodecMode mode(TMS_G711_CODEC_MODE_ALAW);
hgs
parents:
diff changeset
  1028
            static_cast<TMSG711Format*> (iDecFormatIntfc)->SetMode(mode);
hgs
parents:
diff changeset
  1029
            static_cast<TMSG711Format*> (iDecFormatIntfc)->GetMode(mode);
hgs
parents:
diff changeset
  1030
            break;
hgs
parents:
diff changeset
  1031
            }
hgs
parents:
diff changeset
  1032
        case TMS_FORMAT_ILBC:
hgs
parents:
diff changeset
  1033
            {
hgs
parents:
diff changeset
  1034
            gboolean cng(TRUE);
hgs
parents:
diff changeset
  1035
            static_cast<TMSILBCFormat*> (iDecFormatIntfc)->SetCNG(cng);
hgs
parents:
diff changeset
  1036
            static_cast<TMSILBCFormat*> (iDecFormatIntfc)->GetCNG(cng);
hgs
parents:
diff changeset
  1037
            TMSILBCCodecMode mode(TMS_ILBC_CODEC_MODE_20MS_FRAME);
hgs
parents:
diff changeset
  1038
            static_cast<TMSILBCFormat*> (iDecFormatIntfc)->SetMode(mode);
hgs
parents:
diff changeset
  1039
            static_cast<TMSILBCFormat*> (iDecFormatIntfc)->GetMode(mode);
hgs
parents:
diff changeset
  1040
            break;
hgs
parents:
diff changeset
  1041
            }
hgs
parents:
diff changeset
  1042
        case TMS_FORMAT_G729:
hgs
parents:
diff changeset
  1043
        case TMS_FORMAT_AMR:
hgs
parents:
diff changeset
  1044
        case TMS_FORMAT_PCM:
hgs
parents:
diff changeset
  1045
        default:
hgs
parents:
diff changeset
  1046
            {
hgs
parents:
diff changeset
  1047
            break;
hgs
parents:
diff changeset
  1048
            }
hgs
parents:
diff changeset
  1049
        }
hgs
parents:
diff changeset
  1050
    }
hgs
parents:
diff changeset
  1051
hgs
parents:
diff changeset
  1052
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1053
// CTmsTestEngine::GetMaxVolume()
hgs
parents:
diff changeset
  1054
//
hgs
parents:
diff changeset
  1055
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1056
//
hgs
parents:
diff changeset
  1057
void CTmsTestEngine::GetMaxVolume()
hgs
parents:
diff changeset
  1058
    {
hgs
parents:
diff changeset
  1059
    if (iTmsDnlinkEffect)
hgs
parents:
diff changeset
  1060
        {
hgs
parents:
diff changeset
  1061
        static_cast<TMSVolumeEffect*> (iTmsDnlinkEffect)->GetMaxLevel(
hgs
parents:
diff changeset
  1062
                iMaxVolume);
hgs
parents:
diff changeset
  1063
        }
hgs
parents:
diff changeset
  1064
    DisplayText("Max Volume: ", iMaxVolume);
hgs
parents:
diff changeset
  1065
    }
hgs
parents:
diff changeset
  1066
hgs
parents:
diff changeset
  1067
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1068
// CTmsTestEngine::GetVolume
hgs
parents:
diff changeset
  1069
//
hgs
parents:
diff changeset
  1070
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1071
//
hgs
parents:
diff changeset
  1072
void CTmsTestEngine::GetVolume()
hgs
parents:
diff changeset
  1073
    {
hgs
parents:
diff changeset
  1074
    if (iTmsDnlinkEffect)
hgs
parents:
diff changeset
  1075
        {
hgs
parents:
diff changeset
  1076
        static_cast<TMSVolumeEffect*> (iTmsDnlinkEffect)->GetLevel(iVolume);
hgs
parents:
diff changeset
  1077
        }
hgs
parents:
diff changeset
  1078
    DisplayText("Volume ", iVolume);
hgs
parents:
diff changeset
  1079
    }
hgs
parents:
diff changeset
  1080
hgs
parents:
diff changeset
  1081
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1082
// CTmsTestEngine::MuteSpeaker()
hgs
parents:
diff changeset
  1083
//
hgs
parents:
diff changeset
  1084
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1085
//
hgs
parents:
diff changeset
  1086
void CTmsTestEngine::MuteSpeaker()
hgs
parents:
diff changeset
  1087
    {
hgs
parents:
diff changeset
  1088
    SetVolume(0);
hgs
parents:
diff changeset
  1089
    }
hgs
parents:
diff changeset
  1090
hgs
parents:
diff changeset
  1091
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1092
// CTmsTestEngine::SetMaxVolume
hgs
parents:
diff changeset
  1093
//
hgs
parents:
diff changeset
  1094
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1095
//
hgs
parents:
diff changeset
  1096
void CTmsTestEngine::SetMaxVolume()
hgs
parents:
diff changeset
  1097
    {
hgs
parents:
diff changeset
  1098
    SetVolume(iMaxVolume);
hgs
parents:
diff changeset
  1099
    }
hgs
parents:
diff changeset
  1100
hgs
parents:
diff changeset
  1101
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1102
// CTmsTestEngine::SetVolume
hgs
parents:
diff changeset
  1103
//
hgs
parents:
diff changeset
  1104
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1105
//
hgs
parents:
diff changeset
  1106
void CTmsTestEngine::SetVolume(guint aVolume)
hgs
parents:
diff changeset
  1107
    {
hgs
parents:
diff changeset
  1108
    iVolume = aVolume;
hgs
parents:
diff changeset
  1109
hgs
parents:
diff changeset
  1110
    if (iTmsDnlinkEffect)
hgs
parents:
diff changeset
  1111
        {
hgs
parents:
diff changeset
  1112
        static_cast<TMSVolumeEffect*> (iTmsDnlinkEffect)->SetLevel(aVolume);
hgs
parents:
diff changeset
  1113
        }
hgs
parents:
diff changeset
  1114
    else
hgs
parents:
diff changeset
  1115
        {
hgs
parents:
diff changeset
  1116
        DisplayText("Create Dnlink VolumeEffect first");
hgs
parents:
diff changeset
  1117
        }
hgs
parents:
diff changeset
  1118
    }
hgs
parents:
diff changeset
  1119
hgs
parents:
diff changeset
  1120
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1121
// CTmsTestEngine::VolumeUp()
hgs
parents:
diff changeset
  1122
//
hgs
parents:
diff changeset
  1123
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1124
//
hgs
parents:
diff changeset
  1125
void CTmsTestEngine::VolumeUp()
hgs
parents:
diff changeset
  1126
    {
hgs
parents:
diff changeset
  1127
    if ((iDnLinkStatus == EReady || iDnLinkStatus == EStreaming)
hgs
parents:
diff changeset
  1128
            && iTmsDnlinkEffect)
hgs
parents:
diff changeset
  1129
        {
hgs
parents:
diff changeset
  1130
        if (iVolume < iMaxVolume)
hgs
parents:
diff changeset
  1131
            {
hgs
parents:
diff changeset
  1132
            static_cast<TMSVolumeEffect*> (iTmsDnlinkEffect)->SetLevel(
hgs
parents:
diff changeset
  1133
                    ++iVolume);
hgs
parents:
diff changeset
  1134
            }
hgs
parents:
diff changeset
  1135
        }
hgs
parents:
diff changeset
  1136
    else
hgs
parents:
diff changeset
  1137
        {
hgs
parents:
diff changeset
  1138
        DisplayText("Create DNL first");
hgs
parents:
diff changeset
  1139
        }
hgs
parents:
diff changeset
  1140
    }
hgs
parents:
diff changeset
  1141
hgs
parents:
diff changeset
  1142
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1143
// CTmsTestEngine::VolumeDn()
hgs
parents:
diff changeset
  1144
//
hgs
parents:
diff changeset
  1145
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1146
//
hgs
parents:
diff changeset
  1147
void CTmsTestEngine::VolumeDn()
hgs
parents:
diff changeset
  1148
    {
hgs
parents:
diff changeset
  1149
    if ((iDnLinkStatus == EReady || iDnLinkStatus == EStreaming)
hgs
parents:
diff changeset
  1150
            && iTmsDnlinkEffect)
hgs
parents:
diff changeset
  1151
        {
hgs
parents:
diff changeset
  1152
        if (iVolume > 0)
hgs
parents:
diff changeset
  1153
            {
hgs
parents:
diff changeset
  1154
            static_cast<TMSVolumeEffect*> (iTmsDnlinkEffect)->SetLevel(
hgs
parents:
diff changeset
  1155
                    --iVolume);
hgs
parents:
diff changeset
  1156
            }
hgs
parents:
diff changeset
  1157
        }
hgs
parents:
diff changeset
  1158
    else
hgs
parents:
diff changeset
  1159
        {
hgs
parents:
diff changeset
  1160
        DisplayText("Open DNL first");
hgs
parents:
diff changeset
  1161
        }
hgs
parents:
diff changeset
  1162
    }
hgs
parents:
diff changeset
  1163
hgs
parents:
diff changeset
  1164
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1165
// CTmsTestEngine::OpenUplink()
hgs
parents:
diff changeset
  1166
//
hgs
parents:
diff changeset
  1167
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1168
//
hgs
parents:
diff changeset
  1169
void CTmsTestEngine::OpenUplink()
hgs
parents:
diff changeset
  1170
    {
hgs
parents:
diff changeset
  1171
    gint status = TMS_RESULT_SUCCESS;
hgs
parents:
diff changeset
  1172
hgs
parents:
diff changeset
  1173
    if (iTmsUplink)
hgs
parents:
diff changeset
  1174
        {
hgs
parents:
diff changeset
  1175
        iTmsUplink->AddObserver(*this, NULL);
hgs
parents:
diff changeset
  1176
        status = iTmsUplink->Init(); //retry for ~3 sec
hgs
parents:
diff changeset
  1177
        if (status != TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  1178
            {
hgs
parents:
diff changeset
  1179
            DisplayText("UPL init error: ", status);
hgs
parents:
diff changeset
  1180
            }
hgs
parents:
diff changeset
  1181
        }
hgs
parents:
diff changeset
  1182
    }
hgs
parents:
diff changeset
  1183
hgs
parents:
diff changeset
  1184
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1185
// CTmsTestEngine::StartUplink()
hgs
parents:
diff changeset
  1186
//
hgs
parents:
diff changeset
  1187
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1188
//
hgs
parents:
diff changeset
  1189
void CTmsTestEngine::StartUplink()
hgs
parents:
diff changeset
  1190
    {
hgs
parents:
diff changeset
  1191
    if (iUpLinkStatus == EReady)
hgs
parents:
diff changeset
  1192
        {
hgs
parents:
diff changeset
  1193
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
  1194
        ConfigureEncoder();
hgs
parents:
diff changeset
  1195
        ToggleVad();
hgs
parents:
diff changeset
  1196
        GetVad();
hgs
parents:
diff changeset
  1197
        GetSupportedBitrates();
hgs
parents:
diff changeset
  1198
        SelectMaxBitrate();
hgs
parents:
diff changeset
  1199
        GetBitrate();
hgs
parents:
diff changeset
  1200
        gint id = iTmsUplink->GetStreamId();
hgs
parents:
diff changeset
  1201
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
  1202
hgs
parents:
diff changeset
  1203
        iTmsUplink->Start(4); //retry for ~4 sec
hgs
parents:
diff changeset
  1204
        iUpLinkStatus = EStreaming;
hgs
parents:
diff changeset
  1205
        }
hgs
parents:
diff changeset
  1206
    else
hgs
parents:
diff changeset
  1207
        {
hgs
parents:
diff changeset
  1208
        DisplayText("UPL not ready");
hgs
parents:
diff changeset
  1209
        }
hgs
parents:
diff changeset
  1210
    }
hgs
parents:
diff changeset
  1211
hgs
parents:
diff changeset
  1212
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1213
// CTmsTestEngine::StopUplink()
hgs
parents:
diff changeset
  1214
//
hgs
parents:
diff changeset
  1215
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1216
//
hgs
parents:
diff changeset
  1217
void CTmsTestEngine::StopUplink()
hgs
parents:
diff changeset
  1218
    {
hgs
parents:
diff changeset
  1219
    if (iUpLinkStatus == EStreaming)
hgs
parents:
diff changeset
  1220
        {
hgs
parents:
diff changeset
  1221
        iTmsUplink->Stop();
hgs
parents:
diff changeset
  1222
        iUpLinkStatus = EReady;
hgs
parents:
diff changeset
  1223
        iOneTouchLoopback = EFalse;
hgs
parents:
diff changeset
  1224
        DisplayText("UPL stopped");
hgs
parents:
diff changeset
  1225
        }
hgs
parents:
diff changeset
  1226
    }
hgs
parents:
diff changeset
  1227
hgs
parents:
diff changeset
  1228
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1229
// CTmsTestEngine::CloseUplink()
hgs
parents:
diff changeset
  1230
//
hgs
parents:
diff changeset
  1231
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1232
//
hgs
parents:
diff changeset
  1233
void CTmsTestEngine::CloseUplink()
hgs
parents:
diff changeset
  1234
    {
hgs
parents:
diff changeset
  1235
    iRecBufReady = EFalse;
hgs
parents:
diff changeset
  1236
    iOneTouchLoopback = EFalse;
hgs
parents:
diff changeset
  1237
hgs
parents:
diff changeset
  1238
    if (iTmsUplink && iUpLinkStatus != ENotReady)
hgs
parents:
diff changeset
  1239
        {
hgs
parents:
diff changeset
  1240
        if (iTmsUplinkEffect)
hgs
parents:
diff changeset
  1241
            {
hgs
parents:
diff changeset
  1242
            iTmsUplink->RemoveEffect(iTmsUplinkEffect);
hgs
parents:
diff changeset
  1243
            }
hgs
parents:
diff changeset
  1244
        if (iTmsMicSource)
hgs
parents:
diff changeset
  1245
            {
hgs
parents:
diff changeset
  1246
            iTmsUplink->RemoveSource(iTmsMicSource);
hgs
parents:
diff changeset
  1247
            }
hgs
parents:
diff changeset
  1248
        if (iTmsClientSink)
hgs
parents:
diff changeset
  1249
            {
hgs
parents:
diff changeset
  1250
            iTmsUplink->RemoveSink(iTmsClientSink);
hgs
parents:
diff changeset
  1251
            }
hgs
parents:
diff changeset
  1252
        if (iTmsModemSink)
hgs
parents:
diff changeset
  1253
            {
hgs
parents:
diff changeset
  1254
            iTmsUplink->RemoveSink(iTmsModemSink);
hgs
parents:
diff changeset
  1255
            }
hgs
parents:
diff changeset
  1256
        iTmsUplink->Deinit();
hgs
parents:
diff changeset
  1257
        iUpLinkStatus = ENotReady;
hgs
parents:
diff changeset
  1258
        }
hgs
parents:
diff changeset
  1259
    }
hgs
parents:
diff changeset
  1260
hgs
parents:
diff changeset
  1261
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1262
// CTmsTestEngine::SetUplinkFormat()
hgs
parents:
diff changeset
  1263
//
hgs
parents:
diff changeset
  1264
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1265
//
hgs
parents:
diff changeset
  1266
void CTmsTestEngine::SetUplinkFormat(TMSFormatType aCodecFormat)
hgs
parents:
diff changeset
  1267
    {
hgs
parents:
diff changeset
  1268
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
  1269
hgs
parents:
diff changeset
  1270
    if (!iTmsCall)
hgs
parents:
diff changeset
  1271
        {
hgs
parents:
diff changeset
  1272
        SetCallType(TMS_CALL_IP);
hgs
parents:
diff changeset
  1273
        }
hgs
parents:
diff changeset
  1274
    if (iFactory && iEncFormatIntfc)
hgs
parents:
diff changeset
  1275
        {
hgs
parents:
diff changeset
  1276
        iFactory->DeleteFormat(iEncFormatIntfc);
hgs
parents:
diff changeset
  1277
        }
hgs
parents:
diff changeset
  1278
hgs
parents:
diff changeset
  1279
    iUpLinkCodec = aCodecFormat;
hgs
parents:
diff changeset
  1280
hgs
parents:
diff changeset
  1281
    if (iFactory && iTmsUplink)
hgs
parents:
diff changeset
  1282
        {
hgs
parents:
diff changeset
  1283
        status = iFactory->CreateFormat(iUpLinkCodec, iEncFormatIntfc);
hgs
parents:
diff changeset
  1284
        status |= iTmsUplink->SetFormat(iEncFormatIntfc);
hgs
parents:
diff changeset
  1285
        }
hgs
parents:
diff changeset
  1286
hgs
parents:
diff changeset
  1287
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
  1288
    TMSFormatType ft;
hgs
parents:
diff changeset
  1289
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
  1290
hgs
parents:
diff changeset
  1291
    switch (iUpLinkCodec)
hgs
parents:
diff changeset
  1292
        {
hgs
parents:
diff changeset
  1293
        case TMS_FORMAT_G711:
hgs
parents:
diff changeset
  1294
            {
hgs
parents:
diff changeset
  1295
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
  1296
            status = iEncFormatIntfc->GetType(ft);
hgs
parents:
diff changeset
  1297
            if (ft != TMS_FORMAT_G711)
hgs
parents:
diff changeset
  1298
                {
hgs
parents:
diff changeset
  1299
                status = KErrArgument;
hgs
parents:
diff changeset
  1300
                }
hgs
parents:
diff changeset
  1301
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
  1302
            DisplayText("G.711 UPL Codec Set");
hgs
parents:
diff changeset
  1303
            break;
hgs
parents:
diff changeset
  1304
            }
hgs
parents:
diff changeset
  1305
        case TMS_FORMAT_G729:
hgs
parents:
diff changeset
  1306
            {
hgs
parents:
diff changeset
  1307
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
  1308
            status = iEncFormatIntfc->GetType(ft);
hgs
parents:
diff changeset
  1309
            if (ft != TMS_FORMAT_G729)
hgs
parents:
diff changeset
  1310
                {
hgs
parents:
diff changeset
  1311
                status = KErrArgument;
hgs
parents:
diff changeset
  1312
                }
hgs
parents:
diff changeset
  1313
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
  1314
            DisplayText("G.729 UPL Codec Set");
hgs
parents:
diff changeset
  1315
            break;
hgs
parents:
diff changeset
  1316
            }
hgs
parents:
diff changeset
  1317
        case TMS_FORMAT_ILBC:
hgs
parents:
diff changeset
  1318
            {
hgs
parents:
diff changeset
  1319
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
  1320
            status = iEncFormatIntfc->GetType(ft);
hgs
parents:
diff changeset
  1321
            if (ft != TMS_FORMAT_ILBC)
hgs
parents:
diff changeset
  1322
                {
hgs
parents:
diff changeset
  1323
                status = KErrArgument;
hgs
parents:
diff changeset
  1324
                }
hgs
parents:
diff changeset
  1325
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
  1326
            DisplayText("iLBC UPL Codec Set");
hgs
parents:
diff changeset
  1327
            break;
hgs
parents:
diff changeset
  1328
            }
hgs
parents:
diff changeset
  1329
        case TMS_FORMAT_AMR:
hgs
parents:
diff changeset
  1330
            {
hgs
parents:
diff changeset
  1331
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
  1332
            status = iEncFormatIntfc->GetType(ft);
hgs
parents:
diff changeset
  1333
            if (ft != TMS_FORMAT_AMR)
hgs
parents:
diff changeset
  1334
                {
hgs
parents:
diff changeset
  1335
                status = KErrArgument;
hgs
parents:
diff changeset
  1336
                }
hgs
parents:
diff changeset
  1337
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
  1338
            DisplayText("AMR-NB UPL Codec Set");
hgs
parents:
diff changeset
  1339
            break;
hgs
parents:
diff changeset
  1340
            }
hgs
parents:
diff changeset
  1341
        case TMS_FORMAT_PCM:
hgs
parents:
diff changeset
  1342
            {
hgs
parents:
diff changeset
  1343
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
  1344
            status = iEncFormatIntfc->GetType(ft);
hgs
parents:
diff changeset
  1345
            if (ft != TMS_FORMAT_PCM)
hgs
parents:
diff changeset
  1346
                {
hgs
parents:
diff changeset
  1347
                status = KErrArgument;
hgs
parents:
diff changeset
  1348
                }
hgs
parents:
diff changeset
  1349
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
  1350
            DisplayText("PCM-16 UPL Codec Set");
hgs
parents:
diff changeset
  1351
            break;
hgs
parents:
diff changeset
  1352
            }
hgs
parents:
diff changeset
  1353
        default:
hgs
parents:
diff changeset
  1354
            {
hgs
parents:
diff changeset
  1355
            status = KErrNotSupported;
hgs
parents:
diff changeset
  1356
            }
hgs
parents:
diff changeset
  1357
        }
hgs
parents:
diff changeset
  1358
hgs
parents:
diff changeset
  1359
    if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  1360
        {
hgs
parents:
diff changeset
  1361
        OpenUplink(); //Initialize UPL
hgs
parents:
diff changeset
  1362
        }
hgs
parents:
diff changeset
  1363
    }
hgs
parents:
diff changeset
  1364
hgs
parents:
diff changeset
  1365
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1366
// CTmsTestEngine::ConfigureEncoder()
hgs
parents:
diff changeset
  1367
//
hgs
parents:
diff changeset
  1368
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1369
//
hgs
parents:
diff changeset
  1370
void CTmsTestEngine::ConfigureEncoder()
hgs
parents:
diff changeset
  1371
    {
hgs
parents:
diff changeset
  1372
    // Any of these calls can ONLY be made when encoder is in a STOPPED state.
hgs
parents:
diff changeset
  1373
hgs
parents:
diff changeset
  1374
    switch (iUpLinkCodec)
hgs
parents:
diff changeset
  1375
        {
hgs
parents:
diff changeset
  1376
        case TMS_FORMAT_G711:
hgs
parents:
diff changeset
  1377
            {
hgs
parents:
diff changeset
  1378
            TMSG711CodecMode mode(TMS_G711_CODEC_MODE_ALAW);
hgs
parents:
diff changeset
  1379
            static_cast<TMSG711Format*> (iEncFormatIntfc)->SetMode(mode);
hgs
parents:
diff changeset
  1380
            static_cast<TMSG711Format*> (iEncFormatIntfc)->GetMode(mode);
hgs
parents:
diff changeset
  1381
            break;
hgs
parents:
diff changeset
  1382
            }
hgs
parents:
diff changeset
  1383
        case TMS_FORMAT_ILBC:
hgs
parents:
diff changeset
  1384
            {
hgs
parents:
diff changeset
  1385
            TMSILBCCodecMode mode(TMS_ILBC_CODEC_MODE_20MS_FRAME);
hgs
parents:
diff changeset
  1386
            static_cast<TMSILBCFormat*> (iEncFormatIntfc)->SetMode(mode);
hgs
parents:
diff changeset
  1387
            static_cast<TMSILBCFormat*> (iEncFormatIntfc)->GetMode(mode);
hgs
parents:
diff changeset
  1388
            break;
hgs
parents:
diff changeset
  1389
            }
hgs
parents:
diff changeset
  1390
        case TMS_FORMAT_G729:
hgs
parents:
diff changeset
  1391
        case TMS_FORMAT_AMR:
hgs
parents:
diff changeset
  1392
        case TMS_FORMAT_PCM:
hgs
parents:
diff changeset
  1393
        default:
hgs
parents:
diff changeset
  1394
            {
hgs
parents:
diff changeset
  1395
            break;
hgs
parents:
diff changeset
  1396
            }
hgs
parents:
diff changeset
  1397
        }
hgs
parents:
diff changeset
  1398
    }
hgs
parents:
diff changeset
  1399
hgs
parents:
diff changeset
  1400
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1401
// CTmsTestEngine::GetMaxGain()
hgs
parents:
diff changeset
  1402
//
hgs
parents:
diff changeset
  1403
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1404
//
hgs
parents:
diff changeset
  1405
void CTmsTestEngine::GetMaxGain()
hgs
parents:
diff changeset
  1406
    {
hgs
parents:
diff changeset
  1407
    if (iTmsUplinkEffect)
hgs
parents:
diff changeset
  1408
        {
hgs
parents:
diff changeset
  1409
        static_cast<TMSGainEffect*> (iTmsUplinkEffect)->GetMaxLevel(iMaxGain);
hgs
parents:
diff changeset
  1410
        DisplayText("MaxGain: ", iMaxGain);
hgs
parents:
diff changeset
  1411
        }
hgs
parents:
diff changeset
  1412
    }
hgs
parents:
diff changeset
  1413
hgs
parents:
diff changeset
  1414
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1415
// CTmsTestEngine::GetGain()
hgs
parents:
diff changeset
  1416
//
hgs
parents:
diff changeset
  1417
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1418
//
hgs
parents:
diff changeset
  1419
void CTmsTestEngine::GetGain()
hgs
parents:
diff changeset
  1420
    {
hgs
parents:
diff changeset
  1421
    guint gain;
hgs
parents:
diff changeset
  1422
    if (iTmsUplinkEffect)
hgs
parents:
diff changeset
  1423
        {
hgs
parents:
diff changeset
  1424
        static_cast<TMSGainEffect*> (iTmsUplinkEffect)->GetLevel(gain);
hgs
parents:
diff changeset
  1425
        DisplayText("Gain: ", gain);
hgs
parents:
diff changeset
  1426
        }
hgs
parents:
diff changeset
  1427
    }
hgs
parents:
diff changeset
  1428
hgs
parents:
diff changeset
  1429
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1430
// CTmsTestEngine::SetMaxGain()
hgs
parents:
diff changeset
  1431
//
hgs
parents:
diff changeset
  1432
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1433
//
hgs
parents:
diff changeset
  1434
void CTmsTestEngine::SetMaxGain()
hgs
parents:
diff changeset
  1435
    {
hgs
parents:
diff changeset
  1436
    static_cast<TMSGainEffect*> (iTmsUplinkEffect)->SetLevel(iMaxGain);
hgs
parents:
diff changeset
  1437
    }
hgs
parents:
diff changeset
  1438
hgs
parents:
diff changeset
  1439
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1440
// CTmsTestEngine::MuteMic()
hgs
parents:
diff changeset
  1441
//
hgs
parents:
diff changeset
  1442
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1443
//
hgs
parents:
diff changeset
  1444
void CTmsTestEngine::MuteMic()
hgs
parents:
diff changeset
  1445
    {
hgs
parents:
diff changeset
  1446
    static_cast<TMSGainEffect*> (iTmsUplinkEffect)->SetLevel(0);
hgs
parents:
diff changeset
  1447
    }
hgs
parents:
diff changeset
  1448
hgs
parents:
diff changeset
  1449
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1450
// CTmsTestEngine::GetSupportedBitrates
hgs
parents:
diff changeset
  1451
//
hgs
parents:
diff changeset
  1452
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1453
//
hgs
parents:
diff changeset
  1454
void CTmsTestEngine::GetSupportedBitrates()
hgs
parents:
diff changeset
  1455
    {
hgs
parents:
diff changeset
  1456
    TInt status = GetSupportedBitrates(iBitratesVector);
hgs
parents:
diff changeset
  1457
hgs
parents:
diff changeset
  1458
    if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  1459
        {
hgs
parents:
diff changeset
  1460
        std::vector<guint>::iterator itBitrates = iBitratesVector.begin();
hgs
parents:
diff changeset
  1461
        for (; itBitrates < iBitratesVector.end(); itBitrates++)
hgs
parents:
diff changeset
  1462
            {
hgs
parents:
diff changeset
  1463
            DisplayText("BR ", *itBitrates);
hgs
parents:
diff changeset
  1464
            }
hgs
parents:
diff changeset
  1465
        }
hgs
parents:
diff changeset
  1466
    else
hgs
parents:
diff changeset
  1467
        {
hgs
parents:
diff changeset
  1468
        DisplayText("BR Error: ", status);
hgs
parents:
diff changeset
  1469
        }
hgs
parents:
diff changeset
  1470
    }
hgs
parents:
diff changeset
  1471
hgs
parents:
diff changeset
  1472
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1473
// CTmsTestEngine::GetSupportedBitrates
hgs
parents:
diff changeset
  1474
//
hgs
parents:
diff changeset
  1475
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1476
//
hgs
parents:
diff changeset
  1477
TInt CTmsTestEngine::GetSupportedBitrates(BitRateVector& aBrArr)
hgs
parents:
diff changeset
  1478
    {
hgs
parents:
diff changeset
  1479
    TInt status = KErrNotFound;
hgs
parents:
diff changeset
  1480
hgs
parents:
diff changeset
  1481
    switch (iUpLinkCodec)
hgs
parents:
diff changeset
  1482
        {
hgs
parents:
diff changeset
  1483
        case TMS_FORMAT_G711:
hgs
parents:
diff changeset
  1484
            status = static_cast<TMSG711Format*>
hgs
parents:
diff changeset
  1485
                    (iEncFormatIntfc)->GetSupportedBitRates(aBrArr);
hgs
parents:
diff changeset
  1486
            break;
hgs
parents:
diff changeset
  1487
        case TMS_FORMAT_G729:
hgs
parents:
diff changeset
  1488
            status = static_cast<TMSG729Format*>
hgs
parents:
diff changeset
  1489
                    (iEncFormatIntfc)->GetSupportedBitRates(aBrArr);
hgs
parents:
diff changeset
  1490
            break;
hgs
parents:
diff changeset
  1491
        case TMS_FORMAT_ILBC:
hgs
parents:
diff changeset
  1492
            status = static_cast<TMSILBCFormat*>
hgs
parents:
diff changeset
  1493
                    (iEncFormatIntfc)->GetSupportedBitRates(aBrArr);
hgs
parents:
diff changeset
  1494
            break;
hgs
parents:
diff changeset
  1495
        case TMS_FORMAT_AMR:
hgs
parents:
diff changeset
  1496
            status = static_cast<TMSAMRFormat*>
hgs
parents:
diff changeset
  1497
                    (iEncFormatIntfc)->GetSupportedBitRates(aBrArr);
hgs
parents:
diff changeset
  1498
            break;
hgs
parents:
diff changeset
  1499
        case TMS_FORMAT_PCM:
hgs
parents:
diff changeset
  1500
        default:
hgs
parents:
diff changeset
  1501
            status = KErrNotSupported;
hgs
parents:
diff changeset
  1502
            break;
hgs
parents:
diff changeset
  1503
        }
hgs
parents:
diff changeset
  1504
    return status;
hgs
parents:
diff changeset
  1505
    }
hgs
parents:
diff changeset
  1506
hgs
parents:
diff changeset
  1507
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1508
// CTmsTestEngine::SelectMinBitrate
hgs
parents:
diff changeset
  1509
//
hgs
parents:
diff changeset
  1510
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1511
//
hgs
parents:
diff changeset
  1512
void CTmsTestEngine::SelectMinBitrate()
hgs
parents:
diff changeset
  1513
    {
hgs
parents:
diff changeset
  1514
    if (iBitratesVector.size() > 0)
hgs
parents:
diff changeset
  1515
        {
hgs
parents:
diff changeset
  1516
        std::vector<guint>::iterator bitrate = iBitratesVector.begin();
hgs
parents:
diff changeset
  1517
        iBitrate = *bitrate;
hgs
parents:
diff changeset
  1518
        SetBitrate(iBitrate);
hgs
parents:
diff changeset
  1519
        DisplayText("BR set: ", iBitrate);
hgs
parents:
diff changeset
  1520
        }
hgs
parents:
diff changeset
  1521
    }
hgs
parents:
diff changeset
  1522
hgs
parents:
diff changeset
  1523
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1524
// CTmsTestEngine::SelectMaxBitrate
hgs
parents:
diff changeset
  1525
//
hgs
parents:
diff changeset
  1526
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1527
//
hgs
parents:
diff changeset
  1528
void CTmsTestEngine::SelectMaxBitrate()
hgs
parents:
diff changeset
  1529
    {
hgs
parents:
diff changeset
  1530
    if (iBitratesVector.size() > 0)
hgs
parents:
diff changeset
  1531
        {
hgs
parents:
diff changeset
  1532
        iBitrate = iBitratesVector.back();
hgs
parents:
diff changeset
  1533
        SetBitrate(iBitrate);
hgs
parents:
diff changeset
  1534
        DisplayText("BR set: ", iBitrate);
hgs
parents:
diff changeset
  1535
        }
hgs
parents:
diff changeset
  1536
    }
hgs
parents:
diff changeset
  1537
hgs
parents:
diff changeset
  1538
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1539
// CTmsTestEngine::SetBitrate
hgs
parents:
diff changeset
  1540
//
hgs
parents:
diff changeset
  1541
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1542
//
hgs
parents:
diff changeset
  1543
void CTmsTestEngine::SetBitrate(TUint aBitrate)
hgs
parents:
diff changeset
  1544
    {
hgs
parents:
diff changeset
  1545
    switch (iUpLinkCodec)
hgs
parents:
diff changeset
  1546
        {
hgs
parents:
diff changeset
  1547
        case TMS_FORMAT_G711:
hgs
parents:
diff changeset
  1548
            static_cast<TMSG711Format*> (iEncFormatIntfc)->SetBitRate(aBitrate);
hgs
parents:
diff changeset
  1549
            DisplayText("Set BR: ", iBitrate);
hgs
parents:
diff changeset
  1550
            break;
hgs
parents:
diff changeset
  1551
        case TMS_FORMAT_G729:
hgs
parents:
diff changeset
  1552
            static_cast<TMSG729Format*> (iEncFormatIntfc)->SetBitRate(aBitrate);
hgs
parents:
diff changeset
  1553
            DisplayText("Set BR: ", iBitrate);
hgs
parents:
diff changeset
  1554
            break;
hgs
parents:
diff changeset
  1555
        case TMS_FORMAT_ILBC:
hgs
parents:
diff changeset
  1556
            static_cast<TMSILBCFormat*> (iEncFormatIntfc)->SetBitRate(aBitrate);
hgs
parents:
diff changeset
  1557
            DisplayText("Set BR: ", iBitrate);
hgs
parents:
diff changeset
  1558
            break;
hgs
parents:
diff changeset
  1559
        case TMS_FORMAT_AMR:
hgs
parents:
diff changeset
  1560
            static_cast<TMSAMRFormat*> (iEncFormatIntfc)->SetBitRate(aBitrate);
hgs
parents:
diff changeset
  1561
            DisplayText("Set BR: ", iBitrate);
hgs
parents:
diff changeset
  1562
            break;
hgs
parents:
diff changeset
  1563
        case TMS_FORMAT_PCM:
hgs
parents:
diff changeset
  1564
        default:
hgs
parents:
diff changeset
  1565
            break;
hgs
parents:
diff changeset
  1566
        }
hgs
parents:
diff changeset
  1567
    }
hgs
parents:
diff changeset
  1568
hgs
parents:
diff changeset
  1569
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1570
// CTmsTestEngine::GetBitrate
hgs
parents:
diff changeset
  1571
//
hgs
parents:
diff changeset
  1572
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1573
//
hgs
parents:
diff changeset
  1574
void CTmsTestEngine::GetBitrate()
hgs
parents:
diff changeset
  1575
    {
hgs
parents:
diff changeset
  1576
    if (iUpLinkCodec != TMS_FORMAT_PCM)
hgs
parents:
diff changeset
  1577
        {
hgs
parents:
diff changeset
  1578
        GetBitrate(iBitrate);
hgs
parents:
diff changeset
  1579
        DisplayText("Current BR: ", iBitrate);
hgs
parents:
diff changeset
  1580
        }
hgs
parents:
diff changeset
  1581
    }
hgs
parents:
diff changeset
  1582
hgs
parents:
diff changeset
  1583
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1584
// CTmsTestEngine::GetBitrate
hgs
parents:
diff changeset
  1585
//
hgs
parents:
diff changeset
  1586
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1587
//
hgs
parents:
diff changeset
  1588
void CTmsTestEngine::GetBitrate(TUint& aBitrate)
hgs
parents:
diff changeset
  1589
    {
hgs
parents:
diff changeset
  1590
    switch (iUpLinkCodec)
hgs
parents:
diff changeset
  1591
        {
hgs
parents:
diff changeset
  1592
        case TMS_FORMAT_G711:
hgs
parents:
diff changeset
  1593
            static_cast<TMSG711Format*> (iEncFormatIntfc)->GetBitRate(aBitrate);
hgs
parents:
diff changeset
  1594
            break;
hgs
parents:
diff changeset
  1595
        case TMS_FORMAT_G729:
hgs
parents:
diff changeset
  1596
            static_cast<TMSG729Format*> (iEncFormatIntfc)->GetBitRate(aBitrate);
hgs
parents:
diff changeset
  1597
            break;
hgs
parents:
diff changeset
  1598
        case TMS_FORMAT_ILBC:
hgs
parents:
diff changeset
  1599
            static_cast<TMSILBCFormat*> (iEncFormatIntfc)->GetBitRate(aBitrate);
hgs
parents:
diff changeset
  1600
            break;
hgs
parents:
diff changeset
  1601
        case TMS_FORMAT_AMR:
hgs
parents:
diff changeset
  1602
            static_cast<TMSAMRFormat*> (iEncFormatIntfc)->GetBitRate(aBitrate);
hgs
parents:
diff changeset
  1603
            break;
hgs
parents:
diff changeset
  1604
        case TMS_FORMAT_PCM:
hgs
parents:
diff changeset
  1605
        default:
hgs
parents:
diff changeset
  1606
            break;
hgs
parents:
diff changeset
  1607
        }
hgs
parents:
diff changeset
  1608
    }
hgs
parents:
diff changeset
  1609
hgs
parents:
diff changeset
  1610
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1611
// CTmsTestEngine::ToggleVad
hgs
parents:
diff changeset
  1612
//
hgs
parents:
diff changeset
  1613
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1614
//
hgs
parents:
diff changeset
  1615
void CTmsTestEngine::ToggleVad()
hgs
parents:
diff changeset
  1616
    {
hgs
parents:
diff changeset
  1617
    iVad = (iVad) ? EFalse : ETrue;
hgs
parents:
diff changeset
  1618
hgs
parents:
diff changeset
  1619
    switch (iUpLinkCodec)
hgs
parents:
diff changeset
  1620
        {
hgs
parents:
diff changeset
  1621
        case TMS_FORMAT_G711:
hgs
parents:
diff changeset
  1622
            static_cast<TMSG711Format*> (iEncFormatIntfc)->SetVADMode(iVad);
hgs
parents:
diff changeset
  1623
            DisplayText("Set VAD: ", iVad);
hgs
parents:
diff changeset
  1624
            break;
hgs
parents:
diff changeset
  1625
        case TMS_FORMAT_G729:
hgs
parents:
diff changeset
  1626
            static_cast<TMSG729Format*> (iEncFormatIntfc)->SetVADMode(iVad);
hgs
parents:
diff changeset
  1627
            DisplayText("Set VAD: ", iVad);
hgs
parents:
diff changeset
  1628
            break;
hgs
parents:
diff changeset
  1629
        case TMS_FORMAT_ILBC:
hgs
parents:
diff changeset
  1630
            static_cast<TMSILBCFormat*> (iEncFormatIntfc)->SetVADMode(iVad);
hgs
parents:
diff changeset
  1631
            DisplayText("Set VAD: ", iVad);
hgs
parents:
diff changeset
  1632
            break;
hgs
parents:
diff changeset
  1633
        case TMS_FORMAT_AMR:
hgs
parents:
diff changeset
  1634
            //static_cast<TMSAMRFormat*> (iEncFormatIntfc)->SetVADMode(iVad);
hgs
parents:
diff changeset
  1635
            //DisplayText("Set VAD: ", iVad);
hgs
parents:
diff changeset
  1636
            break;
hgs
parents:
diff changeset
  1637
        case TMS_FORMAT_PCM:
hgs
parents:
diff changeset
  1638
        default:
hgs
parents:
diff changeset
  1639
            break;
hgs
parents:
diff changeset
  1640
        }
hgs
parents:
diff changeset
  1641
    }
hgs
parents:
diff changeset
  1642
hgs
parents:
diff changeset
  1643
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1644
// CTmsTestEngine::GetVad
hgs
parents:
diff changeset
  1645
//
hgs
parents:
diff changeset
  1646
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1647
//
hgs
parents:
diff changeset
  1648
void CTmsTestEngine::GetVad()
hgs
parents:
diff changeset
  1649
    {
hgs
parents:
diff changeset
  1650
    switch (iUpLinkCodec)
hgs
parents:
diff changeset
  1651
        {
hgs
parents:
diff changeset
  1652
        case TMS_FORMAT_G711:
hgs
parents:
diff changeset
  1653
            static_cast<TMSG711Format*> (iEncFormatIntfc)->GetVADMode(iVad);
hgs
parents:
diff changeset
  1654
            DisplayText("Current VAD: ", iVad);
hgs
parents:
diff changeset
  1655
            break;
hgs
parents:
diff changeset
  1656
        case TMS_FORMAT_G729:
hgs
parents:
diff changeset
  1657
            static_cast<TMSG729Format*> (iEncFormatIntfc)->GetVADMode(iVad);
hgs
parents:
diff changeset
  1658
            DisplayText("Current VAD: ", iVad);
hgs
parents:
diff changeset
  1659
            break;
hgs
parents:
diff changeset
  1660
        case TMS_FORMAT_ILBC:
hgs
parents:
diff changeset
  1661
            static_cast<TMSILBCFormat*> (iEncFormatIntfc)->GetVADMode(iVad);
hgs
parents:
diff changeset
  1662
            DisplayText("Current VAD: ", iVad);
hgs
parents:
diff changeset
  1663
            break;
hgs
parents:
diff changeset
  1664
        case TMS_FORMAT_AMR:
hgs
parents:
diff changeset
  1665
            //static_cast<TMSAMRFormat*> (iEncFormatIntfc)->GetVADMode(iVad);
hgs
parents:
diff changeset
  1666
            //DisplayText("Current VAD: ", iVad);
hgs
parents:
diff changeset
  1667
            break;
hgs
parents:
diff changeset
  1668
        case TMS_FORMAT_PCM:
hgs
parents:
diff changeset
  1669
        default:
hgs
parents:
diff changeset
  1670
            break;
hgs
parents:
diff changeset
  1671
        }
hgs
parents:
diff changeset
  1672
    }
hgs
parents:
diff changeset
  1673
hgs
parents:
diff changeset
  1674
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1675
// CTmsTestEngine::ToggleCng
hgs
parents:
diff changeset
  1676
//
hgs
parents:
diff changeset
  1677
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1678
//
hgs
parents:
diff changeset
  1679
void CTmsTestEngine::ToggleCng()
hgs
parents:
diff changeset
  1680
    {
hgs
parents:
diff changeset
  1681
    iCng = (iCng) ? EFalse : ETrue;
hgs
parents:
diff changeset
  1682
hgs
parents:
diff changeset
  1683
    switch (iDnLinkCodec)
hgs
parents:
diff changeset
  1684
        {
hgs
parents:
diff changeset
  1685
        case TMS_FORMAT_G711:
hgs
parents:
diff changeset
  1686
            static_cast<TMSG711Format*> (iDecFormatIntfc)->SetCNG(iCng);
hgs
parents:
diff changeset
  1687
            DisplayText("Set CNG ", iCng);
hgs
parents:
diff changeset
  1688
            break;
hgs
parents:
diff changeset
  1689
        case TMS_FORMAT_ILBC:
hgs
parents:
diff changeset
  1690
            static_cast<TMSILBCFormat*> (iDecFormatIntfc)->SetCNG(iCng);
hgs
parents:
diff changeset
  1691
            DisplayText("Set CNG ", iCng);
hgs
parents:
diff changeset
  1692
            break;
hgs
parents:
diff changeset
  1693
        default:
hgs
parents:
diff changeset
  1694
            break;
hgs
parents:
diff changeset
  1695
        }
hgs
parents:
diff changeset
  1696
    }
hgs
parents:
diff changeset
  1697
hgs
parents:
diff changeset
  1698
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1699
// CTmsTestEngine::GetCng
hgs
parents:
diff changeset
  1700
//
hgs
parents:
diff changeset
  1701
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1702
//
hgs
parents:
diff changeset
  1703
void CTmsTestEngine::GetCng()
hgs
parents:
diff changeset
  1704
    {
hgs
parents:
diff changeset
  1705
    switch (iDnLinkCodec)
hgs
parents:
diff changeset
  1706
        {
hgs
parents:
diff changeset
  1707
        case TMS_FORMAT_G711:
hgs
parents:
diff changeset
  1708
            static_cast<TMSG711Format*> (iDecFormatIntfc)->GetCNG(iCng);
hgs
parents:
diff changeset
  1709
            DisplayText("Current CNG ", iCng);
hgs
parents:
diff changeset
  1710
            break;
hgs
parents:
diff changeset
  1711
        case TMS_FORMAT_ILBC:
hgs
parents:
diff changeset
  1712
            static_cast<TMSILBCFormat*> (iDecFormatIntfc)->GetCNG(iCng);
hgs
parents:
diff changeset
  1713
            DisplayText("Current CNG ", iCng);
hgs
parents:
diff changeset
  1714
            break;
hgs
parents:
diff changeset
  1715
        default:
hgs
parents:
diff changeset
  1716
            break;
hgs
parents:
diff changeset
  1717
        }
hgs
parents:
diff changeset
  1718
    }
hgs
parents:
diff changeset
  1719
hgs
parents:
diff changeset
  1720
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1721
// CTmsTestEngine::TogglePlc
hgs
parents:
diff changeset
  1722
//
hgs
parents:
diff changeset
  1723
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1724
//
hgs
parents:
diff changeset
  1725
void CTmsTestEngine::TogglePlc()
hgs
parents:
diff changeset
  1726
    {
hgs
parents:
diff changeset
  1727
    iPlc = (iPlc) ? EFalse : ETrue;
hgs
parents:
diff changeset
  1728
    if (iDnLinkCodec == TMS_FORMAT_G711)
hgs
parents:
diff changeset
  1729
        {
hgs
parents:
diff changeset
  1730
        static_cast<TMSG711Format*> (iDecFormatIntfc)->SetPlc(ETrue);
hgs
parents:
diff changeset
  1731
        DisplayText("Set PLC ", iPlc);
hgs
parents:
diff changeset
  1732
        }
hgs
parents:
diff changeset
  1733
    }
hgs
parents:
diff changeset
  1734
hgs
parents:
diff changeset
  1735
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1736
// CTmsTestEngine::GetPlc
hgs
parents:
diff changeset
  1737
//
hgs
parents:
diff changeset
  1738
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1739
//
hgs
parents:
diff changeset
  1740
void CTmsTestEngine::GetPlc()
hgs
parents:
diff changeset
  1741
    {
hgs
parents:
diff changeset
  1742
    if (iDnLinkCodec == TMS_FORMAT_G711)
hgs
parents:
diff changeset
  1743
        {
hgs
parents:
diff changeset
  1744
        static_cast<TMSG711Format*> (iDecFormatIntfc)->GetPlc(iPlc);
hgs
parents:
diff changeset
  1745
        DisplayText("Current PLC ", iPlc);
hgs
parents:
diff changeset
  1746
        }
hgs
parents:
diff changeset
  1747
    }
hgs
parents:
diff changeset
  1748
hgs
parents:
diff changeset
  1749
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1750
// CTmsTestEngine::SetDnLinkG711ALAW
hgs
parents:
diff changeset
  1751
//
hgs
parents:
diff changeset
  1752
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1753
//
hgs
parents:
diff changeset
  1754
void CTmsTestEngine::SetDnLinkG711ALAW()
hgs
parents:
diff changeset
  1755
    {
hgs
parents:
diff changeset
  1756
    if (iDnLinkCodec == TMS_FORMAT_G711)
hgs
parents:
diff changeset
  1757
        {
hgs
parents:
diff changeset
  1758
        static_cast<TMSG711Format*> (iDecFormatIntfc)->SetMode(
hgs
parents:
diff changeset
  1759
                TMS_G711_CODEC_MODE_ALAW);
hgs
parents:
diff changeset
  1760
        DisplayText("DNL G.711 Mode Set: [aLaw]");
hgs
parents:
diff changeset
  1761
        }
hgs
parents:
diff changeset
  1762
    }
hgs
parents:
diff changeset
  1763
hgs
parents:
diff changeset
  1764
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1765
// CTmsTestEngine::SetDnLinkG711uLAW
hgs
parents:
diff changeset
  1766
//
hgs
parents:
diff changeset
  1767
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1768
//
hgs
parents:
diff changeset
  1769
void CTmsTestEngine::SetDnLinkG711uLAW()
hgs
parents:
diff changeset
  1770
    {
hgs
parents:
diff changeset
  1771
    if (iDnLinkCodec == TMS_FORMAT_G711)
hgs
parents:
diff changeset
  1772
        {
hgs
parents:
diff changeset
  1773
        static_cast<TMSG711Format*> (iDecFormatIntfc)->SetMode(
hgs
parents:
diff changeset
  1774
                TMS_G711_CODEC_MODE_MULAW);
hgs
parents:
diff changeset
  1775
        DisplayText("DNL G.711 Mode Set: [uLaw]");
hgs
parents:
diff changeset
  1776
        }
hgs
parents:
diff changeset
  1777
    }
hgs
parents:
diff changeset
  1778
hgs
parents:
diff changeset
  1779
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1780
// CTmsTestEngine::GetDnLinkG711Mode
hgs
parents:
diff changeset
  1781
//
hgs
parents:
diff changeset
  1782
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1783
//
hgs
parents:
diff changeset
  1784
void CTmsTestEngine::GetDnLinkG711Mode()
hgs
parents:
diff changeset
  1785
    {
hgs
parents:
diff changeset
  1786
    if (iDnLinkCodec == TMS_FORMAT_G711)
hgs
parents:
diff changeset
  1787
        {
hgs
parents:
diff changeset
  1788
        TMSG711CodecMode mode;
hgs
parents:
diff changeset
  1789
        TInt status = static_cast<TMSG711Format*> (iDecFormatIntfc)->GetMode(
hgs
parents:
diff changeset
  1790
                mode);
hgs
parents:
diff changeset
  1791
hgs
parents:
diff changeset
  1792
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  1793
            {
hgs
parents:
diff changeset
  1794
            if (mode == TMS_G711_CODEC_MODE_MULAW)
hgs
parents:
diff changeset
  1795
                {
hgs
parents:
diff changeset
  1796
                DisplayText("DNL G711 Mode: [uLaw]");
hgs
parents:
diff changeset
  1797
                }
hgs
parents:
diff changeset
  1798
            else
hgs
parents:
diff changeset
  1799
                {
hgs
parents:
diff changeset
  1800
                DisplayText("DNL G711 Mode: [aLaw]");
hgs
parents:
diff changeset
  1801
                }
hgs
parents:
diff changeset
  1802
            }
hgs
parents:
diff changeset
  1803
        else
hgs
parents:
diff changeset
  1804
            {
hgs
parents:
diff changeset
  1805
            DisplayText("DNL G711 GetMode Error: ", status);
hgs
parents:
diff changeset
  1806
            }
hgs
parents:
diff changeset
  1807
        }
hgs
parents:
diff changeset
  1808
    }
hgs
parents:
diff changeset
  1809
hgs
parents:
diff changeset
  1810
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1811
// CTmsTestEngine::SetDnLinkILBC20MS
hgs
parents:
diff changeset
  1812
//
hgs
parents:
diff changeset
  1813
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1814
//
hgs
parents:
diff changeset
  1815
void CTmsTestEngine::SetDnLinkILBC20MS()
hgs
parents:
diff changeset
  1816
    {
hgs
parents:
diff changeset
  1817
    if (iDnLinkCodec == TMS_FORMAT_ILBC)
hgs
parents:
diff changeset
  1818
        {
hgs
parents:
diff changeset
  1819
        static_cast<TMSILBCFormat*> (iDecFormatIntfc)->SetMode(
hgs
parents:
diff changeset
  1820
                TMS_ILBC_CODEC_MODE_20MS_FRAME);
hgs
parents:
diff changeset
  1821
        DisplayText("DNL iLBC Mode Set: [20ms]");
hgs
parents:
diff changeset
  1822
        }
hgs
parents:
diff changeset
  1823
    }
hgs
parents:
diff changeset
  1824
hgs
parents:
diff changeset
  1825
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1826
// CTmsTestEngine::SetDnLinkILBC30MS
hgs
parents:
diff changeset
  1827
//
hgs
parents:
diff changeset
  1828
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1829
//
hgs
parents:
diff changeset
  1830
void CTmsTestEngine::SetDnLinkILBC30MS()
hgs
parents:
diff changeset
  1831
    {
hgs
parents:
diff changeset
  1832
    if (iDnLinkCodec == TMS_FORMAT_ILBC)
hgs
parents:
diff changeset
  1833
        {
hgs
parents:
diff changeset
  1834
        static_cast<TMSILBCFormat*> (iDecFormatIntfc)->SetMode(
hgs
parents:
diff changeset
  1835
                TMS_ILBC_CODEC_MODE_30MS_FRAME);
hgs
parents:
diff changeset
  1836
        DisplayText("DNL iLBC Mode Set: [30ms]");
hgs
parents:
diff changeset
  1837
        }
hgs
parents:
diff changeset
  1838
    }
hgs
parents:
diff changeset
  1839
hgs
parents:
diff changeset
  1840
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1841
// CTmsTestEngine::GetDnLinkILBCMode
hgs
parents:
diff changeset
  1842
//
hgs
parents:
diff changeset
  1843
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1844
//
hgs
parents:
diff changeset
  1845
void CTmsTestEngine::GetDnLinkILBCMode()
hgs
parents:
diff changeset
  1846
    {
hgs
parents:
diff changeset
  1847
    if (iDnLinkCodec == TMS_FORMAT_ILBC)
hgs
parents:
diff changeset
  1848
        {
hgs
parents:
diff changeset
  1849
        TMSILBCCodecMode mode;
hgs
parents:
diff changeset
  1850
        gint status = static_cast<TMSILBCFormat*> (iDecFormatIntfc)->GetMode(
hgs
parents:
diff changeset
  1851
                mode);
hgs
parents:
diff changeset
  1852
hgs
parents:
diff changeset
  1853
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  1854
            {
hgs
parents:
diff changeset
  1855
            if (mode == TMS_ILBC_CODEC_MODE_30MS_FRAME)
hgs
parents:
diff changeset
  1856
                {
hgs
parents:
diff changeset
  1857
                DisplayText("DNL iLBC Mode: [30ms]");
hgs
parents:
diff changeset
  1858
                }
hgs
parents:
diff changeset
  1859
            else if (mode == TMS_ILBC_CODEC_MODE_20MS_FRAME)
hgs
parents:
diff changeset
  1860
                {
hgs
parents:
diff changeset
  1861
                DisplayText("DNL iLBC Mode: [20ms]");
hgs
parents:
diff changeset
  1862
                }
hgs
parents:
diff changeset
  1863
            }
hgs
parents:
diff changeset
  1864
        else
hgs
parents:
diff changeset
  1865
            {
hgs
parents:
diff changeset
  1866
            DisplayText("DNL iLBC GetMode Error: ", status);
hgs
parents:
diff changeset
  1867
            }
hgs
parents:
diff changeset
  1868
        }
hgs
parents:
diff changeset
  1869
    }
hgs
parents:
diff changeset
  1870
hgs
parents:
diff changeset
  1871
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1872
// CTmsTestEngine::SetUpLinkG711ALAW
hgs
parents:
diff changeset
  1873
//
hgs
parents:
diff changeset
  1874
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1875
//
hgs
parents:
diff changeset
  1876
void CTmsTestEngine::SetUpLinkG711ALAW()
hgs
parents:
diff changeset
  1877
    {
hgs
parents:
diff changeset
  1878
    if (iUpLinkCodec == TMS_FORMAT_G711)
hgs
parents:
diff changeset
  1879
        {
hgs
parents:
diff changeset
  1880
        static_cast<TMSG711Format*> (iEncFormatIntfc)->SetMode(
hgs
parents:
diff changeset
  1881
                TMS_G711_CODEC_MODE_ALAW);
hgs
parents:
diff changeset
  1882
        DisplayText("UPL G.711 Mode Set: [aLaw]");
hgs
parents:
diff changeset
  1883
        }
hgs
parents:
diff changeset
  1884
    }
hgs
parents:
diff changeset
  1885
hgs
parents:
diff changeset
  1886
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1887
// CTmsTestEngine::SetUpLinkG711uLAW
hgs
parents:
diff changeset
  1888
//
hgs
parents:
diff changeset
  1889
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1890
//
hgs
parents:
diff changeset
  1891
void CTmsTestEngine::SetUpLinkG711uLAW()
hgs
parents:
diff changeset
  1892
    {
hgs
parents:
diff changeset
  1893
hgs
parents:
diff changeset
  1894
    if (iUpLinkCodec == TMS_FORMAT_G711)
hgs
parents:
diff changeset
  1895
        {
hgs
parents:
diff changeset
  1896
        static_cast<TMSG711Format*> (iEncFormatIntfc)->SetMode(
hgs
parents:
diff changeset
  1897
                TMS_G711_CODEC_MODE_MULAW);
hgs
parents:
diff changeset
  1898
        DisplayText("UPL G.711 Mode Set: [uLaw]");
hgs
parents:
diff changeset
  1899
        }
hgs
parents:
diff changeset
  1900
    }
hgs
parents:
diff changeset
  1901
hgs
parents:
diff changeset
  1902
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1903
// CTmsTestEngine::GetUpLinkG711Mode
hgs
parents:
diff changeset
  1904
//
hgs
parents:
diff changeset
  1905
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1906
//
hgs
parents:
diff changeset
  1907
void CTmsTestEngine::GetUpLinkG711Mode()
hgs
parents:
diff changeset
  1908
    {
hgs
parents:
diff changeset
  1909
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
  1910
    if (iUpLinkCodec == TMS_FORMAT_G711)
hgs
parents:
diff changeset
  1911
        {
hgs
parents:
diff changeset
  1912
        TMSG711CodecMode mode;
hgs
parents:
diff changeset
  1913
        status = static_cast<TMSG711Format*> (iEncFormatIntfc)->GetMode(mode);
hgs
parents:
diff changeset
  1914
hgs
parents:
diff changeset
  1915
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  1916
            {
hgs
parents:
diff changeset
  1917
            if (mode == TMS_G711_CODEC_MODE_MULAW)
hgs
parents:
diff changeset
  1918
                {
hgs
parents:
diff changeset
  1919
                DisplayText("UPL G.711 Mode: [uLaw]");
hgs
parents:
diff changeset
  1920
                }
hgs
parents:
diff changeset
  1921
            else if (mode == TMS_G711_CODEC_MODE_ALAW)
hgs
parents:
diff changeset
  1922
                {
hgs
parents:
diff changeset
  1923
                DisplayText("UPL G.711 Mode: [aLaw]");
hgs
parents:
diff changeset
  1924
                }
hgs
parents:
diff changeset
  1925
            }
hgs
parents:
diff changeset
  1926
        else
hgs
parents:
diff changeset
  1927
            {
hgs
parents:
diff changeset
  1928
            DisplayText("UPL G.711 GetMode Error: ", status);
hgs
parents:
diff changeset
  1929
            }
hgs
parents:
diff changeset
  1930
        }
hgs
parents:
diff changeset
  1931
    }
hgs
parents:
diff changeset
  1932
hgs
parents:
diff changeset
  1933
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1934
// CTmsTestEngine::SetUpLinkILBC20MS
hgs
parents:
diff changeset
  1935
//
hgs
parents:
diff changeset
  1936
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1937
//
hgs
parents:
diff changeset
  1938
void CTmsTestEngine::SetUpLinkILBC20MS()
hgs
parents:
diff changeset
  1939
    {
hgs
parents:
diff changeset
  1940
    if (iUpLinkCodec == TMS_FORMAT_ILBC)
hgs
parents:
diff changeset
  1941
        {
hgs
parents:
diff changeset
  1942
        static_cast<TMSILBCFormat*> (iEncFormatIntfc)->SetMode(
hgs
parents:
diff changeset
  1943
                TMS_ILBC_CODEC_MODE_20MS_FRAME);
hgs
parents:
diff changeset
  1944
        DisplayText("UPL iLBC Mode Set: [20ms]");
hgs
parents:
diff changeset
  1945
        }
hgs
parents:
diff changeset
  1946
    }
hgs
parents:
diff changeset
  1947
hgs
parents:
diff changeset
  1948
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1949
// CTmsTestEngine::SetUpLinkILBC30MS
hgs
parents:
diff changeset
  1950
//
hgs
parents:
diff changeset
  1951
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1952
//
hgs
parents:
diff changeset
  1953
void CTmsTestEngine::SetUpLinkILBC30MS()
hgs
parents:
diff changeset
  1954
    {
hgs
parents:
diff changeset
  1955
    if (iUpLinkCodec == TMS_FORMAT_ILBC)
hgs
parents:
diff changeset
  1956
        {
hgs
parents:
diff changeset
  1957
        static_cast<TMSILBCFormat*> (iEncFormatIntfc)->SetMode(
hgs
parents:
diff changeset
  1958
                TMS_ILBC_CODEC_MODE_30MS_FRAME);
hgs
parents:
diff changeset
  1959
        DisplayText("UPL iLBC Mode Set: [30ms]");
hgs
parents:
diff changeset
  1960
        }
hgs
parents:
diff changeset
  1961
    }
hgs
parents:
diff changeset
  1962
hgs
parents:
diff changeset
  1963
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1964
// CTmsTestEngine::GetUpLinkILBCMode
hgs
parents:
diff changeset
  1965
//
hgs
parents:
diff changeset
  1966
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1967
//
hgs
parents:
diff changeset
  1968
void CTmsTestEngine::GetUpLinkILBCMode()
hgs
parents:
diff changeset
  1969
    {
hgs
parents:
diff changeset
  1970
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
  1971
    if (iUpLinkCodec == TMS_FORMAT_ILBC)
hgs
parents:
diff changeset
  1972
        {
hgs
parents:
diff changeset
  1973
        TMSILBCCodecMode mode;
hgs
parents:
diff changeset
  1974
        status = static_cast<TMSILBCFormat*> (iEncFormatIntfc)->GetMode(mode);
hgs
parents:
diff changeset
  1975
hgs
parents:
diff changeset
  1976
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  1977
            {
hgs
parents:
diff changeset
  1978
            if (mode == TMS_ILBC_CODEC_MODE_30MS_FRAME)
hgs
parents:
diff changeset
  1979
                {
hgs
parents:
diff changeset
  1980
                DisplayText("UPL iLBC Mode: [30ms]");
hgs
parents:
diff changeset
  1981
                }
hgs
parents:
diff changeset
  1982
            else if (mode == TMS_ILBC_CODEC_MODE_20MS_FRAME)
hgs
parents:
diff changeset
  1983
                {
hgs
parents:
diff changeset
  1984
                DisplayText("UPL iLBC Mode: [20ms]");
hgs
parents:
diff changeset
  1985
                }
hgs
parents:
diff changeset
  1986
            }
hgs
parents:
diff changeset
  1987
        else
hgs
parents:
diff changeset
  1988
            {
hgs
parents:
diff changeset
  1989
            DisplayText("UPL iLBC GetMode Error: ", status);
hgs
parents:
diff changeset
  1990
            }
hgs
parents:
diff changeset
  1991
        }
hgs
parents:
diff changeset
  1992
    }
hgs
parents:
diff changeset
  1993
hgs
parents:
diff changeset
  1994
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1995
// CTmsTestEngine::CreateGlobalVol
hgs
parents:
diff changeset
  1996
//
hgs
parents:
diff changeset
  1997
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  1998
//
hgs
parents:
diff changeset
  1999
void CTmsTestEngine::CreateGlobalVol()
hgs
parents:
diff changeset
  2000
    {
hgs
parents:
diff changeset
  2001
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
  2002
hgs
parents:
diff changeset
  2003
    if (iFactory && !iGlobalVol)
hgs
parents:
diff changeset
  2004
        {
hgs
parents:
diff changeset
  2005
        status = iFactory->CreateEffect(TMS_EFFECT_GLOBAL_VOL, iGlobalVol);
hgs
parents:
diff changeset
  2006
hgs
parents:
diff changeset
  2007
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  2008
            {
hgs
parents:
diff changeset
  2009
            DisplayText("Global Vol Created");
hgs
parents:
diff changeset
  2010
            static_cast<TMSGlobalVolEffect*> (iGlobalVol)->AddObserver(*this,
hgs
parents:
diff changeset
  2011
                    NULL);
hgs
parents:
diff changeset
  2012
            }
hgs
parents:
diff changeset
  2013
        else
hgs
parents:
diff changeset
  2014
            {
hgs
parents:
diff changeset
  2015
            DisplayText("Global Vol failed: ", status);
hgs
parents:
diff changeset
  2016
            }
hgs
parents:
diff changeset
  2017
        }
hgs
parents:
diff changeset
  2018
    }
hgs
parents:
diff changeset
  2019
hgs
parents:
diff changeset
  2020
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2021
// CTmsTestEngine::CreateGlobalGain
hgs
parents:
diff changeset
  2022
//
hgs
parents:
diff changeset
  2023
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2024
//
hgs
parents:
diff changeset
  2025
void CTmsTestEngine::CreateGlobalGain()
hgs
parents:
diff changeset
  2026
    {
hgs
parents:
diff changeset
  2027
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
  2028
hgs
parents:
diff changeset
  2029
    if (iFactory && !iGlobalGain)
hgs
parents:
diff changeset
  2030
        {
hgs
parents:
diff changeset
  2031
        status = iFactory->CreateEffect(TMS_EFFECT_GLOBAL_GAIN, iGlobalGain);
hgs
parents:
diff changeset
  2032
hgs
parents:
diff changeset
  2033
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  2034
            {
hgs
parents:
diff changeset
  2035
            DisplayText("Global Gain Created");
hgs
parents:
diff changeset
  2036
            static_cast<TMSGlobalGainEffect*> (iGlobalGain)->AddObserver(*this,
hgs
parents:
diff changeset
  2037
                    NULL);
hgs
parents:
diff changeset
  2038
            }
hgs
parents:
diff changeset
  2039
        else
hgs
parents:
diff changeset
  2040
            {
hgs
parents:
diff changeset
  2041
            DisplayText("Global Gain failed: ", status);
hgs
parents:
diff changeset
  2042
            }
hgs
parents:
diff changeset
  2043
        }
hgs
parents:
diff changeset
  2044
    }
hgs
parents:
diff changeset
  2045
hgs
parents:
diff changeset
  2046
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2047
// CTmsTestEngine::GetGlobalVol
hgs
parents:
diff changeset
  2048
//
hgs
parents:
diff changeset
  2049
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2050
//
hgs
parents:
diff changeset
  2051
void CTmsTestEngine::GetGlobalVol()
hgs
parents:
diff changeset
  2052
    {
hgs
parents:
diff changeset
  2053
    if (iGlobalVol)
hgs
parents:
diff changeset
  2054
        {
hgs
parents:
diff changeset
  2055
        TUint level(0);
hgs
parents:
diff changeset
  2056
        static_cast<TMSGlobalVolEffect*> (iGlobalVol)->GetLevel(level);
hgs
parents:
diff changeset
  2057
        DisplayText("Global Vol: ", level);
hgs
parents:
diff changeset
  2058
        }
hgs
parents:
diff changeset
  2059
    }
hgs
parents:
diff changeset
  2060
hgs
parents:
diff changeset
  2061
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2062
// CTmsTestEngine::GetGlobalMaxVol
hgs
parents:
diff changeset
  2063
//
hgs
parents:
diff changeset
  2064
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2065
//
hgs
parents:
diff changeset
  2066
void CTmsTestEngine::GetGlobalMaxVol()
hgs
parents:
diff changeset
  2067
    {
hgs
parents:
diff changeset
  2068
    if (iGlobalVol)
hgs
parents:
diff changeset
  2069
        {
hgs
parents:
diff changeset
  2070
        TUint level(0);
hgs
parents:
diff changeset
  2071
        static_cast<TMSGlobalVolEffect*> (iGlobalVol)->GetMaxLevel(level);
hgs
parents:
diff changeset
  2072
        DisplayText("Global Max Vol: ", level);
hgs
parents:
diff changeset
  2073
        }
hgs
parents:
diff changeset
  2074
    }
hgs
parents:
diff changeset
  2075
hgs
parents:
diff changeset
  2076
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2077
// CTmsTestEngine::SetGlobalVol
hgs
parents:
diff changeset
  2078
//
hgs
parents:
diff changeset
  2079
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2080
//
hgs
parents:
diff changeset
  2081
void CTmsTestEngine::SetGlobalVol()
hgs
parents:
diff changeset
  2082
    {
hgs
parents:
diff changeset
  2083
    TUint level(0);
hgs
parents:
diff changeset
  2084
    if (iGlobalVol)
hgs
parents:
diff changeset
  2085
        {
hgs
parents:
diff changeset
  2086
        static_cast<TMSGlobalVolEffect*> (iGlobalVol)->GetMaxLevel(level);
hgs
parents:
diff changeset
  2087
        static_cast<TMSGlobalVolEffect*> (iGlobalVol)->SetLevel(level);
hgs
parents:
diff changeset
  2088
        }
hgs
parents:
diff changeset
  2089
    }
hgs
parents:
diff changeset
  2090
hgs
parents:
diff changeset
  2091
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2092
// CTmsTestEngine::GetGlobalGain
hgs
parents:
diff changeset
  2093
//
hgs
parents:
diff changeset
  2094
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2095
//
hgs
parents:
diff changeset
  2096
void CTmsTestEngine::GetGlobalGain()
hgs
parents:
diff changeset
  2097
    {
hgs
parents:
diff changeset
  2098
    if (iGlobalGain)
hgs
parents:
diff changeset
  2099
        {
hgs
parents:
diff changeset
  2100
        TUint level(0);
hgs
parents:
diff changeset
  2101
        static_cast<TMSGlobalGainEffect*> (iGlobalGain)->GetLevel(level);
hgs
parents:
diff changeset
  2102
        DisplayText("Global Gain: ", level);
hgs
parents:
diff changeset
  2103
        }
hgs
parents:
diff changeset
  2104
    }
hgs
parents:
diff changeset
  2105
hgs
parents:
diff changeset
  2106
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2107
// CTmsTestEngine::GetGlobalMaxGain
hgs
parents:
diff changeset
  2108
//
hgs
parents:
diff changeset
  2109
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2110
//
hgs
parents:
diff changeset
  2111
void CTmsTestEngine::GetGlobalMaxGain()
hgs
parents:
diff changeset
  2112
    {
hgs
parents:
diff changeset
  2113
    if (iGlobalGain)
hgs
parents:
diff changeset
  2114
        {
hgs
parents:
diff changeset
  2115
        TUint level(0);
hgs
parents:
diff changeset
  2116
        static_cast<TMSGlobalGainEffect*> (iGlobalGain)->GetMaxLevel(level);
hgs
parents:
diff changeset
  2117
        DisplayText("Global Max gain: ", level);
hgs
parents:
diff changeset
  2118
        }
hgs
parents:
diff changeset
  2119
    }
hgs
parents:
diff changeset
  2120
hgs
parents:
diff changeset
  2121
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2122
// CTmsTestEngine::SetGlobalGain
hgs
parents:
diff changeset
  2123
//
hgs
parents:
diff changeset
  2124
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2125
//
hgs
parents:
diff changeset
  2126
void CTmsTestEngine::SetGlobalGain()
hgs
parents:
diff changeset
  2127
    {
hgs
parents:
diff changeset
  2128
    TUint level(0);
hgs
parents:
diff changeset
  2129
    if (iGlobalGain)
hgs
parents:
diff changeset
  2130
        {
hgs
parents:
diff changeset
  2131
        static_cast<TMSGlobalGainEffect*> (iGlobalGain)->GetMaxLevel(level);
hgs
parents:
diff changeset
  2132
        static_cast<TMSGlobalGainEffect*> (iGlobalGain)->SetLevel(level);
hgs
parents:
diff changeset
  2133
        }
hgs
parents:
diff changeset
  2134
    }
hgs
parents:
diff changeset
  2135
hgs
parents:
diff changeset
  2136
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2137
// CTmsTestEngine::SetOutputDevice
hgs
parents:
diff changeset
  2138
//
hgs
parents:
diff changeset
  2139
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2140
//
hgs
parents:
diff changeset
  2141
void CTmsTestEngine::SetOutputDevice(TMSAudioOutput device)
hgs
parents:
diff changeset
  2142
    {
hgs
parents:
diff changeset
  2143
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
  2144
hgs
parents:
diff changeset
  2145
    if (iTmsGlobalRouting)
hgs
parents:
diff changeset
  2146
        {
hgs
parents:
diff changeset
  2147
        switch (device)
hgs
parents:
diff changeset
  2148
            {
hgs
parents:
diff changeset
  2149
            case TMS_AUDIO_OUTPUT_NONE:
hgs
parents:
diff changeset
  2150
                status = iTmsGlobalRouting->SetOutput(TMS_AUDIO_OUTPUT_NONE);
hgs
parents:
diff changeset
  2151
                DisplayText("Routing none");
hgs
parents:
diff changeset
  2152
                break;
hgs
parents:
diff changeset
  2153
            case TMS_AUDIO_OUTPUT_PUBLIC:
hgs
parents:
diff changeset
  2154
                status = iTmsGlobalRouting->SetOutput(TMS_AUDIO_OUTPUT_PUBLIC);
hgs
parents:
diff changeset
  2155
                DisplayText("Routing public");
hgs
parents:
diff changeset
  2156
                break;
hgs
parents:
diff changeset
  2157
            case TMS_AUDIO_OUTPUT_PRIVATE:
hgs
parents:
diff changeset
  2158
                status = iTmsGlobalRouting->SetOutput(TMS_AUDIO_OUTPUT_PRIVATE);
hgs
parents:
diff changeset
  2159
                DisplayText("Routing private");
hgs
parents:
diff changeset
  2160
                break;
hgs
parents:
diff changeset
  2161
            case TMS_AUDIO_OUTPUT_HANDSET:
hgs
parents:
diff changeset
  2162
                status = iTmsGlobalRouting->SetOutput(TMS_AUDIO_OUTPUT_HANDSET);
hgs
parents:
diff changeset
  2163
                DisplayText("Routing to handset");
hgs
parents:
diff changeset
  2164
                break;
hgs
parents:
diff changeset
  2165
            case TMS_AUDIO_OUTPUT_LOUDSPEAKER:
hgs
parents:
diff changeset
  2166
                status = iTmsGlobalRouting->SetOutput(
hgs
parents:
diff changeset
  2167
                        TMS_AUDIO_OUTPUT_LOUDSPEAKER);
hgs
parents:
diff changeset
  2168
                DisplayText("Routing to Loudspeaker");
hgs
parents:
diff changeset
  2169
                break;
hgs
parents:
diff changeset
  2170
            case TMS_AUDIO_OUTPUT_WIRED_ACCESSORY:
hgs
parents:
diff changeset
  2171
                status = iTmsGlobalRouting->SetOutput(
hgs
parents:
diff changeset
  2172
                        TMS_AUDIO_OUTPUT_WIRED_ACCESSORY);
hgs
parents:
diff changeset
  2173
                DisplayText("Routing to Wired accessory");
hgs
parents:
diff changeset
  2174
                break;
hgs
parents:
diff changeset
  2175
            case TMS_AUDIO_OUTPUT_ACCESSORY:
hgs
parents:
diff changeset
  2176
                status = iTmsGlobalRouting->SetOutput(
hgs
parents:
diff changeset
  2177
                        TMS_AUDIO_OUTPUT_ACCESSORY);
hgs
parents:
diff changeset
  2178
                DisplayText("Routing to BT accessory");
hgs
parents:
diff changeset
  2179
                break;
hgs
parents:
diff changeset
  2180
            case TMS_AUDIO_OUTPUT_ETTY:
hgs
parents:
diff changeset
  2181
                status = iTmsGlobalRouting->SetOutput(TMS_AUDIO_OUTPUT_ETTY);
hgs
parents:
diff changeset
  2182
                DisplayText("Routing to TTY");
hgs
parents:
diff changeset
  2183
                break;
hgs
parents:
diff changeset
  2184
            default: // ENoPreference
hgs
parents:
diff changeset
  2185
                DisplayText("Default Device Routing");
hgs
parents:
diff changeset
  2186
                break;
hgs
parents:
diff changeset
  2187
            }
hgs
parents:
diff changeset
  2188
        }
hgs
parents:
diff changeset
  2189
    if (status != TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  2190
        {
hgs
parents:
diff changeset
  2191
        DisplayText("Routing failed: ", status);
hgs
parents:
diff changeset
  2192
        }
hgs
parents:
diff changeset
  2193
    }
hgs
parents:
diff changeset
  2194
hgs
parents:
diff changeset
  2195
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2196
// CTmsTestEngine::SetHandset
hgs
parents:
diff changeset
  2197
//
hgs
parents:
diff changeset
  2198
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2199
//
hgs
parents:
diff changeset
  2200
void CTmsTestEngine::SetHandset()
hgs
parents:
diff changeset
  2201
    {
hgs
parents:
diff changeset
  2202
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
  2203
hgs
parents:
diff changeset
  2204
    if (iTmsGlobalRouting)
hgs
parents:
diff changeset
  2205
        {
hgs
parents:
diff changeset
  2206
        status = iTmsGlobalRouting->SetOutput(TMS_AUDIO_OUTPUT_HANDSET);
hgs
parents:
diff changeset
  2207
hgs
parents:
diff changeset
  2208
        if (status != TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  2209
            {
hgs
parents:
diff changeset
  2210
            DisplayText("SetHandSet failed: ", status);
hgs
parents:
diff changeset
  2211
            }
hgs
parents:
diff changeset
  2212
        else
hgs
parents:
diff changeset
  2213
            {
hgs
parents:
diff changeset
  2214
            DisplayText("SetHandSet");
hgs
parents:
diff changeset
  2215
            }
hgs
parents:
diff changeset
  2216
        }
hgs
parents:
diff changeset
  2217
    }
hgs
parents:
diff changeset
  2218
hgs
parents:
diff changeset
  2219
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2220
// CTmsTestEngine::SetLoudSpeaker
hgs
parents:
diff changeset
  2221
//
hgs
parents:
diff changeset
  2222
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2223
//
hgs
parents:
diff changeset
  2224
void CTmsTestEngine::SetLoudSpeaker()
hgs
parents:
diff changeset
  2225
    {
hgs
parents:
diff changeset
  2226
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
  2227
hgs
parents:
diff changeset
  2228
    if (iTmsGlobalRouting)
hgs
parents:
diff changeset
  2229
        {
hgs
parents:
diff changeset
  2230
        status = iTmsGlobalRouting->SetOutput(TMS_AUDIO_OUTPUT_LOUDSPEAKER);
hgs
parents:
diff changeset
  2231
hgs
parents:
diff changeset
  2232
        if (status != TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  2233
            {
hgs
parents:
diff changeset
  2234
            DisplayText("SetLoudSpeaker failed: ", status);
hgs
parents:
diff changeset
  2235
            }
hgs
parents:
diff changeset
  2236
        else
hgs
parents:
diff changeset
  2237
            {
hgs
parents:
diff changeset
  2238
            DisplayText("SetLoudSpeaker");
hgs
parents:
diff changeset
  2239
            }
hgs
parents:
diff changeset
  2240
        }
hgs
parents:
diff changeset
  2241
    }
hgs
parents:
diff changeset
  2242
hgs
parents:
diff changeset
  2243
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2244
// CTmsTestEngine::GetAudioDevice
hgs
parents:
diff changeset
  2245
//
hgs
parents:
diff changeset
  2246
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2247
//
hgs
parents:
diff changeset
  2248
void CTmsTestEngine::GetAudioDevice()
hgs
parents:
diff changeset
  2249
    {
hgs
parents:
diff changeset
  2250
    TMSAudioOutput device;
hgs
parents:
diff changeset
  2251
hgs
parents:
diff changeset
  2252
    if (iTmsGlobalRouting)
hgs
parents:
diff changeset
  2253
        {
hgs
parents:
diff changeset
  2254
        iTmsGlobalRouting->GetOutput(device);
hgs
parents:
diff changeset
  2255
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
  2256
        TMSAudioOutput prevdevice;
hgs
parents:
diff changeset
  2257
        iTmsGlobalRouting->GetPreviousOutput(prevdevice);
hgs
parents:
diff changeset
  2258
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
  2259
hgs
parents:
diff changeset
  2260
        switch (device)
hgs
parents:
diff changeset
  2261
            {
hgs
parents:
diff changeset
  2262
            case TMS_AUDIO_OUTPUT_NONE:
hgs
parents:
diff changeset
  2263
                DisplayText("Routing none");
hgs
parents:
diff changeset
  2264
                break;
hgs
parents:
diff changeset
  2265
            case TMS_AUDIO_OUTPUT_PUBLIC:
hgs
parents:
diff changeset
  2266
                DisplayText("Routing public");
hgs
parents:
diff changeset
  2267
                break;
hgs
parents:
diff changeset
  2268
            case TMS_AUDIO_OUTPUT_PRIVATE:
hgs
parents:
diff changeset
  2269
                DisplayText("Routing private");
hgs
parents:
diff changeset
  2270
                break;
hgs
parents:
diff changeset
  2271
            case TMS_AUDIO_OUTPUT_HANDSET:
hgs
parents:
diff changeset
  2272
                DisplayText("Routing to handset");
hgs
parents:
diff changeset
  2273
                break;
hgs
parents:
diff changeset
  2274
            case TMS_AUDIO_OUTPUT_LOUDSPEAKER:
hgs
parents:
diff changeset
  2275
                DisplayText("Routing to Loudspeaker");
hgs
parents:
diff changeset
  2276
                break;
hgs
parents:
diff changeset
  2277
            case TMS_AUDIO_OUTPUT_WIRED_ACCESSORY:
hgs
parents:
diff changeset
  2278
                DisplayText("Routing to Wired accessory");
hgs
parents:
diff changeset
  2279
                break;
hgs
parents:
diff changeset
  2280
            case TMS_AUDIO_OUTPUT_ACCESSORY:
hgs
parents:
diff changeset
  2281
                DisplayText("Routing to BT accessory");
hgs
parents:
diff changeset
  2282
                break;
hgs
parents:
diff changeset
  2283
            case TMS_AUDIO_OUTPUT_ETTY:
hgs
parents:
diff changeset
  2284
                DisplayText("Routing to TTY");
hgs
parents:
diff changeset
  2285
                break;
hgs
parents:
diff changeset
  2286
            default: // ENoPreference
hgs
parents:
diff changeset
  2287
                DisplayText("Default Device Routing");
hgs
parents:
diff changeset
  2288
                break;
hgs
parents:
diff changeset
  2289
            }
hgs
parents:
diff changeset
  2290
        }
hgs
parents:
diff changeset
  2291
    }
hgs
parents:
diff changeset
  2292
hgs
parents:
diff changeset
  2293
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2294
// CTmsTestEngine::GetAvailableOutput
hgs
parents:
diff changeset
  2295
//
hgs
parents:
diff changeset
  2296
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2297
//
hgs
parents:
diff changeset
  2298
void CTmsTestEngine::GetAvailableOutput()
hgs
parents:
diff changeset
  2299
    {
hgs
parents:
diff changeset
  2300
    TInt status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
  2301
hgs
parents:
diff changeset
  2302
    if (iTmsGlobalRouting)
hgs
parents:
diff changeset
  2303
        {
hgs
parents:
diff changeset
  2304
        status = iTmsGlobalRouting->GetAvailableOutputs(iAvailableoutputs);
hgs
parents:
diff changeset
  2305
hgs
parents:
diff changeset
  2306
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  2307
            {
hgs
parents:
diff changeset
  2308
            DisplayText("Available outputs: ", iAvailableoutputs.size());
hgs
parents:
diff changeset
  2309
            std::vector<guint>::iterator outputs = iAvailableoutputs.begin();
hgs
parents:
diff changeset
  2310
            for (; outputs < iAvailableoutputs.end(); outputs++)
hgs
parents:
diff changeset
  2311
                {
hgs
parents:
diff changeset
  2312
                DisplayDevice(*outputs);
hgs
parents:
diff changeset
  2313
                }
hgs
parents:
diff changeset
  2314
            }
hgs
parents:
diff changeset
  2315
        else
hgs
parents:
diff changeset
  2316
            {
hgs
parents:
diff changeset
  2317
            DisplayText("Available output error: ", status);
hgs
parents:
diff changeset
  2318
            }
hgs
parents:
diff changeset
  2319
        }
hgs
parents:
diff changeset
  2320
    }
hgs
parents:
diff changeset
  2321
hgs
parents:
diff changeset
  2322
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2323
// CTmsTestEngine::DisplayDevice
hgs
parents:
diff changeset
  2324
//
hgs
parents:
diff changeset
  2325
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2326
//
hgs
parents:
diff changeset
  2327
void CTmsTestEngine::DisplayDevice(TMSAudioOutput device)
hgs
parents:
diff changeset
  2328
    {
hgs
parents:
diff changeset
  2329
    switch (device)
hgs
parents:
diff changeset
  2330
        {
hgs
parents:
diff changeset
  2331
        case TMS_AUDIO_OUTPUT_NONE:
hgs
parents:
diff changeset
  2332
            DisplayText("none");
hgs
parents:
diff changeset
  2333
            break;
hgs
parents:
diff changeset
  2334
        case TMS_AUDIO_OUTPUT_PUBLIC:
hgs
parents:
diff changeset
  2335
            DisplayText("Public");
hgs
parents:
diff changeset
  2336
            break;
hgs
parents:
diff changeset
  2337
        case TMS_AUDIO_OUTPUT_PRIVATE:
hgs
parents:
diff changeset
  2338
            DisplayText("Private");
hgs
parents:
diff changeset
  2339
            break;
hgs
parents:
diff changeset
  2340
        case TMS_AUDIO_OUTPUT_HANDSET:
hgs
parents:
diff changeset
  2341
            DisplayText("Handset");
hgs
parents:
diff changeset
  2342
            break;
hgs
parents:
diff changeset
  2343
        case TMS_AUDIO_OUTPUT_LOUDSPEAKER:
hgs
parents:
diff changeset
  2344
            DisplayText("Loudspeaker");
hgs
parents:
diff changeset
  2345
            break;
hgs
parents:
diff changeset
  2346
        case TMS_AUDIO_OUTPUT_WIRED_ACCESSORY:
hgs
parents:
diff changeset
  2347
            DisplayText("Wired accessory");
hgs
parents:
diff changeset
  2348
            break;
hgs
parents:
diff changeset
  2349
        case TMS_AUDIO_OUTPUT_ACCESSORY:
hgs
parents:
diff changeset
  2350
            DisplayText("Accessory");
hgs
parents:
diff changeset
  2351
            break;
hgs
parents:
diff changeset
  2352
        case TMS_AUDIO_OUTPUT_ETTY:
hgs
parents:
diff changeset
  2353
            DisplayText("TTY");
hgs
parents:
diff changeset
  2354
            break;
hgs
parents:
diff changeset
  2355
        default:
hgs
parents:
diff changeset
  2356
            break;
hgs
parents:
diff changeset
  2357
        }
hgs
parents:
diff changeset
  2358
    }
hgs
parents:
diff changeset
  2359
hgs
parents:
diff changeset
  2360
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2361
// CTmsTestEngine::InitDTMFTonePlayerDnlink
hgs
parents:
diff changeset
  2362
//
hgs
parents:
diff changeset
  2363
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2364
//
hgs
parents:
diff changeset
  2365
void CTmsTestEngine::InitDTMFTonePlayerDnlink()
hgs
parents:
diff changeset
  2366
    {
hgs
parents:
diff changeset
  2367
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
  2368
    if (iFactory)
hgs
parents:
diff changeset
  2369
        {
hgs
parents:
diff changeset
  2370
        status = iFactory->CreateDTMF(TMS_STREAM_DOWNLINK, iDTMFTonePlayerDn);
hgs
parents:
diff changeset
  2371
        }
hgs
parents:
diff changeset
  2372
    if (iDTMFTonePlayerDn && status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  2373
        {
hgs
parents:
diff changeset
  2374
        // Note: It is sufficient to register only 1 DTMF observer per client.
hgs
parents:
diff changeset
  2375
        // Since callbacks from UPL and DNL DTMF players are handled by the
hgs
parents:
diff changeset
  2376
        // same client, and callback mechanism doesn't distinguish between
hgs
parents:
diff changeset
  2377
        // UPL and DNL DTMF event, registering same client twice will result
hgs
parents:
diff changeset
  2378
        // in duplicated callbacks.
hgs
parents:
diff changeset
  2379
        if (iHasDTMFObserver == 0)
hgs
parents:
diff changeset
  2380
            {
hgs
parents:
diff changeset
  2381
            status = iDTMFTonePlayerDn->AddObserver(*this, NULL);
hgs
parents:
diff changeset
  2382
            iHasDTMFObserver++;
hgs
parents:
diff changeset
  2383
            }
hgs
parents:
diff changeset
  2384
        }
hgs
parents:
diff changeset
  2385
    if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  2386
        {
hgs
parents:
diff changeset
  2387
        DisplayText("DTMF Downlink OK");
hgs
parents:
diff changeset
  2388
        }
hgs
parents:
diff changeset
  2389
    else
hgs
parents:
diff changeset
  2390
        {
hgs
parents:
diff changeset
  2391
        DisplayText("DTMF Downlink failed:", status);
hgs
parents:
diff changeset
  2392
        }
hgs
parents:
diff changeset
  2393
    }
hgs
parents:
diff changeset
  2394
hgs
parents:
diff changeset
  2395
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2396
// CTmsTestEngine::InitDTMFTonePlayerUplink
hgs
parents:
diff changeset
  2397
//
hgs
parents:
diff changeset
  2398
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2399
//
hgs
parents:
diff changeset
  2400
void CTmsTestEngine::InitDTMFTonePlayerUplink()
hgs
parents:
diff changeset
  2401
    {
hgs
parents:
diff changeset
  2402
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
  2403
    if (iFactory)
hgs
parents:
diff changeset
  2404
        {
hgs
parents:
diff changeset
  2405
        status = iFactory->CreateDTMF(TMS_STREAM_UPLINK, iDTMFTonePlayerUp);
hgs
parents:
diff changeset
  2406
        }
hgs
parents:
diff changeset
  2407
    if (iDTMFTonePlayerUp && status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  2408
        {
hgs
parents:
diff changeset
  2409
        // Note: It is sufficient to register only 1 DTMF observer per client.
hgs
parents:
diff changeset
  2410
        // Since callbacks from UPL and DNL DTMF players are handled by the
hgs
parents:
diff changeset
  2411
        // same client, and callback mechanism doesn't distinguish between
hgs
parents:
diff changeset
  2412
        // UPL and DNL DTMF event, registering same client twice will result
hgs
parents:
diff changeset
  2413
        // in duplicated callbacks.
hgs
parents:
diff changeset
  2414
        if (iHasDTMFObserver == 0)
hgs
parents:
diff changeset
  2415
            {
hgs
parents:
diff changeset
  2416
            status = iDTMFTonePlayerUp->AddObserver(*this, NULL);
hgs
parents:
diff changeset
  2417
            iHasDTMFObserver++;
hgs
parents:
diff changeset
  2418
            }
hgs
parents:
diff changeset
  2419
        }
hgs
parents:
diff changeset
  2420
    if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  2421
        {
hgs
parents:
diff changeset
  2422
        DisplayText("DTMF Uplink OK");
hgs
parents:
diff changeset
  2423
        }
hgs
parents:
diff changeset
  2424
    else
hgs
parents:
diff changeset
  2425
        {
hgs
parents:
diff changeset
  2426
        DisplayText("DTMF Uplink failed: ", status);
hgs
parents:
diff changeset
  2427
        }
hgs
parents:
diff changeset
  2428
    }
hgs
parents:
diff changeset
  2429
hgs
parents:
diff changeset
  2430
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2431
// CTmsTestEngine::DTMFTonePlayDnlink
hgs
parents:
diff changeset
  2432
//
hgs
parents:
diff changeset
  2433
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2434
//
hgs
parents:
diff changeset
  2435
void CTmsTestEngine::DTMFTonePlayDnlink()
hgs
parents:
diff changeset
  2436
    {
hgs
parents:
diff changeset
  2437
    GString* dtmfstring;
hgs
parents:
diff changeset
  2438
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
  2439
    if (iDTMFTonePlayerDn)
hgs
parents:
diff changeset
  2440
        {
hgs
parents:
diff changeset
  2441
        dtmfstring = g_string_new("4723");
hgs
parents:
diff changeset
  2442
        status = iDTMFTonePlayerDn->SetTone(dtmfstring);
hgs
parents:
diff changeset
  2443
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  2444
            {
hgs
parents:
diff changeset
  2445
            status = iDTMFTonePlayerDn->Start();
hgs
parents:
diff changeset
  2446
            if (status != TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  2447
                {
hgs
parents:
diff changeset
  2448
                DisplayText("DTMF downlink start failed: ", status);
hgs
parents:
diff changeset
  2449
                }
hgs
parents:
diff changeset
  2450
            }
hgs
parents:
diff changeset
  2451
        else
hgs
parents:
diff changeset
  2452
            {
hgs
parents:
diff changeset
  2453
            DisplayText("DTMF downlink settone failed: ", status);
hgs
parents:
diff changeset
  2454
            }
hgs
parents:
diff changeset
  2455
        g_string_free(dtmfstring, TRUE);
hgs
parents:
diff changeset
  2456
        }
hgs
parents:
diff changeset
  2457
    else
hgs
parents:
diff changeset
  2458
        {
hgs
parents:
diff changeset
  2459
        DisplayText("Downlink not ready");
hgs
parents:
diff changeset
  2460
        }
hgs
parents:
diff changeset
  2461
    }
hgs
parents:
diff changeset
  2462
hgs
parents:
diff changeset
  2463
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2464
// CTmsTestEngine::DTMFTonePlayUplink
hgs
parents:
diff changeset
  2465
//
hgs
parents:
diff changeset
  2466
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2467
//
hgs
parents:
diff changeset
  2468
void CTmsTestEngine::DTMFTonePlayUplink()
hgs
parents:
diff changeset
  2469
    {
hgs
parents:
diff changeset
  2470
    GString* dtmfstring;
hgs
parents:
diff changeset
  2471
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
  2472
    // Note: uplink must be in the streaming state (disable for testing)
hgs
parents:
diff changeset
  2473
    if (iDTMFTonePlayerUp && iUpLinkStatus == EStreaming)
hgs
parents:
diff changeset
  2474
        {
hgs
parents:
diff changeset
  2475
        dtmfstring = g_string_new("4567890*#123");
hgs
parents:
diff changeset
  2476
        //dtmfstring = g_string_append_c(dtmfstring, '4');
hgs
parents:
diff changeset
  2477
        status = iDTMFTonePlayerUp->SetTone(dtmfstring);
hgs
parents:
diff changeset
  2478
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  2479
            {
hgs
parents:
diff changeset
  2480
#ifdef __TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
  2481
            // CS call only
hgs
parents:
diff changeset
  2482
            iDTMFTonePlayerUp->ContinueDTMFStringSending(TRUE);
hgs
parents:
diff changeset
  2483
#endif //__TEST_CODE_COVERAGE__
hgs
parents:
diff changeset
  2484
hgs
parents:
diff changeset
  2485
            status = iDTMFTonePlayerUp->Start();
hgs
parents:
diff changeset
  2486
hgs
parents:
diff changeset
  2487
            if (status != TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  2488
                {
hgs
parents:
diff changeset
  2489
                DisplayText("DTMF uplink start failed: ", status);
hgs
parents:
diff changeset
  2490
                }
hgs
parents:
diff changeset
  2491
            }
hgs
parents:
diff changeset
  2492
        else
hgs
parents:
diff changeset
  2493
            {
hgs
parents:
diff changeset
  2494
            DisplayText("DTMF uplink settone failed: ", status);
hgs
parents:
diff changeset
  2495
            }
hgs
parents:
diff changeset
  2496
        g_string_free(dtmfstring, TRUE);
hgs
parents:
diff changeset
  2497
        }
hgs
parents:
diff changeset
  2498
    else
hgs
parents:
diff changeset
  2499
        {
hgs
parents:
diff changeset
  2500
        DisplayText("Uplink not ready");
hgs
parents:
diff changeset
  2501
        }
hgs
parents:
diff changeset
  2502
    }
hgs
parents:
diff changeset
  2503
hgs
parents:
diff changeset
  2504
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2505
// CTmsTestEngine::CloseDTMFPlayerDnlink
hgs
parents:
diff changeset
  2506
//
hgs
parents:
diff changeset
  2507
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2508
//
hgs
parents:
diff changeset
  2509
void CTmsTestEngine::CloseDTMFPlayerDnlink()
hgs
parents:
diff changeset
  2510
    {
hgs
parents:
diff changeset
  2511
    if (iFactory && iDTMFTonePlayerDn)
hgs
parents:
diff changeset
  2512
        {
hgs
parents:
diff changeset
  2513
        iDTMFTonePlayerDn->Stop();
hgs
parents:
diff changeset
  2514
        iDTMFTonePlayerDn->RemoveObserver(*this);
hgs
parents:
diff changeset
  2515
        iHasDTMFObserver--;
hgs
parents:
diff changeset
  2516
        iFactory->DeleteDTMF(iDTMFTonePlayerDn);
hgs
parents:
diff changeset
  2517
        }
hgs
parents:
diff changeset
  2518
    }
hgs
parents:
diff changeset
  2519
hgs
parents:
diff changeset
  2520
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2521
// CTmsTestEngine::CloseDTMFPlayerUplink
hgs
parents:
diff changeset
  2522
//
hgs
parents:
diff changeset
  2523
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2524
//
hgs
parents:
diff changeset
  2525
void CTmsTestEngine::CloseDTMFPlayerUplink()
hgs
parents:
diff changeset
  2526
    {
hgs
parents:
diff changeset
  2527
    if (iFactory && iDTMFTonePlayerUp)
hgs
parents:
diff changeset
  2528
        {
hgs
parents:
diff changeset
  2529
        iDTMFTonePlayerUp->Stop();
hgs
parents:
diff changeset
  2530
        iDTMFTonePlayerUp->RemoveObserver(*this);
hgs
parents:
diff changeset
  2531
        iHasDTMFObserver--;
hgs
parents:
diff changeset
  2532
        iFactory->DeleteDTMF(iDTMFTonePlayerUp);
hgs
parents:
diff changeset
  2533
        }
hgs
parents:
diff changeset
  2534
    }
hgs
parents:
diff changeset
  2535
hgs
parents:
diff changeset
  2536
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2537
// CTmsTestEngine::InitRingTonePlayerFromProfiles
hgs
parents:
diff changeset
  2538
//
hgs
parents:
diff changeset
  2539
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2540
//
hgs
parents:
diff changeset
  2541
void CTmsTestEngine::InitRingTonePlayerFromProfiles()
hgs
parents:
diff changeset
  2542
    {
hgs
parents:
diff changeset
  2543
    if (iTmsRingTonePlayer)
hgs
parents:
diff changeset
  2544
        {
hgs
parents:
diff changeset
  2545
        gint status = iTmsRingTonePlayer->Init(TMS_RINGTONE_DEFAULT);
hgs
parents:
diff changeset
  2546
        DisplayText("RT Init Profile: ", status);
hgs
parents:
diff changeset
  2547
        }
hgs
parents:
diff changeset
  2548
    }
hgs
parents:
diff changeset
  2549
hgs
parents:
diff changeset
  2550
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2551
// CTmsTestEngine::InitRingTonePlayerFromFile
hgs
parents:
diff changeset
  2552
//
hgs
parents:
diff changeset
  2553
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2554
//
hgs
parents:
diff changeset
  2555
void CTmsTestEngine::InitRingTonePlayerFromFile()
hgs
parents:
diff changeset
  2556
    {
hgs
parents:
diff changeset
  2557
    if (iTmsRingTonePlayer)
hgs
parents:
diff changeset
  2558
        {
hgs
parents:
diff changeset
  2559
        TBuf<sizeof(KTestFile1)> buf(KTestFile1);
hgs
parents:
diff changeset
  2560
        iRTStr = g_string_new_len((gchar*) buf.Ptr(), buf.Length() * 2);
hgs
parents:
diff changeset
  2561
        gint status = iTmsRingTonePlayer->Init(TMS_RINGTONE_FILE, iRTStr);
hgs
parents:
diff changeset
  2562
        DisplayText("RT Init File: ", status);
hgs
parents:
diff changeset
  2563
        g_string_free(iRTStr, TRUE);
hgs
parents:
diff changeset
  2564
        iRTStr = NULL;
hgs
parents:
diff changeset
  2565
        }
hgs
parents:
diff changeset
  2566
    }
hgs
parents:
diff changeset
  2567
hgs
parents:
diff changeset
  2568
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2569
// CTmsTestEngine::InitRingToneVideoPlayer
hgs
parents:
diff changeset
  2570
//
hgs
parents:
diff changeset
  2571
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2572
//
hgs
parents:
diff changeset
  2573
void CTmsTestEngine::InitRingToneVideoPlayer()
hgs
parents:
diff changeset
  2574
    {
hgs
parents:
diff changeset
  2575
    }
hgs
parents:
diff changeset
  2576
hgs
parents:
diff changeset
  2577
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2578
// CTmsTestEngine::InitRingToneSequencePlayer
hgs
parents:
diff changeset
  2579
// Creates sequence player to play custom sequence in descriptor format
hgs
parents:
diff changeset
  2580
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2581
//
hgs
parents:
diff changeset
  2582
void CTmsTestEngine::InitRingToneSequencePlayer()
hgs
parents:
diff changeset
  2583
    {
hgs
parents:
diff changeset
  2584
    if (iTmsRingTonePlayer)
hgs
parents:
diff changeset
  2585
        {
hgs
parents:
diff changeset
  2586
        TBuf8<sizeof(KRTBeepSequence)> buf(KRTBeepSequence);
hgs
parents:
diff changeset
  2587
        iRTStr = g_string_new_len((gchar*) buf.Ptr(), buf.Length());
hgs
parents:
diff changeset
  2588
        gint status = iTmsRingTonePlayer->Init(TMS_RINGTONE_SEQUENCE, iRTStr);
hgs
parents:
diff changeset
  2589
        DisplayText("RT Init Sequence:", status);
hgs
parents:
diff changeset
  2590
        g_string_free(iRTStr, TRUE);
hgs
parents:
diff changeset
  2591
        }
hgs
parents:
diff changeset
  2592
    }
hgs
parents:
diff changeset
  2593
hgs
parents:
diff changeset
  2594
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2595
// CTmsTestEngine::InitRingToneBeepOnce
hgs
parents:
diff changeset
  2596
// Creates sequence player to play single beep
hgs
parents:
diff changeset
  2597
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2598
//
hgs
parents:
diff changeset
  2599
void CTmsTestEngine::InitRingToneBeepOnce()
hgs
parents:
diff changeset
  2600
    {
hgs
parents:
diff changeset
  2601
    if (iTmsRingTonePlayer)
hgs
parents:
diff changeset
  2602
        {
hgs
parents:
diff changeset
  2603
        gint status = iTmsRingTonePlayer->Init(TMS_RINGTONE_BEEP_ONCE);
hgs
parents:
diff changeset
  2604
        DisplayText("RT Init BeepOnce: ", status);
hgs
parents:
diff changeset
  2605
        }
hgs
parents:
diff changeset
  2606
    }
hgs
parents:
diff changeset
  2607
hgs
parents:
diff changeset
  2608
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2609
// CTmsTestEngine::InitRingToneSilent
hgs
parents:
diff changeset
  2610
// Creates sequence player to play silent tone
hgs
parents:
diff changeset
  2611
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2612
//
hgs
parents:
diff changeset
  2613
void CTmsTestEngine::InitRingToneSilent()
hgs
parents:
diff changeset
  2614
    {
hgs
parents:
diff changeset
  2615
    if (iTmsRingTonePlayer)
hgs
parents:
diff changeset
  2616
        {
hgs
parents:
diff changeset
  2617
        gint status = iTmsRingTonePlayer->Init(TMS_RINGTONE_SILENT);
hgs
parents:
diff changeset
  2618
        DisplayText("RT Init Silent: ", status);
hgs
parents:
diff changeset
  2619
        }
hgs
parents:
diff changeset
  2620
    }
hgs
parents:
diff changeset
  2621
hgs
parents:
diff changeset
  2622
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2623
// CTmsTestEngine::InitRingToneUnsecureVoIP
hgs
parents:
diff changeset
  2624
// Creates sequence player to play tone for unsecured VoIP call.
hgs
parents:
diff changeset
  2625
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2626
//
hgs
parents:
diff changeset
  2627
void CTmsTestEngine::InitRingToneUnsecureVoIP()
hgs
parents:
diff changeset
  2628
    {
hgs
parents:
diff changeset
  2629
    if (iTmsRingTonePlayer)
hgs
parents:
diff changeset
  2630
        {
hgs
parents:
diff changeset
  2631
        gint status = iTmsRingTonePlayer->Init(TMS_RINGTONE_UNSECURE_VOIP);
hgs
parents:
diff changeset
  2632
        DisplayText("RT Init UnsecVoIP: ", status);
hgs
parents:
diff changeset
  2633
        }
hgs
parents:
diff changeset
  2634
    }
hgs
parents:
diff changeset
  2635
hgs
parents:
diff changeset
  2636
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2637
// CTmsTestEngine::InitRingToneWithTTS
hgs
parents:
diff changeset
  2638
// Creates sequence player to play default RT with Text-To-Speech
hgs
parents:
diff changeset
  2639
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2640
//
hgs
parents:
diff changeset
  2641
void CTmsTestEngine::InitRingToneWithTTS()
hgs
parents:
diff changeset
  2642
    {
hgs
parents:
diff changeset
  2643
    if (iTmsRingTonePlayer)
hgs
parents:
diff changeset
  2644
        {
hgs
parents:
diff changeset
  2645
        TBuf<sizeof(KTextToSpeak)> buf(KTextToSpeak);
hgs
parents:
diff changeset
  2646
        iTTSStr = g_string_new_len((gchar*) buf.Ptr(), buf.Length() * 2);
hgs
parents:
diff changeset
  2647
        gint status = iTmsRingTonePlayer->Init(TMS_RINGTONE_DEFAULT, NULL,
hgs
parents:
diff changeset
  2648
                iTTSStr);
hgs
parents:
diff changeset
  2649
        DisplayText("RT Init TTS:", status);
hgs
parents:
diff changeset
  2650
        g_string_free(iTTSStr, TRUE);
hgs
parents:
diff changeset
  2651
        }
hgs
parents:
diff changeset
  2652
    iTTSStr = NULL;
hgs
parents:
diff changeset
  2653
    }
hgs
parents:
diff changeset
  2654
hgs
parents:
diff changeset
  2655
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2656
// CTmsTestEngine::PlayRingTone
hgs
parents:
diff changeset
  2657
//
hgs
parents:
diff changeset
  2658
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2659
//
hgs
parents:
diff changeset
  2660
void CTmsTestEngine::PlayRingTone()
hgs
parents:
diff changeset
  2661
    {
hgs
parents:
diff changeset
  2662
    if (iTmsRingTonePlayer)
hgs
parents:
diff changeset
  2663
        {
hgs
parents:
diff changeset
  2664
        iTmsRingTonePlayer->Play();
hgs
parents:
diff changeset
  2665
        }
hgs
parents:
diff changeset
  2666
    }
hgs
parents:
diff changeset
  2667
hgs
parents:
diff changeset
  2668
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2669
// CTmsTestEngine::StopRingTone
hgs
parents:
diff changeset
  2670
//
hgs
parents:
diff changeset
  2671
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2672
//
hgs
parents:
diff changeset
  2673
void CTmsTestEngine::StopRingTone()
hgs
parents:
diff changeset
  2674
    {
hgs
parents:
diff changeset
  2675
    if (iTmsRingTonePlayer)
hgs
parents:
diff changeset
  2676
        {
hgs
parents:
diff changeset
  2677
        iTmsRingTonePlayer->Stop();
hgs
parents:
diff changeset
  2678
        }
hgs
parents:
diff changeset
  2679
    }
hgs
parents:
diff changeset
  2680
hgs
parents:
diff changeset
  2681
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2682
// CTmsTestEngine::MuteRingTone
hgs
parents:
diff changeset
  2683
//
hgs
parents:
diff changeset
  2684
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2685
//
hgs
parents:
diff changeset
  2686
void CTmsTestEngine::MuteRingTone()
hgs
parents:
diff changeset
  2687
    {
hgs
parents:
diff changeset
  2688
    if (iTmsRingTonePlayer)
hgs
parents:
diff changeset
  2689
        {
hgs
parents:
diff changeset
  2690
        iTmsRingTonePlayer->Mute();
hgs
parents:
diff changeset
  2691
        }
hgs
parents:
diff changeset
  2692
    }
hgs
parents:
diff changeset
  2693
hgs
parents:
diff changeset
  2694
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2695
// CTmsTestEngine::PauseVideoRingTone
hgs
parents:
diff changeset
  2696
// Pause audio for video RT only
hgs
parents:
diff changeset
  2697
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2698
//
hgs
parents:
diff changeset
  2699
void CTmsTestEngine::PauseVideoRingTone()
hgs
parents:
diff changeset
  2700
    {
hgs
parents:
diff changeset
  2701
    if (iTmsRingTonePlayer)
hgs
parents:
diff changeset
  2702
        {
hgs
parents:
diff changeset
  2703
        iTmsRingTonePlayer->Pause();
hgs
parents:
diff changeset
  2704
        }
hgs
parents:
diff changeset
  2705
    }
hgs
parents:
diff changeset
  2706
hgs
parents:
diff changeset
  2707
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2708
// CTmsTestEngine::DeinitRingTonePlayer
hgs
parents:
diff changeset
  2709
//
hgs
parents:
diff changeset
  2710
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2711
//
hgs
parents:
diff changeset
  2712
void CTmsTestEngine::DeinitRingTonePlayer()
hgs
parents:
diff changeset
  2713
    {
hgs
parents:
diff changeset
  2714
    if (iTmsRingTonePlayer)
hgs
parents:
diff changeset
  2715
        {
hgs
parents:
diff changeset
  2716
        iTmsRingTonePlayer->Deinit();
hgs
parents:
diff changeset
  2717
        }
hgs
parents:
diff changeset
  2718
    }
hgs
parents:
diff changeset
  2719
hgs
parents:
diff changeset
  2720
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2721
// CTmsTestEngine::CloseRingTonePlayer
hgs
parents:
diff changeset
  2722
//
hgs
parents:
diff changeset
  2723
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2724
//
hgs
parents:
diff changeset
  2725
void CTmsTestEngine::CloseRingTonePlayer()
hgs
parents:
diff changeset
  2726
    {
hgs
parents:
diff changeset
  2727
    if (iFactory && iTmsRingTonePlayer)
hgs
parents:
diff changeset
  2728
        {
hgs
parents:
diff changeset
  2729
        DeinitRingTonePlayer();
hgs
parents:
diff changeset
  2730
        iTmsRingTonePlayer->RemoveObserver(*this);
hgs
parents:
diff changeset
  2731
        iFactory->DeleteRingTonePlayer(iTmsRingTonePlayer);
hgs
parents:
diff changeset
  2732
        DisplayText("RT Player Closed");
hgs
parents:
diff changeset
  2733
        }
hgs
parents:
diff changeset
  2734
    }
hgs
parents:
diff changeset
  2735
hgs
parents:
diff changeset
  2736
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2737
// CTmsTestEngine::CreateInbandTonePlayer
hgs
parents:
diff changeset
  2738
//
hgs
parents:
diff changeset
  2739
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2740
//
hgs
parents:
diff changeset
  2741
void CTmsTestEngine::CreateInbandTonePlayer()
hgs
parents:
diff changeset
  2742
    {
hgs
parents:
diff changeset
  2743
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
  2744
    if (iFactory && !iInbandTonePlayer)
hgs
parents:
diff changeset
  2745
        {
hgs
parents:
diff changeset
  2746
        status = iFactory->CreateInbandTonePlayer(iInbandTonePlayer);
hgs
parents:
diff changeset
  2747
        if (iInbandTonePlayer && status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  2748
            {
hgs
parents:
diff changeset
  2749
            iInbandTonePlayer->AddObserver(*this, NULL);
hgs
parents:
diff changeset
  2750
            DisplayText("Inband Tone Player created");
hgs
parents:
diff changeset
  2751
            }
hgs
parents:
diff changeset
  2752
        else
hgs
parents:
diff changeset
  2753
            {
hgs
parents:
diff changeset
  2754
            DisplayText("Inband Tone Player failed: ", status);
hgs
parents:
diff changeset
  2755
            }
hgs
parents:
diff changeset
  2756
        }
hgs
parents:
diff changeset
  2757
    }
hgs
parents:
diff changeset
  2758
hgs
parents:
diff changeset
  2759
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2760
// CTmsTestEngine::StartInbandTone
hgs
parents:
diff changeset
  2761
//
hgs
parents:
diff changeset
  2762
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2763
//
hgs
parents:
diff changeset
  2764
void CTmsTestEngine::StartInbandTone(TMSInbandToneType inbandtone)
hgs
parents:
diff changeset
  2765
    {
hgs
parents:
diff changeset
  2766
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
  2767
    CreateInbandTonePlayer();
hgs
parents:
diff changeset
  2768
    if (iFactory && iInbandTonePlayer)
hgs
parents:
diff changeset
  2769
        {
hgs
parents:
diff changeset
  2770
        status = iInbandTonePlayer->Start(inbandtone);
hgs
parents:
diff changeset
  2771
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  2772
            {
hgs
parents:
diff changeset
  2773
            DisplayText("Inband Tone Player Start");
hgs
parents:
diff changeset
  2774
            }
hgs
parents:
diff changeset
  2775
        else
hgs
parents:
diff changeset
  2776
            {
hgs
parents:
diff changeset
  2777
            DisplayText("Inband tone failed: ", status);
hgs
parents:
diff changeset
  2778
            }
hgs
parents:
diff changeset
  2779
        }
hgs
parents:
diff changeset
  2780
    }
hgs
parents:
diff changeset
  2781
hgs
parents:
diff changeset
  2782
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2783
// CTmsTestEngine::StopInbandTone
hgs
parents:
diff changeset
  2784
//
hgs
parents:
diff changeset
  2785
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2786
//
hgs
parents:
diff changeset
  2787
void CTmsTestEngine::StopInbandTone()
hgs
parents:
diff changeset
  2788
    {
hgs
parents:
diff changeset
  2789
    gint status(TMS_RESULT_SUCCESS);
hgs
parents:
diff changeset
  2790
    if (iFactory && iInbandTonePlayer)
hgs
parents:
diff changeset
  2791
        {
hgs
parents:
diff changeset
  2792
        status = iInbandTonePlayer->Stop();
hgs
parents:
diff changeset
  2793
        if (status == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  2794
            {
hgs
parents:
diff changeset
  2795
            DisplayText("Inband Tone Player Stop");
hgs
parents:
diff changeset
  2796
            }
hgs
parents:
diff changeset
  2797
        else
hgs
parents:
diff changeset
  2798
            {
hgs
parents:
diff changeset
  2799
            DisplayText("Inband tone failed: ", status);
hgs
parents:
diff changeset
  2800
            }
hgs
parents:
diff changeset
  2801
        }
hgs
parents:
diff changeset
  2802
    }
hgs
parents:
diff changeset
  2803
hgs
parents:
diff changeset
  2804
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2805
// CTmsTestEngine::OneTouchLoopback
hgs
parents:
diff changeset
  2806
//
hgs
parents:
diff changeset
  2807
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2808
//
hgs
parents:
diff changeset
  2809
void CTmsTestEngine::OneTouchLoopback()
hgs
parents:
diff changeset
  2810
    {
hgs
parents:
diff changeset
  2811
    iOneTouchLoopback = ETrue;
hgs
parents:
diff changeset
  2812
hgs
parents:
diff changeset
  2813
    // Change between CS and IP call type for testing.
hgs
parents:
diff changeset
  2814
    //SetCallType(TMS_CALL_CS); //will activate streams
hgs
parents:
diff changeset
  2815
    SetCallType(TMS_CALL_IP);
hgs
parents:
diff changeset
  2816
hgs
parents:
diff changeset
  2817
    if (iTmsCall->GetCallType() == TMS_CALL_IP)
hgs
parents:
diff changeset
  2818
        {
hgs
parents:
diff changeset
  2819
#ifdef __WINSCW__
hgs
parents:
diff changeset
  2820
        SetDownlinkFormat(TMS_FORMAT_PCM);
hgs
parents:
diff changeset
  2821
        SetUplinkFormat(TMS_FORMAT_PCM);
hgs
parents:
diff changeset
  2822
#else  //__WINSCW__
hgs
parents:
diff changeset
  2823
        SetDownlinkFormat(TMS_FORMAT_AMR);
hgs
parents:
diff changeset
  2824
        SetUplinkFormat(TMS_FORMAT_AMR);
hgs
parents:
diff changeset
  2825
#endif //__WINSCW__
hgs
parents:
diff changeset
  2826
        }
hgs
parents:
diff changeset
  2827
    }
hgs
parents:
diff changeset
  2828
hgs
parents:
diff changeset
  2829
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2830
// CTmsTestEngine::DoLoopback
hgs
parents:
diff changeset
  2831
//
hgs
parents:
diff changeset
  2832
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2833
//
hgs
parents:
diff changeset
  2834
void CTmsTestEngine::DoLoopback()
hgs
parents:
diff changeset
  2835
    {
hgs
parents:
diff changeset
  2836
    if (iPlayBufReady && iRecBufReady)
hgs
parents:
diff changeset
  2837
        {
hgs
parents:
diff changeset
  2838
        guint8* srcptr(NULL);
hgs
parents:
diff changeset
  2839
        guint8* desptr(NULL);
hgs
parents:
diff changeset
  2840
        guint srcsize(0);
hgs
parents:
diff changeset
  2841
        guint dessize(0);
hgs
parents:
diff changeset
  2842
hgs
parents:
diff changeset
  2843
        iPlayBuf->GetDataPtr(desptr);
hgs
parents:
diff changeset
  2844
        iPlayBuf->GetDataSize(dessize);
hgs
parents:
diff changeset
  2845
        iRecBuf->GetDataPtr(srcptr);
hgs
parents:
diff changeset
  2846
        iRecBuf->GetDataSize(srcsize);
hgs
parents:
diff changeset
  2847
hgs
parents:
diff changeset
  2848
#ifdef __WINSCW__
hgs
parents:
diff changeset
  2849
        // This is the case when the size of the play buffer is larger than
hgs
parents:
diff changeset
  2850
        // the size of the recorded buffer. In WINS, DirectX views partially
hgs
parents:
diff changeset
  2851
        // filled buffers as an EOS and throws (-10). So, we will collect
hgs
parents:
diff changeset
  2852
        // multiple buffers here.
hgs
parents:
diff changeset
  2853
        Mem::Copy(desptr + iBufIndex, srcptr, srcsize);
hgs
parents:
diff changeset
  2854
        iBufIndex += srcsize;
hgs
parents:
diff changeset
  2855
        if (iBufIndex >= dessize)
hgs
parents:
diff changeset
  2856
            {
hgs
parents:
diff changeset
  2857
            iPlayBuf->SetDataSize(dessize);
hgs
parents:
diff changeset
  2858
            static_cast<TMSClientSource*> (iTmsClientSource)->BufferFilled(
hgs
parents:
diff changeset
  2859
                    *iPlayBuf);
hgs
parents:
diff changeset
  2860
            iPlayBufReady = EFalse; // buf filled, ready for next FillBuffer
hgs
parents:
diff changeset
  2861
            iBufIndex = 0;
hgs
parents:
diff changeset
  2862
            }
hgs
parents:
diff changeset
  2863
#else //__WINSCW__
hgs
parents:
diff changeset
  2864
        Mem::Copy(desptr, srcptr, srcsize);
hgs
parents:
diff changeset
  2865
        iPlayBuf->SetDataSize(srcsize);
hgs
parents:
diff changeset
  2866
        static_cast<TMSClientSource*> (iTmsClientSource)->BufferFilled(
hgs
parents:
diff changeset
  2867
                *iPlayBuf);
hgs
parents:
diff changeset
  2868
        iPlayBufReady = EFalse; // buf filled, ready for FillBuffer
hgs
parents:
diff changeset
  2869
#endif //__WINSCW__
hgs
parents:
diff changeset
  2870
        iRecBufReady = EFalse; // buf consumed, ready for next EmptyBuffer
hgs
parents:
diff changeset
  2871
        }
hgs
parents:
diff changeset
  2872
    }
hgs
parents:
diff changeset
  2873
hgs
parents:
diff changeset
  2874
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2875
// CTmsTestEngine::EndCall
hgs
parents:
diff changeset
  2876
//
hgs
parents:
diff changeset
  2877
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  2878
//
hgs
parents:
diff changeset
  2879
void CTmsTestEngine::EndCall()
hgs
parents:
diff changeset
  2880
    {
hgs
parents:
diff changeset
  2881
    StopUplink();
hgs
parents:
diff changeset
  2882
    StopDownlink();
hgs
parents:
diff changeset
  2883
    CloseUplink();
hgs
parents:
diff changeset
  2884
    CloseDownlink();
hgs
parents:
diff changeset
  2885
    CloseDTMFPlayerUplink();
hgs
parents:
diff changeset
  2886
    CloseDTMFPlayerDnlink();
hgs
parents:
diff changeset
  2887
hgs
parents:
diff changeset
  2888
    if (iTmsUplink && iTmsCall)
hgs
parents:
diff changeset
  2889
        {
hgs
parents:
diff changeset
  2890
        iTmsCall->DeleteStream(iTmsUplink);
hgs
parents:
diff changeset
  2891
        }
hgs
parents:
diff changeset
  2892
    if (iTmsDnlink && iTmsCall)
hgs
parents:
diff changeset
  2893
        {
hgs
parents:
diff changeset
  2894
        iTmsCall->DeleteStream(iTmsDnlink);
hgs
parents:
diff changeset
  2895
        }
hgs
parents:
diff changeset
  2896
    if (iFactory && iTmsCall)
hgs
parents:
diff changeset
  2897
        {
hgs
parents:
diff changeset
  2898
        iFactory->DeleteCall(iTmsCall);
hgs
parents:
diff changeset
  2899
        }
hgs
parents:
diff changeset
  2900
    if (iFactory && iTmsClientSource)
hgs
parents:
diff changeset
  2901
        {
hgs
parents:
diff changeset
  2902
        if (iCallType == TMS_CALL_IP)
hgs
parents:
diff changeset
  2903
            {
hgs
parents:
diff changeset
  2904
            static_cast<TMSClientSource*> (iTmsClientSource)->RemoveObserver(
hgs
parents:
diff changeset
  2905
                    *this);
hgs
parents:
diff changeset
  2906
            }
hgs
parents:
diff changeset
  2907
        iFactory->DeleteSource(iTmsClientSource);
hgs
parents:
diff changeset
  2908
        }
hgs
parents:
diff changeset
  2909
    if (iFactory && iTmsMicSource)
hgs
parents:
diff changeset
  2910
        {
hgs
parents:
diff changeset
  2911
        iFactory->DeleteSource(iTmsMicSource);
hgs
parents:
diff changeset
  2912
        }
hgs
parents:
diff changeset
  2913
    if (iFactory && iTmsModemSource)
hgs
parents:
diff changeset
  2914
        {
hgs
parents:
diff changeset
  2915
        iFactory->DeleteSource(iTmsModemSource);
hgs
parents:
diff changeset
  2916
        }
hgs
parents:
diff changeset
  2917
    if (iFactory && iTmsClientSink)
hgs
parents:
diff changeset
  2918
        {
hgs
parents:
diff changeset
  2919
        if (iCallType == TMS_CALL_IP)
hgs
parents:
diff changeset
  2920
            {
hgs
parents:
diff changeset
  2921
            static_cast<TMSClientSink*> (iTmsClientSink)->RemoveObserver(*this);
hgs
parents:
diff changeset
  2922
            }
hgs
parents:
diff changeset
  2923
        iFactory->DeleteSink(iTmsClientSink);
hgs
parents:
diff changeset
  2924
        }
hgs
parents:
diff changeset
  2925
    if (iFactory && iTmsSpeakerSink)
hgs
parents:
diff changeset
  2926
        {
hgs
parents:
diff changeset
  2927
        iFactory->DeleteSink(iTmsSpeakerSink);
hgs
parents:
diff changeset
  2928
        }
hgs
parents:
diff changeset
  2929
    if (iFactory && iTmsModemSink)
hgs
parents:
diff changeset
  2930
        {
hgs
parents:
diff changeset
  2931
        iFactory->DeleteSink(iTmsModemSink);
hgs
parents:
diff changeset
  2932
        }
hgs
parents:
diff changeset
  2933
    if (iFactory && iTmsDnlinkEffect)
hgs
parents:
diff changeset
  2934
        {
hgs
parents:
diff changeset
  2935
        static_cast<TMSVolumeEffect*> (iTmsDnlinkEffect)->RemoveObserver(*this);
hgs
parents:
diff changeset
  2936
        iFactory->DeleteEffect(iTmsDnlinkEffect);
hgs
parents:
diff changeset
  2937
        }
hgs
parents:
diff changeset
  2938
    if (iFactory && iTmsUplinkEffect)
hgs
parents:
diff changeset
  2939
        {
hgs
parents:
diff changeset
  2940
        static_cast<TMSGainEffect*> (iTmsUplinkEffect)->RemoveObserver(*this);
hgs
parents:
diff changeset
  2941
        iFactory->DeleteEffect(iTmsUplinkEffect);
hgs
parents:
diff changeset
  2942
        }
hgs
parents:
diff changeset
  2943
    if (iFactory && iEncFormatIntfc)
hgs
parents:
diff changeset
  2944
        {
hgs
parents:
diff changeset
  2945
        iFactory->DeleteFormat(iEncFormatIntfc);
hgs
parents:
diff changeset
  2946
        }
hgs
parents:
diff changeset
  2947
    if (iFactory && iDecFormatIntfc)
hgs
parents:
diff changeset
  2948
        {
hgs
parents:
diff changeset
  2949
        iFactory->DeleteFormat(iDecFormatIntfc);
hgs
parents:
diff changeset
  2950
        }
hgs
parents:
diff changeset
  2951
    if (iFactory && iDTMFTonePlayerDn)
hgs
parents:
diff changeset
  2952
        {
hgs
parents:
diff changeset
  2953
        iFactory->DeleteDTMF(iDTMFTonePlayerDn);
hgs
parents:
diff changeset
  2954
        }
hgs
parents:
diff changeset
  2955
    if (iFactory && iDTMFTonePlayerUp)
hgs
parents:
diff changeset
  2956
        {
hgs
parents:
diff changeset
  2957
        iFactory->DeleteDTMF(iDTMFTonePlayerUp);
hgs
parents:
diff changeset
  2958
        }
hgs
parents:
diff changeset
  2959
    }
hgs
parents:
diff changeset
  2960
hgs
parents:
diff changeset
  2961
#ifdef __RECORD_WAV_TO_FILE__
hgs
parents:
diff changeset
  2962
void CTmsTestEngine::WriteToFile(const guint8* str, const guint len)
hgs
parents:
diff changeset
  2963
    {
hgs
parents:
diff changeset
  2964
    TPtrC8 ptr(str, len);
hgs
parents:
diff changeset
  2965
    TPtr8 p = iWriteBuf->Des();
hgs
parents:
diff changeset
  2966
    p.Copy(ptr);
hgs
parents:
diff changeset
  2967
    iFile.Write(p);
hgs
parents:
diff changeset
  2968
    }
hgs
parents:
diff changeset
  2969
#endif //__RECORD_WAV_TO_FILE__
hgs
parents:
diff changeset
  2970
hgs
parents:
diff changeset
  2971
// CALLBACKS
hgs
parents:
diff changeset
  2972
hgs
parents:
diff changeset
  2973
void CTmsTestEngine::TMSStreamEvent(const TMSStream& stream,
hgs
parents:
diff changeset
  2974
        TMSSignalEvent event)
hgs
parents:
diff changeset
  2975
    {
hgs
parents:
diff changeset
  2976
    switch (const_cast<TMSStream&> (stream).GetStreamType())
hgs
parents:
diff changeset
  2977
        {
hgs
parents:
diff changeset
  2978
        case TMS_STREAM_UPLINK:
hgs
parents:
diff changeset
  2979
            {
hgs
parents:
diff changeset
  2980
            switch (event.type)
hgs
parents:
diff changeset
  2981
                {
hgs
parents:
diff changeset
  2982
                case TMS_EVENT_STREAM_STATE_CHANGED:
hgs
parents:
diff changeset
  2983
                    {
hgs
parents:
diff changeset
  2984
                    switch (event.curr_state)
hgs
parents:
diff changeset
  2985
                        {
hgs
parents:
diff changeset
  2986
                        case TMS_STREAM_INITIALIZED:
hgs
parents:
diff changeset
  2987
                            {
hgs
parents:
diff changeset
  2988
#ifdef __PROFILING_ENABLED__
hgs
parents:
diff changeset
  2989
                            TAG_CALLBACK_TIME_PROFILING_END;
hgs
parents:
diff changeset
  2990
                            PRINT_CALLBACK_TIME_LATENCY;
hgs
parents:
diff changeset
  2991
#endif //__PROFILING_ENABLED__
hgs
parents:
diff changeset
  2992
                            iUpLinkStatus = EReady;
hgs
parents:
diff changeset
  2993
                            DisplayText("Uplink initialized ");
hgs
parents:
diff changeset
  2994
                            if (iOneTouchLoopback)
hgs
parents:
diff changeset
  2995
                                {
hgs
parents:
diff changeset
  2996
                                StartUplink();
hgs
parents:
diff changeset
  2997
                                }
hgs
parents:
diff changeset
  2998
                            break;
hgs
parents:
diff changeset
  2999
                            }
hgs
parents:
diff changeset
  3000
                        case TMS_STREAM_UNINITIALIZED:
hgs
parents:
diff changeset
  3001
                            iTmsUplink->RemoveObserver(*this);
hgs
parents:
diff changeset
  3002
                            DisplayText("Uplink uninitialized");
hgs
parents:
diff changeset
  3003
                            break;
hgs
parents:
diff changeset
  3004
                        case TMS_STREAM_PAUSED:
hgs
parents:
diff changeset
  3005
                            DisplayText("Uplink paused");
hgs
parents:
diff changeset
  3006
                            break;
hgs
parents:
diff changeset
  3007
                        case TMS_STREAM_STARTED:
hgs
parents:
diff changeset
  3008
                            DisplayText("Uplink started");
hgs
parents:
diff changeset
  3009
                            break;
hgs
parents:
diff changeset
  3010
                        default:
hgs
parents:
diff changeset
  3011
                            break;
hgs
parents:
diff changeset
  3012
                        }
hgs
parents:
diff changeset
  3013
                    break;
hgs
parents:
diff changeset
  3014
                    }
hgs
parents:
diff changeset
  3015
                case TMS_EVENT_STREAM_STATE_CHANGE_ERROR:
hgs
parents:
diff changeset
  3016
                    DisplayText("Uplink Error ", event.reason);
hgs
parents:
diff changeset
  3017
                    break;
hgs
parents:
diff changeset
  3018
                default:
hgs
parents:
diff changeset
  3019
                    break;
hgs
parents:
diff changeset
  3020
                }
hgs
parents:
diff changeset
  3021
            break;
hgs
parents:
diff changeset
  3022
            }
hgs
parents:
diff changeset
  3023
        case TMS_STREAM_DOWNLINK:
hgs
parents:
diff changeset
  3024
            {
hgs
parents:
diff changeset
  3025
            switch (event.type)
hgs
parents:
diff changeset
  3026
                {
hgs
parents:
diff changeset
  3027
                case TMS_EVENT_STREAM_STATE_CHANGED:
hgs
parents:
diff changeset
  3028
                    {
hgs
parents:
diff changeset
  3029
                    switch (event.curr_state)
hgs
parents:
diff changeset
  3030
                        {
hgs
parents:
diff changeset
  3031
                        case TMS_STREAM_INITIALIZED:
hgs
parents:
diff changeset
  3032
                            {
hgs
parents:
diff changeset
  3033
#ifdef __PROFILING_ENABLED__
hgs
parents:
diff changeset
  3034
                            TAG_CALLBACK_TIME_PROFILING_END;
hgs
parents:
diff changeset
  3035
                            PRINT_CALLBACK_TIME_LATENCY;
hgs
parents:
diff changeset
  3036
                            TAG_CALLBACK_TIME_PROFILING_START;
hgs
parents:
diff changeset
  3037
#endif //__PROFILING_ENABLED__
hgs
parents:
diff changeset
  3038
                            GetMaxVolume();
hgs
parents:
diff changeset
  3039
                            SetVolume(iMaxVolume / 2);
hgs
parents:
diff changeset
  3040
                            iDnLinkStatus = EReady;
hgs
parents:
diff changeset
  3041
                            DisplayText("Downlink initialized");
hgs
parents:
diff changeset
  3042
                            if (iOneTouchLoopback)
hgs
parents:
diff changeset
  3043
                                {
hgs
parents:
diff changeset
  3044
#ifndef __WINSCW__
hgs
parents:
diff changeset
  3045
                                // No audio mixing in WINS - do not start
hgs
parents:
diff changeset
  3046
                                StartDownlink();
hgs
parents:
diff changeset
  3047
#endif //__WINSCW__
hgs
parents:
diff changeset
  3048
                                }
hgs
parents:
diff changeset
  3049
                            break;
hgs
parents:
diff changeset
  3050
                            }
hgs
parents:
diff changeset
  3051
                        case TMS_STREAM_UNINITIALIZED:
hgs
parents:
diff changeset
  3052
                            iTmsDnlink->RemoveObserver(*this);
hgs
parents:
diff changeset
  3053
                            DisplayText("Downlink uninitialized");
hgs
parents:
diff changeset
  3054
                            break;
hgs
parents:
diff changeset
  3055
                        case TMS_STREAM_PAUSED:
hgs
parents:
diff changeset
  3056
                            DisplayText("Downlink paused");
hgs
parents:
diff changeset
  3057
                            break;
hgs
parents:
diff changeset
  3058
                        case TMS_STREAM_STARTED:
hgs
parents:
diff changeset
  3059
                            DisplayText("Downlink started");
hgs
parents:
diff changeset
  3060
                            break;
hgs
parents:
diff changeset
  3061
                        default:
hgs
parents:
diff changeset
  3062
                            break;
hgs
parents:
diff changeset
  3063
                        }
hgs
parents:
diff changeset
  3064
                    break;
hgs
parents:
diff changeset
  3065
                    }
hgs
parents:
diff changeset
  3066
                case TMS_EVENT_STREAM_STATE_CHANGE_ERROR:
hgs
parents:
diff changeset
  3067
                    DisplayText("Downlink Error ", event.reason);
hgs
parents:
diff changeset
  3068
                    break;
hgs
parents:
diff changeset
  3069
                default:
hgs
parents:
diff changeset
  3070
                    break;
hgs
parents:
diff changeset
  3071
                }
hgs
parents:
diff changeset
  3072
            break;
hgs
parents:
diff changeset
  3073
            }
hgs
parents:
diff changeset
  3074
        default:
hgs
parents:
diff changeset
  3075
            break;
hgs
parents:
diff changeset
  3076
        }
hgs
parents:
diff changeset
  3077
    }
hgs
parents:
diff changeset
  3078
hgs
parents:
diff changeset
  3079
//From TMSClientSourceObserver
hgs
parents:
diff changeset
  3080
void CTmsTestEngine::FillBuffer(TMSBuffer& buffer)
hgs
parents:
diff changeset
  3081
    {
hgs
parents:
diff changeset
  3082
    iPlayBufReady = ETrue;
hgs
parents:
diff changeset
  3083
    iPlayBuf = &buffer;
hgs
parents:
diff changeset
  3084
hgs
parents:
diff changeset
  3085
#ifdef __PLAY_WAV_FROM_FILE__
hgs
parents:
diff changeset
  3086
    guint8* gptr(NULL);
hgs
parents:
diff changeset
  3087
    iPlayBuf->GetDataPtr(gptr);
hgs
parents:
diff changeset
  3088
    guint gsize;
hgs
parents:
diff changeset
  3089
    iPlayBuf->GetDataSize(gsize);
hgs
parents:
diff changeset
  3090
    if (!iBuf)
hgs
parents:
diff changeset
  3091
        {
hgs
parents:
diff changeset
  3092
        iBuf = HBufC8::NewL(gsize);
hgs
parents:
diff changeset
  3093
        }
hgs
parents:
diff changeset
  3094
    TPtr8 p = iBuf->Des();
hgs
parents:
diff changeset
  3095
hgs
parents:
diff changeset
  3096
    if ((iReadPos + gsize) > iFileLen)
hgs
parents:
diff changeset
  3097
        {
hgs
parents:
diff changeset
  3098
        gsize = iFileLen - iReadPos;
hgs
parents:
diff changeset
  3099
        iEOF = ETrue;
hgs
parents:
diff changeset
  3100
        }
hgs
parents:
diff changeset
  3101
hgs
parents:
diff changeset
  3102
    iFile.Read(iReadPos, p, gsize);
hgs
parents:
diff changeset
  3103
    //  DEBPRN1(_L("CVoIPTestEngine[0x%x]::FillBuffer [%d]"), iReadPos);
hgs
parents:
diff changeset
  3104
hgs
parents:
diff changeset
  3105
    if (!iEOF)
hgs
parents:
diff changeset
  3106
        {
hgs
parents:
diff changeset
  3107
        iReadPos += gsize;
hgs
parents:
diff changeset
  3108
        }
hgs
parents:
diff changeset
  3109
    else
hgs
parents:
diff changeset
  3110
        {
hgs
parents:
diff changeset
  3111
        // start over from the beginning
hgs
parents:
diff changeset
  3112
        iReadPos = 0;
hgs
parents:
diff changeset
  3113
        iEOF = EFalse;
hgs
parents:
diff changeset
  3114
        }
hgs
parents:
diff changeset
  3115
hgs
parents:
diff changeset
  3116
    Mem::Copy(gptr, (TUint8*) iBuf->Ptr(), iBuf->Size());
hgs
parents:
diff changeset
  3117
    iPlayBuf->SetDataSize(iBuf->Size());
hgs
parents:
diff changeset
  3118
    static_cast<TMSClientSource*> (iTmsClientSource)->BufferFilled(*iPlayBuf);
hgs
parents:
diff changeset
  3119
    User::After(TTimeIntervalMicroSeconds32(100000)); //clears choppy audio
hgs
parents:
diff changeset
  3120
hgs
parents:
diff changeset
  3121
    iPlayBufReady = EFalse; // buf filled, ready for FillBuffer
hgs
parents:
diff changeset
  3122
    iRecBufReady = EFalse; // buf consumed, ready for EmptyBuffer
hgs
parents:
diff changeset
  3123
hgs
parents:
diff changeset
  3124
#else //__PLAY_WAV_FROM_FILE__
hgs
parents:
diff changeset
  3125
    if (iDnLinkStatus == EStreaming)
hgs
parents:
diff changeset
  3126
        {
hgs
parents:
diff changeset
  3127
        DoLoopback();
hgs
parents:
diff changeset
  3128
        }
hgs
parents:
diff changeset
  3129
#endif //__PLAY_WAV_FROM_FILE__
hgs
parents:
diff changeset
  3130
    }
hgs
parents:
diff changeset
  3131
hgs
parents:
diff changeset
  3132
//From TMSClientSourceObserver
hgs
parents:
diff changeset
  3133
void CTmsTestEngine::BufferProcessed(const TMSBuffer* /*buffer*/,
hgs
parents:
diff changeset
  3134
        gint /*reason*/)
hgs
parents:
diff changeset
  3135
    {
hgs
parents:
diff changeset
  3136
    }
hgs
parents:
diff changeset
  3137
hgs
parents:
diff changeset
  3138
// From TMSClientSinkObserver
hgs
parents:
diff changeset
  3139
void CTmsTestEngine::ProcessBuffer(const TMSBuffer* buffer)
hgs
parents:
diff changeset
  3140
    {
hgs
parents:
diff changeset
  3141
    iRecBufReady = ETrue;
hgs
parents:
diff changeset
  3142
    iRecBuf = const_cast<TMSBuffer*> (buffer);
hgs
parents:
diff changeset
  3143
hgs
parents:
diff changeset
  3144
    if (iUpLinkStatus == EStreaming)
hgs
parents:
diff changeset
  3145
        {
hgs
parents:
diff changeset
  3146
        // Process recorded buffer here.
hgs
parents:
diff changeset
  3147
hgs
parents:
diff changeset
  3148
#ifdef __RECORD_WAV_TO_FILE__
hgs
parents:
diff changeset
  3149
        guint8* p(NULL);
hgs
parents:
diff changeset
  3150
        guint len(0);
hgs
parents:
diff changeset
  3151
        iRecBuf->GetDataPtr(p);
hgs
parents:
diff changeset
  3152
        iRecBuf->GetDataSize(len);
hgs
parents:
diff changeset
  3153
        WriteToFile(p, len);
hgs
parents:
diff changeset
  3154
#endif //__RECORD_WAV_TO_FILE__
hgs
parents:
diff changeset
  3155
hgs
parents:
diff changeset
  3156
        DoLoopback();
hgs
parents:
diff changeset
  3157
        static_cast<TMSClientSink*> (iTmsClientSink)->BufferProcessed(iRecBuf);
hgs
parents:
diff changeset
  3158
        }
hgs
parents:
diff changeset
  3159
    }
hgs
parents:
diff changeset
  3160
hgs
parents:
diff changeset
  3161
// From TMSEffectObserver
hgs
parents:
diff changeset
  3162
void CTmsTestEngine::EffectsEvent(const TMSEffect& tmseffect,
hgs
parents:
diff changeset
  3163
        TMSSignalEvent event)
hgs
parents:
diff changeset
  3164
    {
hgs
parents:
diff changeset
  3165
    gint reason = event.reason;
hgs
parents:
diff changeset
  3166
hgs
parents:
diff changeset
  3167
    if (reason == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  3168
        {
hgs
parents:
diff changeset
  3169
        TMSEffectType effecttype;
hgs
parents:
diff changeset
  3170
        const_cast<TMSEffect&> (tmseffect).GetType(effecttype);
hgs
parents:
diff changeset
  3171
        switch (effecttype)
hgs
parents:
diff changeset
  3172
            {
hgs
parents:
diff changeset
  3173
            case TMS_EFFECT_GLOBAL_VOL:
hgs
parents:
diff changeset
  3174
                {
hgs
parents:
diff changeset
  3175
                switch (event.type)
hgs
parents:
diff changeset
  3176
                    {
hgs
parents:
diff changeset
  3177
                    case TMS_EVENT_EFFECT_VOL_CHANGED:
hgs
parents:
diff changeset
  3178
                        DisplayText("Global vol effect change");
hgs
parents:
diff changeset
  3179
                        TMSVolumeEventChangeData* vd;
hgs
parents:
diff changeset
  3180
                        vd = static_cast<TMSVolumeEventChangeData*>
hgs
parents:
diff changeset
  3181
                                (event.event_data);
hgs
parents:
diff changeset
  3182
                        DisplayText("Volume level: ", vd->level);
hgs
parents:
diff changeset
  3183
                        DisplayText("Output device: ", vd->output);
hgs
parents:
diff changeset
  3184
                        break;
hgs
parents:
diff changeset
  3185
                    default:
hgs
parents:
diff changeset
  3186
                        break;
hgs
parents:
diff changeset
  3187
                    }
hgs
parents:
diff changeset
  3188
                }
hgs
parents:
diff changeset
  3189
                break;
hgs
parents:
diff changeset
  3190
            case TMS_EFFECT_GLOBAL_GAIN:
hgs
parents:
diff changeset
  3191
                {
hgs
parents:
diff changeset
  3192
                switch (event.type)
hgs
parents:
diff changeset
  3193
                    {
hgs
parents:
diff changeset
  3194
                    case TMS_EVENT_EFFECT_GAIN_CHANGED:
hgs
parents:
diff changeset
  3195
                        DisplayText("Global gain effect change");
hgs
parents:
diff changeset
  3196
                        break;
hgs
parents:
diff changeset
  3197
                    default:
hgs
parents:
diff changeset
  3198
                        break;
hgs
parents:
diff changeset
  3199
                    }
hgs
parents:
diff changeset
  3200
                }
hgs
parents:
diff changeset
  3201
                break;
hgs
parents:
diff changeset
  3202
            case TMS_EFFECT_VOLUME:
hgs
parents:
diff changeset
  3203
                {
hgs
parents:
diff changeset
  3204
                switch (event.type)
hgs
parents:
diff changeset
  3205
                    {
hgs
parents:
diff changeset
  3206
                    case TMS_EVENT_EFFECT_VOL_CHANGED:
hgs
parents:
diff changeset
  3207
                        DisplayText("Stream vol effect change");
hgs
parents:
diff changeset
  3208
                        break;
hgs
parents:
diff changeset
  3209
                    default:
hgs
parents:
diff changeset
  3210
                        break;
hgs
parents:
diff changeset
  3211
                    }
hgs
parents:
diff changeset
  3212
                }
hgs
parents:
diff changeset
  3213
                break;
hgs
parents:
diff changeset
  3214
            case TMS_EFFECT_GAIN:
hgs
parents:
diff changeset
  3215
                {
hgs
parents:
diff changeset
  3216
                switch (event.type)
hgs
parents:
diff changeset
  3217
                    {
hgs
parents:
diff changeset
  3218
                    case TMS_EVENT_EFFECT_GAIN_CHANGED:
hgs
parents:
diff changeset
  3219
                        DisplayText("Stream gain effect change");
hgs
parents:
diff changeset
  3220
                        break;
hgs
parents:
diff changeset
  3221
                    default:
hgs
parents:
diff changeset
  3222
                        break;
hgs
parents:
diff changeset
  3223
                    }
hgs
parents:
diff changeset
  3224
                }
hgs
parents:
diff changeset
  3225
                break;
hgs
parents:
diff changeset
  3226
            default:
hgs
parents:
diff changeset
  3227
                break;
hgs
parents:
diff changeset
  3228
            }
hgs
parents:
diff changeset
  3229
        }
hgs
parents:
diff changeset
  3230
    else
hgs
parents:
diff changeset
  3231
        {
hgs
parents:
diff changeset
  3232
        DisplayText("Effect failed: ", reason);
hgs
parents:
diff changeset
  3233
        }
hgs
parents:
diff changeset
  3234
    }
hgs
parents:
diff changeset
  3235
hgs
parents:
diff changeset
  3236
// From TMSGlobalRoutingObserver
hgs
parents:
diff changeset
  3237
void CTmsTestEngine::GlobalRoutingEvent(const TMSGlobalRouting& /*routing*/,
hgs
parents:
diff changeset
  3238
        TMSSignalEvent event, TMSAudioOutput output)
hgs
parents:
diff changeset
  3239
    {
hgs
parents:
diff changeset
  3240
    gint reason = event.reason;
hgs
parents:
diff changeset
  3241
hgs
parents:
diff changeset
  3242
    if (reason == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  3243
        {
hgs
parents:
diff changeset
  3244
        switch (event.type)
hgs
parents:
diff changeset
  3245
            {
hgs
parents:
diff changeset
  3246
            case TMS_EVENT_ROUTING_AVAIL_OUTPUTS_CHANGED:
hgs
parents:
diff changeset
  3247
                DisplayText("Available outputs changed");
hgs
parents:
diff changeset
  3248
                break;
hgs
parents:
diff changeset
  3249
            case TMS_EVENT_ROUTING_OUTPUT_CHANGED:
hgs
parents:
diff changeset
  3250
                DisplayText("output changed");
hgs
parents:
diff changeset
  3251
                break;
hgs
parents:
diff changeset
  3252
            case TMS_EVENT_ROUTING_SET_OUTPUT_COMPLETE:
hgs
parents:
diff changeset
  3253
                DisplayText("set output complete");
hgs
parents:
diff changeset
  3254
                break;
hgs
parents:
diff changeset
  3255
            default:
hgs
parents:
diff changeset
  3256
                break;
hgs
parents:
diff changeset
  3257
            }
hgs
parents:
diff changeset
  3258
        DisplayDevice(output);
hgs
parents:
diff changeset
  3259
        }
hgs
parents:
diff changeset
  3260
    else
hgs
parents:
diff changeset
  3261
        {
hgs
parents:
diff changeset
  3262
        DisplayText("Routing failed", reason);
hgs
parents:
diff changeset
  3263
        }
hgs
parents:
diff changeset
  3264
    }
hgs
parents:
diff changeset
  3265
hgs
parents:
diff changeset
  3266
// From TMSRingToneObserver
hgs
parents:
diff changeset
  3267
void CTmsTestEngine::RingtoneEvent(const TMSRingTone& /*rt*/,
hgs
parents:
diff changeset
  3268
        TMSSignalEvent event)
hgs
parents:
diff changeset
  3269
    {
hgs
parents:
diff changeset
  3270
    gint reason = event.reason;
hgs
parents:
diff changeset
  3271
hgs
parents:
diff changeset
  3272
    if (reason == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  3273
        {
hgs
parents:
diff changeset
  3274
        switch (event.type)
hgs
parents:
diff changeset
  3275
            {
hgs
parents:
diff changeset
  3276
            case TMS_EVENT_RINGTONE_OPEN_COMPLETE:
hgs
parents:
diff changeset
  3277
                DisplayText("RT Open Complete");
hgs
parents:
diff changeset
  3278
                break;
hgs
parents:
diff changeset
  3279
            case TMS_EVENT_RINGTONE_PLAY_COMPLETE:
hgs
parents:
diff changeset
  3280
                DisplayText("RT Play Complete");
hgs
parents:
diff changeset
  3281
                break;
hgs
parents:
diff changeset
  3282
            case TMS_EVENT_RINGTONE_DEINIT_COMPLETE:
hgs
parents:
diff changeset
  3283
                DisplayText("RT Deinit Complete");
hgs
parents:
diff changeset
  3284
                break;
hgs
parents:
diff changeset
  3285
            default:
hgs
parents:
diff changeset
  3286
                break;
hgs
parents:
diff changeset
  3287
            }
hgs
parents:
diff changeset
  3288
        }
hgs
parents:
diff changeset
  3289
    else
hgs
parents:
diff changeset
  3290
        {
hgs
parents:
diff changeset
  3291
        DisplayText("Ringtone failed", reason);
hgs
parents:
diff changeset
  3292
        }
hgs
parents:
diff changeset
  3293
    }
hgs
parents:
diff changeset
  3294
hgs
parents:
diff changeset
  3295
// From TMSDTMFObserver
hgs
parents:
diff changeset
  3296
void CTmsTestEngine::DTMFEvent(const TMSDTMF& /*dtmf*/, TMSSignalEvent event)
hgs
parents:
diff changeset
  3297
    {
hgs
parents:
diff changeset
  3298
    gint reason = event.reason;
hgs
parents:
diff changeset
  3299
hgs
parents:
diff changeset
  3300
    if (reason == TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  3301
        {
hgs
parents:
diff changeset
  3302
        switch (event.type)
hgs
parents:
diff changeset
  3303
            {
hgs
parents:
diff changeset
  3304
            case TMS_EVENT_DTMF_TONE_STARTED:
hgs
parents:
diff changeset
  3305
                DisplayText("DTMF Started");
hgs
parents:
diff changeset
  3306
                break;
hgs
parents:
diff changeset
  3307
            case TMS_EVENT_DTMF_TONE_STOPPED:
hgs
parents:
diff changeset
  3308
                DisplayText("DTMF Stopped");
hgs
parents:
diff changeset
  3309
                break;
hgs
parents:
diff changeset
  3310
            default:
hgs
parents:
diff changeset
  3311
                break;
hgs
parents:
diff changeset
  3312
            }
hgs
parents:
diff changeset
  3313
        }
hgs
parents:
diff changeset
  3314
    else
hgs
parents:
diff changeset
  3315
        {
hgs
parents:
diff changeset
  3316
        DisplayText("DTMF failed", reason);
hgs
parents:
diff changeset
  3317
        }
hgs
parents:
diff changeset
  3318
    }
hgs
parents:
diff changeset
  3319
hgs
parents:
diff changeset
  3320
// From TMSInbandToneObserver
hgs
parents:
diff changeset
  3321
void CTmsTestEngine::InbandToneEvent(const TMSInbandTone& /*inbandtone*/,
hgs
parents:
diff changeset
  3322
        TMSSignalEvent event)
hgs
parents:
diff changeset
  3323
    {
hgs
parents:
diff changeset
  3324
    gint reason = event.reason;
hgs
parents:
diff changeset
  3325
hgs
parents:
diff changeset
  3326
    if (reason != TMS_RESULT_SUCCESS)
hgs
parents:
diff changeset
  3327
        {
hgs
parents:
diff changeset
  3328
        switch (event.type)
hgs
parents:
diff changeset
  3329
            {
hgs
parents:
diff changeset
  3330
            case TMS_EVENT_INBAND_TONE_STARTED:
hgs
parents:
diff changeset
  3331
                DisplayText("Inband Tone Started");
hgs
parents:
diff changeset
  3332
                break;
hgs
parents:
diff changeset
  3333
            case TMS_EVENT_INBAND_TONE_STOPPED:
hgs
parents:
diff changeset
  3334
                DisplayText("Inband Tone Stopped");
hgs
parents:
diff changeset
  3335
                break;
hgs
parents:
diff changeset
  3336
            default:
hgs
parents:
diff changeset
  3337
                break;
hgs
parents:
diff changeset
  3338
            }
hgs
parents:
diff changeset
  3339
        }
hgs
parents:
diff changeset
  3340
    else
hgs
parents:
diff changeset
  3341
        {
hgs
parents:
diff changeset
  3342
        DisplayText("Inband tone failed", reason);
hgs
parents:
diff changeset
  3343
        }
hgs
parents:
diff changeset
  3344
    }
hgs
parents:
diff changeset
  3345
hgs
parents:
diff changeset
  3346
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  3347
// CTmsTestEngine::DisplayText
hgs
parents:
diff changeset
  3348
// Print text with status code.
hgs
parents:
diff changeset
  3349
// ----------------------------------------------------------------------------
hgs
parents:
diff changeset
  3350
//
hgs
parents:
diff changeset
  3351
void CTmsTestEngine::DisplayText(const QString& str, const gint num)
hgs
parents:
diff changeset
  3352
    {
hgs
parents:
diff changeset
  3353
    if (num != 0)
hgs
parents:
diff changeset
  3354
        {
hgs
parents:
diff changeset
  3355
        iStatusDisplay->append(str + " " + QString::number(num));
hgs
parents:
diff changeset
  3356
        }
hgs
parents:
diff changeset
  3357
    else
hgs
parents:
diff changeset
  3358
        {
hgs
parents:
diff changeset
  3359
        iStatusDisplay->append(str);
hgs
parents:
diff changeset
  3360
        }
hgs
parents:
diff changeset
  3361
    }
hgs
parents:
diff changeset
  3362
hgs
parents:
diff changeset
  3363
// End of file