X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/71926516a90b5252f39271334760de686fb8c72f..b3658b04216ed3974047b4c4ec885ee0161d9267:/lib/python/Plugins/Plugin.py diff --git a/lib/python/Plugins/Plugin.py b/lib/python/Plugins/Plugin.py index d3635091..c792446a 100644 --- a/lib/python/Plugins/Plugin.py +++ b/lib/python/Plugins/Plugin.py @@ -1,3 +1,8 @@ +from enigma import loadPNG +from Components.config import ConfigSubsection, config + +config.plugins = ConfigSubsection() + class PluginDescriptor: """An object to describe a plugin.""" @@ -9,8 +14,10 @@ class PluginDescriptor: # servicereference # reason + # you have to ignore unknown kwargs! + # argument: session - WHERE_BLUEMENU = 0 + WHERE_EXTENSIONSMENU = 0 WHERE_MAINMENU = 1 WHERE_PLUGINMENU = 2 # argument: session, serviceref (currently selected) @@ -24,6 +31,16 @@ class PluginDescriptor: # start as wizard. In that case, fnc must be a screen class! WHERE_WIZARD = 6 + # like autostart, but for a session. currently, only session starts are + # delivered, and only on pre-loaded plugins + WHERE_SESSIONSTART = 7 + + # start as teletext plugin. arguments: session, serviceref + WHERE_TELETEXT = 8 + + # file-scanner, fnc must return a list of Scanners + WHERE_FILESCAN = 9 + def __init__(self, name = "Plugin", where = [ ], description = "", icon = None, fnc = None): self.name = name if type(where) is list: @@ -31,8 +48,20 @@ class PluginDescriptor: else: self.where = [ where ] self.description = description - if type(fnc) is str: - self.icon = loadPNG("..") + + if type(icon) is str or icon is None: + self.iconstr = icon + self.icon = None else: self.icon = icon + self.__call__ = fnc + + def updateIcon(self, path): + if type(self.iconstr) is str: + self.icon = loadPNG(path + "/" + self.iconstr) + else: + self.icon = None + + def __eq__(self, other): + return self.__call__ == other.__call__