mmserv/tms/tmscallserver/src/tmscsdevsound.cpp
author hgs
Fri, 23 Jul 2010 17:29:03 -0500
changeset 36 73253677b50a
parent 33 5e8b14bae8c3
child 38 9e9fc5ab059f
permissions -rw-r--r--
201029
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
 * All rights reserved.
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
 *
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
 * Initial Contributors:
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
 *
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
 * Contributors:
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
 *
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
 * Description: Telephony Multimedia Service
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
 *
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
 */
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
#include <AudioPreference.h>
21
hgs
parents: 14
diff changeset
    19
#include <tms.h>
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
#include <S60FourCC.h>
21
hgs
parents: 14
diff changeset
    21
#include "tmsutility.h"
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include "tmscsdevsound.h"
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include "tmscsdevsoundobserver.h"
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
using namespace TMS;
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
21
hgs
parents: 14
diff changeset
    27
// CONSTANTS
28
hgs
parents: 21
diff changeset
    28
const gint KTimeoutInitial = 250000; // 250 ms initial timeout
21
hgs
parents: 14
diff changeset
    29
const gint KTimeoutMultiplier = 2;   // Double the timeout for each retry
28
hgs
parents: 21
diff changeset
    30
const gint KPeriodicTimeoutMax = 2000000; // 2 sec max periodic timeout
hgs
parents: 21
diff changeset
    31
const gint KMicroSecMultiply = 1000000;   // 1 sec
21
hgs
parents: 14
diff changeset
    32
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
// -----------------------------------------------------------------------------
21
hgs
parents: 14
diff changeset
    34
// TMSCSDevSound
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
// -----------------------------------------------------------------------------
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
//
21
hgs
parents: 14
diff changeset
    37
TMSCSDevSound::TMSCSDevSound(TMSCSDevSoundObserver& observer) :
hgs
parents: 14
diff changeset
    38
    iObserver(observer)
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
    {
21
hgs
parents: 14
diff changeset
    40
    iTimer = NULL;
28
hgs
parents: 21
diff changeset
    41
    iPeriodic = KTimeoutInitial;
hgs
parents: 21
diff changeset
    42
    iElapsedTime = 0;
21
hgs
parents: 14
diff changeset
    43
    iInitRetryTime = 0;
hgs
parents: 14
diff changeset
    44
    iStartRetryTime = 0;
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
    }
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
// -----------------------------------------------------------------------------
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
// ConstructL
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
// -----------------------------------------------------------------------------
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
//
21
hgs
parents: 14
diff changeset
    51
void TMSCSDevSound::ConstructL(const TMSStreamType strmtype,
hgs
parents: 14
diff changeset
    52
        const gint retrytime)
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
    {
21
hgs
parents: 14
diff changeset
    54
    TRACE_PRN_FN_ENT;
hgs
parents: 14
diff changeset
    55
    iInitRetryTime = retrytime;
hgs
parents: 14
diff changeset
    56
    iStreamType = strmtype;
hgs
parents: 14
diff changeset
    57
hgs
parents: 14
diff changeset
    58
    if (strmtype == TMS_STREAM_UPLINK)
hgs
parents: 14
diff changeset
    59
        {
hgs
parents: 14
diff changeset
    60
        iMode = EMMFStateRecording;
hgs
parents: 14
diff changeset
    61
        iPriority = KAudioPriorityCSCallUplink;
hgs
parents: 14
diff changeset
    62
        iPreference = KAudioPrefCSCallUplink;
hgs
parents: 14
diff changeset
    63
        }
hgs
parents: 14
diff changeset
    64
    else if (strmtype == TMS_STREAM_DOWNLINK)
hgs
parents: 14
diff changeset
    65
        {
hgs
parents: 14
diff changeset
    66
        iMode = EMMFStatePlaying;
hgs
parents: 14
diff changeset
    67
        iPriority = KAudioPriorityCSCallDownlink;
hgs
parents: 14
diff changeset
    68
        iPreference = KAudioPrefCSCallDownlink;
hgs
parents: 14
diff changeset
    69
        }
hgs
parents: 14
diff changeset
    70
hgs
parents: 14
diff changeset
    71
    if (iInitRetryTime != 0)
hgs
parents: 14
diff changeset
    72
        {
hgs
parents: 14
diff changeset
    73
        iTimer = TMSTimer::NewL();
hgs
parents: 14
diff changeset
    74
        }
hgs
parents: 14
diff changeset
    75
hgs
parents: 14
diff changeset
    76
    InitializeL();
hgs
parents: 14
diff changeset
    77
    TRACE_PRN_FN_EXT;
hgs
parents: 14
diff changeset
    78
    }
hgs
parents: 14
diff changeset
    79
hgs
parents: 14
diff changeset
    80
// -----------------------------------------------------------------------------
hgs
parents: 14
diff changeset
    81
// InitializeL
hgs
parents: 14
diff changeset
    82
// -----------------------------------------------------------------------------
hgs
parents: 14
diff changeset
    83
//
hgs
parents: 14
diff changeset
    84
void TMSCSDevSound::InitializeL()
hgs
parents: 14
diff changeset
    85
    {
hgs
parents: 14
diff changeset
    86
    TRACE_PRN_FN_ENT;
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
    TMMFPrioritySettings audioPriority;
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
    TFourCC modemFourCC;
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
    modemFourCC.Set(KS60FourCCCodeModem);
21
hgs
parents: 14
diff changeset
    90
hgs
parents: 14
diff changeset
    91
    delete iDevSound;
hgs
parents: 14
diff changeset
    92
    iDevSound = NULL;
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
    iDevSound = CMMFDevSound::NewL();
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
    if (iDevSound)
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
        {
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
#ifndef __WINSCW__
21
hgs
parents: 14
diff changeset
    97
        iDevSound->InitializeL(*this, modemFourCC, iMode);
hgs
parents: 14
diff changeset
    98
#else
hgs
parents: 14
diff changeset
    99
        //For testing TMS in WINSCW
hgs
parents: 14
diff changeset
   100
        iDevSound->InitializeL(*this, KMMFFourCCCodePCM16, iMode);
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
#endif
21
hgs
parents: 14
diff changeset
   102
        audioPriority.iPriority = iPriority;
hgs
parents: 14
diff changeset
   103
        audioPriority.iPref = iPreference;
hgs
parents: 14
diff changeset
   104
        audioPriority.iState = iMode;
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
        iDevSound->SetPrioritySettings(audioPriority);
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
        }
21
hgs
parents: 14
diff changeset
   107
    TRACE_PRN_FN_EXT;
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
    }
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
// -----------------------------------------------------------------------------
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
// From class MDevSoundObserver
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
// Not implemented
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
// -----------------------------------------------------------------------------
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
//
21
hgs
parents: 14
diff changeset
   115
TMSCSDevSound::~TMSCSDevSound()
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
    {
21
hgs
parents: 14
diff changeset
   117
    TRACE_PRN_FN_ENT;
hgs
parents: 14
diff changeset
   118
    CancelTimer();
hgs
parents: 14
diff changeset
   119
    delete iTimer;
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
    delete iDevSound;
21
hgs
parents: 14
diff changeset
   121
    TRACE_PRN_FN_EXT;
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
    }
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
// -----------------------------------------------------------------------------
28
hgs
parents: 21
diff changeset
   125
// Tries to activate the audio stream if not already active or activating
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
// -----------------------------------------------------------------------------
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
//
21
hgs
parents: 14
diff changeset
   128
void TMSCSDevSound::Activate(const gint retrytime)
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
    {
21
hgs
parents: 14
diff changeset
   130
    iStartRetryTime = retrytime;
hgs
parents: 14
diff changeset
   131
hgs
parents: 14
diff changeset
   132
    if (!iActive && !iActivationOngoing)
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
        {
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
        iActivationOngoing = ETrue;
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
        TRAP_IGNORE(DoActivateL());
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   136
        }
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   137
    }
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
// -----------------------------------------------------------------------------
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
// Deactivates the audio device.
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   141
// -----------------------------------------------------------------------------
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
//
21
hgs
parents: 14
diff changeset
   143
