--- a/src/screensaverengine.cpp Mon Jan 18 20:19:52 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,768 +0,0 @@
-/*
-* Copyright (c) 2003 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: Screensaver engine class definition.
-*
-*/
-
-
-
-#include <barsread.h>
-#include <activitymanager.h>
-#include <featmgr.h>
-#include <PUAcodes.hrh>
-#include <Profile.hrh>
-#include <screensaver.rsg>
-#include <AknUtils.h>
-
-#include "screensaverengine.h"
-#include "screensaverctrlmovingtext.h"
-#include "screensavershareddatai.h"
-#include "screensavershareddatamonitor.h"
-#include "screensaverappui.h"
-#include "ScreensaverUtils.h"
-#include "screensaverutility.h"
-
-
-// Minimum plugin suspension time
-const TInt KMinPluginSuspensionTime = 500000; // 0.5 sec
-
-// Inactivity timeout in seconds when keys locked
-const TInt KTimeoutShort = 5;
-
-const TInt KNoPreview = 0;
-
-const TInt KPreviewTimeout = 10000000; // 10 sec
-
-const TText KSilentProfileInd= KPuaCodeSilentSymbol;
-const TText KSilentVibraInd= KPuaCodeAprofSilentVibra;
-const TText KSoundVibraInd= KPuaCodeAprofSoundVibra;
-const TText KSoundInd= KPuaCodeAprofSound;
-
-// Class CScreensaverEngine
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::NewL
-// -----------------------------------------------------------------------------
-//
-CScreensaverEngine* CScreensaverEngine::NewL()
- {
- CScreensaverEngine* self = new (ELeave) CScreensaverEngine();
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop(); //self
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::~CScreensaverEngine
-// -----------------------------------------------------------------------------
-//
-CScreensaverEngine::~CScreensaverEngine( )
- {
- StopActivityMonitoring( iActivityManagerScreensaver );
- StopActivityMonitoring( iActivityManagerScreensaverShort );
- DisableSharedDataAndMonitor();
- delete iIndicatorArray;
- KillTimer( iPreviewTimer );
- iAknUiServer.Close();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::SharedDataInterface
-// -----------------------------------------------------------------------------
-//
-CScreensaverSharedDataI* CScreensaverEngine::SharedDataInterface( ) const
- {
- return iSharedDataI;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::ResetInactivityTimeout
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::ResetInactivityTimeout()
- {
- if ( iActivityManagerScreensaver )
- {
- SCRLOGGER_WRITEF(_L("SCR: Model: Setting inac timeout to %d secs"),
- Timeout());
- iActivityManagerScreensaver->SetInactivityTimeout( Timeout( ) );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::ScreenSaverIsOn
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverEngine::ScreenSaverIsOn( ) const
- {
- return iScreenSaverIsOn;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::ScreenSaverIsPreviewing
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverEngine::ScreenSaverIsPreviewing( ) const
- {
- return iScreenSaverIsPreviewing;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::StartScreenSaver
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::StartScreenSaver( )
- {
- SCRLOGGER_WRITE("Model: StartScreenSaver()");
-
- // Ignore start while in preview to avoid double-start lock
- if ( iScreenSaverIsPreviewing )
- {
- // Reset user activity so that screensaver is enabled after
- // preview even if no user activity happens any more
- // Note that this puts on backlight but it should be on at this
- // time anyway (unless a plugin set it off, but what the hey)
- User::ResetInactivityTime();
- return;
- }
-
- // if (DisplayFlag() == 1) then screensaver can be activated
- // else screensaver can't come during phone call.
- // Also not OK to start until system startup has been completed
- if ( ( !DisplayFlag() ) && ( iSharedDataI->IsSystemStartupComplete() ) )
- {
- if ( !iScreenSaverIsOn )
- {
- // connect in StartScreenSaver, intercept and capture application
- // key event. It makes sure this event will not be received
- // by other applictions when screensaver is activated.
- iAknUiServer.ConnectAndSendAppsKeySuppress(ETrue);
- iScreenSaverIsOn = ETrue;
-
- // Report whether started from Idle BEFORE bringing to foreground
- iSharedDataI->SetSSStartedFromIdleStatus();
-
- ScreensaverUtility::BringToForeground();
-
- SCRLOGGER_WRITE("Model: SS is displaying (BringToForeground)");
-
- // Compress heap while displaying. No longer possible to
- // compress all heaps (User::CompressAllHeaps() is a no-op)
- User::Heap().Compress();
-
- DisplayObject();
- }
- else
- {
- SCRLOGGER_WRITE("Model: StartScreenSaver(): already on, ignore");
- }
- }
- else
- {
- SCRLOGGER_WRITE("Model: SS not displaying, not allowed.");
- ResetInactivityTimeout( );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::StopScreenSaver
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::StopScreenSaver()
- {
- SCRLOGGER_WRITE("Stopping Screensaver");
-
- if( iScreenSaverIsOn )
- {
- // disconnect in StopScreenSaver, It makes sure other applications could
- // receive application key event when screensaver is disactivated.
- iAknUiServer.ConnectAndSendAppsKeySuppress(EFalse);
- // Indicate we've stopped
- iSharedDataI->SetScreensaverStatus( EFalse );
-
- iScreenSaverIsOn = EFalse ;
-
- View()->HideDisplayObject();
- }
-
-
- if( iScreenSaverIsPreviewing )
- {
- iSharedDataI->SetScreensaverPreviewMode( KNoPreview );
-
- iScreenSaverIsPreviewing = EFalse;
-
- View()->HideDisplayObject();
-
- // Update preview progress
- iSharedDataI->SetScreensaverPreviewState( EScreenSaverPreviewEnd );
- iSharedDataI->SetScreensaverPreviewState( EScreenSaverPreviewNone );
-
- KillTimer( iPreviewTimer );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::StartPreviewModeL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::StartPreviewModeL( )
- {
- SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverEngine::StartPreviewModeL()") );
-
- iScreenSaverIsPreviewing = ETrue;
- // Change the display object into what's being previewed
- View()->CreatePreviewDisplayObjectL();
-
- if( iSharedDataI->ScreensaverPreviewState() == EScreenSaverPreviewError )
- {
- iScreenSaverIsPreviewing = EFalse;
- return;
- }
-
- StartPreviewTimer();
-
- UpdateIndicatorAttributes();
-
- View()->ShowDisplayObject();
-
- iSharedDataI->SetScreensaverPreviewState( EScreenSaverPreviewStart );
-
- ScreensaverUtility::BringToForeground();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::DisplayObject
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::DisplayObject()
- {
- SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverEngine::DisplayObject()") );
- //if the display object type is plugin, we should recreate the object
- //cause when plugin is suspend status, it will be changed to the default
- //type
- if ( iSharedDataI->DisplayObjectType() == EDisplayPlugin )
- {
- View()->SetDisplayObject( EDisplayPlugin );
- }
-
- UpdateIndicatorAttributes();
-
- View()->ShowDisplayObject();
-
- iSharedDataI->SetScreensaverStatus( ETrue );
- }
-
-// ----------------------------------------------------------------------------
-// CScreensaverEngine::StartSuspendTimer
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::StartSuspendTimer( TInt aSec )
- {
- KillTimer( iSuspendTimer );
-
- // Let's keep this operation reasonable.
- TInt realTime = ( aSec > KMinPluginSuspensionTime )
- ? aSec : KMinPluginSuspensionTime;
-
- TRAP_IGNORE( iSuspendTimer = CPeriodic::NewL( CActive::EPriorityStandard ) );
-
- iSuspendTimer->Start( realTime, realTime, TCallBack(
- HandleSuspendTimerExpiry, this ) );
-
- SCRLOGGER_WRITEF(_L("SCR: iSuspendTimer->Start(%d, %d, HandleSuspensionTimerTimeout)"),
- realTime, realTime);
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::IndicatorArray
-// -----------------------------------------------------------------------------
-//
-CScreensaverIndicatorArray& CScreensaverEngine::IndicatorArray() const
- {
- return *iIndicatorArray;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::GetColorModel
-// -----------------------------------------------------------------------------
-//
-const TScreensaverColorModel& CScreensaverEngine::GetColorModel() const
- {
- SCRLOGGER_WRITE("Host / Own use: GetColorModel()");
-
- return iColorModel;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::AddPartialModeLevel
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::AddPartialModeLevel( TInt aBpp,
- TScreensaverPartialModeType aType )
- {
- TInt i;
- for (i = 0; i < iColorModel.iNumberOfPartialModes; i++ )
- {
- if ( (iColorModel.iPartialModes[i].iBpp == aBpp)
- && (iColorModel.iPartialModes[i].iType == aType) )
- {
- break;
- }
- }
- if ( i >= iColorModel.iNumberOfPartialModes )
- {
- iColorModel.iPartialModes[iColorModel.iNumberOfPartialModes].iBpp
- = aBpp;
- iColorModel.iPartialModes[iColorModel.iNumberOfPartialModes].iType
- = aType;
- iColorModel.iNumberOfPartialModes++;
- }
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::UpdateIndicatorAttributes
-// This method is for updating screensaver indicator
-// attributes (payloads and dependencies). This is where indicator
-// payload values are connected to real values.
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::UpdateIndicatorAttributes()
- {
- SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverView::UpdateIndicatorAttributes()"));
-
- TIndicatorPayload payload;
-
- // First integer types.
- payload.iType = EPayloadTypeInteger;
-
- // Missed calls.
- payload.iInteger = iSharedDataI->NewMissedCalls();
- iIndicatorArray->SetIndicatorPayload( ESsMissedCallsInd, payload );
- // Missed calls indicator depends on status of new contacts note.
- iIndicatorArray->SetDependencyStatus( ESsMissedCallsInd,
- !iSharedDataI->IsNCNActive() );
-
- // Unread messages
- payload.iInteger = iSharedDataI->UnreadMessagesNumber();
- iIndicatorArray->SetIndicatorPayload( ESsNewMessagesInd, payload );
- iIndicatorArray->SetDependencyStatus( ESsNewMessagesInd, (payload.iInteger > 0
- ? EFalse : ETrue) );
-
- // Then string types.
- payload.iType = EPayloadTypeText;
-
- // Profile information
- TBool nameDisplayed = (iSharedDataI->ActiveProfile() == EProfileGeneralId) ? EFalse : ETrue;
- TBool isSilent = iSharedDataI->IsSilentMode();
- payload.iText.Zero( );
-
- if ( nameDisplayed || isSilent || iShowExtendedProfileInd )
- {
- // append alert type indicator
- if ( iShowExtendedProfileInd )
- {
- TBool isVibra = iSharedDataI->IsVibraMode( );
- if ( isSilent )
- {
- payload.iText.Append( isVibra ? KSilentVibraInd
- : KSilentProfileInd );
- }
- else
- {
- payload.iText.Append( isVibra ? KSoundVibraInd : KSoundInd );
- }
- }
- else
- {
- // Check if this is silent mode and we have to add indicator
- // character to string.
- if ( isSilent )
- {
- payload.iText.Append( KSilentProfileInd );
- }
- }
-
- if ( nameDisplayed )
- {
- const TDesC& profile = iSharedDataI->ProfileName( );
- // Don't panic if profile name is too long, 'less than' ensures
- // the 1 free space used for silent/vibra
- if ( profile.Length( ) < KMaxPayloadTextLength )
- {
- // append profile name
- payload.iText.Append( profile );
- }
- }
-
- // Profile indicator shown
- iIndicatorArray->SetDependencyStatus( ESsProfileInd, EFalse );
- }
- else
- {
- // Profile indicator not shown
- iIndicatorArray->SetDependencyStatus( ESsProfileInd, ETrue );
- }
-
- iIndicatorArray->SetIndicatorPayload( ESsProfileInd, payload );
-
- // AM/PM indicator is text but it is updated with every draw
- // in screensaver control, so that it changes properly even if
- // time rolls over between draws. Note that Am/Pm information is
- // maintained by screensaver display object, not shareddatainterface.
- if ( AknLayoutUtils::ScalableLayoutInterfaceAvailable() )
- {
- // Am/Pm indicator depends on 12-hour clock
- iIndicatorArray->SetDependencyStatus( ESsAmPmInd, !ScreensaverUtility::Query12HourClock( ) );
- }
- else
- {
- // Make sure it's not shown
- iIndicatorArray->SetDependencyStatus( ESsAmPmInd, ETrue );
- }
-
-
- // Key lock indicator depends on status of key guard.
- iIndicatorArray->SetDependencyStatus( ESsKeyLockInd, !iSharedDataI->IsKeyguardOn() );
-
- // Instant messaging indicator depends on existence of unseen IMs
- iIndicatorArray->SetDependencyStatus( ESsImInd, !iSharedDataI->IsHaveNewInstantMessages() );
-
- // Mail indicator depends on existence of unseen mails
- iIndicatorArray->SetDependencyStatus( ESsMailInd, !iSharedDataI->IsHaveNewEmail() );
-
- // Voicemail indicator depends on existence of unseen voicemail messages
- iIndicatorArray->SetDependencyStatus( ESsVoicemailInd, !iSharedDataI->IsHaveNewVoicemail() );
-
- //Set visibility for indicators if selected screensaver is a plugin
- //which overides standard indicators
- //TODO: Convert the iControlType to the iSettingType
-// if ( (iSharedDataI->ScreensaverObjectType() == EDisplayPlugin ) &&
-// ( AppUi()->ScreensaverView()->PluginFlags() & CScreensaverView::EPluginFlagOverrideIndicators ) )
-// {
- iIndicatorArray->SetVisibilityForIndicators();
-// }
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::CScreensaverEngine
-// -----------------------------------------------------------------------------
-//
-CScreensaverEngine::CScreensaverEngine()
- {
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::ConstructL( )
- {
- SetupColorModelL();
-
- EnableSharedDataAndMonitorL();
-
- iIndicatorArray = CScreensaverIndicatorArray::NewL( iSharedDataI->IsInvertedColors() );
-
- StartActivityMonitoringL();
-
- FeatureManager::InitializeLibL();
- iShowExtendedProfileInd
- = FeatureManager::FeatureSupported( KFeatureIdProtocolCdma );
- FeatureManager::UnInitializeLib();
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::EnableSharedDataAndMonitorL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::EnableSharedDataAndMonitorL()
- {
- iSharedDataI = CScreensaverSharedDataI::NewL();
-
- iSharedDataMonitor = CScreensaverSharedDataMonitor::NewL( iSharedDataI );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::DisableSharedDataAndMonitor
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::DisableSharedDataAndMonitor( )
- {
- delete iSharedDataMonitor;
- iSharedDataMonitor = NULL;
-
- delete iSharedDataI;
- iSharedDataI = NULL;
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::StartActivityMonitoringL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::StartActivityMonitoringL( )
- {
- // Actually screensaver is the last exe to be launch at the startup,
- // so when it is being launched the elapsed time(User::InactivityTime())
- // is greater than the interval (15 sec) which screensaver pass to start
- // activitymanager for inactivitycallback.
- // So it has to do to reset inactivitytime (User::ResetInactivityTime() )
- // once in the screensaver constructor so that the inactivity callback
- // called after the interval time expired.
- User::ResetInactivityTime();
-
- // Start monitoring activity for screensaver
- iActivityManagerScreensaver
- = CUserActivityManager::NewL( CActive::EPriorityStandard );
- iActivityManagerScreensaver->Start( Timeout(),
- TCallBack( HandleInactiveEventL,this ),
- TCallBack( HandleActiveEventL, this ) );
-
- // Start monitoring activity for screensaver, short timeout
- iActivityManagerScreensaverShort
- = CUserActivityManager::NewL( CActive::EPriorityStandard );
-
- iActivityManagerScreensaverShort->Start( KTimeoutShort,
- TCallBack( HandleInactiveEventShortL, this ),
- TCallBack( HandleActiveEventShortL, this ) );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::StopActivityMonitoring
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::StopActivityMonitoring( CUserActivityManager*& aActivityManager )
- {
- if ( aActivityManager )
- {
- aActivityManager->Cancel();
- delete aActivityManager;
- aActivityManager = NULL;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::SetupColorModelL
-// THIS IS TEMPORARY VERSION OF SetupColorModelL function. It is used until
-// new version of LcdPartialMode module is integrated.
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::SetupColorModelL()
- {
- SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverEngine::SetupColorModelL()") );
- TResourceReader reader;
- TInt i, ctmp;
-
- TInt suggestedDrawingMode;
-
- CEikonEnv::Static()->CreateResourceReaderLC( reader, R_SCREENSAVER_COLOR_MODEL );
- suggestedDrawingMode = reader.ReadInt32( );
-
- //
- // Let's find out how many partial modes hardware
- // actually supports.
- //
- AddPartialModeLevel( (TInt)3,
- (TScreensaverPartialModeType)EPartialModeTypeMostPowerSaving );
- AddPartialModeLevel( (TInt)3,
- (TScreensaverPartialModeType)EPartialModeTypeDefault );
- AddPartialModeLevel( (TInt)16,
- (TScreensaverPartialModeType)EPartialModeTypeFull );
-
- if ( suggestedDrawingMode == ESsColorModel3BitMode )
- {
- // This can always be done, just set default partial mode to
- // most power saving. First try 'most power saving' and if not supported
- // then try default. if default isn't supported leave with error code.
- iColorModel.iSystemPartialMode.iBpp = 3;
- iColorModel.iSystemPartialMode.iType
- = EPartialModeTypeMostPowerSaving;
- }
-
- // Read color indices for 3-bit mode.
- reader.Read( iColorModel.iColors, 8 * sizeof(TInt16) );
-
- // Read rgb values for gradient effect.
- for (i = 0; i < 6; i++ )
- {
- ctmp = reader.ReadInt32( );
- iColorModel.iDarkGradient[i] = TRgb( ctmp );
- }
-
- for (i = 0; i < 6; i++ )
- {
- ctmp = reader.ReadInt32( );
- iColorModel.iLightGradient[i] = TRgb( ctmp );
- }
-
- CleanupStack::PopAndDestroy( ); // reader
- }
-
-// ----------------------------------------------------------------------------
-// CScreensaverEngine::StartPreviewTimer
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::StartPreviewTimer()
- {
- SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverEngine::StartPreviewTimer()") );
-
- KillTimer( iPreviewTimer );
-
- TRAP_IGNORE( iPreviewTimer = CPeriodic::NewL( CActive::EPriorityHigh ) );
-
- iPreviewTimer->Start( KPreviewTimeout, KPreviewTimeout, TCallBack(
- HandlePreviewTimerExpiry, this ) );
-
- SCRLOGGER_WRITEF(_L("SCR: iPreviewTimer->Start(%d, %d, HandlePreviewTimerTimeout)"),
- KPreviewTimeout,KPreviewTimeout);
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::KillTimer
-// Stops and deletes a timer
-// -----------------------------------------------------------------------------
-//
-void CScreensaverEngine::KillTimer( CPeriodic*& aTimer )
- {
- if ( aTimer )
- {
- aTimer->Cancel( );
- delete aTimer;
- aTimer = NULL;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::HandlePreviewTimerExpiry
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverEngine::HandlePreviewTimerExpiry( TAny* aPtr )
- {
- CScreensaverEngine* Engine = STATIC_CAST(CScreensaverEngine*, aPtr);
- SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverView::HandlePreviewTimerTimeout()"));
-
- Engine->KillTimer( Engine->iPreviewTimer );
- Engine->StopScreenSaver();
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::HandleActiveEventL
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverEngine::HandleActiveEventL( TAny* /* aPtr */)
- {
- SCRLOGGER_WRITE("HandleActiveEventL(), do nothing");
- // We can be pretty sure the short timeout has passed and its
- // active event handler stops the saver
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::HandleInactiveEventL
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverEngine::HandleInactiveEventL( TAny* aPtr )
- {
- SCRLOGGER_WRITE("HandleInactiveEventL(), starting screensaver");
-
- CScreensaverEngine* _this= STATIC_CAST(CScreensaverEngine*, aPtr);
-
- // Double-start is OK, it will be checked in StartScreenSaver()
- _this->StartScreenSaver( );
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::HandleActiveEventShortL
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverEngine::HandleActiveEventShortL( TAny* aPtr )
- {
- SCRLOGGER_WRITE("HandleActiveEventShortL(), stopping saver");
- STATIC_CAST(CScreensaverEngine*, aPtr)->StopScreenSaver();
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::HandleInactiveEventShortL
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverEngine::HandleInactiveEventShortL( TAny* aPtr )
- {
- SCRLOGGER_WRITE("HandleInactiveEventShortL()");
- // Start, if keys are locked and short timeout in use
- CScreensaverEngine* _this= STATIC_CAST(CScreensaverEngine*, aPtr);
-
- if ( _this->iSharedDataI->IsKeyguardOn() )
- {
- SCRLOGGER_WRITE("HandleInactiveEventShortL() starting saver");
- _this->StartScreenSaver( );
- }
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::HandleSuspendTimerExpiry
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverEngine::HandleSuspendTimerExpiry( TAny* aPtr )
- {
- CScreensaverEngine* control= STATIC_CAST(CScreensaverEngine*, aPtr);
- SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverEngine::HandleSuspendTimerExpiry()"));
-
- control->KillTimer( control->iSuspendTimer );
-
- control->View()->SetDisplayObject( EDisplayPlugin );
- control->View()->ShowDisplayObject();
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::View
-// -----------------------------------------------------------------------------
-//
-CScreensaverView* CScreensaverEngine::View() const
- {
- return STATIC_CAST( CScreensaverAppUi*, CCoeEnv::Static()->AppUi() )->ScreensaverView();
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::Timeout
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverEngine::Timeout( )
- {
- return iSharedDataI->ScreensaverTimeout( );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverEngine::DisplayFlag
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverEngine::DisplayFlag( )
- {
- return iSharedDataI->IsScreenSaverAllowed();
- }
-// End of file.