From: Felix Domke Date: Wed, 2 Jan 2008 17:22:25 +0000 (+0000) Subject: patch by Moritz Venn: allow plugins to provide a Wakeup-Time X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=commitdiff_plain;h=94dd79e0b8f895f54af7b7d3a76c65f341d5f117 patch by Moritz Venn: allow plugins to provide a Wakeup-Time --- diff --git a/lib/python/Components/PluginComponent.py b/lib/python/Components/PluginComponent.py index 590f428..818ea58 100644 --- a/lib/python/Components/PluginComponent.py +++ b/lib/python/Components/PluginComponent.py @@ -116,4 +116,12 @@ class PluginComponent: def resetWarnings(self): self.warnings = [ ] + def getNextWakeupTime(self): + wakeup = -1 + for p in self.pluginList: + current = p.getWakeupTime() + if current > -1 and wakeup < current: + wakeup = current + return int(wakeup) + plugins = PluginComponent() diff --git a/lib/python/Plugins/Plugin.py b/lib/python/Plugins/Plugin.py index f6f9b48..583c9ad 100644 --- a/lib/python/Plugins/Plugin.py +++ b/lib/python/Plugins/Plugin.py @@ -45,7 +45,7 @@ class PluginDescriptor: # or return a function which is called with session and the interface name for extended setup of this interface WHERE_NETWORKSETUP = 10 - def __init__(self, name = "Plugin", where = [ ], description = "", icon = None, fnc = None): + def __init__(self, name = "Plugin", where = [ ], description = "", icon = None, fnc = None, wakeupfnc = None): self.name = name if type(where) is list: self.where = where @@ -59,6 +59,8 @@ class PluginDescriptor: else: self.icon = icon + self.wakeupfnc = wakeupfnc + self.__call__ = fnc def updateIcon(self, path): @@ -67,5 +69,8 @@ class PluginDescriptor: else: self.icon = None + def getWakeupTime(self): + return self.wakeupfnc and self.wakeupfnc() or -1 + def __eq__(self, other): return self.__call__ == other.__call__ diff --git a/mytest.py b/mytest.py index 99aecb1..3bdbcf2 100644 --- a/mytest.py +++ b/mytest.py @@ -528,17 +528,18 @@ def runScreenTest(): from time import time from Tools.DreamboxHardware import setFPWakeuptime - #get next record timer start time - nextRecordingTime = session.nav.RecordTimer.getNextRecordingTime() - #get next zap timer start time - nextZapTime = session.nav.RecordTimer.getNextZapTime() #get currentTime nowTime = time() - if nextZapTime != -1 and nextRecordingTime != -1: - startTime = nextZapTime < nextRecordingTime and nextZapTime or nextRecordingTime - else: - startTime = nextZapTime != -1 and nextZapTime or nextRecordingTime - if startTime != -1: + wakeupList = [ + x for x in + [session.nav.RecordTimer.getNextRecordingTime(), + session.nav.RecordTimer.getNextZapTime(), + plugins.getNextWakeupTime()] + if x != -1 + ] + wakeupList.sort() + if len(wakeupList): + startTime = wakeupList.pop(0) if (startTime - nowTime < 330): # no time to switch box back on setFPWakeuptime(nowTime + 30) # so switch back on in 30 seconds else: