add WHERE_FILESCAN
[enigma2.git] / lib / python / Plugins / Plugin.py
index 183419c7fe90d357b83574963f3767ed78b73b6a..c792446a032606aad038c7c287b71ca0a9dc94d9 100644 (file)
@@ -1,4 +1,7 @@
 from enigma import loadPNG
 from enigma import loadPNG
+from Components.config import ConfigSubsection, config
+
+config.plugins = ConfigSubsection()
 
 class PluginDescriptor:
        """An object to describe a plugin."""
 
 class PluginDescriptor:
        """An object to describe a plugin."""
@@ -11,8 +14,10 @@ class PluginDescriptor:
        #   servicereference
        #   reason
        
        #   servicereference
        #   reason
        
+       # you have to ignore unknown kwargs!
+       
        # argument: session
        # argument: session
-       WHERE_BLUEMENU = 0
+       WHERE_EXTENSIONSMENU = 0
        WHERE_MAINMENU = 1
        WHERE_PLUGINMENU  = 2
        # argument: session, serviceref (currently selected)
        WHERE_MAINMENU = 1
        WHERE_PLUGINMENU  = 2
        # argument: session, serviceref (currently selected)
@@ -26,6 +31,16 @@ class PluginDescriptor:
        # start as wizard. In that case, fnc must be a screen class!
        WHERE_WIZARD = 6
        
        # 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:
        def __init__(self, name = "Plugin", where = [ ], description = "", icon = None, fnc = None):
                self.name = name
                if type(where) is list:
@@ -34,12 +49,19 @@ class PluginDescriptor:
                        self.where = [ where ]
                self.description = description
 
                        self.where = [ where ]
                self.description = description
 
-               self.iconstr = icon
+               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.__call__ = fnc
 
        def updateIcon(self, path):
                if type(self.iconstr) is str:
-                       self.icon = loadPNG(path + self.iconstr)
+                       self.icon = loadPNG(path + "/" + self.iconstr)
                else:
                else:
-                       self.icon = None
\ No newline at end of file
+                       self.icon = None
+
+       def __eq__(self, other):
+               return self.__call__ == other.__call__