aboutsummaryrefslogtreecommitdiff
path: root/lib/python
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python')
-rw-r--r--lib/python/Components/PluginComponent.py8
-rw-r--r--lib/python/Plugins/Plugin.py7
2 files changed, 14 insertions, 1 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__