void TMSCSDevSound::Deactivate(gboolean reset)
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
    {
21
hgs
parents: 14
diff changeset
   145
    TRACE_PRN_FN_ENT;
hgs
parents: 14
diff changeset
   146
    if (reset)
hgs
parents: 14
diff changeset
   147
        {
28
hgs
parents: 21
diff changeset
   148
        iPeriodic = KTimeoutInitial;
21
hgs
parents: 14
diff changeset
   149
        }
hgs
parents: 14
diff changeset
   150
    CancelTimer();
hgs
parents: 14
diff changeset
   151
    if (iDevSound && (iActive || iActivationOngoing))
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   152
        {
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
        iDevSound->Stop();
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
        iActive = EFalse;
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
        iActivationOngoing = EFalse;
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
        }
21
hgs
parents: 14
diff changeset
   157
    TRACE_PRN_FN_EXT;
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
    }
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   159
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
// -----------------------------------------------------------------------------
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
// DevSound
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
// -----------------------------------------------------------------------------
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
//
21
hgs
parents: 14
diff changeset
   164
CMMFDevSound& TMSCSDevSound::DevSound()
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
    {
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
    return *iDevSound;
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
    }
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
// -----------------------------------------------------------------------------
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
// From class MDevSoundObserver
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
// -----------------------------------------------------------------------------
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
//
21
hgs
parents: 14
diff changeset
   173
void TMSCSDevSound::InitializeComplete(TInt aError)
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
    {
21
hgs
parents: 14
diff changeset
   175
    TRACE_PRN_FN_ENT;
hgs
parents: 14
diff changeset
   176
    if (aError != TMS_RESULT_SUCCESS && iInitRetryTime != 0)
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
        {
21
hgs
parents: 14
diff changeset
   178
        StartTimer();
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
        }
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
    else
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
        {
28
hgs
parents: 21
diff changeset
   182
        iPeriodic = KTimeoutInitial;
21
hgs
parents: 14
diff changeset
   183
        CancelTimer();
hgs
parents: 14
diff changeset
   184
        NotifyEvent(aError);
hgs
parents: 14
diff changeset
   185
        }
33
hgs
parents: 28
diff changeset
   186
    TRACE_PRN_IF_ERR(aError);
21
hgs
parents: 14
diff changeset
   187
    TRACE_PRN_FN_EXT;
hgs
parents: 14
diff changeset
   188
    }
hgs
parents: 14
diff changeset
   189
hgs
parents: 14
diff changeset
   190
// -----------------------------------------------------------------------------
hgs
parents: 14
diff changeset
   191
// TMSCSDevSound::NotifyEvent
hgs
parents: 14
diff changeset
   192
// -----------------------------------------------------------------------------
hgs
parents: 14
diff changeset
   193
//
hgs
parents: 14
diff changeset
   194
void TMSCSDevSound::NotifyEvent(gint error)
hgs
parents: 14
diff changeset
   195
    {
hgs
parents: 14
diff changeset
   196
    if (iStreamType == TMS_STREAM_DOWNLINK)
hgs
parents: 14
diff changeset
   197
        {
hgs
parents: 14
diff changeset
   198
        iObserver.DownlinkInitCompleted(error);
hgs
parents: 14
diff changeset
   199
        }
hgs
parents: 14
diff changeset
   200
    else if (iStreamType == TMS_STREAM_UPLINK)
hgs
parents: 14
diff changeset
   201
        {
hgs
parents: 14
diff changeset
   202
        iObserver.UplinkInitCompleted(error);
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
        }
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   204
    }
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   205
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
// -----------------------------------------------------------------------------
21
hgs
parents: 14
diff changeset
   207
// TMSCSDevSound::CancelTimer
hgs
parents: 14
diff changeset
   208
// Resets timer
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
// -----------------------------------------------------------------------------
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
//
21
hgs
parents: 14
diff changeset
   211
