src/screensaverengine.cpp
branchRCL_3
changeset 9 b3594157d381
parent 8 25957ccd51ab
child 10 1c806ee746e7
equal deleted inserted replaced
8:25957ccd51ab 9:b3594157d381
    73     StopActivityMonitoring( iActivityManagerScreensaver );
    73     StopActivityMonitoring( iActivityManagerScreensaver );
    74     StopActivityMonitoring( iActivityManagerScreensaverShort );
    74     StopActivityMonitoring( iActivityManagerScreensaverShort );
    75     DisableSharedDataAndMonitor();
    75     DisableSharedDataAndMonitor();
    76     delete iIndicatorArray;
    76     delete iIndicatorArray;
    77     KillTimer( iPreviewTimer );
    77     KillTimer( iPreviewTimer );
       
    78     KillTimer( iExpiryTimer );
    78     iAknUiServer.Close();
    79     iAknUiServer.Close();
    79     }
    80     }
    80 
    81 
    81 // -----------------------------------------------------------------------------
    82 // -----------------------------------------------------------------------------
    82 // CScreensaverEngine::SharedDataInterface
    83 // CScreensaverEngine::SharedDataInterface
   151             iAknUiServer.ConnectAndSendAppsKeySuppress(ETrue);
   152             iAknUiServer.ConnectAndSendAppsKeySuppress(ETrue);
   152             iScreenSaverIsOn = ETrue;
   153             iScreenSaverIsOn = ETrue;
   153 
   154 
   154             // Report whether started from Idle BEFORE bringing to foreground
   155             // Report whether started from Idle BEFORE bringing to foreground
   155             iSharedDataI->SetSSStartedFromIdleStatus();
   156             iSharedDataI->SetSSStartedFromIdleStatus();
       
   157             
       
   158             iSharedDataI->SetSSForcedLightsOn(1);
   156 
   159 
   157             ScreensaverUtility::BringToForeground();
   160             ScreensaverUtility::BringToForeground();
   158 
   161 
   159             SCRLOGGER_WRITE("Model: SS is displaying (BringToForeground)");
   162             SCRLOGGER_WRITE("Model: SS is displaying (BringToForeground)");
   160 
   163 
   192         // Indicate we've stopped
   195         // Indicate we've stopped
   193         iSharedDataI->SetScreensaverStatus( EFalse );
   196         iSharedDataI->SetScreensaverStatus( EFalse );
   194 
   197 
   195         iScreenSaverIsOn = EFalse ;
   198         iScreenSaverIsOn = EFalse ;
   196 
   199 
       
   200         KillTimer( iExpiryTimer );
       
   201 
   197         View()->HideDisplayObject();
   202         View()->HideDisplayObject();
   198         }
   203         }
   199 
   204 
   200 
   205 
   201     if( iScreenSaverIsPreviewing )
   206     if( iScreenSaverIsPreviewing )
   257         {
   262         {
   258         View()->SetDisplayObject( EDisplayPlugin );
   263         View()->SetDisplayObject( EDisplayPlugin );
   259         }
   264         }
   260 
   265 
   261     UpdateIndicatorAttributes();
   266     UpdateIndicatorAttributes();
       
   267 
       
   268     SetExpiryTimerTimeout( KDefaultScreenSaverTimeout );
   262 
   269 
   263     View()->ShowDisplayObject();
   270     View()->ShowDisplayObject();
   264 
   271 
   265     iSharedDataI->SetScreensaverStatus( ETrue );
   272     iSharedDataI->SetScreensaverStatus( ETrue );
   266     }
   273     }
   457 //        }
   464 //        }
   458     }
   465     }
   459 
   466 
   460 
   467 
   461 // -----------------------------------------------------------------------------
   468 // -----------------------------------------------------------------------------
       
   469 // Start screensaver expiry timer. When the timer expires the screensaver will
       
   470 // be stopped and hided.
       
   471 // -----------------------------------------------------------------------------
       
   472 //
       
   473 void CScreensaverEngine::SetExpiryTimerTimeout( TInt aTimeout )
       
   474     {
       
   475     SCRLOGGER_WRITEF( _L( "SCR:CScreensaverEngine::SetExpiryTimerTimeout(%d) start" ), aTimeout );
       
   476     KillTimer( iExpiryTimer );
       
   477 
       
   478     if ( 0 < aTimeout )
       
   479         {
       
   480         TRAP_IGNORE(
       
   481             iExpiryTimer = CPeriodic::NewL( CActive::EPriorityStandard );
       
   482             iExpiryTimer->Start( aTimeout , aTimeout ,
       
   483                 TCallBack( HandleExpiryTimerExpiry, this ) );
       
   484             )
       
   485         }
       
   486     }
       
   487 
       
   488 
       
   489 // -----------------------------------------------------------------------------
   462 // CScreensaverEngine::CScreensaverEngine
   490 // CScreensaverEngine::CScreensaverEngine
   463 // -----------------------------------------------------------------------------
   491 // -----------------------------------------------------------------------------
   464 //
   492 //
   465 CScreensaverEngine::CScreensaverEngine()
   493 CScreensaverEngine::CScreensaverEngine()
   466     {
   494     {
   683 TInt CScreensaverEngine::HandleInactiveEventL( TAny* aPtr )
   711 TInt CScreensaverEngine::HandleInactiveEventL( TAny* aPtr )
   684     {
   712     {
   685     SCRLOGGER_WRITE("HandleInactiveEventL(), starting screensaver");
   713     SCRLOGGER_WRITE("HandleInactiveEventL(), starting screensaver");
   686 
   714 
   687     CScreensaverEngine* _this= STATIC_CAST(CScreensaverEngine*, aPtr);
   715     CScreensaverEngine* _this= STATIC_CAST(CScreensaverEngine*, aPtr);
   688 /*    
   716     
   689     // Double-start is OK, it will be checked in StartScreenSaver()
   717     // Double-start is OK, it will be checked in StartScreenSaver()
       
   718     // This will be trigged by keylock activation after keyguard
       
   719     // timeout, or if keylock is disabled
   690     _this->StartScreenSaver( );
   720     _this->StartScreenSaver( );
   691 */
   721 
   692     return KErrNone;
   722     return KErrNone;
   693     }
   723     }
   694 
   724 
   695 // -----------------------------------------------------------------------------
   725 // -----------------------------------------------------------------------------
   696 // CScreensaverEngine::HandleActiveEventShortL
   726 // CScreensaverEngine::HandleActiveEventShortL
   710 TInt CScreensaverEngine::HandleInactiveEventShortL( TAny* aPtr )
   740 TInt CScreensaverEngine::HandleInactiveEventShortL( TAny* aPtr )
   711     {
   741     {
   712     SCRLOGGER_WRITE("HandleInactiveEventShortL()");
   742     SCRLOGGER_WRITE("HandleInactiveEventShortL()");
   713     // Start, if keys are locked and short timeout in use
   743     // Start, if keys are locked and short timeout in use
   714     CScreensaverEngine* _this= STATIC_CAST(CScreensaverEngine*, aPtr);
   744     CScreensaverEngine* _this= STATIC_CAST(CScreensaverEngine*, aPtr);
       
   745     // Restore inactivity timeout if it was reset at keylock activation
       
   746     _this->iActivityManagerScreensaverShort->SetInactivityTimeout(KTimeoutShort);
   715     
   747     
   716     if ( _this->iSharedDataI->IsKeyguardOn() )
   748     if ( _this->iSharedDataI->IsKeyguardOn() )
   717         {
   749         {
   718         SCRLOGGER_WRITE("HandleInactiveEventShortL() starting saver");
   750         SCRLOGGER_WRITE("HandleInactiveEventShortL() starting saver");
   719         _this->StartScreenSaver( );
   751         _this->StartScreenSaver( );
   737     control->View()->ShowDisplayObject();
   769     control->View()->ShowDisplayObject();
   738 
   770 
   739     return KErrNone;
   771     return KErrNone;
   740     }
   772     }
   741 
   773 
       
   774 // ---------------------------------------------------------------------------
       
   775 // CScreensaverEngine::HandleKeyguardStateChanged
       
   776 // ---------------------------------------------------------------------------
       
   777 //
       
   778 void CScreensaverEngine::HandleKeyguardStateChanged( TBool aEnabled )
       
   779     {
       
   780     if ( aEnabled )
       
   781         {
       
   782         // Keyguard switch generates an activity event still, let the inactivity
       
   783         // handler start the screensaver after one second
       
   784         iActivityManagerScreensaverShort->SetInactivityTimeout(1);
       
   785         }
       
   786     else
       
   787         {
       
   788         StopScreenSaver();
       
   789         }
       
   790     }
       
   791 
   742 // -----------------------------------------------------------------------------
   792 // -----------------------------------------------------------------------------
   743 // CScreensaverEngine::View
   793 // CScreensaverEngine::View
   744 // -----------------------------------------------------------------------------
   794 // -----------------------------------------------------------------------------
   745 //
   795 //
   746 CScreensaverView* CScreensaverEngine::View() const
   796 CScreensaverView* CScreensaverEngine::View() const
   763 //
   813 //
   764 TInt CScreensaverEngine::DisplayFlag( )
   814 TInt CScreensaverEngine::DisplayFlag( )
   765     {
   815     {
   766     return iSharedDataI->IsScreenSaverAllowed();
   816     return iSharedDataI->IsScreenSaverAllowed();
   767     }
   817     }
       
   818 
       
   819 
       
   820 // -----------------------------------------------------------------------------
       
   821 // Handles expire timer timeout
       
   822 // -----------------------------------------------------------------------------
       
   823 //
       
   824 TInt CScreensaverEngine::HandleExpiryTimerExpiry( TAny* aPtr )
       
   825     {
       
   826     SCRLOGGER_WRITEF( _L( "SCR:CScreensaverEngine::HandleExpiryTimerExpiry(%d) start" ), aPtr );
       
   827     CScreensaverEngine *control = STATIC_CAST( CScreensaverEngine*, aPtr );
       
   828 
       
   829     if ( control )
       
   830         {
       
   831         control->KillTimer( control->iExpiryTimer );
       
   832         control->StopScreenSaver();
       
   833         control->iSharedDataI->SetSSForcedLightsOn( 0 );
       
   834         }
       
   835 
       
   836     return KErrNone;
       
   837     }
       
   838 
       
   839 
   768 // End of file.
   840 // End of file.