Merge branch 'master' of fraxinas@git.opendreambox.org:/git/enigma2
[enigma2.git] / lib / python / Plugins / Plugin.py
index f6f9b4818a2836966617c8efaa2f61b9760ebe46..6df4fce74a87b075819c93ff65d72404594e5fc2 100644 (file)
@@ -28,7 +28,7 @@ class PluginDescriptor:
        # reason (0: start, 1: end)
        WHERE_AUTOSTART = 5
        
-       # start as wizard. In that case, fnc must be a screen class!
+       # start as wizard. In that case, fnc must be tuple (priority,class) with class being a screen class!
        WHERE_WIZARD = 6
        
        # like autostart, but for a session. currently, only session starts are 
@@ -45,8 +45,13 @@ 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):
+       # show up this plugin (or a choicebox with all of them) for long INFO keypress
+       # or return a function which is called with session and the interface name for extended setup of this interface
+       WHERE_EVENTINFO = 11
+
+       def __init__(self, name = "Plugin", where = [ ], description = "", icon = None, fnc = None, wakeupfnc = None, internal = False):
                self.name = name
+               self.internal = internal
                if type(where) is list:
                        self.where = where
                else:
@@ -59,6 +64,8 @@ class PluginDescriptor:
                else:
                        self.icon = icon
 
+               self.wakeupfnc = wakeupfnc
+
                self.__call__ = fnc
 
        def updateIcon(self, path):
@@ -67,5 +74,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__