598 // release gpu resources... |
599 // release gpu resources... |
599 iTimer->Cancel(); |
600 iTimer->Cancel(); |
600 iTimerRunning = EFalse; |
601 iTimerRunning = EFalse; |
601 iPlugin->gpuresourcesavailable(0); |
602 iPlugin->gpuresourcesavailable(0); |
602 ReleaseWindowSurface(EFalse); |
603 ReleaseWindowSurface(EFalse); |
|
604 StopSensors(); |
603 } |
605 } |
604 |
606 |
605 void CBgAnimHost::CompositionTargetVisible() |
607 void CBgAnimHost::CompositionTargetVisible() |
606 { |
608 { |
607 if (iSurfaceInitialized) |
609 if (iSurfaceInitialized || iHiddenDueSC) |
608 { |
610 { |
609 // don't bother if we are already in |
611 // don't bother if we are already in |
610 // a correct state.. |
612 // a correct state, or if we are hidden by |
|
613 // the screensaver |
611 return; |
614 return; |
612 } |
615 } |
613 |
616 |
614 if (!iSurfaceInitialized && iCompSource) |
617 if (!iSurfaceInitialized && iCompSource) |
615 { |
618 { |
624 { |
627 { |
625 iPlugin->gpuresourcesavailable(1); |
628 iPlugin->gpuresourcesavailable(1); |
626 iTimer->CallBack(1); |
629 iTimer->CallBack(1); |
627 iTimerRunning = ETrue; |
630 iTimerRunning = ETrue; |
628 } |
631 } |
|
632 TRAP_IGNORE(StartSensorsL()); |
629 } |
633 } |
630 |
634 |
631 void CBgAnimHost::HandleScreenSaverEvent() |
635 void CBgAnimHost::HandleScreenSaverEvent() |
632 { |
636 { |
633 #if !defined(SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS) |
637 #if !defined(SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS) |
634 TInt scStatus = iSCPropertyListener->GetScreenSaverStatus(); |
638 TInt scStatus = iSCPropertyListener->GetScreenSaverStatus(); |
635 if (scStatus) |
639 if (scStatus) |
636 { |
640 { |
637 // screensaver is ON |
641 // screensaver is ON |
638 if (iTimerRunning) |
642 iHiddenDueSC = ETrue; |
639 { |
643 CompositionTargetHidden(); |
640 iTimer->Cancel(); |
|
641 iTimerRunning = EFalse; |
|
642 } |
|
643 } |
644 } |
644 else |
645 else |
645 { |
646 { |
646 // screensaver is OFF |
647 // screensaver is OFF |
647 if (!iTimerRunning && iSurfaceInitialized) |
648 iHiddenDueSC = EFalse; |
648 { |
649 CompositionTargetVisible(); |
649 iTimerRunning = ETrue; |
|
650 iTimer->CallBack(1); |
|
651 } |
|
652 } |
650 } |
653 #endif |
651 #endif |
654 } |
652 } |
655 |
653 |
|
654 void CBgAnimHost::StartSensorsL() |
|
655 { |
|
656 for (TInt count = 0; count < iSensorListeners.Count(); count++) |
|
657 { |
|
658 iSensorListeners[count]->StartListeningL(); |
|
659 } |
|
660 } |
|
661 |
|
662 void CBgAnimHost::StopSensors() |
|
663 { |
|
664 for (TInt count = 0; count < iSensorListeners.Count(); count++) |
|
665 { |
|
666 iSensorListeners[count]->StopListening(); |
|
667 } |
|
668 } |
656 TInt CBgAnimHost::ScreenSaverCallback(TAny* aPtr) |
669 TInt CBgAnimHost::ScreenSaverCallback(TAny* aPtr) |
657 { |
670 { |
658 CBgAnimHost* me = (CBgAnimHost*) aPtr; |
671 CBgAnimHost* me = (CBgAnimHost*) aPtr; |
659 me->HandleScreenSaverEvent(); |
672 me->HandleScreenSaverEvent(); |
660 return EFalse; |
673 return EFalse; |