diff options
Diffstat (limited to 'lib/python')
| -rw-r--r-- | lib/python/Components/PluginComponent.py | 8 | ||||
| -rw-r--r-- | lib/python/Plugins/Plugin.py | 7 |
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__ |
