diff options
| author | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2005-12-21 04:41:36 +0000 |
|---|---|---|
| committer | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2005-12-21 04:41:36 +0000 |
| commit | ccb8d260ed5e51f6f65205be04744a9e8322aa6f (patch) | |
| tree | c8243a30d7b7627229186ca13a463952b92c1322 /lib/python/Components/PluginComponent.py | |
| parent | 8589eb49ec20d3503a476f398ec84d7ad0307d26 (diff) | |
| download | enigma2-ccb8d260ed5e51f6f65205be04744a9e8322aa6f.tar.gz enigma2-ccb8d260ed5e51f6f65205be04744a9e8322aa6f.zip | |
add plugins
to test it: uncomment the example.py in lib/python/Plugins/Makefile.am
plugins can be added at runtime
Diffstat (limited to 'lib/python/Components/PluginComponent.py')
| -rw-r--r-- | lib/python/Components/PluginComponent.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/python/Components/PluginComponent.py b/lib/python/Components/PluginComponent.py new file mode 100644 index 00000000..26382063 --- /dev/null +++ b/lib/python/Components/PluginComponent.py @@ -0,0 +1,33 @@ +import os + +from Tools.Directories import * +#import Plugins + +class PluginComponent: + def __init__(self): + self.plugins = [] + self.setPluginPrefix("Plugins.") + + def setPluginPrefix(self, prefix): + self.prefix = prefix + + def getPluginList(self): + list = [] + dir = os.listdir("/usr/lib/enigma2/python/Plugins/") + for x in dir: + if x[-3:] == ".py" and x[:-3] != "__init__": + #try: + print "trying to import " + self.prefix + x[:-3] + exec "import " + self.prefix + x[:-3] + picturepath = eval(self.prefix + x[:-3]).getPicturePath() + pluginname = eval(self.prefix + x[:-3]).getPluginName() + list.append((picturepath, pluginname , x[:-3])) + #except: + #print "Failed to open module - wrong plugin!" + return list + + def runPlugin(self, plugin, session): + exec "import " + self.prefix + plugin[2] + eval(self.prefix + plugin[2]).main(session) + +plugins = PluginComponent() |
