src/screensaverengine.cpp
branchRCL_3
changeset 15 2e08ef6b6eda
parent 14 d8eca2b0590d
child 16 1f307dce3b5a
equal deleted inserted replaced
14:d8eca2b0590d 15:2e08ef6b6eda
    35 
    35 
    36 // Minimum plugin suspension time
    36 // Minimum plugin suspension time
    37 const TInt KMinPluginSuspensionTime = 500000; // 0.5 sec
    37 const TInt KMinPluginSuspensionTime = 500000; // 0.5 sec
    38 
    38 
    39 // Inactivity timeout in seconds when keys locked
    39 // Inactivity timeout in seconds when keys locked
    40 const TInt KTimeoutShort = 5;
    40 const TInt KTimeoutShort = 5000000;
    41 
    41 
    42 const TInt KNoPreview = 0;
    42 const TInt KNoPreview = 0;
    43 
    43 
    44 const TInt KPreviewTimeout = 10000000; // 10 sec
    44 const TInt KPreviewTimeout = 10000000; // 10 sec
    45 
    45 
    68 // -----------------------------------------------------------------------------
    68 // -----------------------------------------------------------------------------
    69 //
    69 //
    70 CScreensaverEngine::~CScreensaverEngine( )
    70 CScreensaverEngine::~CScreensaverEngine( )
    71     {
    71     {
    72     StopActivityMonitoring( iActivityManagerScreensaver );
    72     StopActivityMonitoring( iActivityManagerScreensaver );
    73     StopActivityMonitoring( iActivityManagerScreensaverShort );
       
    74     DisableSharedDataAndMonitor();
    73     DisableSharedDataAndMonitor();
    75     delete iIndicatorArray;
    74     delete iIndicatorArray;
    76     KillTimer( iPreviewTimer );
    75     KillTimer( iPreviewTimer );
    77     KillTimer( iExpiryTimer );
    76     KillTimer( iExpiryTimer );
    78     iAknUiServer.Close();
    77     iAknUiServer.Close();
   184 // -----------------------------------------------------------------------------
   183 // -----------------------------------------------------------------------------
   185 //
   184 //
   186 void CScreensaverEngine::StopScreenSaver()
   185 void CScreensaverEngine::StopScreenSaver()
   187     {
   186     {
   188     SCRLOGGER_WRITE("Stopping Screensaver");
   187     SCRLOGGER_WRITE("Stopping Screensaver");
       
   188 
       
   189     if ( !iScreenSaverIsPreviewing && iSharedDataI->IsKeyguardOn() )
       
   190         {
       
   191         StartPauseTimer();
       
   192         }
   189 
   193 
   190     if( iScreenSaverIsOn )
   194     if( iScreenSaverIsOn )
   191         {
   195         {
   192         // disconnect in StopScreenSaver, It makes sure other applications could  
   196         // disconnect in StopScreenSaver, It makes sure other applications could  
   193         // receive application key event when screensaver is disactivated.
   197         // receive application key event when screensaver is disactivated.
   561     iActivityManagerScreensaver
   565     iActivityManagerScreensaver
   562         = CUserActivityManager::NewL( CActive::EPriorityStandard );
   566         = CUserActivityManager::NewL( CActive::EPriorityStandard );
   563         iActivityManagerScreensaver->Start( Timeout(), 
   567         iActivityManagerScreensaver->Start( Timeout(), 
   564             TCallBack( HandleInactiveEventL,this ),
   568             TCallBack( HandleInactiveEventL,this ),
   565             TCallBack( HandleActiveEventL, this ) );
   569             TCallBack( HandleActiveEventL, this ) );
   566 
       
   567     // Start monitoring activity for screensaver, short timeout
       
   568     iActivityManagerScreensaverShort
       
   569         = CUserActivityManager::NewL( CActive::EPriorityUserInput );
       
   570     
       
   571         iActivityManagerScreensaverShort->Start( KTimeoutShort, 
       
   572             TCallBack( HandleInactiveEventShortL, this ), 
       
   573             TCallBack( HandleActiveEventShortL, this ) );
       
   574     }
   570     }
   575 
   571 
   576 // -----------------------------------------------------------------------------
   572 // -----------------------------------------------------------------------------
   577 // CScreensaverEngine::StopActivityMonitoring
   573 // CScreensaverEngine::StopActivityMonitoring
   578 // -----------------------------------------------------------------------------
   574 // -----------------------------------------------------------------------------
   661     
   657     
   662     SCRLOGGER_WRITEF(_L("SCR: iPreviewTimer->Start(%d, %d, HandlePreviewTimerTimeout)"),
   658     SCRLOGGER_WRITEF(_L("SCR: iPreviewTimer->Start(%d, %d, HandlePreviewTimerTimeout)"),
   663         KPreviewTimeout,KPreviewTimeout);
   659         KPreviewTimeout,KPreviewTimeout);
   664     }
   660     }
   665 
   661 
       
   662 // ----------------------------------------------------------------------------
       
   663 // CScreensaverEngine::StartPauseTimer
       
   664 // -----------------------------------------------------------------------------
       
   665 //
       
   666 void CScreensaverEngine::StartPauseTimer()
       
   667     {
       
   668     KillTimer( iPauseTimer );
       
   669     
       
   670     TRAP_IGNORE( iPauseTimer = CPeriodic::NewL( CActive::EPriorityHigh ) );
       
   671     
       
   672     if ( !iPauseTimer )
       
   673         {
       
   674         HandlePauseTimerExpiry( this );
       
   675         return;
       
   676         }
       
   677     
       
   678     iPauseTimer->Start( KTimeoutShort, KTimeoutShort, TCallBack(
       
   679         HandlePauseTimerExpiry, this ) );
       
   680     }
       
   681 
   666 // -----------------------------------------------------------------------------
   682 // -----------------------------------------------------------------------------
   667 // CScreensaverEngine::KillTimer
   683 // CScreensaverEngine::KillTimer
   668 // Stops and deletes a timer
   684 // Stops and deletes a timer
   669 // -----------------------------------------------------------------------------
   685 // -----------------------------------------------------------------------------
   670 //    
   686 //    
   688     SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverView::HandlePreviewTimerTimeout()"));
   704     SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverView::HandlePreviewTimerTimeout()"));
   689     
   705     
   690     Engine->KillTimer( Engine->iPreviewTimer );
   706     Engine->KillTimer( Engine->iPreviewTimer );
   691     Engine->StopScreenSaver();
   707     Engine->StopScreenSaver();
   692     
   708     
       
   709     return KErrNone;
       
   710     }
       
   711 
       
   712 // ---------------------------------------------------------------------------
       
   713 // CScreensaverEngine::HandlePauseTimerExpiry
       
   714 // ---------------------------------------------------------------------------
       
   715 //
       
   716 TInt CScreensaverEngine::HandlePauseTimerExpiry( TAny* aPtr )
       
   717     {
       
   718     CScreensaverEngine* _this= STATIC_CAST(CScreensaverEngine*, aPtr);
       
   719     _this->KillTimer( _this->iPauseTimer );
       
   720 
       
   721     if ( _this->iSharedDataI->IsKeyguardOn() )
       
   722         {
       
   723         SCRLOGGER_WRITE("HandleInactiveEventShortL() starting saver");
       
   724         _this->StartScreenSaver( );
       
   725         }
       
   726 
   693     return KErrNone;
   727     return KErrNone;
   694     }
   728     }
   695 
   729 
   696 // -----------------------------------------------------------------------------
   730 // -----------------------------------------------------------------------------
   697 // CScreensaverEngine::HandleActiveEventL
   731 // CScreensaverEngine::HandleActiveEventL
   722 
   756 
   723     return KErrNone;
   757     return KErrNone;
   724     }
   758     }
   725 
   759 
   726 // -----------------------------------------------------------------------------
   760 // -----------------------------------------------------------------------------
   727 // CScreensaverEngine::HandleActiveEventShortL
       
   728 // -----------------------------------------------------------------------------
       
   729 //
       
   730 TInt CScreensaverEngine::HandleActiveEventShortL( TAny* aPtr )
       
   731     {
       
   732     SCRLOGGER_WRITE("HandleActiveEventShortL()");
       
   733     return KErrNone;
       
   734     }
       
   735 
       
   736 // -----------------------------------------------------------------------------
       
   737 // CScreensaverEngine::HandleInactiveEventShortL
       
   738 // -----------------------------------------------------------------------------
       
   739 //
       
   740 TInt CScreensaverEngine::HandleInactiveEventShortL( TAny* aPtr )
       
   741     {
       
   742     SCRLOGGER_WRITE("HandleInactiveEventShortL()");
       
   743     // Start, if keys are locked and short timeout in use
       
   744     CScreensaverEngine* _this= STATIC_CAST(CScreensaverEngine*, aPtr);
       
   745     if ( _this->iSharedDataI->IsKeyguardOn() )
       
   746         {
       
   747         SCRLOGGER_WRITE("HandleInactiveEventShortL() starting saver");
       
   748         _this->StartScreenSaver( );
       
   749         }
       
   750 
       
   751     return KErrNone;
       
   752     }
       
   753 
       
   754 // -----------------------------------------------------------------------------
       
   755 // CScreensaverEngine::HandleSuspendTimerExpiry
   761 // CScreensaverEngine::HandleSuspendTimerExpiry
   756 // -----------------------------------------------------------------------------
   762 // -----------------------------------------------------------------------------
   757 //
   763 //
   758 TInt CScreensaverEngine::HandleSuspendTimerExpiry( TAny* aPtr )
   764 TInt CScreensaverEngine::HandleSuspendTimerExpiry( TAny* aPtr )
   759     {
   765     {
   764     
   770     
   765     control->View()->SetDisplayObject( EDisplayPlugin );
   771     control->View()->SetDisplayObject( EDisplayPlugin );
   766     control->View()->ShowDisplayObject();
   772     control->View()->ShowDisplayObject();
   767 
   773 
   768     return KErrNone;
   774     return KErrNone;
   769     }
       
   770 
       
   771 // ---------------------------------------------------------------------------
       
   772 // CScreensaverEngine::HandleKeyguardStateChanged
       
   773 // ---------------------------------------------------------------------------
       
   774 //
       
   775 void CScreensaverEngine::HandleKeyguardStateChanged( TBool aEnabled )
       
   776     {
       
   777     if ( aEnabled )
       
   778         {
       
   779         StartScreenSaver();
       
   780         }
       
   781     else
       
   782         {
       
   783         StopScreenSaver();
       
   784         }
       
   785     }
       
   786 
       
   787 // ---------------------------------------------------------------------------
       
   788 // 
       
   789 // ---------------------------------------------------------------------------
       
   790 //
       
   791 void CScreensaverEngine::HandleActivateSSChanged( TBool aStart )
       
   792     {
       
   793     if ( aStart )
       
   794         {
       
   795         StartScreenSaver();
       
   796         }
       
   797     else
       
   798         {
       
   799         StopScreenSaver();
       
   800         }
       
   801     }
   775     }
   802 
   776 
   803 // -----------------------------------------------------------------------------
   777 // -----------------------------------------------------------------------------
   804 // CScreensaverEngine::View
   778 // CScreensaverEngine::View
   805 // -----------------------------------------------------------------------------
   779 // -----------------------------------------------------------------------------