X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FScreens%2FSleepTimerEdit.py;h=e5e7af4e3e522fc2102c8fa250394011c069390b;hp=6e1991b71ad1df4e8084589046dedea08beab181;hb=80a99b08bd6e0932a420e805d928dc5ae5b80f61;hpb=2bedebe238c82f52da05a3d721384d0e14ec0ed4 diff --git a/lib/python/Screens/SleepTimerEdit.py b/lib/python/Screens/SleepTimerEdit.py index 6e1991b..e5e7af4 100644 --- a/lib/python/Screens/SleepTimerEdit.py +++ b/lib/python/Screens/SleepTimerEdit.py @@ -5,6 +5,7 @@ from Components.Input import Input from Components.Label import Label from Components.Pixmap import Pixmap from Components.config import config, ConfigInteger +from Components.SystemInfo import SystemInfo from enigma import eEPGCache from SleepTimer import SleepTimer from time import time @@ -33,31 +34,6 @@ class SleepTimerEdit(Screen): if self.is_active: self.time = self.session.nav.SleepTimer.getCurrentSleepTime() else: - remaining = None - ref = self.session.nav.getCurrentlyPlayingServiceReference() - if ref: - path = ref.getPath() - if path: # Movie - service = self.session.nav.getCurrentService() - seek = service and service.seek() - if seek: - length = seek.getLength() - position = seek.getPlayPosition() - if length and position: - remaining = length[1] - position[1] - if remaining > 0: - remaining = remaining / 90000 - else: # DVB - epg = eEPGCache.getInstance() - event = epg.lookupEventTime(ref, -1, 0) - if event: - now = int(time()) - start = event.getBeginTime() - duration = event.getDuration() - end = start + duration - remaining = end - now - if remaining: - config.SleepTimer.defaulttime.value = (remaining / 60) + 2 self.time = config.SleepTimer.defaulttime.value self["input"] = Input(text = str(self.time), maxSize = False, type = Input.NUMBER) @@ -91,7 +67,8 @@ class SleepTimerEdit(Screen): "deleteBackward": self.deleteBackward, "disableTimer": self.disableTimer, "toggleAction": self.toggleAction, - "toggleAsk": self.toggleAsk + "toggleAsk": self.toggleAsk, + "useServiceTime": self.useServiceTime }, -1) def updateColors(self): @@ -101,7 +78,11 @@ class SleepTimerEdit(Screen): self["red_text"].setText(_("Action:") + " " + _("Disable timer")) if config.SleepTimer.action.value == "shutdown": - self["green_text"].setText(_("Sleep timer action:") + " " + _("Deep Standby")) + if SystemInfo["DeepstandbySupport"]: + shutdownString = _("Deep Standby") + else: + shutdownString = _("Shutdown") + self["green_text"].setText(_("Sleep timer action:") + " " + shutdownString) elif config.SleepTimer.action.value == "standby": self["green_text"].setText(_("Sleep timer action:") + " " + _("Standby")) @@ -109,7 +90,7 @@ class SleepTimerEdit(Screen): self["yellow_text"].setText(_("Ask before shutdown:") + " " + _("yes")) else: self["yellow_text"].setText(_("Ask before shutdown:") + " " + _("no")) - self["blue_text"].setText(_("Settings")) + self["blue_text"].setText(_("Use time of currently running service")) def cancel(self): config.SleepTimer.ask.cancel() @@ -120,6 +101,8 @@ class SleepTimerEdit(Screen): if self.status: time = int(self["input"].getText()) config.SleepTimer.defaulttime.setValue(time) + config.SleepTimer.defaulttime.save() + config.SleepTimer.action.save() self.session.nav.SleepTimer.setSleepTime(time) self.session.openWithCallback(self.close, MessageBox, _("The sleep timer has been activated."), MessageBox.TYPE_INFO) else: @@ -161,3 +144,31 @@ class SleepTimerEdit(Screen): def toggleAsk(self): config.SleepTimer.ask.value = not config.SleepTimer.ask.value self.updateColors() + + def useServiceTime(self): + remaining = None + ref = self.session.nav.getCurrentlyPlayingServiceReference() + if ref: + path = ref.getPath() + if path: # Movie + service = self.session.nav.getCurrentService() + seek = service and service.seek() + if seek: + length = seek.getLength() + position = seek.getPlayPosition() + if length and position: + remaining = length[1] - position[1] + if remaining > 0: + remaining = remaining / 90000 + else: # DVB + epg = eEPGCache.getInstance() + event = epg.lookupEventTime(ref, -1, 0) + if event: + now = int(time()) + start = event.getBeginTime() + duration = event.getDuration() + end = start + duration + remaining = end - now + if remaining: + config.SleepTimer.defaulttime.value = (remaining / 60) + 2 + self["input"].setText(str((remaining / 60) + 2))