bluetoothengine/headsetsimulator/profiles/hspprofile/src/features/hspfeaturemanager.cpp
author michal.sulewski
Wed, 15 Sep 2010 15:59:44 +0200
branchheadsetsimulator
changeset 60 90dbfc0435e3
permissions -rw-r--r--
source code commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
60
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     1
/* 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     2
 * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     3
 * Copyright (c) <2010> Comarch S.A. and/or its subsidiary(-ies).
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     4
 * All rights reserved.
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     5
 * This component and the accompanying materials are made available
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     6
 * under the terms of the License "Eclipse Public License v1.0"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     7
 * which accompanies this distribution, and is available
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     8
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     9
 *
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    10
 * Original Contributors:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    11
 * Comarch S.A. - original contribution.
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    12
 *
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    13
 * Contributors:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    14
 *
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    15
 * Description:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    16
 *
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    17
 */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    18
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    19
#include "hspfeaturemanager.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    20
#include "hspcalltermination.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    21
#include "hspincomingcallacceptance.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    22
#include "hspremoteaudiovolumecontrol.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    23
#include "hspcommand.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    24
#include "debug.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    25
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    26
CHsHSPFeatureManager* CHsHSPFeatureManager::NewL()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    27
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    28
    CHsHSPFeatureManager *self = CHsHSPFeatureManager::NewLC();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    29
    CleanupStack::Pop( self );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    30
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    31
    return self;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    32
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    33
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    34
CHsHSPFeatureManager* CHsHSPFeatureManager::NewLC()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    35
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    36
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    37
    CHsHSPFeatureManager *self = new ( ELeave ) CHsHSPFeatureManager();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    38
    CleanupStack::PushL( self );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    39
    self->ConstructL();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    40
    return self;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    41
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    42
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    43
CHsHSPFeatureManager::~CHsHSPFeatureManager()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    44
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    45
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    46
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    47
    if ( iCallTermProc )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    48
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    49
        delete iCallTermProc;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    50
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    51
    if ( iCallAcceptProc )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    52
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    53
        delete iCallAcceptProc;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    54
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    55
    if ( iVolumeControl )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    56
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    57
        delete iVolumeControl;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    58
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    59
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    60
    if ( iSettings )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    61
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    62
        iSettings -> Release();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    63
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    64
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    65
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    66
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    67
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    68
void CHsHSPFeatureManager::PerformDataProcessingL(
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    69
        const CHsHSPCommand* aATCommandIn, CHsHSPCommand& aATCommandOut )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    70
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    71
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    72
    switch ( aATCommandIn->Type() )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    73
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    74
        case EHSPCmdOK:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    75
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    76
            HandleOKCommandL( aATCommandIn, aATCommandOut );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    77
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    78
            break;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    79
        case EHSPCmdERROR:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    80
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    81
            //No implementation needed
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    82
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    83
            break;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    84
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    85
        case EHSPCmdRING:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    86
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    87
            User::LeaveIfNull( iCallAcceptProc );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    88
            User::LeaveIfError( iCallAcceptProc->ProcessCommand( aATCommandIn,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    89
                    aATCommandOut ) );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    90
            iProcedureStarted = EHSPCallAccept;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    91
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    92
            break;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    93
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    94
        case EHSPCmdVGS:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    95
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    96
            if ( !aATCommandIn ->FromAG() )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    97
                iProcedureStarted = EHSPVolumeControl;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    98
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    99
            User::LeaveIfNull( iVolumeControl );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   100
            User::LeaveIfError( iVolumeControl->ProcessCommand( aATCommandIn,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   101
                    aATCommandOut ) );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   102
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   103
            break;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   104
        case EHSPCmdVGM:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   105
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   106
            if ( !aATCommandIn ->FromAG() )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   107
                iProcedureStarted = EHSPVolumeControl;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   108
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   109
            User::LeaveIfNull( iVolumeControl );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   110
            User::LeaveIfError( iVolumeControl->ProcessCommand( aATCommandIn,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   111
                    aATCommandOut ) );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   112
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   113
            break;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   114
        case EHSPCmdCKPD:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   115
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   116
            HandleCKPDCommandL( aATCommandIn, aATCommandOut );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   117
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   118
            break;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   119
        default:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   120
            User::Leave( KErrArgument );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   121
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   122
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   123
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   124
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   125
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   126
void CHsHSPFeatureManager::HandleClientDisconnected( TInt aErr )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   127
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   128
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   129
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   130
    if ( iVolumeControl )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   131
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   132
        iVolumeControl->Reset();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   133
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   134
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   135
    iSettings ->UpdateCallStatus( EFalse );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   136
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   137
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   138
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   139
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   140
void CHsHSPFeatureManager::HandleClientConnected( TDes8& aCommandOut )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   141
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   142
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   143
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   144
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   145
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   146
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   147
void CHsHSPFeatureManager::HandleProcedureCompleted( TInt aErr,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   148
        const THSPProcedure aProcedure )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   149
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   150
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   151
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   152
    if ( KErrNone == aErr )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   153
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   154
        switch ( aProcedure )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   155
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   156
            case EHSPCallTerminate:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   157
                iSettings -> UpdateCallStatus( EFalse );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   158
                TRACE_INFO(_L("Completed: Call release"))
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   159
                iProcedureStarted = EHSPIdle;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   160
                break;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   161
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   162
            case EHSPCallAccept:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   163
                iSettings -> UpdateCallStatus( ETrue );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   164
                TRACE_INFO(_L("Completed: Call accept"))
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   165
                iProcedureStarted = EHSPIdle;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   166
                break;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   167
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   168
            case EHSPVolumeControl:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   169
                TRACE_INFO(_L("Completed: Volume control"))
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   170
                break;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   171
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   172
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   173
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   174
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   175
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   176
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   177
CHsHSPFeatureManager::CHsHSPFeatureManager()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   178
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   179
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   180
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   181
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   182
void CHsHSPFeatureManager::ConstructL()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   183
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   184
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   185
    iCallTermProc = CHsHSPCallTerminationProc::NewL( this );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   186
    iCallAcceptProc = CHsHSPIncomingCallAcceptance::NewL( this );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   187
    iVolumeControl = CHsHSPRemoteAudioVolumeControl::NewL( this );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   188
    iSettings = CHsHSPSettings::InstanceL();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   189
    iProcedureStarted = EHSPIdle;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   190
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   191
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   192
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   193
void CHsHSPFeatureManager::HandleOKCommandL( const CHsHSPCommand* aATCommandIn,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   194
        CHsHSPCommand& aATCommandOut )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   195
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   196
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   197
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   198
    if ( iProcedureStarted == EHSPCallTerminate )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   199
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   200
        TRACE_INFO(_L("iProcedureStarted == EHSPCallTerminate"))
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   201
        User::LeaveIfNull( iCallTermProc );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   202
        User::LeaveIfError( iCallTermProc->ProcessCommand( aATCommandIn,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   203
                aATCommandOut ) );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   204
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   205
    else if ( iProcedureStarted == EHSPCallAccept )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   206
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   207
        TRACE_INFO(_L("iProcedureStarted == EHSPCallAccept"))
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   208
        User::LeaveIfNull( iCallAcceptProc );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   209
        User::LeaveIfError( iCallAcceptProc->ProcessCommand( aATCommandIn,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   210
                aATCommandOut ) );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   211
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   212
    else if ( iProcedureStarted == EHSPVolumeControl )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   213
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   214
        TRACE_INFO(_L("iProcedureStarted == EHSPVolumeControl"))
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   215
        User::LeaveIfNull( iVolumeControl );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   216
        User::LeaveIfError( iVolumeControl->ProcessCommand( aATCommandIn,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   217
                aATCommandOut ) );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   218
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   219
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   220
    else
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   221
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   222
        User::Leave( KErrArgument );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   223
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   224
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   225
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   226
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   227
void CHsHSPFeatureManager::HandleCKPDCommandL(
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   228
        const CHsHSPCommand* aATCommandIn, CHsHSPCommand& aATCommandOut )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   229
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   230
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   231
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   232
    if ( !iSettings -> CallOngoing() )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   233
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   234
        iProcedureStarted = EHSPCallAccept;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   235
        User::LeaveIfNull( iCallAcceptProc );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   236
        User::LeaveIfError( iCallAcceptProc->ProcessCommand( aATCommandIn,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   237
                aATCommandOut ) );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   238
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   239
    else
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   240
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   241
        iProcedureStarted = EHSPCallTerminate;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   242
        User::LeaveIfNull( iCallTermProc );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   243
        User::LeaveIfError( iCallTermProc->ProcessCommand( aATCommandIn,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   244
                aATCommandOut ) );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   245
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   246
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   247
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   248
    }