aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/python/Components/PluginComponent.py8
-rw-r--r--lib/python/Plugins/Plugin.py7
-rw-r--r--mytest.py19
3 files changed, 24 insertions, 10 deletions
diff --git a/lib/python/Components/PluginComponent.py b/lib/python/Components/PluginComponent.py
index 590f428d..818ea583 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 f6f9b481..583c9ad8 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 99aecb14..3bdbcf2d 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: