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