diff -r 000000000000 -r 5f000ab63145 phoneengine/callhandling/src/cpesupplementaryservicesmonitor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneengine/callhandling/src/cpesupplementaryservicesmonitor.cpp Mon Jan 18 20:18:27 2010 +0200 @@ -0,0 +1,227 @@ +/* +* Copyright (c) 2002-2008 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: This file contains the implementation of CPESupplementaryServicesMonitor class +* member functions. +* +*/ + + +// ==================== INCLUDE FILES ==================== +#include "cpesupplementaryservicesmonitor.h" +#include "mpemessagesender.h" +#include +#include + +// EXTERNAL DATA STRUCTURES +// None. + +// EXTERNAL FUNCTION PROTOTYPES +// None. + +// CONSTANTS +// None. + +// MACROS +// None. + +// LOCAL CONSTANTS AND MACROS +// None. + +// MODULE DATA STRUCTURES +// None. + +// LOCAL FUNCTION PROTOTYPES +// None. + +// ==================== LOCAL FUNCTIONS ==================== +// None. + +// ================= MEMBER FUNCTIONS ======================= + +// ----------------------------------------------------------------------------- +// CPESupplementaryServicesMonitor::CPESupplementaryServicesMonitor +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +CPESupplementaryServicesMonitor::CPESupplementaryServicesMonitor( + MPEMessageSender& aOwner, + MPEDataStore& aDataStore + ) : iOwner( aOwner ), + iDataStore( aDataStore ) + { + TEFLOGSTRING( KTAOBJECT, + "CALL: CPESupplementaryServcesMonitor::CPESupplementaryServicesMonitor: complete" ); + } + + +// Destructor +CPESupplementaryServicesMonitor::~CPESupplementaryServicesMonitor() + { + TEFLOGSTRING( KTAOBJECT, + "CALL CPESupplementaryServicesMonitor::~CPESupplementaryServicesMonitor: Complete." ); + } + +// ----------------------------------------------------------------------------- +// CPESupplementaryServicesMonitor::BarringEventOccurred +// ----------------------------------------------------------------------------- +// +EXPORT_C void CPESupplementaryServicesMonitor::BarringEventOccurred( + const MCCESsObserver::TCCESsBarringEvent aBarringEvent ) + { + TEFLOGSTRING2( + KTAMESIN, + "CALL: CPESupplementaryServcesMonitor::BarringEventOccurred aBarringEvent %d", + aBarringEvent ); + switch( aBarringEvent ) + { + case ECCESsIncomingCallBarred: /** Incoming call is barred. (DoCoMo) */ + case ECCESsAnonymousCallBarred: /** Anonymous call barring. */ + case ECCESsOutgoingCallBarred: /** Outgoing call barring */ + iOwner.SendMessage( MEngineMonitor::EPEMessageCallBarred, KPECallIdNotUsed ); + break; + + default: + break; + } + } + + +// ----------------------------------------------------------------------------- +// CPESupplementaryServicesMonitor::CLIEventOccurred +// ----------------------------------------------------------------------------- +// +EXPORT_C void CPESupplementaryServicesMonitor::CLIEventOccurred( + const MCCESsObserver::TCCESsCLIEvent aCallLineEvent ) + { + + switch( aCallLineEvent ) + { + case ECCESsTempClirSuppressUnsuccessful: /** Temporary CLIR suppression was unsuccessful */ + iOwner.SendMessage( MEngineMonitor::EPEMessageTempClirSuppressUnsuccessful, KPECallIdNotUsed ); + break; + + case ECCESsTempClirActivationUnsuccessful: /** Temporary CLIR activation was unsuccessful*/ + iOwner.SendMessage( MEngineMonitor::EPEMessageTempClirActivationUnsuccessful, KPECallIdNotUsed ); + break; + + default: + break; + } + + } + +// ----------------------------------------------------------------------------- +// CPESupplementaryServicesMonitor::CallForwardEventOccurred +// ----------------------------------------------------------------------------- +// +EXPORT_C void CPESupplementaryServicesMonitor::CallForwardEventOccurred( + const MCCESsObserver::TCCESsCallForwardEvent aCallForwardEvent, + const TDesC& /*aRemoteAddress*/ ) + { + TEFLOGSTRING2( + KTAMESIN, + "CALL: CPESupplementaryServcesMonitor::CallForwardEventOccurred aCallForwardEvent %d", + aCallForwardEvent ); + switch( aCallForwardEvent ) + { + case ECCESsIncCallIsForw: /** Incoming call is forwarded */ + iOwner.SendMessage( MEngineMonitor::EPEMessageIncCallIsForw, KPECallIdNotUsed ); + break; + + case ECCESsIncCallForwToC: /** Incoming call was forwarded because of user own settings. */ + iOwner.SendMessage( MEngineMonitor::EPEMessageIncCallForwToC, KPECallIdNotUsed ); + break; + + case ECCESsOutCallForwToC: /** outgoing call was forwarded because of user own settings. */ + iOwner.SendMessage( MEngineMonitor::EPEMessageOutCallForwToC, KPECallIdNotUsed ); + break; + + case ECCESsForwardUnconditionalModeActive: + iOwner.SendMessage( MEngineMonitor::EPEMessageForwardUnconditionalModeActive, KPECallIdNotUsed ); + break; + + case ECCESsForwardConditionallyModeActive: + iOwner.SendMessage( MEngineMonitor::EPEMessageForwardConditionallyModeActive, KPECallIdNotUsed ); + break; + + case ESsCallWaiting: + iOwner.SendMessage( MEngineMonitor::EPEMessageCallWaiting, KPECallIdNotUsed ); + TEFLOGSTRING( KTAINT, "CPESupplementaryServicesMonitor::CallForwardEventOccurred -> ECCESsCallWaiting" ); + break; + + default: + break; + } + } + +// ----------------------------------------------------------------------------- +// CPESupplementaryServicesMonitor::CallCugEventOccurred +// ----------------------------------------------------------------------------- +// +EXPORT_C void CPESupplementaryServicesMonitor::CallCugEventOccurred( + const MCCESsObserver::TCCESsCugEvent aCugEvent ) + { + // These events can be ingored for now. They don't cause any action in our + // layer or in UI. + + switch( aCugEvent ) + { + case ECCESsShowIncCallGroupIndex: // fall through + iOwner.SendMessage( MEngineMonitor::EPEMessageShowIncCallGroupIndex, KPECallIdNotUsed ); + break; + case ECCESsRejectedCause: + default: + break; + } + } + +// ----------------------------------------------------------------------------- +// CPESupplementaryServicesMonitor::NotifyCurrentActiveALSLine +// ----------------------------------------------------------------------------- +// +EXPORT_C void CPESupplementaryServicesMonitor::NotifyCurrentActiveALSLine( + TInt aLine ) + { + TEFLOGSTRING2( + KTAMESIN, + "CALL: CPESupplementaryServcesMonitor::NotifyCurrentActiveALSLine aLine %d", + aLine ); + + switch( aLine ) + { + case RMobilePhone::EAlternateLineNotAvailable: + iDataStore.SetALSLineSupport( EFalse ); + iDataStore.SetALSLine( CCCECallParameters::ECCELineTypePrimary ); + break; + + case RMobilePhone::EAlternateLinePrimary: + iDataStore.SetALSLineSupport( ETrue ); + iDataStore.SetALSLine( CCCECallParameters::ECCELineTypePrimary ); + break; + + case RMobilePhone::EAlternateLineAuxiliary: + iDataStore.SetALSLineSupport( ETrue ); + iDataStore.SetALSLine( CCCECallParameters::ECCELineTypeAux ); + break; + + default: + break; + } + + // Notify that, ALS line changed. + iOwner.SendMessage( MEngineMonitor::EPEMessageALSLineChanged, KPECallIdNotUsed ); + } + +// End of File