devicediagnosticsfw/diagframework/src/diagenginecallhandler.cpp
branchRCL_3
changeset 25 b183ec05bd8c
parent 24 13d7c31c74e0
child 26 19bba8228ff0
--- a/devicediagnosticsfw/diagframework/src/diagenginecallhandler.cpp	Thu Aug 19 10:44:50 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,402 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Class definition of CDiagEngineCallHandler
-*
-*/
-
-
-// CLASS DECLARATION
-#include "diagenginecallhandler.h"   
-
-// SYSTEM INCLUDE FILES
-#include <DiagFrameworkDebug.h>             // LOGSTRING
-#include <badesca.h>                        // CDesCArrayFlat
-
-// USER INCLUDE FILES
-#include "diagenginecallhandlerobserver.h"  // MDiagEngineCallHandlerObserver
-
-
-// CONSTANTS
-
-// ======== LOCAL FUNCTIONS ========
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CDiagEngineCallHandler::NewL
-// ---------------------------------------------------------------------------
-//
-CDiagEngineCallHandler* CDiagEngineCallHandler::NewL( 
-        MDiagEngineCallHandlerObserver& aObserver )
-    {
-    CDiagEngineCallHandler* self = new( ELeave )CDiagEngineCallHandler( aObserver );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDiagEngineCallHandler::CDiagEngineCallHandler
-// ---------------------------------------------------------------------------
-//
-CDiagEngineCallHandler::CDiagEngineCallHandler( 
-        MDiagEngineCallHandlerObserver& aObserver )
-    :   CActive( EPriorityStandard ),
-        iObserver( aObserver ),
-        iCallStatus(),
-        iCallStatusPckg( iCallStatus )
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CDiagEngineCallHandler::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CDiagEngineCallHandler::ConstructL()
-    {
-    CActiveScheduler::Add( this );
-
-    iCallIgnoreList = new( ELeave )CDesCArrayFlat( 1 );
-    
-    iTelephony = CTelephony::NewL();
-
-    // Get call initial status.
-    TInt err = iTelephony->GetLineStatus( CTelephony::EVoiceLine, iCallStatusPckg );
-
-    if ( err != KErrNone )
-        {
-        // This can happen even if hw failure does not occur. E.g.
-        // user puts the phone in offline mode, or sim card is missing.
-        // In this situation, assume that phone is offline and continue
-        // since it does not actually affect engine execution.
-        LOGSTRING2( "CDiagEngineCallHandler::ConstructL() "
-            L"Unable to get voice line status. Err = %d", err )
-        iState = EDiagEngineCallHandlerStateIdle;
-        }
-    else
-        {
-        LOGSTRING2( "CDiagEngineCallHandler::ConstructL() Call status = %d",
-            iCallStatus.iStatus )
-        if ( iCallStatus.iStatus != CTelephony::EStatusIdle )
-            {
-            iState = EDiagEngineCallHandlerStateBusy;
-            }
-        }
-
-    RequestNotify();
-    }
-
-// ---------------------------------------------------------------------------
-// CDiagEngineCallHandler::~CDiagEngineCallHandler
-// ---------------------------------------------------------------------------
-//
-CDiagEngineCallHandler::~CDiagEngineCallHandler()
-    {
-    Cancel();
-
-    delete iTelephony;
-    iTelephony = NULL;
-
-    delete iCallIgnoreList;
-    iCallIgnoreList = NULL;
-    }
-
-// ---------------------------------------------------------------------------
-// CDiagEngineCallHandler::AddIgnoreNumberL
-// ---------------------------------------------------------------------------
-//
-void CDiagEngineCallHandler::AddIgnoreNumberL( const TDesC& aNumber )
-    {
-    LOGSTRING( "CDiagEngineCallHandler::AddIgnoreNumberL: Number = " )
-    LOGTEXT( aNumber )
-
-    iCallIgnoreList->AppendL( aNumber );
-    }
-
-// ---------------------------------------------------------------------------
-// CDiagEngineCallHandler::RemoveIgnoreNumberL
-// ---------------------------------------------------------------------------
-//
-void CDiagEngineCallHandler::RemoveIgnoreNumberL( const TDesC& aNumber )
-    {
-    LOGSTRING( "CDiagEngineCallHandler::RemoveIgnoreNumberL: Number = " )
-    LOGTEXT( aNumber )
-
-    TInt position = 0;
-
-    TInt err = iCallIgnoreList->Find( aNumber, position );
-
-    if ( err == KErrNone )
-        {
-        // element found. Remove.
-        iCallIgnoreList->Delete( position );
-        }
-    else
-        {
-        LOGSTRING2( "CDiagEngineCallHandler::RemoveIgnoreNumberL:"
-                L"Not found. Err = %d", err )
-        User::Leave( err );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CDiagEngineCallHandler::CurrentState
-// ---------------------------------------------------------------------------
-//
-TDiagEngineCallHandlerState CDiagEngineCallHandler::CurrentState() const
-    {
-    return iState;
-    }
-
-// ---------------------------------------------------------------------------
-// CDiagEngineCallHandler::RequestNotify
-// ---------------------------------------------------------------------------
-//
-void CDiagEngineCallHandler::RequestNotify()
-    {
-    Cancel();
-    iTelephony->NotifyChange(
-        iStatus, CTelephony::EVoiceLineStatusChange, iCallStatusPckg );
-    SetActive();
-    }
-
-
-// ---------------------------------------------------------------------------
-// from CActive
-// CDiagEngineCallHandler::RunL()
-// ---------------------------------------------------------------------------
-//
-void CDiagEngineCallHandler::RunL()
-    {
-    TBool notifyObserver = EFalse;
-    
-    LogCallStatus();    
-
-    switch ( iCallStatus.iStatus )
-        {
-        case CTelephony::EStatusIdle:
-            notifyObserver = HandleIdle();
-            break;
-
-        case CTelephony::EStatusDialling:   // fall through
-        case CTelephony::EStatusRinging:    
-            notifyObserver = HandleCall();
-            break;
-
-        default:
-            // Ignore. 
-            break;
-        }
-
-    if ( iStatus != KErrCancel )
-        {
-        RequestNotify();
-        }
-
-    if ( notifyObserver )
-        {
-        iObserver.CallHandlerStateChangedL( iState );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// from CActive
-// CDiagEngineCallHandler::DoCancel()
-// ---------------------------------------------------------------------------
-//
-void CDiagEngineCallHandler::DoCancel()
-    {
-    if ( iTelephony )
-        {
-        iTelephony->CancelAsync( CTelephony::EVoiceLineStatusChangeCancel );
-        }
-    }
-    
-
-// ---------------------------------------------------------------------------
-// CDiagEngineCallHandler::HandleIdle
-// ---------------------------------------------------------------------------
-//
-TBool CDiagEngineCallHandler::HandleIdle()
-    {
-    LOGSTRING( "CDiagEngineCallHandler::HandleIdle()" )
-
-    TBool notifyObserver = EFalse;
-    if ( iState != EDiagEngineCallHandlerStateIdle )
-        {
-        LOGSTRING( "CDiagEngineCallHandler::HandleIdle() Changing to IDLE" )
-        iState = EDiagEngineCallHandlerStateIdle;
-        notifyObserver = ETrue;
-        }
-
-    return notifyObserver;
-    }
-
-// ---------------------------------------------------------------------------
-// CDiagEngineCallHandler::HandleCall
-// ---------------------------------------------------------------------------
-//
-TBool CDiagEngineCallHandler::HandleCall()
-    {
-    LOGSTRING( "CDiagEngineCallHandler::HandleCall()" )
-
-    TBool notifyObserver = EFalse;
-
-    if ( iState == EDiagEngineCallHandlerStateIdle )
-        {
-        LOGSTRING( "CDiagEngineCallHandler::HandleCall() was in Idle" )
-
-        // Get phone number
-        TBuf<CTelephony::KMaxTelNumberSize> number;
-
-        CTelephony::TRemotePartyInfoV1 remInfoUse;
-        CTelephony::TCallInfoV1        callInfoUse;
-        CTelephony::TCallSelectionV1   callSelectionUse;
-
-        callSelectionUse.iLine = CTelephony::EVoiceLine;
-        callSelectionUse.iSelect = CTelephony::EInProgressCall;
-
-        CTelephony::TRemotePartyInfoV1Pckg  remParty( remInfoUse );
-        CTelephony::TCallInfoV1Pckg         callInfo( callInfoUse );
-        CTelephony::TCallSelectionV1Pckg    callSelection( callSelectionUse );
-
-        iTelephony->GetCallInfo( callSelection, callInfo, remParty );
-
-        LOGSTRING( "CDiagEngineCallHandler::HandleCall() Remote Number = " )
-        LOGTEXT( remInfoUse.iRemoteNumber.iTelNumber )
-    
-        LOGSTRING( "CDiagEngineCallHandler::HandleCall() Dialed Number = " )
-        LOGTEXT( callInfoUse.iDialledParty.iTelNumber )
-
-        if ( iCallStatus.iStatus == CTelephony::EStatusRinging )
-            {
-            number.Copy( remInfoUse.iRemoteNumber.iTelNumber );
-            }
-        else if ( iCallStatus.iStatus == CTelephony::EStatusDialling )
-            {
-            number.Copy( callInfoUse.iDialledParty.iTelNumber );
-            }
-        else
-            {
-            // number not valid.
-            }
-
-        // check if the number is in ignore list
-        TInt position = 0;
-        TInt err = iCallIgnoreList->Find( number, position );
-
-        if ( err == KErrNone )
-            {
-            // number found.
-            LOGSTRING( "CDiagEngineCallHandler::HandleCall() Ignore: Number =" )
-            LOGTEXT( number )
-            }
-        else
-            {
-            // number found.
-            LOGSTRING( "CDiagEngineCallHandler::HandleCall() Going to Busy State. Number = " )
-            LOGTEXT( number )
-
-            iState = EDiagEngineCallHandlerStateBusy;
-
-            notifyObserver = ETrue;
-            }
-        }
-
-    return notifyObserver;
-    }
-
-// ---------------------------------------------------------------------------
-// CDiagEngineCallHandler::LogCallStatus
-// ---------------------------------------------------------------------------
-//
-void CDiagEngineCallHandler::LogCallStatus() const
-    {
-    #ifdef _DEBUG
-
-    switch ( iCallStatus.iStatus )
-        {
-        case CTelephony::EStatusUnknown:
-            LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():"
-                    L" Call Status = EStatusUnknown" )
-            break;
-
-        case CTelephony::EStatusIdle:
-            LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():"
-                    L" Call Status = EStatusIdle" )
-            break;
-
-        case CTelephony::EStatusDialling:
-            LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():"
-                    L" Call Status = EStatusDialling" )
-            break;
-
-        case CTelephony::EStatusRinging:
-            LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():"
-                    L" Call Status = EStatusRinging" )
-            break;
-
-        case CTelephony::EStatusAnswering:
-            LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():"
-                    L" Call Status = EStatusAnswering" )
-            break;
-
-        case CTelephony::EStatusConnecting:
-            LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():"
-                    L" Call Status = EStatusConnecting" )
-            break;
-
-        case CTelephony::EStatusConnected:
-            LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():"
-                    L" Call Status = EStatusConnected" )
-            break;
-
-        case CTelephony::EStatusReconnectPending:
-            LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():"
-                    L" Call Status = EStatusReconnectPending" )
-            break;
-
-        case CTelephony::EStatusDisconnecting:
-            LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():"
-                    L" Call Status = EStatusDisconnecting" )
-            break;
-
-        case CTelephony::EStatusHold:
-            LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():"
-                    L" Call Status = EStatusHold" )
-            break;
-
-        case CTelephony::EStatusTransferring:
-            LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():"
-                    L"Call Status = EStatusTransferring" )
-            break;
-
-        case CTelephony::EStatusTransferAlerting:
-            LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():"
-                    L"Call Status = EStatusTransferAlerting" )
-            break;
-
-        default:
-            LOGSTRING2( "CDiagEngineCallHandler::LogCallStatus():"
-                    L"Unknown Call Status = %d", iCallStatus.iStatus )
-            break;
-        }
-
-    #endif // _DEBUG
-    }
-
-// End of File
-