def defaultModeChanged(self, configEntry): global preferedmodes global port global default global usable port_changed = configEntry == config.av.videoport if port_changed: print "port changed to", configEntry.value if port: config.av.videomode[port].notifiers.remove(self.defaultModeChanged) port = config.av.videoport.value if port in config.av.videomode: config.av.videomode[port].addNotifier(self.defaultModeChanged) usable = config.plugins.autoresolution.enable.value and not port in ('DVI-PC', 'Scart') else: # videomode changed in normal av setup global videoresolution_dictionary print "mode changed to", configEntry.value default = (configEntry.value, _("default")) preferedmodes = [mode[0] for mode in video_hw.getModeList(port) if mode[0] != default[0]] preferedmodes.append(default) print "default", default print "preferedmodes", preferedmodes videoresolution_dictionary = {} config.plugins.autoresolution.videoresolution = ConfigSubDict() for mode in resolutions: choices = ['1080p24', '1080p25', '1080p30'] + preferedmodes config.plugins.autoresolution.videoresolution[mode[0]] = ConfigSelection(default = default[0], choices = choices) config.plugins.autoresolution.videoresolution[mode[0]].addNotifier(self.modeConfigChanged, initial_call = False, immediate_feedback = False) videoresolution_dictionary[mode[0]] = (config.plugins.autoresolution.videoresolution[mode[0]])
def listModes(self): list = [] print("[VideoWizard] modes for port", self.port) for mode in iAV.getModeList(self.port): # if mode[0] != "PC": list.append((mode[0], mode[0])) print("[VideoWizard] modeslist:", list) return list
def inputSelect(self, port): print("[VideoWizard] inputSelect:", port) modeList = iAV.getModeList(self.selection) print("[VideoWizard] modeList:", modeList) self.port = port if len(modeList) > 0: ratesList = self.listRates(modeList[0][0]) iAV.setMode(port=port, mode=modeList[0][0], rate=ratesList[0][0])
def defaultModeChanged(self, configEntry): global preferedmodes global port global default global usable port_changed = configEntry == config.av.videoport if port_changed: print("[AutoRes] port changed to", configEntry.value) if port: config.av.videomode[port].notifiers.remove(self.defaultModeChanged) port = config.av.videoport.value if port in config.av.videomode: config.av.videomode[port].addNotifier(self.defaultModeChanged) usable = config.plugins.autoresolution.enable.value and not port in ('DVI-PC', 'Scart') else: # videomode changed in normal av setup global videoresolution_dictionary print("[AutoRes] mode changed to", configEntry.value) default = (configEntry.value, _("default") + " (%s)" % configEntry.value) preferedmodes = [mode[0] for mode in video_hw.getModeList(port) if mode[0] != default[0]] preferedmodes.append(default) print("[AutoRes] default", default) print("[AutoRes] preferedmodes", preferedmodes) videoresolution_dictionary = {} config.plugins.autoresolution.videoresolution = ConfigSubDict() if self.extra_mode720p60 and '720p60' not in preferedmodes: preferedmodes.append('720p60') if self.extra_mode1080p50 and '1080p50' not in preferedmodes: preferedmodes.append('1080p50') if self.extra_mode1080p60 and '1080p60' not in preferedmodes: preferedmodes.append('1080p60') if self.extra_mode2160p50 and '2160p50' not in preferedmodes: preferedmodes.append('2160p50') for mode in resolutions: if have_2160p: if mode[0].startswith('p2160'): choices = ['2160p24', '2160p25', '2160p30', '1080p24', '1080p25', '1080p30'] + preferedmodes elif mode[0].startswith('p1080_24'): choices = ['1080p24', '2160p24'] + preferedmodes elif mode[0].startswith('p1080'): choices = ['1080p24', '1080p25', '1080p30'] + preferedmodes elif mode[0] == 'p720_24': choices = ['720p24', '1080p24', '2160p24'] + preferedmodes elif mode[0] == 'p720_50': choices = ['720p50', '1080p25', '2160p25'] + preferedmodes else: choices = preferedmodes else: if mode[0].startswith('p1080'): choices = ['1080p24', '1080p25', '1080p30'] + preferedmodes elif mode[0] == 'p720_24': choices = ['720p24', '1080p24'] + preferedmodes elif mode[0] == 'p720_50': choices = ['720p50', '1080p25'] + preferedmodes else: choices = preferedmodes config.plugins.autoresolution.videoresolution[mode[0]] = ConfigSelection(default=default[0], choices=choices) config.plugins.autoresolution.videoresolution[mode[0]].addNotifier(self.modeConfigChanged, initial_call=False, immediate_feedback=False) videoresolution_dictionary[mode[0]] = (config.plugins.autoresolution.videoresolution[mode[0]])
def defaultModeChanged(self, configEntry): global preferedmodes global port global default global usable port_changed = configEntry == config.av.videoport if port_changed: print "[AutoRes] port changed to", configEntry.value if port: config.av.videomode[port].notifiers.remove(self.defaultModeChanged) port = config.av.videoport.value if port in config.av.videomode: config.av.videomode[port].addNotifier(self.defaultModeChanged) usable = config.plugins.autoresolution.enable.value and not port in ('DVI-PC', 'Scart') else: # videomode changed in normal av setup global videoresolution_dictionary print "[AutoRes] mode changed to", configEntry.value default = (configEntry.value, _("default")) preferedmodes = [mode[0] for mode in video_hw.getModeList(port) if mode[0] != default[0]] preferedmodes.append(default) print "[AutoRes] default", default print "[AutoRes] preferedmodes", preferedmodes videoresolution_dictionary = {} config.plugins.autoresolution.videoresolution = ConfigSubDict() if self.extra_mode720p60 and '720p60' not in preferedmodes: preferedmodes.append('720p60') if self.extra_mode1080p50 and '1080p50' not in preferedmodes: preferedmodes.append('1080p50') if self.extra_mode1080p60 and '1080p60' not in preferedmodes: preferedmodes.append('1080p60') for mode in resolutions: if have_2160p: if mode[0].startswith('p2160'): choices = ['2160p24', '2160p25', '2160p30', '1080p24', '1080p25', '1080p30'] + preferedmodes elif mode[0].startswith('p1080_24'): choices = ['1080p24', '2160p24'] + preferedmodes elif mode[0].startswith('p1080'): choices = ['1080p24', '1080p25', '1080p30'] + preferedmodes elif mode[0] == 'p720_24': choices = ['720p24', '1080p24', '2160p24'] + preferedmodes elif mode[0] == 'p720_50': choices = ['720p50', '1080p25', '2160p25'] + preferedmodes else: choices = preferedmodes else: if mode[0].startswith('p1080'): choices = ['1080p24', '1080p25', '1080p30'] + preferedmodes elif mode[0] == 'p720_24': choices = ['720p24', '1080p24'] + preferedmodes elif mode[0] == 'p720_50': choices = ['720p50', '1080p25'] + preferedmodes else: choices = preferedmodes config.plugins.autoresolution.videoresolution[mode[0]] = ConfigSelection(default = default[0], choices = choices) config.plugins.autoresolution.videoresolution[mode[0]].addNotifier(self.modeConfigChanged, initial_call = False, immediate_feedback = False) videoresolution_dictionary[mode[0]] = (config.plugins.autoresolution.videoresolution[mode[0]])
def listRates(self, querymode=None): if querymode is None: querymode = self.mode list = [] print("[VideoWizard] modes for port", self.port, "and mode", querymode) for mode in iAV.getModeList(self.port): print("[VideoWizard] mode:", mode) if mode[0] == querymode: for rate in mode[1]: if self.port == "DVI-PC": print("[VideoWizard] rate:", rate) if rate == "640x480": list.insert(0, (rate, rate)) continue list.append((rate, rate)) return list
def defaultModeChanged(self, configEntry): global preferedmodes global port global default global usable port_changed = configEntry == config.av.videoport if port_changed: print "port changed to", configEntry.value if port: config.av.videomode[port].notifiers.remove( self.defaultModeChanged) port = config.av.videoport.value if port in config.av.videomode: config.av.videomode[port].addNotifier(self.defaultModeChanged) usable = config.plugins.autoresolution.enable.value and not port in ( 'DVI-PC', 'Scart') else: # videomode changed in normal av setup global videoresolution_dictionary print "mode changed to", configEntry.value default = (configEntry.value, _("default")) preferedmodes = [ mode[0] for mode in video_hw.getModeList(port) if mode[0] != default[0] ] preferedmodes.append(default) print "default", default print "preferedmodes", preferedmodes videoresolution_dictionary = {} config.plugins.autoresolution.videoresolution = ConfigSubDict() for mode in resolutions: choices = ['1080p24', '1080p25', '1080p30'] + preferedmodes config.plugins.autoresolution.videoresolution[ mode[0]] = ConfigSelection(default=default[0], choices=choices) config.plugins.autoresolution.videoresolution[ mode[0]].addNotifier(self.modeConfigChanged, initial_call=False, immediate_feedback=False) videoresolution_dictionary[mode[0]] = ( config.plugins.autoresolution.videoresolution[mode[0]])
def createSetup(self): level = config.usage.setup_level.index self.list = [ getConfigListEntry(_("Video output"), config.av.videoport, _("Configures which video output connector will be used.")) ] if config.av.videoport.value in ('HDMI', 'YPbPr', 'Scart-YPbPr') and not getAutoresPlugin_enabled(): #path.exists(resolveFilename(SCOPE_PLUGINS)+'SystemPlugins/AutoResolution'): self.list.append(getConfigListEntry(_("Automatic resolution"), config.av.autores,_("If enabled the output resolution of the box will try to match the resolution of the video contents resolution"))) if config.av.autores.value in ('all', 'hd'): self.list.append(getConfigListEntry(_("Delay time"), config.av.autores_delay,_("Set the time before checking video source for resolution infomation."))) self.list.append(getConfigListEntry(_("Force de-interlace"), config.av.autores_deinterlace,_("If enabled the video will always be de-interlaced."))) self.list.append(getConfigListEntry(_("Automatic resolution label"), config.av.autores_label_timeout,_("Allows you to adjust the amount of time the resolution infomation display on screen."))) if config.av.autores.value in 'hd': self.list.append(getConfigListEntry(_("Show SD as"), config.av.autores_sd,_("This option allows you to choose how to display standard defintion video on your TV."))) self.list.append(getConfigListEntry(_("Show 480/576p 24fps as"), config.av.autores_480p24,_("This option allows you to choose how to display SD progressive 24Hz on your TV. (as not all TV's support these resolutions)"))) self.list.append(getConfigListEntry(_("Show 720p 24fps as"), config.av.autores_720p24,_("This option allows you to choose how to display 720p 24Hz on your TV. (as not all TV's support these resolutions)"))) self.list.append(getConfigListEntry(_("Show 1080p 24fps as"), config.av.autores_1080p24,_("This option allows you to choose how to display 1080p 24Hz on your TV. (as not all TV's support these resolutions)"))) self.list.append(getConfigListEntry(_("Show 1080p 25fps as"), config.av.autores_1080p25,_("This option allows you to choose how to display 1080p 25Hz on your TV. (as not all TV's support these resolutions)"))) self.list.append(getConfigListEntry(_("Show 1080p 30fps as"), config.av.autores_1080p30,_("This option allows you to choose how to display 1080p 30Hz on your TV. (as not all TV's support these resolutions)"))) self.list.append(getConfigListEntry(_('Always use smart1080p mode'), config.av.smart1080p, _("This option allows you to always use e.g. 1080p50 for TV/.ts, and 1080p24/p50/p60 for videos"))) elif config.av.autores.value == 'simple': prev_sd = prev_hd = prev_fhd = prev_uhd = "" service = self.session.nav.getCurrentService() info = service and service.info() if info: video_height = int(info.getInfo(iServiceInformation.sVideoHeight)) if video_height <= 576: prev_sd = "* " elif video_height <= 720: prev_hd = "* " elif video_height <= 1080: prev_fhd = "* " elif video_height <= 2160: prev_uhd = "* " else: config.av.autores_preview.value = False self.list.append(getConfigListEntry(_("Enable preview"), config.av.autores_preview, _("Show preview of current mode (*)."), "check")) else: config.av.autores_preview.value = False self.list.append(getConfigListEntry(pgettext(_("Video output mode for SD"), _("%sMode for SD (up to 576p)") %prev_sd), config.av.autores_mode_sd[config.av.videoport.value], _("This option configures the video output mode (or resolution)."), "check")) self.list.append(getConfigListEntry(_("%sRefresh rate for SD") %prev_sd, config.av.autores_rate_sd[config.av.autores_mode_sd[config.av.videoport.value].value], _("Configure the refresh rate of the screen."), "check")) modelist = iAVSwitch.getModeList(config.av.videoport.value) if '720p' in iAVSwitch.modes_available: self.list.append(getConfigListEntry(pgettext(_("Video output mode for HD"), _("%sMode for HD (up to 720p)") %prev_hd), config.av.autores_mode_hd[config.av.videoport.value], _("This option configures the video output mode (or resolution)."), "check")) self.list.append(getConfigListEntry(_("%sRefresh rate for HD") %prev_hd, config.av.autores_rate_hd[config.av.autores_mode_hd[config.av.videoport.value].value], _("Configure the refresh rate of the screen."), "check")) if '1080i' in iAVSwitch.modes_available or '1080p' in iAVSwitch.modes_available: self.list.append(getConfigListEntry(pgettext(_("Video output mode for FHD"), _("%sMode for FHD (up to 1080p)") %prev_fhd), config.av.autores_mode_fhd[config.av.videoport.value], _("This option configures the video output mode (or resolution)."), "check")) self.list.append(getConfigListEntry(_("%sRefresh rate for FHD") %prev_fhd, config.av.autores_rate_fhd[config.av.autores_mode_fhd[config.av.videoport.value].value], _("Configure the refresh rate of the screen."), "check")) if config.av.autores_mode_fhd[config.av.videoport.value].value == '1080p' and ('1080p' in iAVSwitch.modes_available or '1080p50' in iAVSwitch.modes_available): self.list.append(getConfigListEntry(_("%sShow 1080i as 1080p") %prev_fhd, config.av.autores_1080i_deinterlace, _("Use Deinterlacing for 1080i Videosignal?"), "check")) elif not '1080p' in iAVSwitch.modes_available and not '1080p50' in iAVSwitch.modes_available: config.av.autores_1080i_deinterlace.setValue(False) if '2160p' in iAVSwitch.modes_available or '2160p30' in iAVSwitch.modes_available: self.list.append(getConfigListEntry(pgettext(_("Video output mode for UHD"), _("%sMode for UHD (up to 2160p)") %prev_uhd), config.av.autores_mode_uhd[config.av.videoport.value], _("This option configures the video output mode (or resolution)."), "check")) self.list.append(getConfigListEntry(_("%sRefresh rate for UHD") %prev_uhd, config.av.autores_rate_uhd[config.av.autores_mode_uhd[config.av.videoport.value].value], _("Configure the refresh rate of the screen."), "check")) self.list.append(getConfigListEntry(_("Delay time"), config.av.autores_delay,_("Set the time before checking video source for resolution infomation."))) self.list.append(getConfigListEntry(_("Automatic resolution label"), config.av.autores_label_timeout,_("Allows you to adjust the amount of time the resolution infomation display on screen."))) # if we have modes for this port: if (config.av.videoport.value in config.av.videomode and config.av.autores.value == 'disabled') or config.av.videoport.value == 'Scart': # add mode- and rate-selection: self.list.append(getConfigListEntry(pgettext(_("Video output mode"), _("Mode")), config.av.videomode[config.av.videoport.value], _("This option configures the video output mode (or resolution)."))) 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], _("This option configures the screen resolution in PC output mode."))) elif config.av.videoport.value != 'Scart': self.list.append(getConfigListEntry(_("Refresh rate"), config.av.videorate[config.av.videomode[config.av.videoport.value].value], _("Configure the refresh rate of the screen."))) 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, _("Configure the aspect ratio of the screen."))) 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, _("When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture.")), getConfigListEntry(_("Display >16:9 content as"), config.av.policy_169, _("When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture.")) )) elif config.av.aspect.value == "4:3": self.list.append(getConfigListEntry(_("Display 16:9 content as"), config.av.policy_169, _("When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture."))) # if config.av.videoport.value == "HDMI": # 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, _("Configure which color format should be used on the SCART output."))) if level >= 1: self.list.append(getConfigListEntry(_("WSS on 4:3"), config.av.wss, _("When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen."))) if SystemInfo["ScartSwitch"]: self.list.append(getConfigListEntry(_("Auto scart switching"), config.av.vcrswitch, _("When enabled, your receiver will detect activity on the VCR SCART input."))) if level >= 1: if SystemInfo["CanDownmixAC3"]: self.list.append(getConfigListEntry(_("Dolby Digital / DTS downmix"), config.av.downmix_ac3, _("Choose whether multi channel sound tracks should be downmixed to stereo."))) if SystemInfo["CanDownmixAAC"]: self.list.append(getConfigListEntry(_("AAC downmix"), config.av.downmix_aac, _("Choose whether multi channel sound tracks should be downmixed to stereo."))) if SystemInfo["CanDownmixAACPlus"]: self.list.append(getConfigListEntry(_("AAC plus downmix"), config.av.downmix_aacplus, _("Configure whether multi channel sound tracks should be downmixed to stereo."))) if SystemInfo["Canaudiosource"]: self.list.append(getConfigListEntry(_("Audio Source"), config.av.audio_source, _("Choose whether multi channel sound tracks should be convert to PCM or SPDIF."))) self.list.extend(( getConfigListEntry(_("General AC3 delay"), config.av.generalAC3delay, _("This option configures the general audio delay of Dolby Digital sound tracks.")), getConfigListEntry(_("General PCM delay"), config.av.generalPCMdelay, _("This option configures the general audio delay of stereo sound tracks.")) )) if SystemInfo["Can3DSurround"]: self.list.append(getConfigListEntry(_("3D Surround"), config.av.surround_3d,_("This option allows you to enable 3D Surround Sound."))) if SystemInfo["CanAutoVolume"]: self.list.append(getConfigListEntry(_("Audio Auto Volume Level"), config.av.autovolume,_("This option configures you can set Auto Volume Level."))) if SystemInfo["Canedidchecking"]: self.list.append(getConfigListEntry(_("Bypass HDMI EDID Check"), config.av.bypass_edid_checking,_("This option allows you to bypass HDMI EDID check"))) # if not isinstance(config.av.scaler_sharpness, ConfigNothing): # self.list.append(getConfigListEntry(_("Scaler sharpness"), config.av.scaler_sharpness, _("This option configures the picture sharpness."))) if SystemInfo["haveboxmode"]: self.list.append(getConfigListEntry(_("Change Boxmode to control Hardware Chip Modes*"), config.av.boxmode,_("Switch Mode to enable HDR Modes or PIP Functions"))) if SystemInfo["havecolorspace"]: self.list.append(getConfigListEntry(_("HDMI Colorspace"), config.av.hdmicolorspace,_("This option allows you can config the Colorspace from Auto to RGB"))) self["config"].list = self.list self["config"].l.setList(self.list) if config.usage.sort_settings.value: self["config"].list.sort()
def createSetup(self): level = config.usage.setup_level.index self.list = [ getConfigListEntry(_("Video output"), config.av.videoport, _("Configures which video output connector will be used.")) ] if config.av.videoport.value in ('HDMI', 'YPbPr', 'Scart-YPbPr') and not getAutoresPlugin_enabled(): #path.exists(resolveFilename(SCOPE_PLUGINS)+'SystemPlugins/AutoResolution'): self.list.append(getConfigListEntry(_("Automatic resolution"), config.av.autores, _("If enabled the output resolution of the box will try to match the resolution of the video contents resolution"))) if config.av.autores.value in ('all', 'hd'): self.list.append(getConfigListEntry(_("Delay time"), config.av.autores_delay, _("Set the time before checking video source for resolution information."))) self.list.append(getConfigListEntry(_("Automatic resolution label"), config.av.autores_label_timeout, _("Allows you to adjust the amount of time the resolution information display on screen."))) self.list.append(getConfigListEntry(_("Force de-interlace"), config.av.autores_deinterlace, _("If enabled the video will always be de-interlaced."))) self.list.append(getConfigListEntry(_("Always use smart1080p mode"), config.av.smart1080p, _("This option allows you to always use e.g. 1080p50 for TV/.ts, and 1080p24/p50/p60 for videos"))) if config.av.autores.value in 'hd': self.list.append(getConfigListEntry(_("Show SD as"), config.av.autores_sd, _("This option allows you to choose how to display standard definition video on your TV."))) self.list.append(getConfigListEntry(_("Show 480/576p 24fps as"), config.av.autores_480p24, _("This option allows you to choose how to display SD progressive 24Hz on your TV. (as not all TV's support these resolutions)"))) self.list.append(getConfigListEntry(_("Show 720p 24fps as"), config.av.autores_720p24, _("This option allows you to choose how to display 720p 24Hz on your TV. (as not all TV's support these resolutions)"))) self.list.append(getConfigListEntry(_("Show 1080p 24fps as"), config.av.autores_1080p24, _("This option allows you to choose how to display 1080p 24Hz on your TV. (as not all TV's support these resolutions)"))) self.list.append(getConfigListEntry(_("Show 1080p 25fps as"), config.av.autores_1080p25, _("This option allows you to choose how to display 1080p 25Hz on your TV. (as not all TV's support these resolutions)"))) self.list.append(getConfigListEntry(_("Show 1080p 30fps as"), config.av.autores_1080p30, _("This option allows you to choose how to display 1080p 30Hz on your TV. (as not all TV's support these resolutions)"))) if '2160p24' in iAVSwitch.readAvailableModes(): self.list.append(getConfigListEntry(_("Show 2160p 24fps as"), config.av.autores_2160p24, _("This option allows you to choose how to display 2160p 24Hz on your TV. (as not all TV's support these resolutions)"))) self.list.append(getConfigListEntry(_("Show 2160p 25fps as"), config.av.autores_2160p25, _("This option allows you to choose how to display 2160p 25Hz on your TV. (as not all TV's support these resolutions)"))) self.list.append(getConfigListEntry(_("Show 2160p 30fps as"), config.av.autores_2160p30, _("This option allows you to choose how to display 2160p 30Hz on your TV. (as not all TV's support these resolutions)"))) elif config.av.autores.value == 'simple': self.list.append(getConfigListEntry(_("Delay time"), config.av.autores_delay, _("Set the time before checking video source for resolution information."))) self.list.append(getConfigListEntry(_("Automatic resolution label"), config.av.autores_label_timeout, _("Allows you to adjust the amount of time the resolution information display on screen."))) self.prev_sd = self.prev_hd = self.prev_fhd = self.prev_uhd = "" service = self.session.nav.getCurrentService() info = service and service.info() if info: video_height = int(info.getInfo(iServiceInformation.sVideoHeight)) if video_height <= 576: self.prev_sd = "* " elif video_height <= 720: self.prev_hd = "* " elif video_height <= 1080: self.prev_fhd = "* " elif video_height <= 2160: self.prev_uhd = "* " else: config.av.autores_preview.value = False self.list.append(getConfigListEntry(_("Enable preview"), config.av.autores_preview, _("Show preview of current mode (*)."), "check")) else: config.av.autores_preview.value = False self.getVerify_videomode(config.av.autores_mode_sd, config.av.autores_rate_sd) self.list.append(getConfigListEntry(pgettext(_("Video output mode for SD"), _("%sMode for SD (up to 576p)") % self.prev_sd), config.av.autores_mode_sd[config.av.videoport.value], _("This option configures the video output mode (or resolution)."), "check_sd")) self.list.append(getConfigListEntry(_("%sRefresh rate for SD") % self.prev_sd, config.av.autores_rate_sd[config.av.autores_mode_sd[config.av.videoport.value].value], _("Configure the refresh rate of the screen."), "check_sd")) modelist = iAVSwitch.getModeList(config.av.videoport.value) if '720p' in iAVSwitch.readAvailableModes(): self.getVerify_videomode(config.av.autores_mode_hd, config.av.autores_rate_hd) self.list.append(getConfigListEntry(pgettext(_("Video output mode for HD"), _("%sMode for HD (up to 720p)") % self.prev_hd), config.av.autores_mode_hd[config.av.videoport.value], _("This option configures the video output mode (or resolution)."), "check_hd")) self.list.append(getConfigListEntry(_("%sRefresh rate for HD") % self.prev_hd, config.av.autores_rate_hd[config.av.autores_mode_hd[config.av.videoport.value].value], _("Configure the refresh rate of the screen."), "check_hd")) if '1080i' in iAVSwitch.readAvailableModes() or '1080p' in iAVSwitch.readAvailableModes(): self.getVerify_videomode(config.av.autores_mode_fhd, config.av.autores_rate_fhd) self.list.append(getConfigListEntry(pgettext(_("Video output mode for FHD"), _("%sMode for FHD (up to 1080p)") % self.prev_fhd), config.av.autores_mode_fhd[config.av.videoport.value], _("This option configures the video output mode (or resolution)."), "check_fhd")) self.list.append(getConfigListEntry(_("%sRefresh rate for FHD") % self.prev_fhd, config.av.autores_rate_fhd[config.av.autores_mode_fhd[config.av.videoport.value].value], _("Configure the refresh rate of the screen."), "check_fhd")) if config.av.autores_mode_fhd[config.av.videoport.value].value == '1080p' and ('1080p' in iAVSwitch.readAvailableModes() or '1080p50' in iAVSwitch.readAvailableModes()): self.list.append(getConfigListEntry(_("%sShow 1080i as 1080p") % self.prev_fhd, config.av.autores_1080i_deinterlace, _("Use Deinterlacing for 1080i Videosignal?"), "check_fhd")) elif not '1080p' in iAVSwitch.readAvailableModes() and not '1080p50' in iAVSwitch.readAvailableModes(): config.av.autores_1080i_deinterlace.setValue(False) if '2160p' in iAVSwitch.readAvailableModes() or '2160p30' in iAVSwitch.readAvailableModes(): self.getVerify_videomode(config.av.autores_mode_uhd, config.av.autores_rate_uhd) self.list.append(getConfigListEntry(pgettext(_("Video output mode for UHD"), _("%sMode for UHD (up to 2160p)") % self.prev_uhd), config.av.autores_mode_uhd[config.av.videoport.value], _("This option configures the video output mode (or resolution)."), "check_uhd")) self.list.append(getConfigListEntry(_("%sRefresh rate for UHD") % self.prev_uhd, config.av.autores_rate_uhd[config.av.autores_mode_uhd[config.av.videoport.value].value], _("Configure the refresh rate of the screen."), "check_uhd")) self.list.append(getConfigListEntry(_("Show 24p up to 720p / higher than 720p as"), config.av.autores_24p, _("Show 24p up to resolution 720p or higher than 720p as a different Framerate."))) self.list.append(getConfigListEntry(_("Show 25p up to 720p / higher than 720p as"), config.av.autores_25p, _("Show 25p up to resolution 720p or higher than 720p as a different Framerate."))) self.list.append(getConfigListEntry(_("Show 30p up to 720p / higher than 720p as"), config.av.autores_30p, _("Show 30p up to resolution 720p or higher than 720p as a different Framerate."))) elif config.av.autores.value == 'native': self.list.append(getConfigListEntry(_("Delay time"), config.av.autores_delay, _("Set the time before checking video source for resolution information."))) self.list.append(getConfigListEntry(_("Automatic resolution label"), config.av.autores_label_timeout, _("Allows you to adjust the amount of time the resolution information display on screen."))) self.getVerify_videomode(config.av.autores_mode_sd, config.av.autores_rate_sd) self.list.append(getConfigListEntry(pgettext(_("Lowest Video output mode"), _("Lowest Mode")), config.av.autores_mode_sd[config.av.videoport.value], _("This option configures the video output mode (or resolution)."))) self.list.append(getConfigListEntry(_("Refresh rate for 'Lowest Mode'"), config.av.autores_rate_sd[config.av.autores_mode_sd[config.av.videoport.value].value], _("Configure the refresh rate of the screen."))) self.list.append(getConfigListEntry(_("Show 24p up to 720p / higher than 720p as"), config.av.autores_24p, _("Show 24p up to resolution 720p or higher than 720p as a different Framerate."))) self.list.append(getConfigListEntry(_("Show 25p up to 720p / higher than 720p as"), config.av.autores_25p, _("Show 25p up to resolution 720p or higher than 720p as a different Framerate."))) self.list.append(getConfigListEntry(_("Show 30p up to 720p / higher than 720p as"), config.av.autores_30p, _("Show 30p up to resolution 720p or higher than 720p as a different Framerate."))) self.list.append(getConfigListEntry(_("Show unknown video format as"), config.av.autores_unknownres, _("Show unknown Videoresolution as next higher or as highest screen resolution."))) # if we have modes for this port: if (config.av.videoport.value in config.av.videomode and config.av.autores.value == 'disabled') or config.av.videoport.value == 'Scart': # add mode- and rate-selection: self.list.append(getConfigListEntry(pgettext(_("Video output mode"), _("Mode")), config.av.videomode[config.av.videoport.value], _("This option configures the video output mode (or resolution)."))) 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], _("This option configures the screen resolution in PC output mode."))) elif config.av.videoport.value != 'Scart': self.list.append(getConfigListEntry(_("Refresh rate"), config.av.videorate[config.av.videomode[config.av.videoport.value].value], _("Configure the refresh rate of the screen."))) 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, _("Configure the aspect ratio of the screen."))) if hasattr(config.av, 'policy_169'): 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, _("When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture.")), getConfigListEntry(_("Display >16:9 content as"), config.av.policy_169, _("When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture.")) )) elif config.av.aspect.value == "4:3": self.list.append(getConfigListEntry(_("Display 16:9 content as"), config.av.policy_169, _("When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture."))) else: if force_wide or config.av.aspect.value in ("16:9", "16:10"): self.list.append(getConfigListEntry(_("Display 4:3 content as"), config.av.policy_43, _("When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture."))) elif config.av.aspect.value == "4:3": self.list.append(getConfigListEntry(_("Display 16:9 content as"), config.av.policy_43, _("When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture."))) if config.av.videoport.value == "HDMI": self.list.append(getConfigListEntry(_("Allow unsupported modes"), config.av.edid_override, _("This option allows you to use all HDMI Modes"))) if config.av.videoport.value == "Scart": self.list.append(getConfigListEntry(_("Color format"), config.av.colorformat, _("Configure which color format should be used on the SCART output."))) if level >= 1: self.list.append(getConfigListEntry(_("WSS on 4:3"), config.av.wss, _("When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen."))) if BoxInfo.getItem("ScartSwitch"): self.list.append(getConfigListEntry(_("Auto scart switching"), config.av.vcrswitch, _("When enabled, your receiver will detect activity on the VCR SCART input."))) if not isinstance(config.av.scaler_sharpness, ConfigNothing) and not isPluginInstalled("VideoEnhancement"): self.list.append(getConfigListEntry(_("Scaler sharpness"), config.av.scaler_sharpness, _("This option configures the picture sharpness."))) if BoxInfo.getItem("havecolorspace"): self.list.append(getConfigListEntry(_("HDMI Colorspace"), config.av.hdmicolorspace, _("This option allows you can config the Colorspace from Auto to RGB"))) if BoxInfo.getItem("havecolorimetry"): self.list.append(getConfigListEntry(_("HDMI Colorimetry"), config.av.hdmicolorimetry, _("This option allows you can config the Colorimetry for HDR"))) if BoxInfo.getItem("havehdmicolordepth"): self.list.append(getConfigListEntry(_("HDMI Colordepth"), config.av.hdmicolordepth, _("This option allows you can config the Colordepth for UHD"))) if BoxInfo.getItem("havehdmihdrtype"): self.list.append(getConfigListEntry(_("HDMI HDR Type"), config.av.hdmihdrtype, _("This option allows you can force the HDR Modes for UHD"))) if BoxInfo.getItem("Canedidchecking"): self.list.append(getConfigListEntry(_("Bypass HDMI EDID Check"), config.av.bypass_edid_checking, _("This option allows you to bypass HDMI EDID check"))) if BoxInfo.getItem("haveboxmode"): self.list.append(getConfigListEntry(_("Change Boxmode to control Hardware Chip Modes*"), config.av.boxmode, _("Switch Mode to enable HDR Modes or PiP Functions"))) if BoxInfo.getItem("HDRSupport"): self.list.append(getConfigListEntry(_("HLG Support"), config.av.hlg_support, _("This option allows you can force the HLG Modes for UHD"))) self.list.append(getConfigListEntry(_("HDR10 Support"), config.av.hdr10_support, _("This option allows you can force the HDR10 Modes for UHD"))) self.list.append(getConfigListEntry(_("Allow 12bit"), config.av.allow_12bit, _("This option allows you can enable or disable the 12 Bit Color Mode"))) self.list.append(getConfigListEntry(_("Allow 10bit"), config.av.allow_10bit, _("This option allows you can enable or disable the 10 Bit Color Mode"))) self["config"].list = self.list self["config"].l.setList(self.list) if config.usage.sort_settings.value: self["config"].list.sort()