1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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 [ ]
|