wake up from deep standby five minute before the timer starts. if we don't have 5...
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Mon, 27 Feb 2006 02:46:44 +0000 (02:46 +0000)
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Mon, 27 Feb 2006 02:46:44 +0000 (02:46 +0000)
up in 30 seconds.

RecordTimer.py
lib/python/Tools/DreamboxHardware.py
mytest.py
timer.py

index cf4160c..08ea859 100644 (file)
@@ -221,7 +221,7 @@ class RecordTimer(timer.Timer):
                        self.loadTimer()
                except IOError:
                        print "unable to load timers from file!"
                        self.loadTimer()
                except IOError:
                        print "unable to load timers from file!"
-
+                       
        def isRecording(self):
                isRunning = False
                for timer in self.timer_list:
        def isRecording(self):
                isRunning = False
                for timer in self.timer_list:
index 4f873e9..5eaaeec 100644 (file)
@@ -5,3 +5,13 @@ def getFPVersion():
                return ioctl(fp.fileno(),0)
        except IOError:
                return None
                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    
index 9dba16e..329bba2 100644 (file)
--- a/mytest.py
+++ b/mytest.py
@@ -302,6 +302,15 @@ def runScreenTest():
        
        configfile.save()
        
        
        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
        session.nav.shutdown()
        
        return 0
@@ -340,6 +349,7 @@ import Components.NimManager
 # first, setup a screen
 try:
        runScreenTest()
 # first, setup a screen
 try:
        runScreenTest()
+
        plugins.shutdown()
 except:
        print 'EXCEPTION IN PYTHON STARTUP CODE:'
        plugins.shutdown()
 except:
        print 'EXCEPTION IN PYTHON STARTUP CODE:'
index 09f64e3..a98481c 100644 (file)
--- a/timer.py
+++ b/timer.py
@@ -113,6 +113,11 @@ class Timer:
                for f in self.on_state_change:
                        f(entry)
                        
                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]
        
        def cleanup(self):
                self.processed_timers = [entry for entry in self.processed_timers if entry.disabled]