diff -r 594d59766373 -r 7d48bed6ce0c convergedcallengine/csplugin/src/cspetelcalleventmonitor.cpp --- a/convergedcallengine/csplugin/src/cspetelcalleventmonitor.cpp Thu Aug 19 10:28:14 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,291 +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: Implementation of class CSPEtelCallEventMonitor which -* monitors call events from ETel and notifies observer -* accordingly. -* -*/ - - -#include -#include -#include - -#include "cspetelcalleventmonitor.h" -#include "csplogger.h" -#include "cspcall.h" - - - -// --------------------------------------------------------------------------- -// CSPEtelCallEventMonitor::NewL. -// --------------------------------------------------------------------------- -// -CSPEtelCallEventMonitor* CSPEtelCallEventMonitor::NewL( MCSPCallObserver& aObserver, - RMobileCall& aCall ) - { - CSPLOGSTRING(CSPOBJECT, - "CSPEtelCallEventMonitor::NewL()" ); - CSPEtelCallEventMonitor* self = new ( ELeave ) CSPEtelCallEventMonitor( - aObserver, aCall ); - return self; - } - -// --------------------------------------------------------------------------- -// Destructs the object by canceling first ongoing monitoring. -// --------------------------------------------------------------------------- -// -CSPEtelCallEventMonitor::~CSPEtelCallEventMonitor( ) - { - CSPLOGSTRING(CSPOBJECT, - "CSPEtelCallEventMonitor::~CSPEtelCallEventMonitor()" ); - Cancel(); - - if ( iDestrPtr ) - { - *iDestrPtr = ETrue; - iDestrPtr = NULL; - } - } - -// --------------------------------------------------------------------------- -// Starts the monitoring. -// --------------------------------------------------------------------------- -// -void CSPEtelCallEventMonitor::StartMonitoring() - { - CSPLOGSTRING( CSPINT, "CSPEtelCallEventMonitor::StartMonitoring" ); - - if ( !IsActive() ) - { - CSPLOGSTRING( CSPREQOUT, - "CSP: CSPEtelCallEventMonitor::StartMonitoring: \ - Request RMobilePhone::NotifyCallEvent" ); - iCall.NotifyCallEvent( iStatus, iCallEvent ); - SetActive(); - } - else - { - CSPLOGSTRING( CSPERROR, - "CSP: CSPEtelCallEventMonitor::StartMonitoring: Already active" ); - } - } - -// --------------------------------------------------------------------------- -// From CActive -// Handles event notifying. -// --------------------------------------------------------------------------- -// -void CSPEtelCallEventMonitor::RunL() - { - CSPLOGSTRING( CSPINT, "CSPEtelCallEventMonitor::RunL") - - // Survive from monitor destruction during observing sequence - TBool destroyed = EFalse; - iDestrPtr = &destroyed; - - if ( iStatus == KErrNone ) - { - switch ( iCallEvent ) - { - // The call has been terminated by the remote party. - case RMobileCall::ERemoteTerminated: - { - CSPLOGSTRING( CSPINT, - "CSP CSPEtelCallEventMonitor::RunL: Remotely terminated" ); - iObserver.NotifyCallEventOccurred( - MCCPCallObserver::ECCPRemoteTerminated ); - break; - } - // The call has been placed on hold as a result of a local action - case RMobileCall::ELocalHold: - { - CSPLOGSTRING( CSPINT, - "CSP CSPEtelCallEventMonitor::RunL: Locally held" ); - iObserver.NotifyCallEventOccurred( - MCCPCallObserver::ECCPLocalHold ); - break; - } - - // The call has been resumed as a result of a local action. - case RMobileCall::ELocalResume: - { - CSPLOGSTRING( CSPINT, - "CSP CSPEtelCallEventMonitor::RunL: Locally resumed" ); - iObserver.NotifyCallEventOccurred( - MCCPCallObserver::ECCPLocalResume ); - break; - } - // The call has been deflected to another remote party as a result - // of a local action. - case RMobileCall::ELocalDeflectCall: - { - CSPLOGSTRING( CSPINT, - "CSP CSPEtelCallEventMonitor::RunL: Locally deflected" ); - iObserver.NotifyTransferCallEventOccurred( - MCCPTransferObserver::ECCPLocalTransfer ); - break; - } - // The call has been transferred to another remote party as a - // result of a local action. - case RMobileCall::ELocalTransfer: - { - CSPLOGSTRING( CSPINT, - "CSP CSPEtelCallEventMonitor::RunL: Locally transfered" ); - iObserver.NotifyTransferCallEventOccurred( - MCCPTransferObserver::ECCPLocalTransfer ); - break; - } - // The call has been placed on hold by the remote connected party - case RMobileCall::ERemoteHold: - { - CSPLOGSTRING( CSPINT, - "CSP CSPEtelCallEventMonitor::RunL: Remotely held" ); - iObserver.NotifyCallEventOccurred( - MCCPCallObserver::ECCPRemoteHold ); - break; - } - // The call has been resumed by the remote connected party. - case RMobileCall::ERemoteResume: - { - CSPLOGSTRING( CSPINT, - "CSP CSPEtelCallEventMonitor::RunL: Remotely resumed" ); - iObserver.NotifyCallEventOccurred( - MCCPCallObserver::ECCPRemoteResume ); - break; - } - // The call has been joined by the remote connected party to other - // call(s) to create/add to a conference call. - case RMobileCall::ERemoteConferenceCreate: - { - CSPLOGSTRING( CSPINT, - "CSP CSPEtelCallEventMonitor::RunL: Remotely created \ - conference" ); - - iObserver.NotifyCallEventOccurred( - MCCPCallObserver::ECCPRemoteConferenceCreate ); - - break; - } - case RMobileCall::ERemoteTransferring: - { - CSPLOGSTRING( CSPINT, - "CSP CSPEtelCallEventMonitor::RunL: Remotely created \ - conference" ); - iObserver.NotifyTransferCallEventOccurred( - MCCPTransferObserver::ECCPRemoteTransferring ); - break; - } - case RMobileCall::ERemoteTransferAlerting: - { - CSPLOGSTRING( CSPINT, - "CSP CSPEtelCallEventMonitor::RunL: Remotely created \ - conference" ); - iObserver.NotifyTransferCallEventOccurred( - MCCPTransferObserver::ECCPRemoteTransferAlerting ); - break; - } - // The outgoing call has been barred by the remote party - case RMobileCall::ERemoteBarred: - { - CSPLOGSTRING( CSPINT, - "CSP CSPEtelCallEventMonitor::RunL: Remotely barred" ); - iObserver.NotifyCallEventOccurred( - MCCPCallObserver::ECCPRemoteBarred ); - break; - } - - // The call is being forwarded by the remote party. - case RMobileCall::ERemoteForwarding: - { - CSPLOGSTRING( CSPINT, - "CSP CSPEtelCallEventMonitor::RunL: Remotely forwarded" ); - iObserver.NotifyForwardEventOccurred( - MCCPForwardObserver::ECCPRemoteForwarding ); - break; - } - - // The call is waiting at the remote end. - case RMobileCall::ERemoteWaiting: - { - CSPLOGSTRING( CSPINT, - "CSP CSPEtelCallEventMonitor::RunL: Remotely waiting" ); - iObserver.NotifyCallEventOccurred( - MCCPCallObserver::ECCPRemoteWaiting ); - break; - } - - // The outgoing call has been barred by the local party. - case RMobileCall::ELocalBarred: - { - CSPLOGSTRING( CSPINT, - "CSP CSPEtelCallEventMonitor::RunL: Locally barred" ); - iObserver.NotifyCallEventOccurred( - MCCPCallObserver::ECCPLocalBarred ); - break; - } - - default: - { - CSPLOGSTRING2( CSPINT, - "CSP CSPEtelCallEventMonitor::RunL: Unspecified/protocol \ - specific call event: %d", iCallEvent ); - break; - } - } - } - - if ( !destroyed ) - { - // In case instance has not been deleted, pointer must be cleared. - iDestrPtr = NULL; - if ( iStatus == KErrNone ) - { - StartMonitoring(); - } - } - else - { - // already destroyed, do not touch members. - } - } - -// --------------------------------------------------------------------------- -// From CActive -// Request canceling. -// --------------------------------------------------------------------------- -// -void CSPEtelCallEventMonitor::DoCancel() - { - CSPLOGSTRING( CSPINT, "CSPEtelCallEventMonitor::DoCancel" ); - iCall.CancelAsyncRequest( EMobileCallNotifyCallEvent ); - } - -// --------------------------------------------------------------------------- -// Constructs the monitor. -// --------------------------------------------------------------------------- -// -CSPEtelCallEventMonitor::CSPEtelCallEventMonitor( MCSPCallObserver& aObserver, - RMobileCall& aCall ) : - CActive( EPriorityStandard ), - iObserver( aObserver ), - iCall ( aCall ) - { - CSPLOGSTRING(CSPOBJECT, - "CSPEtelCallEventMonitor::CSPEtelCallEventMonitor()" ); - CActiveScheduler::Add( this ); - } - -// End of File -