diff -r 000000000000 -r ff3b6d0fd310 satengine/SatServer/SatClient/src/csatpluginmonitor.cpp --- /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 +#include +#include // 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