X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Fpython%2FScreens%2FSleepTimerEdit.py;h=ff061d8800fe9e9f6d666594e52ab7141277aa0b;hb=bbb82688540582d2049b584e5263cbc0423fb551;hp=6e1991b71ad1df4e8084589046dedea08beab181;hpb=2bedebe238c82f52da05a3d721384d0e14ec0ed4;p=vuplus_dvbapp diff --git a/lib/python/Screens/SleepTimerEdit.py b/lib/python/Screens/SleepTimerEdit.py index 6e1991b..ff061d8 100644 --- a/lib/python/Screens/SleepTimerEdit.py +++ b/lib/python/Screens/SleepTimerEdit.py @@ -33,31 +33,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 +66,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): @@ -109,7 +85,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 +96,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 +139,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))