aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Screens/SleepTimerEdit.py
diff options
context:
space:
mode:
authoracid-burn <acidburn@opendreambox.org>2009-10-12 17:23:44 +0000
committeracid-burn <acidburn@opendreambox.org>2009-10-12 17:23:44 +0000
commita3bccc61a71fc657244ed46d3cfb3ef84b87e715 (patch)
treea22d2e16fb531cda9bde96213e342c82a0e6c34c /lib/python/Screens/SleepTimerEdit.py
parentcc35894a8a1a0a3291dd60f48da60f347c5a7100 (diff)
parent5f8883ca9bab4cd9c3996d818dfb3caee11ecab7 (diff)
downloadenigma2-a3bccc61a71fc657244ed46d3cfb3ef84b87e715.tar.gz
enigma2-a3bccc61a71fc657244ed46d3cfb3ef84b87e715.zip
Merge branch 'master' of /git/enigma2
Diffstat (limited to 'lib/python/Screens/SleepTimerEdit.py')
-rw-r--r--lib/python/Screens/SleepTimerEdit.py45
1 files changed, 38 insertions, 7 deletions
diff --git a/lib/python/Screens/SleepTimerEdit.py b/lib/python/Screens/SleepTimerEdit.py
index 2416dd03..1a4b6561 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)
@@ -37,7 +39,6 @@ class SleepTimerEdit(Screen):
self.status = True
self.updateColors()
-
self["pretext"] = Label(_("Shutdown Dreambox after"))
self["aftertext"] = Label(_("minutes"))
@@ -65,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):
@@ -83,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()
@@ -94,6 +96,7 @@ class SleepTimerEdit(Screen):
if self.status:
time = int(self["input"].getText())
config.SleepTimer.defaulttime.setValue(time)
+ config.SleepTimer.defaulttime.save()
self.session.nav.SleepTimer.setSleepTime(time)
self.session.openWithCallback(self.close, MessageBox, _("The sleep timer has been activated."), MessageBox.TYPE_INFO)
else:
@@ -111,16 +114,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()
@@ -135,3 +138,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))