--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/satengine/SatServer/SatClient/src/csatpluginmonitor.cpp Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,236 @@
+/*
+* Copyright (c) 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: Monitor the set up idle mote text P&S key.
+*
+*/
+
+
+#include <e32base.h>
+#include <etelsat.h>
+#include <SATInternalPSKeys.h> // For monitor the P&S key
+
+#include "csatpluginmonitor.h"
+#include "SatLog.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// Symbian 2nd phase constructor can leave
+// -----------------------------------------------------------------------------
+//
+CSatPluginMonitor* CSatPluginMonitor::NewL()
+ {
+ LOG( SIMPLE, "CSatPluginMonitor::NewL calling" )
+
+ CSatPluginMonitor* self = new ( ELeave ) CSatPluginMonitor();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+
+ LOG( SIMPLE, "CSatPluginMonitor::NewL exits" )
+ return self;
+ }
+// -----------------------------------------------------------------------------
+// Destructor
+// Cancels and deletes
+// all the dynamic content
+// -----------------------------------------------------------------------------
+//
+CSatPluginMonitor::~CSatPluginMonitor()
+ {
+ LOG( SIMPLE, "CSatPluginMonitor::~CSatPluginMonitor calling" )
+ iIdleAppStatus = NULL;
+ Cancel();
+ iIdleMode.Close();
+ LOG( SIMPLE, "CSatPluginMonitor::~CSatPluginMonitor exits" )
+ }
+
+// -----------------------------------------------------------------------------
+// Start monitor the P&S key.
+// -----------------------------------------------------------------------------
+//
+TInt CSatPluginMonitor::Start( TRequestStatus& aStatus )
+ {
+ LOG( SIMPLE, "CSatPluginMonitor::StartMonitor calling" )
+ TInt err ( KErrNotReady );
+
+ if ( !iIdleAppStatus && !IsActive() )
+ {
+ aStatus = KRequestPending;
+ iIdleAppStatus = &aStatus;
+ iIdleMode.Subscribe( iStatus );
+ SetActive();
+ err = KErrNone;
+ LOG( DETAILED, "CSatPluginMonitor::StartMonitor subscribe the P&S key" )
+ }
+
+ LOG2( SIMPLE, "CSatPluginMonitor::StartMonitor exits, err: %d", err )
+ return err;
+ }
+
+// -----------------------------------------------------------------------------
+// Get idle mode text
+// -----------------------------------------------------------------------------
+//
+TInt CSatPluginMonitor::GetIdleModeText( HBufC*& aText )
+ {
+ LOG( SIMPLE, "CSatPluginMonitor::GetIdleModeText calling" )
+ TInt err ( KErrNoMemory );
+
+ // Make the function no-leave.
+ aText = HBufC::New( RSat::KIdleModeTextMaxSize );
+ if( aText )
+ {
+ TPtr txtPtr( aText->Des() );
+ err = RProperty::Get( KPSUidSatServerInternal,
+ KSatIdleModeText,
+ txtPtr );
+ if ( KErrNone != err )
+ {
+ delete aText;
+ aText = NULL;
+ }
+ }
+ LOG2( SIMPLE,
+ "SATCLIENT::GetSetupIdleModeTextL text exits, error: %i",
+ err )
+ return err;
+ }
+
+// -----------------------------------------------------------------------------
+// Get idle mode icon qualifier
+// -----------------------------------------------------------------------------
+//
+TInt CSatPluginMonitor::GetIdleModeIconQualifier( TInt& aIconQualifier )
+ {
+ LOG( SIMPLE, "CSatPluginMonitor::GetIdleModeIconQualifier calling" )
+ TInt err( KErrNone );
+ err = RProperty::Get( KPSUidSatServerInternal,
+ KSatIdleModeTextIconQualifier,
+ aIconQualifier );
+ LOG2( DETAILED,
+ "SATCLIENT::GetSetupIdleModeTextL iconQualifier error: %i",
+ err )
+ LOG2( SIMPLE,
+ "SATCLIENT::GetSetupIdleModeTextL exits, iconQualifier: %i",
+ aIconQualifier )
+ return err;
+ }
+
+// -----------------------------------------------------------------------------
+// Get idle mode icon id
+// -----------------------------------------------------------------------------
+//
+TInt CSatPluginMonitor::GetIdleModeIconId( TInt& aRecordNumber )
+ {
+ LOG( SIMPLE, "CSatPluginMonitor::GetIdleModeIconId calling" )
+ TInt err( KErrNone );
+ err = RProperty::Get( KPSUidSatServerInternal,
+ KSatIdleModeTextIconId,
+ aRecordNumber );
+ LOG2( DETAILED,
+ "SATCLIENT::GetIdleModeIconId icon id error: %i",
+ err )
+ LOG2( SIMPLE,
+ "SATCLIENT: RSatService:GetIdleModeIconId exits, id: %i",
+ aRecordNumber )
+
+ return err;
+ }
+
+
+// -----------------------------------------------------------------------------
+// Handles the request completion.
+// -----------------------------------------------------------------------------
+//
+void CSatPluginMonitor::RunL()
+ {
+ LOG2( SIMPLE, "SATCLIENT::CSatPluginMonitor::RunL calling, \
+ iIdleAppStatus: %i", iIdleAppStatus )
+
+ if ( iIdleAppStatus )
+ {
+ // Complete the request.
+ User::RequestComplete( iIdleAppStatus, iStatus.Int() );
+ LOG2( DETAILED, "CSatPluginMonitor::RunL error: %i", iStatus.Int() );
+
+ iIdleAppStatus = NULL;
+ }
+
+ LOG( SIMPLE, "SATCLIENT::CSatPluginMonitor::RunL exits" )
+ }
+
+// -----------------------------------------------------------------------------
+// Cancels the pending request
+// -----------------------------------------------------------------------------
+//
+void CSatPluginMonitor::DoCancel()
+ {
+ LOG( SIMPLE, "CSatPluginMonitor::DoCancel calling" )
+ if ( iIdleAppStatus )
+ {
+ User::RequestComplete( iIdleAppStatus, KErrCancel );
+ iIdleMode.Cancel();
+
+ iIdleAppStatus = NULL;
+ }
+ LOG( SIMPLE, "CSatPluginMonitor::DoCancel exits" )
+ }
+
+// -----------------------------------------------------------------------------
+// Handles a leave occurring in the request completion event handler RunL()
+// -----------------------------------------------------------------------------
+//
+TInt CSatPluginMonitor::RunError( TInt aError )
+ {
+ LOG2( SIMPLE, "CSatPluginMonitor::RunError calling, error: %i", aError )
+ if ( iIdleAppStatus )
+ {
+ // Complete the request.
+ User::RequestComplete( iIdleAppStatus, aError );
+ iIdleMode.Cancel();
+
+ iIdleAppStatus = NULL;
+ }
+ LOG( SIMPLE, "CSatPluginMonitor::RunError exits" )
+ return aError;
+ }
+// -----------------------------------------------------------------------------
+// Symbian 2nd phase constructor can leave
+// -----------------------------------------------------------------------------
+//
+void CSatPluginMonitor::ConstructL()
+ {
+ LOG( SIMPLE, "CSatPluginMonitor::ConstructL calling" )
+
+ TInt err = iIdleMode.Attach( KPSUidSatServerInternal,
+ KSatIdleModeTextIconQualifier );
+ LOG2( DETAILED, "CSatPluginMonitor::ConstructL err: %i, exits", err )
+
+ User::LeaveIfError( err );
+ }
+
+// -----------------------------------------------------------------------------
+// Default constructor
+// -----------------------------------------------------------------------------
+//
+CSatPluginMonitor::CSatPluginMonitor() :
+ CActive( EPriorityStandard )
+ {
+ LOG( SIMPLE, "CSatPluginMonitor::ConstructL calling" )
+ CActiveScheduler::Add( this );
+ LOG( SIMPLE, "CSatPluginMonitor::ConstructL exits" )
+ }
+
+// End of File