diff options
Diffstat (limited to 'lib/python/Plugins/Extensions/TuxboxPlugins/pluginrunner.py')
| -rw-r--r-- | lib/python/Plugins/Extensions/TuxboxPlugins/pluginrunner.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/python/Plugins/Extensions/TuxboxPlugins/pluginrunner.py b/lib/python/Plugins/Extensions/TuxboxPlugins/pluginrunner.py new file mode 100644 index 00000000..71f935cd --- /dev/null +++ b/lib/python/Plugins/Extensions/TuxboxPlugins/pluginrunner.py @@ -0,0 +1,37 @@ +from enigma import eDBoxLCD, eRCInput, fbClass, eConsoleAppContainer +from Screens.Screen import Screen +from Screens.MessageBox import MessageBox + +class PluginRunner(Screen): + skin = """ + <screen position="1,1" size="1,1" title="Plugin" > + </screen>""" + def __init__(self, session, pluginname, args = None): + self.skin = PluginRunner.skin + Screen.__init__(self, session) + self.container = eConsoleAppContainer() + self.container.appClosed.get().append(self.finishedExecution) + self.runPlugin(pluginname) + + def runPlugin(self, pluginname): + eDBoxLCD.getInstance().lock() + eRCInput.getInstance().lock() + fbClass.getInstance().lock() + print "executing:", ("pluginlauncher -x %s" % pluginname) + if self.container.execute("pluginlauncher -x %s" % pluginname): + self.finishedExecution(None) + + def finishedExecution(self, retval = 1): + print "PluginRunner retval:", retval + fbClass.getInstance().unlock() + eRCInput.getInstance().unlock() + eDBoxLCD.getInstance().unlock() + + if retval is None or retval != 1: + self.session.openWithCallback( + self.finishedExecution, + MessageBox, + _("Error executing plugin") % (param) + ) + else: + self.close() |
