disable preferred_modes stuff for now, implement hotplug (but disable it)
[enigma2.git] / lib / python / Plugins / Plugin.py
index b3886723e90e7c530a65b49113dc2cddaac91fa7..583c9ad8486687f874587ff00c6e66dfc15eb86f 100644 (file)
@@ -1,5 +1,5 @@
-from enigma import loadPNG
 from Components.config import ConfigSubsection, config
+from Tools.LoadPixmap import LoadPixmap
 
 config.plugins = ConfigSubsection()
 
@@ -22,7 +22,7 @@ class PluginDescriptor:
        WHERE_PLUGINMENU  = 2
        # argument: session, serviceref (currently selected)
        WHERE_MOVIELIST = 3
-       # argument: menuid. Fnc must return list with menuitems (3-tuple of name, fnc to call, entryid or None)
+       # argument: menuid. Fnc must return list with menuitems (4-tuple of name, fnc to call, entryid or None, weight or None)
        WHERE_MENU = 4
        
        # reason (0: start, 1: end)
@@ -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,13 +59,18 @@ class PluginDescriptor:
                else:
                        self.icon = icon
 
+               self.wakeupfnc = wakeupfnc
+
                self.__call__ = fnc
 
        def updateIcon(self, path):
                if type(self.iconstr) is str:
-                       self.icon = loadPNG(path + "/" + self.iconstr)
+                       self.icon = LoadPixmap(path + "/" + self.iconstr)
                else:
                        self.icon = None
 
+       def getWakeupTime(self):
+               return self.wakeupfnc and self.wakeupfnc() or -1
+
        def __eq__(self, other):
                return self.__call__ == other.__call__