1 from Screens.Screen import Screen
2 from Components.ConfigList import ConfigListScreen
3 from Components.config import config, ConfigSubsection, ConfigInteger, ConfigSelection, ConfigSlider, getConfigListEntry
4 from Components.Sources.StaticText import StaticText
6 modelist = {"off": _("Off"), "auto": _("Auto"), "sidebyside": _("Side by Side"), "topandbottom": _("Top and Bottom")}
7 setmodelist = {"mode1": _("Mode 1"), "mode2": _("Mode 2")}
9 config.plugins.UI3DSetup = ConfigSubsection()
10 config.plugins.UI3DSetup.mode = ConfigSelection(choices = modelist, default = "auto")
11 config.plugins.UI3DSetup.znorm = ConfigInteger(default = 0)
12 config.plugins.UI3DSetup.setmode = ConfigSelection(choices = setmodelist, default = "mode1")
14 class UI3DSetupScreen(Screen, ConfigListScreen):
16 <screen position="center,center" size="560,300" title="UI 3D setup" >
17 <ePixmap pixmap="skin_default/buttons/red.png" position="110,10" size="140,40" alphatest="on" />
18 <ePixmap pixmap="skin_default/buttons/green.png" position="310,10" size="140,40" alphatest="on" />
20 <widget source="key_red" render="Label" position="110,10" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" foregroundColor="#ffffff" transparent="1" />
21 <widget source="key_green" render="Label" position="310,10" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" foregroundColor="#ffffff" transparent="1" />
23 <widget name="config" zPosition="2" position="5,70" size="550,200" scrollbarMode="showOnDemand" transparent="1" />
27 def __init__(self, session):
28 self.skin = UI3DSetupScreen.skin
29 Screen.__init__(self, session)
31 from Components.ActionMap import ActionMap
32 from Components.Button import Button
33 self["key_red"] = StaticText(_("Cancel"))
34 self["key_green"] = StaticText(_("Save"))
36 self["actions"] = ActionMap(["SetupActions", "ColorActions"],
40 "cancel": self.keyCancel,
42 "red": self.keyCancel,
46 ConfigListScreen.__init__(self, self.list, session = self.session)
48 mode = config.plugins.UI3DSetup.mode.value
49 znorm = config.plugins.UI3DSetup.znorm.value
50 setmode = config.plugins.UI3DSetup.setmode.value
52 self.mode = ConfigSelection(choices = modelist, default = mode)
53 self.znorm = ConfigSlider(default = znorm + 50, increment = 1, limits = (0, 100))
54 self.setmode = ConfigSelection(choices = setmodelist, default = setmode)
55 self.list.append(getConfigListEntry(_("Setup mode"), self.setmode))
56 self.list.append(getConfigListEntry(_("3d mode"), self.mode))
57 self.list.append(getConfigListEntry(_("Depth"), self.znorm))
58 self["config"].list = self.list
59 self["config"].l.setList(self.list)
62 ConfigListScreen.keyLeft(self)
63 self.setPreviewSettings()
66 ConfigListScreen.keyRight(self)
67 self.setPreviewSettings()
69 def setPreviewSettings(self):
70 applySettings(self.mode.value, int(self.znorm.value) - 50, self.setmode.value)
73 config.plugins.UI3DSetup.mode.value = self.mode.value
74 config.plugins.UI3DSetup.znorm.value = int(self.znorm.value) - 50
75 config.plugins.UI3DSetup.setmode.value = self.setmode.value
76 config.plugins.UI3DSetup.save()
80 setConfiguredSettings()
83 def applySettings(mode, znorm, setmode):
85 if setmode == "mode1":
86 file = open("/proc/stb/fb/3dmode", "w")
89 file = open("/proc/stb/fb/znorm", "w")
90 file.write('%d' % znorm)
92 elif setmode == "mode2":
93 file = open("/proc/stb/fb/primary/3d","w")
94 if mode == "sidebyside" :
96 elif mode == "topandbottom":
100 file = open("/proc/stb/fb/primary/zoffset","w")
101 file.write('%d' % znorm)
106 def setConfiguredSettings():
107 applySettings(config.plugins.UI3DSetup.mode.value,
108 int(config.plugins.UI3DSetup.znorm.value), config.plugins.UI3DSetup.setmode.value)
110 def main(session, **kwargs):
111 session.open(UI3DSetupScreen)
113 def startup(reason, **kwargs):
114 setConfiguredSettings()
116 def Plugins(**kwargs):
118 if path.exists("/proc/stb/fb/3dmode") or path.exists("/proc/stb/fb/primary/3d"):
119 from Plugins.Plugin import PluginDescriptor
120 return [PluginDescriptor(name = "UI 3D setup", description = _("Adjust 3D settings"), where = PluginDescriptor.WHERE_PLUGINMENU, fnc = main),
121 PluginDescriptor(name = "UI 3D setup", description = "", where = PluginDescriptor.WHERE_SESSIONSTART, fnc = startup)]