--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmshplugins/mmshaoplugin/src/muspttcallmonitor.cpp Thu Dec 17 08:44:37 2009 +0200
@@ -0,0 +1,145 @@
+/*
+* Copyright (c) 2005-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: Monitor that observes the status of the Kodiak PTT call
+*
+*/
+
+
+#include "muspttcallmonitor.h"
+#include "muslogger.h"
+#include <e32property.h>
+
+
+// --------------------------------------------------------------------------
+// Symbian two-phase constructor.
+// --------------------------------------------------------------------------
+//
+CMusPttCallMonitor* CMusPttCallMonitor::NewL(MMusPttEventObserver& aObserver)
+ {
+ MUS_LOG( "mus: [MUSAO] -> CMusPttCallMonitor::NewL" )
+ CMusPttCallMonitor* self = new (ELeave) CMusPttCallMonitor(aObserver);
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ MUS_LOG( "mus: [MUSAO] <- CMusPttCallMonitor::NewL" )
+ return self;
+ }
+
+
+// --------------------------------------------------------------------------
+// C++ destructor.
+// --------------------------------------------------------------------------
+//
+CMusPttCallMonitor::~CMusPttCallMonitor()
+ {
+ MUS_LOG( "mus: [MUSAO] -> CMusPttCallMonitor::~CMusPttCallMonitor" )
+ Cancel();
+ iPropertyEvent.Close();
+ MUS_LOG( "mus: [MUSAO] <- CMusPttCallMonitor::~CMusPttCallMonitor" )
+ }
+
+
+// --------------------------------------------------------------------------
+// C++ constructor.
+// --------------------------------------------------------------------------
+//
+CMusPttCallMonitor::CMusPttCallMonitor(MMusPttEventObserver& aObserver)
+ :CActive( EPriorityNormal ),iObserver(aObserver)
+ {
+
+ }
+
+
+// --------------------------------------------------------------------------
+// Symbian second-phase constructor.
+// --------------------------------------------------------------------------
+//
+void CMusPttCallMonitor::ConstructL()
+ {
+ MUS_LOG( "mus: [MUSAO] -> CMusPttCallMonitor::ConstructL" )
+ CActiveScheduler::Add(this);
+
+ User::LeaveIfError( iPropertyEvent.Attach(
+ KPSUidCtsyCallInformation,
+ KCTsyKodiakPtt) );
+ iPropertyEvent.Subscribe( iStatus );
+ SetActive();
+
+ MUS_LOG( "mus: [MUSAO] <- CMusPttCallMonitor::ConstructL" )
+ }
+
+// -----------------------------------------------------------------------------
+// CMusPttCallMonitor::RunL()
+// -----------------------------------------------------------------------------
+//
+void CMusPttCallMonitor::RunL()
+ {
+ MUS_LOG( "mus: [MUSAO] -> CMusPttCallMonitor::RunL" )
+ // resubscribe before processing new value to prevent missing updates
+
+ iPropertyEvent.Subscribe( iStatus );
+ SetActive();
+ TInt val = KErrNone;
+ User::LeaveIfError(iPropertyEvent.Get( val ));
+ iObserver.PttCallEventOccuredL((TPSCTsyKodiakPtt&)val);
+
+ MUS_LOG( "mus: [MUSAO] <- CMusPttCallMonitor::RunL" )
+ }
+
+
+// -----------------------------------------------------------------------------
+// CMusPttCallMonitor::DoCancel()
+// -----------------------------------------------------------------------------
+//
+void CMusPttCallMonitor::DoCancel()
+ {
+ MUS_LOG( "mus: [MUSAO] -> CMusPttCallMonitor::DoCancel" )
+ iPropertyEvent.Cancel();
+ MUS_LOG( "mus: [MUSAO] <- CMusPttCallMonitor::DoCancel" )
+ }
+
+
+// -----------------------------------------------------------------------------
+// CMusPttCallMonitor::IsPTTCallExist()
+// -----------------------------------------------------------------------------
+//
+TBool CMusPttCallMonitor::IsPTTCallExist()
+ {
+ MUS_LOG( "mus: [MUSAO] -> CMusPttCallMonitor::IsPTTCallExist" )
+
+ TInt val = KErrNone;
+ TInt ret = iPropertyEvent.Get( val );
+ MUS_LOG1( "mus: [MUSAO] iPropertyEvent.Get( val ) returns: %d",ret )
+ MUS_LOG1( "mus: [MUSAO] <- CMusPttCallMonitor::IsPTTCallExist = %d",val )
+ return ( val==EPSCTsyKodiakPttActive ) ? ETrue : EFalse;
+ }
+
+// -----------------------------------------------------------------------------
+// CMusCallEventMonitor::RunError( TInt aError )
+// Implemented for CActive.
+// Will be called automatically by framework when RunL Leaves.
+// -----------------------------------------------------------------------------
+//
+
+TInt CMusPttCallMonitor::RunError( TInt aError )
+ {
+ MUS_LOG1( "mus: [MUSAO] -> CMusCallEventMonitor::RunError, aError %d", aError )
+ aError = KErrNone; // just to avoid warnings.
+ MUS_LOG( "mus: [MUSAO] <- CMusCallEventMonitor::RunError" )
+ return aError;
+ }
+
+
+
+//End of File