-from Screens.Screen import Screen
-from Components.ConfigList import ConfigListScreen
-from Components.config import config, ConfigSubsection, ConfigInteger, ConfigSelection, ConfigSlider, getConfigListEntry
-from Components.Sources.StaticText import StaticText
-
-modelist = {"off": _("Off"), "auto": _("Auto"), "sidebyside": _("Side by Side"), "topandbottom": _("Top and Bottom")}
-setmodelist = {"mode1": _("Mode 1"), "mode2": _("Mode 2")}
-
-config.plugins.OSD3DSetup = ConfigSubsection()
-config.plugins.OSD3DSetup.mode = ConfigSelection(choices = modelist, default = "auto")
-config.plugins.OSD3DSetup.znorm = ConfigInteger(default = 0)
-config.plugins.OSD3DSetup.setmode = ConfigSelection(choices = setmodelist, default = "mode1")
-
-class OSD3DSetupScreen(Screen, ConfigListScreen):
- skin = """
- <screen position="center,center" size="560,300" title="OSD 3D setup" >
- <ePixmap pixmap="Vu_HD/buttons/red.png" position="10,10" size="25,25" alphatest="on" />
- <ePixmap pixmap="Vu_HD/buttons/green.png" position="290,10" size="25,25" alphatest="on" />
- <widget source="key_red" render="Label" position="40,10" zPosition="1" size="140,25" font="Regular;20" halign="center" valign="center" transparent="1" />
- <widget source="key_green" render="Label" position="320,10" zPosition="1" size="140,25" font="Regular;20" halign="center" valign="center" transparent="1" />
- <widget name="config" zPosition="2" position="5,50" size="550,200" scrollbarMode="showOnDemand" transparent="1" />
- </screen>"""
-
- def __init__(self, session):
- self.skin = OSD3DSetupScreen.skin
- Screen.__init__(self, session)
-
- from Components.ActionMap import ActionMap
- from Components.Button import Button
- self["key_red"] = StaticText(_("Cancel"))
- self["key_green"] = StaticText(_("Save"))
-
- self["actions"] = ActionMap(["SetupActions", "ColorActions"],
- {
- "ok": self.keyGo,
- "save": self.keyGo,
- "cancel": self.keyCancel,
- "green": self.keyGo,
- "red": self.keyCancel,
- }, -2)
-
- self.list = []
- ConfigListScreen.__init__(self, self.list, session = self.session)
-
- mode = config.plugins.OSD3DSetup.mode.value
- znorm = config.plugins.OSD3DSetup.znorm.value
- setmode = config.plugins.OSD3DSetup.setmode.value
-
- self.mode = ConfigSelection(choices = modelist, default = mode)
- self.znorm = ConfigSlider(default = znorm + 50, increment = 1, limits = (0, 100))
- self.setmode = ConfigSelection(choices = setmodelist, default = setmode)
- self.list.append(getConfigListEntry(_("Setup mode"), self.setmode))
- self.list.append(getConfigListEntry(_("3d mode"), self.mode))
- self.list.append(getConfigListEntry(_("Depth"), self.znorm))
- self["config"].list = self.list
- self["config"].l.setList(self.list)
-
- def keyLeft(self):
- ConfigListScreen.keyLeft(self)
- self.setPreviewSettings()
-
- def keyRight(self):
- ConfigListScreen.keyRight(self)
- self.setPreviewSettings()
-
- def setPreviewSettings(self):
- applySettings(self.mode.value, int(self.znorm.value) - 50, self.setmode.value)
-
- def keyGo(self):
- config.plugins.OSD3DSetup.mode.value = self.mode.value
- config.plugins.OSD3DSetup.znorm.value = int(self.znorm.value) - 50
- config.plugins.OSD3DSetup.setmode.value = self.setmode.value
- config.plugins.OSD3DSetup.save()
- self.close()
-
- def keyCancel(self):
- setConfiguredSettings()
- self.close()
-
-def applySettings(mode, znorm, setmode):
- try:
- if setmode == "mode1":
- file = open("/proc/stb/fb/3dmode", "w")
- file.write(mode)
- file.close()
- file = open("/proc/stb/fb/znorm", "w")
- file.write('%d' % znorm)
- file.close()
- elif setmode == "mode2":
- file = open("/proc/stb/fb/primary/3d","w")
- if mode == "sidebyside" :
- mode = "sbs"
- elif mode == "topandbottom":
- mode = "tab"
- file.write(mode)
- file.close()
- file = open("/proc/stb/fb/primary/zoffset","w")
- file.write('%d' % znorm)
- file.close()
- except:
- return
-
-def setConfiguredSettings():
- applySettings(config.plugins.OSD3DSetup.mode.value,
- int(config.plugins.OSD3DSetup.znorm.value), config.plugins.OSD3DSetup.setmode.value)
-
-def main(session, **kwargs):
- session.open(OSD3DSetupScreen)
-
-def startup(reason, **kwargs):
- setConfiguredSettings()
-
-def Plugins(**kwargs):
- from os import path
- if path.exists("/proc/stb/fb/3dmode") or path.exists("/proc/stb/fb/primary/3d"):
- from Plugins.Plugin import PluginDescriptor
- return [PluginDescriptor(name = "OSD 3D setup", description = _("Adjust 3D settings"), where = PluginDescriptor.WHERE_PLUGINMENU, fnc = main),
- PluginDescriptor(name = "OSD 3D setup", description = "", where = PluginDescriptor.WHERE_SESSIONSTART, fnc = startup)]
- return []