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="Vu_HD/buttons/red.png" position="10,10" size="25,25" alphatest="on" />
18 <ePixmap pixmap="Vu_HD/buttons/green.png" position="290,10" size="25,25" alphatest="on" />
19 <widget source="key_red" render="Label" position="40,10" zPosition="1" size="140,25" font="Regular;20" halign="center" valign="center" transparent="1" />
20 <widget source="key_green" render="Label" position="320,10" zPosition="1" size="140,25" font="Regular;20" halign="center" valign="center" transparent="1" />
21 <widget name="config" zPosition="2" position="5,50" size="550,200" scrollbarMode="showOnDemand" transparent="1" />
24 def __init__(self, session):
25 self.skin = UI3DSetupScreen.skin
26 Screen.__init__(self, session)
28 from Components.ActionMap import ActionMap
29 from Components.Button import Button
30 self["key_red"] = StaticText(_("Cancel"))
31 self["key_green"] = StaticText(_("Save"))
33 self["actions"] = ActionMap(["SetupActions", "ColorActions"],
37 "cancel": self.keyCancel,
39 "red": self.keyCancel,
43 ConfigListScreen.__init__(self, self.list, session = self.session)
45 mode = config.plugins.UI3DSetup.mode.value
46 znorm = config.plugins.UI3DSetup.znorm.value
47 setmode = config.plugins.UI3DSetup.setmode.value
49 self.mode = ConfigSelection(choices = modelist, default = mode)
50 self.znorm = ConfigSlider(default = znorm + 50, increment = 1, limits = (0, 100))
51 self.setmode = ConfigSelection(choices = setmodelist, default = setmode)
52 self.list.append(getConfigListEntry(_("Setup mode"), self.setmode))
53 self.list.append(getConfigListEntry(_("3d mode"), self.mode))
54 self.list.append(getConfigListEntry(_("Depth"), self.znorm))
55 self["config"].list = self.list
56 self["config"].l.setList(self.list)
59 ConfigListScreen.keyLeft(self)
60 self.setPreviewSettings()
63 ConfigListScreen.keyRight(self)
64 self.setPreviewSettings()
66 def setPreviewSettings(self):
67 applySettings(self.mode.value, int(self.znorm.value) - 50, self.setmode.value)
70 config.plugins.UI3DSetup.mode.value = self.mode.value
71 config.plugins.UI3DSetup.znorm.value = int(self.znorm.value) - 50
72 config.plugins.UI3DSetup.setmode.value = self.setmode.value
73 config.plugins.UI3DSetup.save()
77 setConfiguredSettings()
80 def applySettings(mode, znorm, setmode):
82 if setmode == "mode1":
83 file = open("/proc/stb/fb/3dmode", "w")
86 file = open("/proc/stb/fb/znorm", "w")
87 file.write('%d' % znorm)
89 elif setmode == "mode2":
90 file = open("/proc/stb/fb/primary/3d","w")
91 if mode == "sidebyside" :
93 elif mode == "topandbottom":
97 file = open("/proc/stb/fb/primary/zoffset","w")
98 file.write('%d' % znorm)
103 def setConfiguredSettings():
104 applySettings(config.plugins.UI3DSetup.mode.value,
105 int(config.plugins.UI3DSetup.znorm.value), config.plugins.UI3DSetup.setmode.value)
107 def main(session, **kwargs):
108 session.open(UI3DSetupScreen)
110 def startup(reason, **kwargs):
111 setConfiguredSettings()
113 def Plugins(**kwargs):
115 if path.exists("/proc/stb/fb/3dmode") or path.exists("/proc/stb/fb/primary/3d"):
116 from Plugins.Plugin import PluginDescriptor
117 return [PluginDescriptor(name = "UI 3D setup", description = _("Adjust 3D settings"), where = PluginDescriptor.WHERE_PLUGINMENU, fnc = main),
118 PluginDescriptor(name = "UI 3D setup", description = "", where = PluginDescriptor.WHERE_SESSIONSTART, fnc = startup)]