void TMSCSDevSound::CancelTimer()
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
    {
21
hgs
parents: 14
diff changeset
   213
    iInitRetryTime = 0;
28
hgs
parents: 21
diff changeset
   214
    iStartRetryTime = 0;
hgs
parents: 21
diff changeset
   215
    iElapsedTime = 0;
hgs
parents: 21
diff changeset
   216
21
hgs
parents: 14
diff changeset
   217
    if (iTimer)
hgs
parents: 14
diff changeset
   218
        {
hgs
parents: 14
diff changeset
   219
        if (iTimer->IsRunning())
hgs
parents: 14
diff changeset
   220
            {
hgs
parents: 14
diff changeset
   221
            iTimer->CancelNotify();
hgs
parents: 14
diff changeset
   222
            }
hgs
parents: 14
diff changeset
   223
        }
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   224
    }
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   225
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
// -----------------------------------------------------------------------------
21
hgs
parents: 14
diff changeset
   227
// TMSCSDevSound::StartTimer
hgs
parents: 14
diff changeset
   228
// Activates timer
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   229
// -----------------------------------------------------------------------------
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
//
21
hgs
parents: 14
diff changeset
   231
void TMSCSDevSound::StartTimer()
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
    {
21
hgs
parents: 14
diff changeset
   233
    if (iTimer && (iInitRetryTime != 0 || iStartRetryTime != 0))
hgs
parents: 14
diff changeset
   234
        {
28
hgs
parents: 21
diff changeset
   235
        iTimer->NotifyAfter(iPeriodic, *this);
21
hgs
parents: 14
diff changeset
   236
        }
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   237
    }
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   238
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
// -----------------------------------------------------------------------------
21
hgs
parents: 14
diff changeset
   240
// From TMSTimerObserver
hgs
parents: 14
diff changeset
   241
// Notification upon TMSTimer timeout.
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   242
// -----------------------------------------------------------------------------
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   243
//
21
hgs
parents: 14
diff changeset
   244
void TMSCSDevSound::TimerEvent()
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   245
    {
28
hgs
parents: 21
diff changeset
   246
    if (iPeriodic < KPeriodicTimeoutMax)
hgs
parents: 21
diff changeset
   247
        {
hgs
parents: 21
diff changeset
   248
        iPeriodic *= KTimeoutMultiplier;
hgs
parents: 21
diff changeset
   249
        }
hgs
parents: 21
diff changeset
   250
    iElapsedTime += iPeriodic;
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   251
21
hgs
parents: 14
diff changeset
   252
    if (!iActivationOngoing) //Initializing
hgs
parents: 14
diff changeset
   253
        {
28
hgs
parents: 21
diff changeset
   254
        if (iElapsedTime >= (iInitRetryTime * KMicroSecMultiply))
21
hgs
parents: 14
diff changeset
   255
            {
28
hgs
parents: 21
diff changeset
   256
            iInitRetryTime = 0; //timer will not start again
21
hgs
parents: 14
diff changeset
   257
            }
hgs
parents: 14
diff changeset
   258
        TRAPD(status, InitializeL());
hgs
parents: 14
diff changeset
   259
        if (status != TMS_RESULT_SUCCESS)
hgs
parents: 14
diff changeset
   260
            {
hgs
parents: 14
diff changeset
   261
            NotifyEvent(status);
hgs
parents: 14
diff changeset
   262
            }
hgs
parents: 14
diff changeset
   263
        }
hgs
parents: 14
diff changeset
   264
    else //Activating
hgs
parents: 14
diff changeset
   265
        {
28
hgs
parents: 21
diff changeset
   266
        if (iElapsedTime >= (iStartRetryTime * KMicroSecMultiply))
21
hgs
parents: 14
diff changeset
   267
            {
28
hgs
parents: 21
diff changeset
   268
            iStartRetryTime = 0; //timer will not start again
21
hgs
parents: 14
diff changeset
   269
            }
hgs
parents: 14
diff changeset
   270
        Deactivate(FALSE);
hgs
parents: 14
diff changeset
   271
        Activate(iStartRetryTime);
hgs
parents: 14
diff changeset
   272
        }
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   273
    }
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   274
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   275
//  End of File