From: Stefan Pluecken Date: Mon, 27 Feb 2006 02:46:44 +0000 (+0000) Subject: wake up from deep standby five minute before the timer starts. if we don't have 5... X-Git-Tag: 2.6.0~3976 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/be296b411e8fc29f652799bf752d80db374d6672 wake up from deep standby five minute before the timer starts. if we don't have 5 minutes till timer start, we wake the box up in 30 seconds. --- diff --git a/RecordTimer.py b/RecordTimer.py index cf4160cc..08ea8590 100644 --- a/RecordTimer.py +++ b/RecordTimer.py @@ -221,7 +221,7 @@ class RecordTimer(timer.Timer): self.loadTimer() except IOError: print "unable to load timers from file!" - + def isRecording(self): isRunning = False for timer in self.timer_list: diff --git a/lib/python/Tools/DreamboxHardware.py b/lib/python/Tools/DreamboxHardware.py index 4f873e9e..5eaaeeca 100644 --- a/lib/python/Tools/DreamboxHardware.py +++ b/lib/python/Tools/DreamboxHardware.py @@ -5,3 +5,13 @@ def getFPVersion(): return ioctl(fp.fileno(),0) except IOError: return None + +def setFPWakeuptime(wutime): + from fcntl import ioctl + from struct import pack + + try: + fp = open("/dev/dbox/fp0") + ioctl(fp.fileno(), 6, pack('L', wutime)) # set wake up + except IOError: + pass diff --git a/mytest.py b/mytest.py index 9dba16ea..329bba26 100644 --- a/mytest.py +++ b/mytest.py @@ -302,6 +302,15 @@ def runScreenTest(): configfile.save() + from Tools.DreamboxHardware import setFPWakeuptime + from time import time + nextRecordingTime = session.nav.RecordTimer.getNextRecordingTime() + if nextRecordingTime != -1: + if (nextRecordingTime < 330): # no time to switch box back on + setFPWakeuptime(time() + 30) # so switch back on in 30 seconds + else: + setFPWakeuptime(nextRecordingTime - (300)) + session.nav.shutdown() return 0 @@ -340,6 +349,7 @@ import Components.NimManager # first, setup a screen try: runScreenTest() + plugins.shutdown() except: print 'EXCEPTION IN PYTHON STARTUP CODE:' diff --git a/timer.py b/timer.py index 09f64e3f..a98481c0 100644 --- a/timer.py +++ b/timer.py @@ -113,6 +113,11 @@ class Timer: for f in self.on_state_change: f(entry) + def getNextRecordingTime(self): + if len(self.timer_list) > 0: + return self.timer_list[0].begin + return -1 + def cleanup(self): self.processed_timers = [entry for entry in self.processed_timers if entry.disabled]