--- a/convergedcallengine/csplugin/src/cspetelcallwaitingrequester.cpp Thu Aug 19 10:28:14 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,263 +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: Contains the implementation of class CSPEtelCallWaitingRequester
-*
-*/
-
-
-
-#include "cspetelcallwaitingrequester.h"
-
-#include <mmretrieve.h>
-#include <etelmm.h>
-
-#include "csplogger.h"
-#include "cspconsts.h"
-
-
-// ---------------------------------------------------------------------------
-// Constructs the requester via two phased constructing.
-// ---------------------------------------------------------------------------
-//
-CSPEtelCallWaitingRequester* CSPEtelCallWaitingRequester::NewL(
- RMobilePhone& aPhone )
- {
- CSPLOGSTRING(CSPOBJECT, "CSPEtelCallWaitingRequester::NewL()" );
- CSPEtelCallWaitingRequester* self =
- new ( ELeave ) CSPEtelCallWaitingRequester( aPhone );
- CleanupStack::PushL( self );
- self->ConstructL( );
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// Destructor of the object.
-// ---------------------------------------------------------------------------
-//
-CSPEtelCallWaitingRequester::~CSPEtelCallWaitingRequester( )
- {
- CSPLOGSTRING(CSPOBJECT, "CSPEtelCallWaitingRequester::~CSPEtelCallWaitingRequester()" );
- Cancel();
- delete iList;
- }
-
-// ---------------------------------------------------------------------------
-// CSPEtelCallWaitingRequester::GetCallWaitingL
-// ---------------------------------------------------------------------------
-//
-void CSPEtelCallWaitingRequester::GetCallWaitingL( const CCCECallParameters&
- aParams,
- TBool& aCallWaitingStatus )
- {
- CSPLOGSTRING(CSPINT, "CSPEtelCallWaitingRequester::GetCallWaitingL()" );
-
- if ( iMode == ECwRequesterInactive )
- {
- iMode = ECwRequesterGetStarted;
- iList->Start( iStatus );
- SetActive();
- iWait.Start();
-
- if ( iStatus == -5252 )
- {
- aCallWaitingStatus = ETrue;
- }
- else
- {
- // Get the list of call waiting entries
- CMobilePhoneCWList* cwList = iList->RetrieveListL();
- CleanupStack::PushL(cwList);
-
- TInt count = cwList->Enumerate();
- RMobilePhone::TMobilePhoneCWInfoEntryV1 cwInfo;
-
- aCallWaitingStatus = EFalse; // Default false
- CSPLOGSTRING(CSPINT, "CSPEtelCallWaitingRequester::GetCallWaitingL() iterate" );
- for( TInt i=0; i < count ; i++ )
- {
- cwInfo = cwList->GetEntryL( i );
-
- if ( cwInfo.iStatus == RMobilePhone::ECallWaitingStatusActive )
- {
- if ( cwInfo.iServiceGroup == RMobilePhone::EAuxVoiceService )
- {
- iAuxLineCwStatus = ETrue;
- }
- else
- {
- iPrimaryLineCwStatus = ETrue;
- }
- }
- }
-
- GetCallWaitingStatusByLineType( aParams, aCallWaitingStatus );
-
- CSPLOGSTRING2(CSPINT,
- "CSPEtelCallWaitingRequester::GetCallWaitingL() res:%d",
- aCallWaitingStatus );
- CleanupStack::PopAndDestroy( cwList );
-
- // Initial value has been read from network,
- // now we must keep the setting value up to date.
- StartMonitoring();
- }
- }
-
- else if ( iMode == ECwRequesterMonitoring )
- {
- CSPLOGSTRING(CSPINT, "CSPEtelCallWaitingRequester::GetCallWaitingL() use cached value" );
- GetCallWaitingStatusByLineType( aParams, aCallWaitingStatus );
- }
- else if ( iMode == ECwRequesterGetStarted )
- {
- CSPLOGSTRING(CSPINT, "CSPEtelCallWaitingRequester::GetCallWaitingL() KErrInUse" );
- User::Leave( KErrInUse );
- }
- }
-
-// ---------------------------------------------------------------------------
-// From CActive
-// CSPEtelCallWaitingRequester::RunL
-// ---------------------------------------------------------------------------
-//
-void CSPEtelCallWaitingRequester::RunL()
- {
- CSPLOGSTRING2( CSPREQEND, "CSPEtelCallWaitingRequester::RunL: status: %d",
- iStatus.Int() );
- if ( iWait.IsStarted() )
- {
- iWait.AsyncStop();
- }
- else if ( KErrNone == iStatus.Int() )
- {
- RMobilePhone::TMobilePhoneCWInfoEntryV1 cwInfo = iDesCwStatus();
- switch (cwInfo.iStatus)
- {
- case RMobilePhone::ECallWaitingStatusActive:
- if ( cwInfo.iServiceGroup == RMobilePhone::EAuxVoiceService )
- {
- iAuxLineCwStatus = ETrue;
- }
- else
- {
- iPrimaryLineCwStatus = ETrue;
- }
- break;
- case RMobilePhone::ECallWaitingStatusNotActive:
- if ( cwInfo.iServiceGroup == RMobilePhone::EAuxVoiceService )
- {
- iAuxLineCwStatus = EFalse;
- }
- else
- {
- iPrimaryLineCwStatus = EFalse;
- }
- break;
- default:
- break;
- }
-
- CSPLOGSTRING3(CSPINT,
- "CSPEtelCallWaitingRequester::RunL: service:%d new cw status:%d",
- cwInfo.iServiceGroup, cwInfo.iStatus );
-
- StartMonitoring();
- }
- else
- {
- iMode = ECwRequesterInactive;
- }
- }
-
-// ---------------------------------------------------------------------------
-// From CActive
-// CSPEtelCallWaitingRequester::DoCancel
-// ---------------------------------------------------------------------------
-//
-void CSPEtelCallWaitingRequester::DoCancel()
- {
- CSPLOGSTRING(CSPOBJECT, "CSPEtelCallWaitingRequester::DoCancel()" );
- if ( iMode == ECwRequesterGetStarted )
- {
- iList->Cancel();
- iMode = ECwRequesterInactive;
- }
- else if ( iMode == ECwRequesterMonitoring )
- {
- iPhone.CancelAsyncRequest( EMobilePhoneNotifyCallWaitingStatusChange );
- iMode = ECwRequesterInactive;
- }
- }
-
-// ---------------------------------------------------------------------------
-// Constructs the requester.
-// ---------------------------------------------------------------------------
-//
-CSPEtelCallWaitingRequester::CSPEtelCallWaitingRequester(RMobilePhone& aPhone):
- CActive( EPriorityStandard ),
- iPhone( aPhone )
- {
- CSPLOGSTRING(CSPOBJECT, "CSPEtelCallWaitingRequester::CSPEtelCallWaitingRequester()" );
- CActiveScheduler::Add( this );
- iPrimaryLineCwStatus = EFalse;
- iAuxLineCwStatus = EFalse;
- iMode = ECwRequesterInactive;
- }
-
-// ---------------------------------------------------------------------------
-// CSPEtelCallWaitingRequester::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CSPEtelCallWaitingRequester::ConstructL()
- {
- CSPLOGSTRING(CSPINT, "CSPEtelCallWaitingRequester::ConstructL()" );
- iList = CRetrieveMobilePhoneCWList::NewL(iPhone);
- }
-
-// ---------------------------------------------------------------------------
-// Start listening call waiting status change notifications.
-// ---------------------------------------------------------------------------
-//
-void CSPEtelCallWaitingRequester::StartMonitoring()
- {
- iPhone.NotifyCallWaitingStatusChange( iStatus, iDesCwStatus );
- SetActive();
- iMode = ECwRequesterMonitoring;
- }
-
-// ---------------------------------------------------------------------------
-// Returns the call waiting status from call waiting status list by linetype.
-// ---------------------------------------------------------------------------
-//
-void CSPEtelCallWaitingRequester::GetCallWaitingStatusByLineType( const CCCECallParameters&
- aParams,
- TBool& aCallWaitingStatus )
- {
- CSPLOGSTRING(CSPOBJECT, "CSPEtelCallWaitingRequester:GetCallWaitingStatusByLineType" );
-
- if ( aParams.LineType() == CCCECallParameters::ECCELineTypePrimary )
- {
- aCallWaitingStatus = iPrimaryLineCwStatus;
- }
- else
- {
- aCallWaitingStatus = iAuxLineCwStatus;
- }
- CSPLOGSTRING3(CSPINT,
- "CSPEtelCallWaitingRequester::GetCallWaitingStatusByLineType: line:%d res:%d",
- aParams.LineType(), aCallWaitingStatus );
- }
-
-// End of file