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()
# 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
else:
self.icon = icon
+ self.wakeupfnc = wakeupfnc
+
self.__call__ = fnc
def updateIcon(self, path):
else:
self.icon = None
+ def getWakeupTime(self):
+ return self.wakeupfnc and self.wakeupfnc() or -1
+
def __eq__(self, other):
return self.__call__ == other.__call__
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: