From: ghost Date: Mon, 12 Oct 2009 08:42:05 +0000 (+0200) Subject: SleepTimerEdit.py: use left runtime of running event or playback as default sleeptime... X-Git-Tag: 2.6.0~17^2~4 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/2bedebe238c82f52da05a3d721384d0e14ec0ed4 SleepTimerEdit.py: use left runtime of running event or playback as default sleeptimer time (thx to ali abdul) --- diff --git a/lib/python/Screens/SleepTimerEdit.py b/lib/python/Screens/SleepTimerEdit.py index 2416dd03..6e1991b7 100644 --- a/lib/python/Screens/SleepTimerEdit.py +++ b/lib/python/Screens/SleepTimerEdit.py @@ -5,7 +5,9 @@ from Components.Input import Input from Components.Label import Label from Components.Pixmap import Pixmap from Components.config import config, ConfigInteger +from enigma import eEPGCache from SleepTimer import SleepTimer +from time import time config.SleepTimer.defaulttime = ConfigInteger(default = 30) @@ -31,13 +33,37 @@ 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) self.status = True self.updateColors() - self["pretext"] = Label(_("Shutdown Dreambox after")) self["aftertext"] = Label(_("minutes")) @@ -111,16 +137,16 @@ class SleepTimerEdit(Screen): def selectHome(self): self["input"].home() - + def selectEnd(self): self["input"].end() - + def deleteForward(self): self["input"].delete() - + def deleteBackward(self): self["input"].deleteBackward() - + def disableTimer(self): self.status = not self.status self.updateColors()