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 // ----------------------------------------------------------------------------- |