X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/32f2aee04a0b7dbdbe561b232f90ead5edf83a7e..db46f952f934ea8532527cbbdf21ef283cacda20:/lib/python/Plugins/Extensions/TuxboxPlugins/pluginrunner.py 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 = """ + + """ + 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()