add fp upgrade plugin
authorFelix Domke <tmbinc@elitedvb.net>
Tue, 21 Feb 2006 22:07:04 +0000 (22:07 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Tue, 21 Feb 2006 22:07:04 +0000 (22:07 +0000)
lib/python/Plugins/fpupgrade/Makefile.am [new file with mode: 0644]
lib/python/Plugins/fpupgrade/__init__.py [new file with mode: 0644]
lib/python/Plugins/fpupgrade/plugin.py [new file with mode: 0644]

diff --git a/lib/python/Plugins/fpupgrade/Makefile.am b/lib/python/Plugins/fpupgrade/Makefile.am
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/lib/python/Plugins/fpupgrade/__init__.py b/lib/python/Plugins/fpupgrade/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/lib/python/Plugins/fpupgrade/plugin.py b/lib/python/Plugins/fpupgrade/plugin.py
new file mode 100644 (file)
index 0000000..f945fa7
--- /dev/null
@@ -0,0 +1,54 @@
+from Screens.Screen import Screen
+from Components.ActionMap import ActionMap
+from Components.Label import Label
+from Plugins.Plugin import PluginDescriptor
+
+def getUpgradeVersion():
+       import os
+       r = os.popen("fpupgrade --version").read()
+       if r[:16] != "FP update tool v":
+               return None
+       else:
+               return int(r[16:])
+
+class FPUpgrade(Screen):
+       skin = """
+               <screen position="150,200" size="450,200" title="FP upgrade required" >
+                       <widget name="text" position="0,0" size="550,50" font="Regular;20" />
+                       <widget name="oldversion_label" position="10,100" size="290,25" font="Regular;20" />
+                       <widget name="newversion_label" position="10,125" size="290,25" font="Regular;20" />
+                       <widget name="oldversion" position="300,100" size="50,25" font="Regular;20" />
+                       <widget name="newversion" position="300,125" size="50,25" font="Regular;20" />
+               </screen>"""
+       def __init__(self, session):
+               self.skin = FPUpgrade.skin
+               Screen.__init__(self, session)
+               
+               from Tools.DreamboxHardware import getFPVersion
+               version = str(getFPVersion() or "N/A")
+               newversion = str(getUpgradeVersion() or "N/A")
+
+               self["text"] = Label(_("Your frontprocessor firmware must be upgraded.\nPress OK to start upgrade."))
+               self["oldversion_label"] = Label(_("Current version:"))
+               self["newversion_label"] = Label(_("New version:"))
+
+               self["oldversion"] = Label(version)
+               self["newversion"] = Label(newversion)
+
+               self["actions"] = ActionMap(["OkCancelActions"],
+               {
+                       "ok": self.ok,
+                       "cancel": self.close,
+               })
+
+       def ok(self):
+               self.close(4)
+
+def Plugins():
+       from Tools.DreamboxHardware import getFPVersion
+       version = getFPVersion()
+       newversion = getUpgradeVersion() or 0
+       if version is not None and version <= newversion:
+               return PluginDescriptor(name="FP Upgrade", where = PluginDescriptor.WHERE_WIZARD, fnc=FPUpgrade)
+       else:
+               return [ ]