From 35c3628d3f1697314dfc4455a2935f641090976f Mon Sep 17 00:00:00 2001 From: reichi Date: Wed, 24 Jan 2018 12:21:26 +0100 Subject: [PATCH] screensaver: add proper standby handling --- screensaver/src/plugin.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/screensaver/src/plugin.py b/screensaver/src/plugin.py index a2add7c9..b4e76dbe 100644 --- a/screensaver/src/plugin.py +++ b/screensaver/src/plugin.py @@ -16,6 +16,17 @@ class ScreenSaverHandler(object): self.session.screensaver = self self.session.nav.event.append(self._onEvent) self._enabled = True + config.misc.standbyCounter.addNotifier(self._onStandby, initial_call=False) + + def _onStandby(self, *args): + if not self._enabled: + return + self.disable() + from Screens.Standby import inStandby + inStandby.onClose.append(self.enable) + + def _onStandbyLeft(self): + self.enable() def enable(self): self._enabled = True @@ -31,11 +42,10 @@ class ScreenSaverHandler(object): def _onEvent(self, evt): self._instantiateSaver() - + if not (self._enabled and config.plugins.screensaver.enabled.value): + self._screenSaver.enabled = False + return if evt == iPlayableService.evPlay: - if not (self._enabled and config.plugins.screensaver.enabled.value): - self._screenSaver.enabled = False - return Log.i("play event, checking for video") service = self.session.nav.getCurrentService() info = service and service.info() @@ -44,7 +54,7 @@ class ScreenSaverHandler(object): width = info.getInfo(iServiceInformation.sVideoWidth) Log.d(width) self._screenSaver.enabled = width <= 0 - elif evt == iPlayableService.evStopped: + elif evt in (iPlayableService.evStopped, iPlayableService.evPause): self._screenSaver.enabled = True screenSaverHandler = ScreenSaverHandler() -- 2.20.1