-
- def startHotplug(self):
- self.hw.on_hotplug.append(self.createSetup)
-
- def stopHotplug(self):
- self.hw.on_hotplug.remove(self.createSetup)
-
- def createSetup(self):
- level = config.usage.setup_level.index
-
- self.list = [
- getConfigListEntry(_("Video Output"), config.av.videoport)
- ]
-
- # if we have modes for this port:
- if config.av.videoport.value in config.av.videomode:
- # add mode- and rate-selection:
- self.list.append(getConfigListEntry(_("Mode"), config.av.videomode[config.av.videoport.value]))
- if config.av.videomode[config.av.videoport.value].value == 'PC':
- self.list.append(getConfigListEntry(_("Resolution"), config.av.videorate[config.av.videomode[config.av.videoport.value].value]))
- else:
- self.list.append(getConfigListEntry(_("Refresh Rate"), config.av.videorate[config.av.videomode[config.av.videoport.value].value]))
-
- port = config.av.videoport.value
- if port not in config.av.videomode:
- mode = None
- else:
- mode = config.av.videomode[port].value
-
- # some modes (720p, 1080i) are always widescreen. Don't let the user select something here, "auto" is not what he wants.
- force_wide = self.hw.isWidescreenMode(port, mode)
-
- if not force_wide:
- self.list.append(getConfigListEntry(_("Aspect Ratio"), config.av.aspect))
-
- if force_wide or config.av.aspect.value in ("16_9", "16_10"):
- self.list.extend((
- getConfigListEntry(_("Display 4:3 content as"), config.av.policy_43),
- getConfigListEntry(_("Display >16:9 content as"), config.av.policy_169)
- ))
- elif config.av.aspect.value == "4_3":
- self.list.append(getConfigListEntry(_("Display 16:9 content as"), config.av.policy_169))
-
-# if config.av.videoport.value == "DVI":
-# self.list.append(getConfigListEntry(_("Allow Unsupported Modes"), config.av.edid_override))
- if config.av.videoport.value == "Scart":
- self.list.append(getConfigListEntry(_("Color Format"), config.av.colorformat))
- if level >= 1:
- self.list.append(getConfigListEntry(_("WSS on 4:3"), config.av.wss))
- if SystemInfo["ScartSwitch"]:
- self.list.append(getConfigListEntry(_("Auto scart switching"), config.av.vcrswitch))
-
- if level >= 1:
- self.list.append(getConfigListEntry(_("AC3 default"), config.av.defaultac3))
- if SystemInfo["CanDownmixAC3"]:
- self.list.append(getConfigListEntry(_("AC3 downmix"), config.av.downmix_ac3))
- self.list.extend((
- getConfigListEntry(_("General AC3 Delay"), config.av.generalAC3delay),
- getConfigListEntry(_("General PCM Delay"), config.av.generalPCMdelay)
- ))
-
- if SystemInfo["CanChangeOsdAlpha"]:
- self.list.append(getConfigListEntry(_("OSD visibility"), config.av.osd_alpha))
-
- if not isinstance(config.av.scaler_sharpness, ConfigNothing):
- self.list.append(getConfigListEntry(_("Scaler sharpness"), config.av.scaler_sharpness))
-
- self["config"].list = self.list
- self["config"].l.setList(self.list)
-
- def keyLeft(self):
- ConfigListScreen.keyLeft(self)
- self.createSetup()
-
- def keyRight(self):
- ConfigListScreen.keyRight(self)
- self.createSetup()
-
- def confirm(self, confirmed):
- if not confirmed:
- config.av.videoport.value = self.last_good[0]
- config.av.videomode[self.last_good[0]].value = self.last_good[1]
- config.av.videorate[self.last_good[1]].value = self.last_good[2]
- self.hw.setMode(*self.last_good)
- else:
- self.keySave()
-
- def grabLastGoodMode(self):
- port = config.av.videoport.value
- mode = config.av.videomode[port].value
- rate = config.av.videorate[mode].value
- self.last_good = (port, mode, rate)
-
- def apply(self):
- port = config.av.videoport.value
- mode = config.av.videomode[port].value
- rate = config.av.videorate[mode].value
- if (port, mode, rate) != self.last_good:
- self.hw.setMode(port, mode, rate)
- from Screens.MessageBox import MessageBox
- self.session.openWithCallback(self.confirm, MessageBox, _("Is this videomode ok?"), MessageBox.TYPE_YESNO, timeout = 20, default = False)
- else:
- self.keySave()
-