def InitSenseWheel(): detected = eQBOXSenseWheel.getInstance().detected() SystemInfo["SenseWheel"] = detected config.sensewheel = ConfigSubsection() def setPanelLedsEnable(configElement): isensewheel.disableSense() config.sensewheel.ledpanelhue.enable = configElement.value config.sensewheel.ledpanelsaturation.enable = configElement.value config.sensewheel.ledpanelvalue.enable = configElement.value isensewheel.setPanelLedsEnable(configElement.value) def setBoardLedsEnable(configElement): isensewheel.disableSense() config.sensewheel.ledboardhue.enable = configElement.value config.sensewheel.ledboardsaturation.enable = configElement.value config.sensewheel.ledboardvalue.enable = configElement.value isensewheel.setBoardLedsEnable(configElement.value) def setPanelLedsHue(configElement): isensewheel.disableSense() isensewheel.setPanelLedsHue(configElement.value) def setPanelLedsSaturation(configElement): isensewheel.disableSense() isensewheel.setPanelLedsSaturation(configElement.value) def setPanelLedsValue(configElement): isensewheel.disableSense() isensewheel.setPanelLedsValue(configElement.value) def setBoardLedsHue(configElement): isensewheel.disableSense() isensewheel.setBoardLedsHue(configElement.value) def setBoardLedsSaturation(configElement): isensewheel.disableSense() isensewheel.setBoardLedsSaturation(configElement.value) def setBoardLedsValue(configElement): isensewheel.disableSense() isensewheel.setBoardLedsValue(configElement.value) def disableSense(configElement): isensewheel.disableSense() def enableSense(configElement): isensewheel.enableSense() def setEnableFlag(configElement): isensewheel.setEnableFlag(configElement.value) def setStandbyPanelLeds(configElement): isensewheel.setStandbyPanelLeds(configElement.value) def setStandbyBoardLeds(configElement): isensewheel.setStandbyBoardLeds(configElement.value) def setStandbyPanel(configElement): isensewheel.setStandbyPanel(configElement.value) def saveAndExitFromSensePlugin(configElement): if (isensewheel.IsFlagSenseEnabled()): isensewheel.enableSense() else: isensewheel.setPanelLedsEnable(False) isensewheel.disableSense() #-< # confirm flag enabled sensewheel isensewheel.ConfirmFlagSenseEnabled() def reloadAndExitFromSensePlugin(configElement): # restore old sense enable situation saved isensewheel.RestoreOrigFlagSenseEnabled() if (isensewheel.IsFlagSenseEnabled()): isensewheel.enableSense() else: isensewheel.setPanelLedsEnable(False) isensewheel.disableSense() #-< # WHEEL ----------------------------------------------------------------------------------- config.sensewheel.ledpanelhue = ConfigSlider(default=150, increment=4, limits=(0, 359)) config.sensewheel.ledpanelhue.addNotifier(setPanelLedsHue) config.sensewheel.ledpanelhue.apply = lambda: setPanelLedsHue( config.sensewheel.ledpanelhue) config.sensewheel.ledpanelhue.addNotifierLoad(reloadAndExitFromSensePlugin) config.sensewheel.ledpanelhue.addNotifierSave(saveAndExitFromSensePlugin) config.sensewheel.ledpanelsaturation = ConfigSlider(default=50, increment=2, limits=(0, 99)) config.sensewheel.ledpanelsaturation.addNotifier(setPanelLedsSaturation) config.sensewheel.ledpanelsaturation.apply = lambda: setPanelLedsSaturation( config.sensewheel.ledpanelsaturation) config.sensewheel.ledpanelsaturation.addNotifierLoad( reloadAndExitFromSensePlugin) config.sensewheel.ledpanelsaturation.addNotifierSave( saveAndExitFromSensePlugin) config.sensewheel.ledpanelvalue = ConfigSlider(default=50, increment=2, limits=(0, 99)) config.sensewheel.ledpanelvalue.addNotifier(setPanelLedsValue) config.sensewheel.ledpanelvalue.apply = lambda: setPanelLedsValue( config.sensewheel.ledpanelvalue) config.sensewheel.ledpanelvalue.addNotifierLoad( reloadAndExitFromSensePlugin) config.sensewheel.ledpanelvalue.addNotifierSave(saveAndExitFromSensePlugin) config.sensewheel.ledpanelenabled = ConfigOnOff() config.sensewheel.ledpanelenabled.addNotifier(setPanelLedsEnable) config.sensewheel.ledpanelenabled.apply = lambda: setPanelLedsEnable( config.sensewheel.ledpanelenabled) config.sensewheel.ledpanelenabled.addNotifierLoad( reloadAndExitFromSensePlugin) config.sensewheel.ledpanelenabled.addNotifierSave( saveAndExitFromSensePlugin) # BOARD ----------------------------------------------------------------------------------- config.sensewheel.ledboardhue = ConfigSlider(default=150, increment=4, limits=(0, 359)) config.sensewheel.ledboardhue.addNotifier(setBoardLedsHue) config.sensewheel.ledboardhue.apply = lambda: setBoardLedsHue( config.sensewheel.ledboardhue) config.sensewheel.ledboardhue.addNotifierLoad(reloadAndExitFromSensePlugin) config.sensewheel.ledboardhue.addNotifierSave(saveAndExitFromSensePlugin) config.sensewheel.ledboardsaturation = ConfigSlider(default=50, increment=2, limits=(0, 99)) config.sensewheel.ledboardsaturation.addNotifier(setBoardLedsSaturation) config.sensewheel.ledboardsaturation.apply = lambda: setBoardLedsSaturation( config.sensewheel.ledboardsaturation) config.sensewheel.ledboardsaturation.addNotifierLoad( reloadAndExitFromSensePlugin) config.sensewheel.ledboardsaturation.addNotifierSave( saveAndExitFromSensePlugin) config.sensewheel.ledboardvalue = ConfigSlider(default=50, increment=2, limits=(0, 99)) config.sensewheel.ledboardvalue.addNotifier(setBoardLedsValue) config.sensewheel.ledboardvalue.apply = lambda: setBoardLedsValue( config.sensewheel.ledboardvalue) config.sensewheel.ledboardvalue.addNotifierLoad( reloadAndExitFromSensePlugin) config.sensewheel.ledboardvalue.addNotifierSave(saveAndExitFromSensePlugin) config.sensewheel.ledboardenabled = ConfigOnOff() config.sensewheel.ledboardenabled.addNotifier(setBoardLedsEnable) config.sensewheel.ledboardenabled.apply = lambda: setBoardLedsEnable( config.sensewheel.ledboardenabled) config.sensewheel.ledpanelenabled.addNotifierLoad( reloadAndExitFromSensePlugin) config.sensewheel.ledpanelenabled.addNotifierSave( saveAndExitFromSensePlugin) # TOUCH ---------------------------------------------------------------------------------- config.sensewheel.enabled = ConfigEnableDisable() config.sensewheel.enabled.addNotifier(setEnableFlag) config.sensewheel.enabled.apply = lambda: setEnableFlag(config.sensewheel. enabled.value) ### Init ### isensewheel.setInitEnableFlag(config.sensewheel.enabled.value) if (isensewheel.IsFlagSenseEnabled()): print("ENABLE") isensewheel.enableSense() else: print("DISABLE") isensewheel.setPanelLedsEnable(False) isensewheel.disableSense() #-< ############ config.sensewheel.enabled.addNotifierLoad(reloadAndExitFromSensePlugin) config.sensewheel.enabled.addNotifierSave(saveAndExitFromSensePlugin) config.sensewheel.standbypanelled = ConfigOnOff() config.sensewheel.standbypanelled.addNotifier(setStandbyPanelLeds) config.sensewheel.standbypanelled.apply = lambda: setStandbyPanelLeds( config.sensewheel.standbypanelled) config.sensewheel.standbypanelled.addNotifierLoad( reloadAndExitFromSensePlugin) config.sensewheel.standbypanelled.addNotifierSave( saveAndExitFromSensePlugin) config.sensewheel.standbyboardled = ConfigOnOff() config.sensewheel.standbyboardled.addNotifier(setStandbyBoardLeds) config.sensewheel.standbyboardled.apply = lambda: setStandbyBoardLeds( config.sensewheel.standbyboardled) config.sensewheel.standbyboardled.addNotifierLoad( reloadAndExitFromSensePlugin) config.sensewheel.standbyboardled.addNotifierSave( saveAndExitFromSensePlugin) config.sensewheel.enablepanelstandby = ConfigOnOff() config.sensewheel.enablepanelstandby.addNotifier(setStandbyPanel) config.sensewheel.enablepanelstandby.apply = lambda: setStandbyPanel( config.sensewheel.enablepanelstandby) config.sensewheel.enablepanelstandby.addNotifierLoad( reloadAndExitFromSensePlugin) config.sensewheel.enablepanelstandby.addNotifierSave( saveAndExitFromSensePlugin)
def InitLcd(): if getBoxType() in ('et4x00', 'et5x00', 'et6x00', 'gb800se', 'gb800solo', 'iqonios300hd', 'mbmicro', 'sf128', 'sf138', 'tmsingle', 'tmnano2super', 'tmnanose', 'tmnanoseplus', 'tmnanosem2', 'tmnanosem2plus', 'tmnanosecombo', 'vusolo'): detected = False else: detected = eDBoxLCD.getInstance().detected() ilcd = LCD() SystemInfo["Display"] = detected config.lcd = ConfigSubsection() if fileExists("/proc/stb/lcd/mode"): f = open("/proc/stb/lcd/mode", "r") can_lcdmodechecking = f.read().strip().split(" ") print 'LCDMiniTV', can_lcdmodechecking f.close() else: can_lcdmodechecking = False if SystemInfo["StandbyLED"]: def setLEDstandby(configElement): ilcd.setLEDStandby(configElement.value) config.usage.standbyLED = ConfigYesNo(default=True) config.usage.standbyLED.addNotifier(setLEDstandby) if SystemInfo["LEDButtons"]: def setLEDnormalstate(configElement): ilcd.setLEDNormalState(configElement.value) def setLEDdeepstandby(configElement): ilcd.setLEDDeepStandbyState(configElement.value) def setLEDblinkingtime(configElement): ilcd.setLEDBlinkingTime(configElement.value) config.lcd.ledblinkingtime = ConfigSlider(default=5, increment=1, limits=(0, 15)) config.lcd.ledblinkingtime.addNotifier(setLEDblinkingtime) config.lcd.ledbrightnessdeepstandby = ConfigSlider(default=1, increment=1, limits=(0, 15)) config.lcd.ledbrightnessdeepstandby.addNotifier(setLEDnormalstate) config.lcd.ledbrightnessdeepstandby.addNotifier(setLEDdeepstandby) config.lcd.ledbrightnessdeepstandby.apply = lambda: setLEDdeepstandby( config.lcd.ledbrightnessdeepstandby) config.lcd.ledbrightnessstandby = ConfigSlider(default=1, increment=1, limits=(0, 15)) config.lcd.ledbrightnessstandby.addNotifier(setLEDnormalstate) config.lcd.ledbrightnessstandby.apply = lambda: setLEDnormalstate( config.lcd.ledbrightnessstandby) config.lcd.ledbrightness = ConfigSlider(default=3, increment=1, limits=(0, 15)) config.lcd.ledbrightness.addNotifier(setLEDnormalstate) config.lcd.ledbrightness.apply = lambda: setLEDnormalstate( config.lcd.ledbrightness) config.lcd.ledbrightness.callNotifiersOnSaveAndCancel = True if detected: config.lcd.scroll_speed = ConfigSelection(default="300", choices=[("500", _("slow")), ("300", _("normal")), ("100", _("fast"))]) config.lcd.scroll_delay = ConfigSelection( default="10000", choices=[("10000", "10 " + _("seconds")), ("20000", "20 " + _("seconds")), ("30000", "30 " + _("seconds")), ("60000", "1 " + _("minute")), ("300000", "5 " + _("minutes")), ("noscrolling", _("off"))]) def setLCDbright(configElement): ilcd.setBright(configElement.value) def setLCDstandbybright(configElement): ilcd.setStandbyBright(configElement.value) def setLCDdimbright(configElement): ilcd.setDimBright(configElement.value) def setLCDdimdelay(configElement): ilcd.setDimDelay(configElement.value) def setLCDcontrast(configElement): ilcd.setContrast(configElement.value) def setLCDinverted(configElement): ilcd.setInverted(configElement.value) def setLCDflipped(configElement): ilcd.setFlipped(configElement.value) def setLCDmode(configElement): ilcd.setMode(configElement.value) def setLCDpower(configElement): ilcd.setPower(configElement.value) def setLCDminitvmode(configElement): ilcd.setLCDMiniTVMode(configElement.value) def setLCDminitvpipmode(configElement): ilcd.setLCDMiniTVPIPMode(configElement.value) def setLCDminitvfps(configElement): ilcd.setLCDMiniTVFPS(configElement.value) standby_default = 0 if not ilcd.isOled(): config.lcd.contrast = ConfigSlider(default=5, limits=(0, 20)) config.lcd.contrast.addNotifier(setLCDcontrast) else: config.lcd.contrast = ConfigNothing() if getBoxType() in ('dm900'): standby_default = 4 else: standby_default = 1 config.lcd.standby = ConfigSlider(default=standby_default, limits=(0, 10)) config.lcd.standby.addNotifier(setLCDbright) config.lcd.standby.apply = lambda: setLCDbright(config.lcd.standby) config.lcd.bright = ConfigSlider( default=SystemInfo["DefaultDisplayBrightness"], limits=(0, 10)) config.lcd.bright.addNotifier(setLCDbright) config.lcd.bright.apply = lambda: setLCDbright(config.lcd.bright) config.lcd.bright.callNotifiersOnSaveAndCancel = True config.lcd.dimbright = ConfigSlider(default=standby_default, limits=(0, 10)) config.lcd.dimbright.addNotifier(setLCDdimbright) config.lcd.dimbright.apply = lambda: setLCDdimbright(config.lcd. dimbright) config.lcd.dimdelay = ConfigSelection(default="0", choices=[ ("5", "5 " + _("seconds")), ("10", "10 " + _("seconds")), ("15", "15 " + _("seconds")), ("20", "20 " + _("seconds")), ("30", "30 " + _("seconds")), ("60", "1 " + _("minute")), ("120", "2 " + _("minutes")), ("300", "5 " + _("minutes")), ("0", _("off")) ]) config.lcd.dimdelay.addNotifier(setLCDdimdelay) config.lcd.invert = ConfigYesNo(default=False) config.lcd.invert.addNotifier(setLCDinverted) def PiconPackChanged(configElement): configElement.save() config.lcd.picon_pack = ConfigYesNo(default=False) config.lcd.picon_pack.addNotifier(PiconPackChanged) config.lcd.flip = ConfigYesNo(default=False) config.lcd.flip.addNotifier(setLCDflipped) if SystemInfo["LcdLiveTV"]: def lcdLiveTvChanged(configElement): setLCDLiveTv(configElement.value) configElement.save() config.lcd.showTv = ConfigYesNo(default=False) config.lcd.showTv.addNotifier(lcdLiveTvChanged) if "live_enable" in SystemInfo["LcdLiveTV"]: config.misc.standbyCounter.addNotifier( standbyCounterChangedLCDLiveTV, initial_call=False) if SystemInfo["LCDMiniTV"] and getBoxType() not in ('gbquad4k', 'gbue4k'): config.lcd.minitvmode = ConfigSelection( [("0", _("normal")), ("1", _("MiniTV")), ("2", _("OSD")), ("3", _("MiniTV with OSD"))], "0") config.lcd.minitvmode.addNotifier(setLCDminitvmode) config.lcd.minitvpipmode = ConfigSelection( [("0", _("off")), ("5", _("PIP")), ("7", _("PIP with OSD"))], "0") config.lcd.minitvpipmode.addNotifier(setLCDminitvpipmode) config.lcd.minitvfps = ConfigSlider(default=30, limits=(0, 30)) config.lcd.minitvfps.addNotifier(setLCDminitvfps) elif can_lcdmodechecking and getBoxType() in ('gbquad4k', 'gbue4k'): # (0:normal, 1:video0, 2:fb, 3:vide0+fb, 4:video1, 5:vide0+video1, 6:video1+fb, 7:video0+video1+fb) config.lcd.minitvmode = ConfigSelection( default="0", choices=[("0", _("normal")), ("1", _("MiniTV") + _(" - video0")), ("3", _("MiniTV with OSD") + _(" - video0")), ("2", _("OSD")), ("4", _("MiniTV") + _(" - video1")), ("6", _("MiniTV with OSD") + _(" - video1")), ("5", _("MiniTV") + _(" - video0+video1")), ("7", _("MiniTV with OSD") + _(" - video0+video1"))]) config.lcd.minitvmode.addNotifier(setLCDminitvmode) config.lcd.minitvpipmode = ConfigSelection(default="0", choices=[ ("0", _("off")), ("4", _("PIP")), ("6", _("PIP with OSD")) ]) config.lcd.minitvpipmode.addNotifier(setLCDminitvpipmode) config.lcd.minitvfps = ConfigSlider(default=30, limits=(0, 30)) config.lcd.minitvfps.addNotifier(setLCDminitvfps) else: config.lcd.minitvmode = ConfigNothing() config.lcd.minitvpipmode = ConfigNothing() config.lcd.minitvfps = ConfigNothing() if SystemInfo["VFD_scroll_repeats"]: def scroll_repeats(el): open(SystemInfo["VFD_scroll_repeats"], "w").write(el.value) choicelist = [("0", _("None")), ("1", _("1X")), ("2", _("2X")), ("3", _("3X")), ("4", _("4X")), ("500", _("Continues"))] config.usage.vfd_scroll_repeats = ConfigSelection( default="3", choices=choicelist) config.usage.vfd_scroll_repeats.addNotifier( scroll_repeats, immediate_feedback=False) if SystemInfo["VFD_scroll_delay"]: def scroll_delay(el): open(SystemInfo["VFD_scroll_delay"], "w").write(str(el.value)) config.usage.vfd_scroll_delay = ConfigSlider(default=150, increment=10, limits=(0, 500)) config.usage.vfd_scroll_delay.addNotifier(scroll_delay, immediate_feedback=False) if SystemInfo["VFD_initial_scroll_delay"]: def initial_scroll_delay(el): open(SystemInfo["VFD_initial_scroll_delay"], "w").write(el.value) choicelist = [("10000", "10 " + _("seconds")), ("20000", "20 " + _("seconds")), ("30000", "30 " + _("seconds")), ("0", _("no delay"))] config.usage.vfd_initial_scroll_delay = ConfigSelection( default="1000", choices=choicelist) config.usage.vfd_initial_scroll_delay.addNotifier( initial_scroll_delay, immediate_feedback=False) if SystemInfo["VFD_final_scroll_delay"]: def final_scroll_delay(el): open(SystemInfo["VFD_final_scroll_delay"], "w").write(el.value) choicelist = [("10000", "10 " + _("seconds")), ("20000", "20 " + _("seconds")), ("30000", "30 " + _("seconds")), ("0", _("no delay"))] config.usage.vfd_final_scroll_delay = ConfigSelection( default="1000", choices=choicelist) config.usage.vfd_final_scroll_delay.addNotifier( final_scroll_delay, immediate_feedback=False) if fileExists("/proc/stb/lcd/show_symbols"): config.lcd.mode = ConfigSelection([("0", _("no")), ("1", _("yes"))], "1") config.lcd.mode.addNotifier(setLCDmode) else: config.lcd.mode = ConfigNothing() if fileExists("/proc/stb/power/vfd"): config.lcd.power = ConfigSelection([("0", _("off")), ("1", _("on"))], "1") config.lcd.power.addNotifier(setLCDpower) else: config.lcd.power = ConfigNothing() else: def doNothing(): pass config.lcd.contrast = ConfigNothing() config.lcd.bright = ConfigNothing() config.lcd.standby = ConfigNothing() config.lcd.bright.apply = lambda: doNothing() config.lcd.standby.apply = lambda: doNothing() config.lcd.mode = ConfigNothing() config.lcd.power = ConfigNothing() config.lcd.ledbrightness = ConfigNothing() config.lcd.ledbrightness.apply = lambda: doNothing() config.lcd.ledbrightnessstandby = ConfigNothing() config.lcd.ledbrightnessstandby.apply = lambda: doNothing() config.lcd.ledbrightnessdeepstandby = ConfigNothing() config.lcd.ledbrightnessdeepstandby.apply = lambda: doNothing() config.lcd.ledblinkingtime = ConfigNothing() config.lcd.picon_pack = ConfigNothing() config.misc.standbyCounter.addNotifier(standbyCounterChanged, initial_call=False)
cmd = "config.inputDevices." + device + ".repeat = ConfigSlider(default=100, increment = 10, limits=(0, 500))" exec cmd cmd = "config.inputDevices." + device + ".repeat.addNotifier(self.inputDevicesRepeatChanged,config.inputDevices." + device + ".repeat)" exec cmd if boxtype == 'odinm9' or boxtype == 'maram9' or boxtype == 'odinm7' or boxtype == 'odinm6': cmd = "config.inputDevices." + device + ".delay = ConfigSlider(default=200, increment = 100, limits=(0, 5000))" else: cmd = "config.inputDevices." + device + ".delay = ConfigSlider(default=700, increment = 100, limits=(0, 5000))" exec cmd cmd = "config.inputDevices." + device + ".delay.addNotifier(self.inputDevicesDelayChanged,config.inputDevices." + device + ".delay)" exec cmd iInputDevices = inputDevices() config.plugins.remotecontroltype = ConfigSubsection() config.plugins.remotecontroltype.rctype = ConfigInteger(default=0) class RcTypeControl(): def __init__(self): if pathExists('/proc/stb/ir/rc/type') and pathExists( '/proc/stb/info/boxtype') and not boxtype.startswith('gb'): self.isSupported = True fd = open('/proc/stb/info/boxtype', 'r') self.boxType = fd.read() fd.close() if config.plugins.remotecontroltype.rctype.value != 0: self.writeRcType(config.plugins.remotecontroltype.rctype.value)
has_scartyuv = False has_yuv = False has_dvi = False has_hdmi = False has_rca = False has_avjack = False has_scart = SystemInfo["HAVESCART"] has_scartyuv = SystemInfo["HAVESCARTYUV"] has_yuv = SystemInfo["HAVEYUV"] has_dvi = SystemInfo["HaveDVI"] has_hdmi = SystemInfo["HAVEHDMI"] has_rca = SystemInfo["HaveRCA"] has_avjack = SystemInfo["HaveAVJACK"] config.av = ConfigSubsection() if getBrandOEM() in ('azbox'): config.av.edid_override = ConfigYesNo(default = True) else: config.av.edid_override = ConfigYesNo(default = False) class AVSwitch: hw_type = HardwareInfo().get_device_name() rates = { } # high-level, use selectable modes. modes = { } # a list of (high-level) modes for a certain port. rates["PAL"] = { "50Hz": { 50: "pal" }, "60Hz": { 60: "pal60" }, "multi": { 50: "pal", 60: "pal60" } } rates["NTSC"] = { "60Hz": { 60: "ntsc" } }
def InitUsageConfig(): config.misc.useNTPminutes = ConfigSelection(default = "30", choices = [("30", "30" + " " +_("minutes")), ("60", _("Hour")), ("1440", _("Once per day"))]) config.misc.remotecontrol_text_support = ConfigYesNo(default = True) config.workaround = ConfigSubsection() config.workaround.blueswitch = ConfigSelection(default = "0", choices = [("0", _("QuickMenu/Extensions")), ("1", _("Extensions/QuickMenu"))]) config.workaround.deeprecord = ConfigYesNo(default = False) config.usage = ConfigSubsection() config.usage.shutdownOK = ConfigBoolean(default = True) config.usage.shutdownNOK_action = ConfigSelection(default = "normal", choices = [("normal", _("just boot")), ("standby", _("goto standby")), ("deepstandby", _("goto deep-standby"))]) config.usage.boot_action = ConfigSelection(default = "normal", choices = [("normal", _("just boot")), ("standby", _("goto standby"))]) config.usage.showdish = ConfigSelection(default = "flashing", choices = [("flashing", _("Flashing")), ("normal", _("Not Flashing")), ("off", _("Off"))]) config.usage.multibouquet = ConfigYesNo(default = True) config.usage.alternative_number_mode = ConfigYesNo(default = False) def alternativeNumberModeChange(configElement): enigma.eDVBDB.getInstance().setNumberingMode(configElement.value) refreshServiceList() config.usage.alternative_number_mode.addNotifier(alternativeNumberModeChange) config.usage.servicetype_icon_mode = ConfigSelection(default = "0", choices = [("0", _("None")), ("1", _("Left from servicename")), ("2", _("Right from servicename"))]) config.usage.servicetype_icon_mode.addNotifier(refreshServiceList) config.usage.service_icon_enable = ConfigYesNo(default = False) config.usage.service_icon_enable.addNotifier(refreshServiceList) config.usage.servicelist_cursor_behavior = ConfigSelection(default = "keep", choices = [ ("standard", _("Standard")), ("keep", _("Keep service")), ("reverseB", _("Reverse bouquet buttons")), ("keep reverseB", _("Keep service") + " + " + _("Reverse bouquet buttons"))]) config.usage.multiepg_ask_bouquet = ConfigYesNo(default = False) config.usage.showpicon = ConfigYesNo(default = True) config.usage.show_dvdplayer = ConfigYesNo(default = False) config.usage.panicbutton = ConfigYesNo(default = False) config.usage.quickzap_bouquet_change = ConfigYesNo(default = False) config.usage.e1like_radio_mode = ConfigYesNo(default = True) choicelist = [] for i in range(1, 11): choicelist.append(("%d" % i, ngettext("%d second", "%d seconds", i) % i)) config.usage.infobar_timeout = ConfigSelection(default = "5", choices = [("0", _("No timeout"))] + choicelist) config.usage.show_infobar_on_zap = ConfigYesNo(default = True) config.usage.show_infobar_on_skip = ConfigYesNo(default = True) config.usage.show_infobar_on_event_change = ConfigYesNo(default = False) config.usage.show_infobar_channel_number = ConfigYesNo(default = False) config.usage.show_infobar_lite = ConfigYesNo(default = False) config.usage.show_infobar_channel_number = ConfigYesNo(default = False) config.usage.show_second_infobar = ConfigSelection(default = "1", choices = [("0", _("Off")), ("1", _("Event Info")), ("2", _("2nd Infobar INFO")), ("3", _("2nd Infobar ECM"))]) config.usage.second_infobar_timeout = ConfigSelection(default = "5", choices = [("0", _("No timeout"))] + choicelist) def showsecondinfobarChanged(configElement): if config.usage.show_second_infobar.getValue() != "INFOBAREPG": SystemInfo["InfoBarEpg"] = True else: SystemInfo["InfoBarEpg"] = False config.usage.show_second_infobar.addNotifier(showsecondinfobarChanged, immediate_feedback = True) config.usage.show_picon_bkgrn = ConfigSelection(default = "transparent", choices = [("none", _("Disabled")), ("transparent", _("Transparent")), ("blue", _("Blue")), ("red", _("Red")), ("black", _("Black")), ("white", _("White")), ("lightgrey", _("Light Grey")), ("grey", _("Grey"))]) config.usage.show_spinner = ConfigYesNo(default = True) config.usage.enable_tt_caching = ConfigYesNo(default = True) config.usage.sort_settings = ConfigYesNo(default = False) config.usage.sort_menus = ConfigYesNo(default = False) config.usage.sort_pluginlist = ConfigYesNo(default = True) config.usage.sort_extensionslist = ConfigYesNo(default = False) config.usage.movieplayer_pvrstate = ConfigYesNo(default = False) choicelist = [] for i in (10, 30): choicelist.append(("%d" % i, ngettext("%d second", "%d seconds", i) % i)) for i in (60, 120, 300, 600, 1200, 1800): m = i / 60 choicelist.append(("%d" % i, ngettext("%d minute", "%d minutes", m) % m)) for i in (3600, 7200, 14400): h = i / 3600 choicelist.append(("%d" % i, ngettext("%d hour", "%d hours", h) % h)) config.usage.hdd_standby = ConfigSelection(default = "300", choices = [("0", _("No standby"))] + choicelist) config.usage.hdd_timer = ConfigYesNo(default = False) config.usage.output_12V = ConfigSelection(default = "do not change", choices = [ ("do not change", _("Do not change")), ("off", _("Off")), ("on", _("On")) ]) config.usage.pip_zero_button = ConfigSelection(default = "standard", choices = [ ("standard", _("Standard")), ("swap", _("Swap PiP and main picture")), ("swapstop", _("Move PiP to main picture")), ("stop", _("Stop PiP")) ]) config.usage.pip_hideOnExit = ConfigSelection(default = "no", choices = [ ("no", _("No")), ("popup", _("With popup")), ("without popup", _("Without popup")) ]) if not os.path.exists(resolveFilename(SCOPE_HDD)): try: os.mkdir(resolveFilename(SCOPE_HDD),0755) except: pass config.usage.default_path = ConfigText(default = resolveFilename(SCOPE_HDD)) if not config.usage.default_path.getValue().endswith('/'): tmpvalue = config.usage.default_path.getValue() config.usage.default_path.setValue(tmpvalue + '/') config.usage.default_path.save() def defaultpathChanged(configElement): tmpvalue = config.usage.default_path.getValue() try: if not os.path.exists(tmpvalue): os.system("mkdir -p %s" %tmpvalue) except: print "Failed to create recording path: %s" %tmpvalue if not config.usage.default_path.getValue().endswith('/'): config.usage.default_path.setValue(tmpvalue + '/') config.usage.default_path.save() config.usage.default_path.addNotifier(defaultpathChanged, immediate_feedback = False) config.usage.timer_path = ConfigText(default = "<default>") config.usage.autorecord_path = ConfigText(default = "<default>") config.usage.instantrec_path = ConfigText(default = "<default>") if not os.path.exists(resolveFilename(SCOPE_TIMESHIFT)): try: os.mkdir(resolveFilename(SCOPE_TIMESHIFT),0755) except: pass config.usage.timeshift_path = ConfigText(default = resolveFilename(SCOPE_TIMESHIFT)) if not config.usage.default_path.getValue().endswith('/'): tmpvalue = config.usage.timeshift_path.getValue() config.usage.timeshift_path.setValue(tmpvalue + '/') config.usage.timeshift_path.save() def timeshiftpathChanged(configElement): if not config.usage.timeshift_path.getValue().endswith('/'): tmpvalue = config.usage.timeshift_path.getValue() config.usage.timeshift_path.setValue(tmpvalue + '/') config.usage.timeshift_path.save() config.usage.timeshift_path.addNotifier(timeshiftpathChanged, immediate_feedback = False) config.usage.allowed_timeshift_paths = ConfigLocations(default = [resolveFilename(SCOPE_TIMESHIFT)]) if not os.path.exists(resolveFilename(SCOPE_AUTORECORD)): try: os.mkdir(resolveFilename(SCOPE_AUTORECORD),0755) except: pass config.usage.autorecord_path = ConfigText(default = resolveFilename(SCOPE_AUTORECORD)) if not config.usage.default_path.getValue().endswith('/'): tmpvalue = config.usage.autorecord_path.getValue() config.usage.autorecord_path.setValue(tmpvalue + '/') config.usage.autorecord_path.save() def autorecordpathChanged(configElement): if not config.usage.autorecord_path.getValue().endswith('/'): tmpvalue = config.usage.autorecord_path.getValue() config.usage.autorecord_path.setValue(tmpvalue + '/') config.usage.autorecord_path.save() config.usage.autorecord_path.addNotifier(autorecordpathChanged, immediate_feedback = False) config.usage.allowed_autorecord_paths = ConfigLocations(default = [resolveFilename(SCOPE_AUTORECORD)]) config.usage.movielist_trashcan = ConfigYesNo(default=True) config.usage.movielist_trashcan_network_clean = ConfigYesNo(default=False) config.usage.movielist_trashcan_days = ConfigSelectionNumber(min = 1, max = 31, stepwidth = 1, default = 8, wraparound = True) config.usage.movielist_trashcan_reserve = ConfigNumber(default = 40) config.usage.on_movie_start = ConfigSelection(default = "ask", choices = [ ("ask", _("Ask user")), ("resume", _("Resume from last position")), ("beginning", _("Start from the beginning")) ]) config.usage.on_movie_stop = ConfigSelection(default = "movielist", choices = [ ("ask", _("Ask user")), ("movielist", _("Return to movie list")), ("quit", _("Return to previous service")) ]) config.usage.on_movie_eof = ConfigSelection(default = "movielist", choices = [ ("ask", _("Ask user")), ("movielist", _("Return to movie list")), ("quit", _("Return to previous service")), ("pause", _("Pause movie at end")), ("playlist", _("Play next (return to movie list)")), ("playlistquit", _("Play next (return to previous service)")), ("loop", _("Continues play (loop)")), ("repeatcurrent", _("Repeat"))]) config.usage.next_movie_msg = ConfigYesNo(default = True) config.usage.leave_movieplayer_onExit = ConfigSelection(default = "no", choices = [ ("no", _("No")), ("popup", _("With popup")), ("without popup", _("Without popup")) ]) config.usage.setup_level = ConfigSelection(default = "expert", choices = [ ("simple", _("Simple")), ("intermediate", _("Intermediate")), ("expert", _("Expert")) ]) config.usage.on_long_powerpress = ConfigSelection(default = "show_menu", choices = [ ("show_menu", _("Show shutdown menu")), ("shutdown", _("Immediate shutdown")), ("standby", _("Standby")) ] ) config.usage.on_short_powerpress = ConfigSelection(default = "standby", choices = [ ("show_menu", _("Show shutdown menu")), ("shutdown", _("Immediate shutdown")), ("standby", _("Standby")) ] ) choicelist = [("0", "Disabled")] for i in (5, 30, 60, 300, 600, 900, 1200, 1800, 2700, 3600): if i < 60: m = ngettext("%d second", "%d seconds", i) % i else: m = abs(i / 60) m = ngettext("%d minute", "%d minutes", m) % m choicelist.append(("%d" % i, m)) config.usage.screen_saver = ConfigSelection(default = "0", choices = choicelist) config.usage.check_timeshift = ConfigYesNo(default = True) config.usage.alternatives_priority = ConfigSelection(default = "0", choices = [ ("0", "DVB-S/-C/-T"), ("1", "DVB-S/-T/-C"), ("2", "DVB-C/-S/-T"), ("3", "DVB-C/-T/-S"), ("4", "DVB-T/-C/-S"), ("5", "DVB-T/-S/-C") ]) nims = [("-1", _("auto"))] for x in nimmanager.nim_slots: nims.append((str(x.slot), x.getSlotName())) config.usage.frontend_priority = ConfigSelection(default = "-1", choices = nims) nims.append(("-2", _("Disabled"))) config.usage.recording_frontend_priority = ConfigSelection(default = "-2", choices = nims) config.misc.disable_background_scan = ConfigYesNo(default = False) config.usage.jobtaksextensions = ConfigYesNo(default = True) config.usage.servicenum_fontsize = ConfigSelectionNumber(default = 0, stepwidth = 1, min = -8, max = 10, wraparound = True) config.usage.servicename_fontsize = ConfigSelectionNumber(default = 0, stepwidth = 1, min = -8, max = 10, wraparound = True) config.usage.serviceinfo_fontsize = ConfigSelectionNumber(default = 0, stepwidth = 1, min = -8, max = 10, wraparound = True) config.usage.serviceitems_per_page = ConfigSelectionNumber(default = 16, stepwidth = 1, min = 3, max = 40, wraparound = True) config.usage.show_servicelist = ConfigYesNo(default = True) config.usage.servicelist_mode = ConfigSelection(default = "standard", choices = [ ("standard", _("Standard")), ("simple", _("Simple")) ] ) config.usage.servicelistpreview_mode = ConfigYesNo(default = False) config.usage.tvradiobutton_mode = ConfigSelection(default="BouquetList", choices = [ ("ChannelList", _("Channel List")), ("BouquetList", _("Bouquet List")), ("MovieList", _("Movie List"))]) config.usage.channelbutton_mode = ConfigSelection(default="0", choices = [ ("0", _("Just change channels")), ("1", _("Channel List")), ("2", _("Bouquet List"))]) config.usage.updownbutton_mode = ConfigSelection(default="1", choices = [ ("0", _("Just change channels")), ("1", _("Channel List"))]) config.usage.okbutton_mode = ConfigSelection(default="0", choices = [ ("0", _("InfoBar")), ("1", _("Channel List"))]) config.usage.show_bouquetalways = ConfigYesNo(default = False) config.usage.show_event_progress_in_servicelist = ConfigSelection(default = 'barright', choices = [ ('barleft', _("Progress bar left")), ('barright', _("Progress bar right")), ('percleft', _("Percentage left")), ('percright', _("Percentage right")), ('no', _("No")) ]) config.usage.show_channel_numbers_in_servicelist = ConfigYesNo(default = True) config.usage.show_channel_jump_in_servicelist = ConfigSelection(default="alpha", choices = [ ("alpha", _("Alpha")), ("number", _("Number"))]) config.usage.show_event_progress_in_servicelist.addNotifier(refreshServiceList) config.usage.show_channel_numbers_in_servicelist.addNotifier(refreshServiceList) config.usage.blinking_display_clock_during_recording = ConfigYesNo(default = False) config.usage.blinking_rec_symbol_during_recording = ConfigYesNo(default = False) config.usage.show_message_when_recording_starts = ConfigYesNo(default = True) config.usage.load_length_of_movies_in_moviellist = ConfigYesNo(default = True) config.usage.show_icons_in_movielist = ConfigSelection(default = 'i', choices = [ ('o', _("Off")), ('p', _("Progress")), ('s', _("Small progress")), ('i', _("Icons")), ]) config.usage.movielist_unseen = ConfigYesNo(default = True) config.usage.swap_snr_on_osd = ConfigYesNo(default = False) config.usage.swap_time_display_on_osd = ConfigSelection(default = "0", choices = [("0", _("Skin Setting")), ("1", _("Mins")), ("2", _("Mins Secs")), ("3", _("Hours Mins")), ("4", _("Hours Mins Secs")), ("5", _("Percentage"))]) config.usage.swap_media_time_display_on_osd = ConfigSelection(default = "0", choices = [("0", _("Skin Setting")), ("1", _("Mins")), ("2", _("Mins Secs")), ("3", _("Hours Mins")), ("4", _("Hours Mins Secs")), ("5", _("Percentage"))]) config.usage.swap_time_remaining_on_osd = ConfigSelection(default = "0", choices = [("0", _("Remaining")), ("1", _("Elapsed")), ("2", _("Elapsed & Remaining")), ("3", _("Remaining & Elapsed"))]) config.usage.elapsed_time_positive_osd = ConfigYesNo(default = False) config.usage.swap_time_display_on_vfd = ConfigSelection(default = "0", choices = [("0", _("Skin Setting")), ("1", _("Mins")), ("2", _("Mins Secs")), ("3", _("Hours Mins")), ("4", _("Hours Mins Secs")), ("5", _("Percentage"))]) config.usage.swap_media_time_display_on_vfd = ConfigSelection(default = "0", choices = [("0", _("Skin Setting")), ("1", _("Mins")), ("2", _("Mins Secs")), ("3", _("Hours Mins")), ("4", _("Hours Mins Secs")), ("5", _("Percentage"))]) config.usage.swap_time_remaining_on_vfd = ConfigSelection(default = "0", choices = [("0", _("Remaining")), ("1", _("Elapsed")), ("2", _("Elapsed & Remaining")), ("3", _("Remaining & Elapsed"))]) config.usage.elapsed_time_positive_vfd = ConfigYesNo(default = False) config.usage.lcd_scroll_delay = ConfigSelection(default = "10000", choices = [ ("10000", "10 " + _("seconds")), ("20000", "20 " + _("seconds")), ("30000", "30 " + _("seconds")), ("60000", "1 " + _("minute")), ("300000", "5 " + _("minutes")), ("noscrolling", _("off"))]) config.usage.lcd_scroll_speed = ConfigSelection(default = "300", choices = [ ("500", _("slow")), ("300", _("normal")), ("100", _("fast"))]) def SpinnerOnOffChanged(configElement): setSpinnerOnOff(int(configElement.value)) config.usage.show_spinner.addNotifier(SpinnerOnOffChanged) def EnableTtCachingChanged(configElement): setEnableTtCachingOnOff(int(configElement.value)) config.usage.enable_tt_caching.addNotifier(EnableTtCachingChanged) def TunerTypePriorityOrderChanged(configElement): setTunerTypePriorityOrder(int(configElement.value)) config.usage.alternatives_priority.addNotifier(TunerTypePriorityOrderChanged, immediate_feedback=False) def PreferredTunerChanged(configElement): setPreferredTuner(int(configElement.value)) config.usage.frontend_priority.addNotifier(PreferredTunerChanged) config.usage.hide_zap_errors = ConfigYesNo(default = True) config.usage.hide_ci_messages = ConfigYesNo(default = True) config.usage.show_cryptoinfo = ConfigSelection([("0", _("Off")),("1", _("One line")),("2", _("Two lines"))], "2") config.usage.show_eit_nownext = ConfigYesNo(default = True) config.usage.show_vcr_scart = ConfigYesNo(default = False) config.epg = ConfigSubsection() config.epg.eit = ConfigYesNo(default = True) config.epg.mhw = ConfigYesNo(default = False) config.epg.freesat = ConfigYesNo(default = True) config.epg.viasat = ConfigYesNo(default = True) config.epg.netmed = ConfigYesNo(default = True) config.misc.showradiopic = ConfigYesNo(default = True) config.misc.bootvideo = ConfigYesNo(default = True) def EpgSettingsChanged(configElement): from enigma import eEPGCache mask = 0xffffffff if not config.epg.eit.getValue(): mask &= ~(eEPGCache.NOWNEXT | eEPGCache.SCHEDULE | eEPGCache.SCHEDULE_OTHER) if not config.epg.mhw.getValue(): mask &= ~eEPGCache.MHW if not config.epg.freesat.getValue(): mask &= ~(eEPGCache.FREESAT_NOWNEXT | eEPGCache.FREESAT_SCHEDULE | eEPGCache.FREESAT_SCHEDULE_OTHER) if not config.epg.viasat.getValue(): mask &= ~eEPGCache.VIASAT if not config.epg.netmed.getValue(): mask &= ~(eEPGCache.NETMED_SCHEDULE | eEPGCache.NETMED_SCHEDULE_OTHER) eEPGCache.getInstance().setEpgSources(mask) config.epg.eit.addNotifier(EpgSettingsChanged) config.epg.mhw.addNotifier(EpgSettingsChanged) config.epg.freesat.addNotifier(EpgSettingsChanged) config.epg.viasat.addNotifier(EpgSettingsChanged) config.epg.netmed.addNotifier(EpgSettingsChanged) config.epg.histminutes = ConfigSelectionNumber(min = 0, max = 120, stepwidth = 15, default = 0, wraparound = True) def EpgHistorySecondsChanged(configElement): from enigma import eEPGCache eEPGCache.getInstance().setEpgHistorySeconds(config.epg.histminutes.getValue()*60) config.epg.histminutes.addNotifier(EpgHistorySecondsChanged) config.epg.cacheloadsched = ConfigYesNo(default = False) config.epg.cachesavesched = ConfigYesNo(default = False) def EpgCacheLoadSchedChanged(configElement): import EpgLoadSave EpgLoadSave.EpgCacheLoadCheck() def EpgCacheSaveSchedChanged(configElement): import EpgLoadSave EpgLoadSave.EpgCacheSaveCheck() config.epg.cacheloadsched.addNotifier(EpgCacheLoadSchedChanged, immediate_feedback = False) config.epg.cachesavesched.addNotifier(EpgCacheSaveSchedChanged, immediate_feedback = False) config.epg.cacheloadtimer = ConfigSelectionNumber(default = 24, stepwidth = 1, min = 1, max = 24, wraparound = True) config.epg.cachesavetimer = ConfigSelectionNumber(default = 24, stepwidth = 1, min = 1, max = 24, wraparound = True) config.osd.dst_left = ConfigSelectionNumber(default = 0, stepwidth = 1, min = 0, max = 720, wraparound = False) config.osd.dst_width = ConfigSelectionNumber(default = 720, stepwidth = 1, min = 0, max = 720, wraparound = False) config.osd.dst_top = ConfigSelectionNumber(default = 0, stepwidth = 1, min = 0, max = 576, wraparound = False) config.osd.dst_height = ConfigSelectionNumber(default = 576, stepwidth = 1, min = 0, max = 576, wraparound = False) config.osd.alpha = ConfigSelectionNumber(default = 255, stepwidth = 1, min = 0, max = 255, wraparound = False) config.av.osd_alpha = NoSave(ConfigNumber(default = 255)) config.osd.threeDmode = ConfigSelection([("off", _("Off")), ("auto", _("Auto")), ("sidebyside", _("Side by Side")),("topandbottom", _("Top and Bottom"))], "auto") config.osd.threeDznorm = ConfigSlider(default = 50, increment = 1, limits = (0, 100)) config.osd.show3dextensions = ConfigYesNo(default = False) choiceoptions = [("mode1", _("Mode 1")), ("mode2", _("Mode 2"))] config.osd.threeDsetmode = ConfigSelection(default = 'mode1' , choices = choiceoptions ) hddchoises = [('/etc/enigma2/', 'Internal Flash')] for p in harddiskmanager.getMountedPartitions(): if os.path.exists(p.mountpoint): d = os.path.normpath(p.mountpoint) if p.mountpoint != '/': hddchoises.append((p.mountpoint, d)) config.misc.epgcachepath = ConfigSelection(default = '/etc/enigma2/', choices = hddchoises) config.misc.epgcachefilename = ConfigText(default='epg', fixed_size=False) config.misc.epgcache_filename = ConfigText(default = (config.misc.epgcachepath.getValue() + config.misc.epgcachefilename.getValue().replace('.dat','') + '.dat')) def EpgCacheChanged(configElement): config.misc.epgcache_filename.setValue(os.path.join(config.misc.epgcachepath.getValue(), config.misc.epgcachefilename.getValue().replace('.dat','') + '.dat')) config.misc.epgcache_filename.save() enigma.eEPGCache.getInstance().setCacheFile(config.misc.epgcache_filename.getValue()) from enigma import eEPGCache epgcache = eEPGCache.getInstance() epgcache.save() if not config.misc.epgcache_filename.getValue().startswith("/etc/enigma2/"): if os.path.exists('/etc/enigma2/' + config.misc.epgcachefilename.getValue().replace('.dat','') + '.dat'): os.remove('/etc/enigma2/' + config.misc.epgcachefilename.getValue().replace('.dat','') + '.dat') config.misc.epgcachepath.addNotifier(EpgCacheChanged, immediate_feedback = False) config.misc.epgcachefilename.addNotifier(EpgCacheChanged, immediate_feedback = False) config.misc.showradiopic = ConfigYesNo(default = True) def setHDDStandby(configElement): for hdd in harddiskmanager.HDDList(): hdd[1].setIdleTime(int(configElement.value)) config.usage.hdd_standby.addNotifier(setHDDStandby, immediate_feedback=False) def set12VOutput(configElement): if configElement.value == "on": enigma.Misc_Options.getInstance().set_12V_output(1) elif configElement.value == "off": enigma.Misc_Options.getInstance().set_12V_output(0) config.usage.output_12V.addNotifier(set12VOutput, immediate_feedback=False) SystemInfo["12V_Output"] = enigma.Misc_Options.getInstance().detected_12V_output() config.usage.keymap = ConfigText(default = eEnv.resolve("${datadir}/enigma2/keymap.xml")) config.network = ConfigSubsection() config.network.AFP_autostart = ConfigYesNo(default = False) config.network.NFS_autostart = ConfigYesNo(default = True) config.network.OpenVPN_autostart = ConfigYesNo(default = False) config.network.Samba_autostart = ConfigYesNo(default = True) config.network.Inadyn_autostart = ConfigYesNo(default = False) config.network.uShare_autostart = ConfigYesNo(default = False) config.softwareupdate = ConfigSubsection() config.softwareupdate.autosettingsbackup = ConfigYesNo(default = False) config.softwareupdate.autoimagebackup = ConfigYesNo(default = False) config.softwareupdate.check = ConfigYesNo(default = False) config.softwareupdate.checktimer = ConfigSelectionNumber(min = 1, max = 48, stepwidth = 1, default = 6, wraparound = True) config.softwareupdate.updatelastcheck = ConfigInteger(default=0) config.softwareupdate.updatefound = NoSave(ConfigBoolean(default = False)) config.softwareupdate.updatebeta = ConfigYesNo(default = False) config.softwareupdate.updateisunstable = ConfigInteger(default=0) config.timeshift = ConfigSubsection() choicelist = [("0", "Disabled")] for i in (2, 3, 4, 5, 10, 20, 30): choicelist.append(("%d" % i, ngettext("%d second", "%d seconds", i) % i)) for i in (60, 120, 300): m = i / 60 choicelist.append(("%d" % i, ngettext("%d minute", "%d minutes", m) % m)) config.timeshift.startdelay = ConfigSelection(default = "0", choices = choicelist) config.timeshift.showinfobar = ConfigYesNo(default = True) config.timeshift.stopwhilerecording = ConfigYesNo(default = False) config.timeshift.favoriteSaveAction = ConfigSelection([("askuser", _("Ask user")),("savetimeshift", _("Save and stop")),("savetimeshiftandrecord", _("Save and record")),("noSave", _("Don't save"))], "askuser") config.timeshift.autorecord = ConfigYesNo(default = False) config.timeshift.isRecording = NoSave(ConfigYesNo(default = False)) config.seek = ConfigSubsection() config.seek.baractivation = ConfigSelection([("leftright", _("Long Left/Right")),("ffrw", _("Long << / >>"))], "leftright") config.seek.sensibility = ConfigSelectionNumber(min = 1, max = 10, stepwidth = 1, default = 10, wraparound = True) config.seek.selfdefined_13 = ConfigSelectionNumber(min = 1, max = 300, stepwidth = 1, default = 15, wraparound = True) config.seek.selfdefined_46 = ConfigSelectionNumber(min = 1, max = 600, stepwidth = 1, default = 60, wraparound = True) config.seek.selfdefined_79 = ConfigSelectionNumber(min = 1, max = 1200, stepwidth = 1, default = 300, wraparound = True) config.seek.speeds_forward = ConfigSet(default=[2, 4, 8, 16, 32, 64, 128], choices=[2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128]) config.seek.speeds_backward = ConfigSet(default=[2, 4, 8, 16, 32, 64, 128], choices=[1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128]) config.seek.speeds_slowmotion = ConfigSet(default=[2, 4, 8], choices=[2, 4, 6, 8, 12, 16, 25]) config.seek.enter_forward = ConfigSelection(default = "2", choices = ["2", "4", "6", "8", "12", "16", "24", "32", "48", "64", "96", "128"]) config.seek.enter_backward = ConfigSelection(default = "1", choices = ["1", "2", "4", "6", "8", "12", "16", "24", "32", "48", "64", "96", "128"]) config.seek.on_pause = ConfigSelection(default = "play", choices = [ ("play", _("Play")), ("step", _("Single step (GOP)")), ("last", _("Last speed")) ]) config.crash = ConfigSubsection() config.crash.details = ConfigYesNo(default = True) config.crash.enabledebug = ConfigYesNo(default = False) config.crash.debugloglimit = ConfigSelectionNumber(min = 1, max = 10, stepwidth = 1, default = 4, wraparound = True) config.crash.daysloglimit = ConfigSelectionNumber(min = 1, max = 30, stepwidth = 1, default = 8, wraparound = True) config.crash.sizeloglimit = ConfigSelectionNumber(min = 1, max = 20, stepwidth = 1, default = 10, wraparound = True) debugpath = [('/home/root/logs/', '/home/root/')] for p in harddiskmanager.getMountedPartitions(): if os.path.exists(p.mountpoint): d = os.path.normpath(p.mountpoint) if p.mountpoint != '/': debugpath.append((p.mountpoint + 'logs/', d)) config.crash.debug_path = ConfigSelection(default = "/home/root/logs/", choices = debugpath) def updatedebug_path(configElement): if not os.path.exists(config.crash.debug_path.getValue()): os.mkdir(config.crash.debug_path.getValue(),0755) config.crash.debug_path.addNotifier(updatedebug_path, immediate_feedback = False) config.usage.timerlist_finished_timer_position = ConfigSelection(default = "end", choices = [("beginning", _("at beginning")), ("end", _("at end"))]) def updateEnterForward(configElement): if not configElement.value: configElement.value = [2] updateChoices(config.seek.enter_forward, configElement.value) config.seek.speeds_forward.addNotifier(updateEnterForward, immediate_feedback = False) def updateEnterBackward(configElement): if not configElement.value: configElement.value = [2] updateChoices(config.seek.enter_backward, configElement.value) config.seek.speeds_backward.addNotifier(updateEnterBackward, immediate_feedback = False) def updateEraseSpeed(el): enigma.eBackgroundFileEraser.getInstance().setEraseSpeed(int(el.getValue())) def updateEraseFlags(el): enigma.eBackgroundFileEraser.getInstance().setEraseFlags(int(el.getValue())) config.misc.erase_speed = ConfigSelection(default="20", choices = [ ("10", "10 MB/s"), ("20", "20 MB/s"), ("50", "50 MB/s"), ("100", "100 MB/s")]) config.misc.erase_speed.addNotifier(updateEraseSpeed, immediate_feedback = False) config.misc.erase_flags = ConfigSelection(default="1", choices = [ ("0", _("Disable")), ("1", _("Internal hdd only")), ("3", _("Everywhere"))]) config.misc.erase_flags.addNotifier(updateEraseFlags, immediate_feedback = False) SystemInfo["ZapMode"] = os.path.exists("/proc/stb/video/zapmode") or os.path.exists("/proc/stb/video/zapping_mode") if SystemInfo["ZapMode"]: try: if os.path.exists("/proc/stb/video/zapping_mode"): zapoptions = [("mute", _("Black screen")), ("hold", _("Hold screen"))] zapfile = "/proc/stb/video/zapping_mode" else: zapoptions = [("mute", _("Black screen")), ("hold", _("Hold screen")), ("mutetilllock", _("Black screen till locked")), ("holdtilllock", _("Hold till locked"))] zapfile = "/proc/stb/video/zapmode" except: zapoptions = [("mute", _("Black screen")), ("hold", _("Hold screen")), ("mutetilllock", _("Black screen till locked")), ("holdtilllock", _("Hold till locked"))] zapfile = "/proc/stb/video/zapmode" def setZapmode(el): try: file = open(zapfile, "w") file.write(el.getValue()) file.close() except: pass config.misc.zapmode = ConfigSelection(default = "mute", choices = zapoptions ) config.misc.zapmode.addNotifier(setZapmode, immediate_feedback = False) config.usage.historymode = ConfigSelection(default = "1", choices = [("0", _("Just zap")), ("1", _("Show menu"))]) config.subtitles = ConfigSubsection() config.subtitles.ttx_subtitle_colors = ConfigSelection(default = "1", choices = [ ("0", _("original")), ("1", _("white")), ("2", _("yellow")) ]) config.subtitles.ttx_subtitle_original_position = ConfigYesNo(default = False) config.subtitles.subtitle_position = ConfigSelection( choices = ["0", "10", "20", "30", "40", "50", "60", "70", "80", "90", "100", "150", "200", "250", "300", "350", "400", "450"], default = "50") config.subtitles.subtitle_alignment = ConfigSelection(choices = [("left", _("left")), ("center", _("center")), ("right", _("right"))], default = "center") config.subtitles.subtitle_rewrap = ConfigYesNo(default = False) config.subtitles.subtitle_borderwidth = ConfigSelection(choices = ["1", "2", "3", "4", "5"], default = "3") config.subtitles.subtitle_fontsize = ConfigSelection(choices = ["16", "18", "20", "22", "24", "26", "28", "30", "32", "34", "36", "38", "40", "42", "44", "46", "48", "50", "52", "54"], default = "34") subtitle_delay_choicelist = [] for i in range(-900000, 1845000, 45000): if i == 0: subtitle_delay_choicelist.append(("0", _("No delay"))) else: subtitle_delay_choicelist.append(("%d" % i, "%2.1f sec" % (i / 90000.))) config.subtitles.subtitle_noPTSrecordingdelay = ConfigSelection(default = "315000", choices = subtitle_delay_choicelist) config.subtitles.dvb_subtitles_yellow = ConfigYesNo(default = False) config.subtitles.dvb_subtitles_original_position = ConfigSelection(default = "0", choices = [("0", _("Original")), ("1", _("Fixed")), ("2", _("Relative"))]) config.subtitles.dvb_subtitles_centered = ConfigYesNo(default = True) config.subtitles.subtitle_bad_timing_delay = ConfigSelection(default = "0", choices = subtitle_delay_choicelist) config.subtitles.dvb_subtitles_backtrans = ConfigSelection(default = "0", choices = [ ("0", _("No transparency")), ("25", "10%"), ("50", "20%"), ("75", "30%"), ("100", "40%"), ("125", "50%"), ("150", "60%"), ("175", "70%"), ("200", "80%"), ("225", "90%"), ("255", _("Full transparency"))]) config.subtitles.pango_subtitle_colors = ConfigSelection(default = "0", choices = [ ("0", _("alternative")), ("1", _("white")), ("2", _("yellow")) ]) config.subtitles.pango_subtitles_delay = ConfigSelection(default = "0", choices = subtitle_delay_choicelist) config.subtitles.pango_subtitles_fps = ConfigSelection(default = "1", choices = [ ("1", _("Original")), ("23976", _("23.976")), ("24000", _("24")), ("25000", _("25")), ("29970", _("29.97")), ("30000", _("30"))]) config.subtitles.pango_autoturnon = ConfigYesNo(default = True) config.autolanguage = ConfigSubsection() audio_language_choices=[ ("---", _("None")), ("und", _("Undetermined")), ("orj dos ory org esl qaa und mis mul ORY ORJ Audio_ORJ", _("Original")), ("ara", _("Arabic")), ("eus baq", _("Basque")), ("bul", _("Bulgarian")), ("hrv", _("Croatian")), ("ces cze", _("Czech")), ("dan", _("Danish")), ("dut ndl Dutch", _("Dutch")), ("eng qaa Englisch", _("English")), ("est", _("Estonian")), ("fin", _("Finnish")), ("fra fre", _("French")), ("deu ger", _("German")), ("ell gre", _("Greek")), ("heb", _("Hebrew")), ("hun", _("Hungarian")), ("ita", _("Italian")), ("lav", _("Latvian")), ("lit", _("Lithuanian")), ("ltz", _("Luxembourgish")), ("nor", _("Norwegian")), ("pol", _("Polish")), ("por", _("Portuguese")), ("fas per", _("Persian")), ("ron rum", _("Romanian")), ("rus", _("Russian")), ("srp", _("Serbian")), ("slk slo", _("Slovak")), ("slv", _("Slovenian")), ("spa", _("Spanish")), ("swe", _("Swedish")), ("tha", _("Thai")), ("tur Audio_TUR", _("Turkish"))] def setEpgLanguage(configElement): enigma.eServiceEvent.setEPGLanguage(configElement.value) config.autolanguage.audio_epglanguage = ConfigSelection(audio_language_choices[:1] + audio_language_choices [2:], default="---") config.autolanguage.audio_epglanguage.addNotifier(setEpgLanguage) def setEpgLanguageAlternative(configElement): enigma.eServiceEvent.setEPGLanguageAlternative(configElement.value) config.autolanguage.audio_epglanguage_alternative = ConfigSelection(audio_language_choices[:1] + audio_language_choices [2:], default="---") config.autolanguage.audio_epglanguage_alternative.addNotifier(setEpgLanguageAlternative) config.autolanguage.audio_autoselect1 = ConfigSelection(choices=audio_language_choices, default="---") config.autolanguage.audio_autoselect2 = ConfigSelection(choices=audio_language_choices, default="---") config.autolanguage.audio_autoselect3 = ConfigSelection(choices=audio_language_choices, default="---") config.autolanguage.audio_autoselect4 = ConfigSelection(choices=audio_language_choices, default="---") config.autolanguage.audio_defaultac3 = ConfigYesNo(default = False) config.autolanguage.audio_usecache = ConfigYesNo(default = True) subtitle_language_choices = audio_language_choices[:1] + audio_language_choices [2:] config.autolanguage.subtitle_autoselect1 = ConfigSelection(choices=subtitle_language_choices, default="---") config.autolanguage.subtitle_autoselect2 = ConfigSelection(choices=subtitle_language_choices, default="---") config.autolanguage.subtitle_autoselect3 = ConfigSelection(choices=subtitle_language_choices, default="---") config.autolanguage.subtitle_autoselect4 = ConfigSelection(choices=subtitle_language_choices, default="---") config.autolanguage.subtitle_hearingimpaired = ConfigYesNo(default = False) config.autolanguage.subtitle_defaultimpaired = ConfigYesNo(default = False) config.autolanguage.subtitle_defaultdvb = ConfigYesNo(default = False) config.autolanguage.subtitle_usecache = ConfigYesNo(default = True) config.autolanguage.equal_languages = ConfigSelection(default = "15", choices = [ ("0", _("None")),("1", "1"),("2", "2"),("3", "1,2"), ("4", "3"),("5", "1,3"),("6", "2,3"),("7", "1,2,3"), ("8", "4"),("9", "1,4"),("10", "2,4"),("11", "1,2,4"), ("12", "3,4"),("13", "1,3,4"),("14", "2,3,4"),("15", _("All"))]) config.logmanager = ConfigSubsection() config.logmanager.showinextensions = ConfigYesNo(default = False) config.logmanager.user = ConfigText(default='', fixed_size=False) config.logmanager.useremail = ConfigText(default='', fixed_size=False) config.logmanager.usersendcopy = ConfigYesNo(default = True) config.logmanager.path = ConfigText(default = "/") config.logmanager.additionalinfo = NoSave(ConfigText(default = "")) config.logmanager.sentfiles = ConfigLocations(default='') config.plisettings = ConfigSubsection() config.plisettings.Subservice = ConfigYesNo(default = True) config.plisettings.ColouredButtons = ConfigYesNo(default = False) config.plisettings.InfoBarEpg_mode = ConfigSelection(default="3", choices = [ ("0", _("as plugin in extended bar")), ("1", _("with long OK press")), ("2", _("with exit button")), ("3", _("with left/right buttons"))]) if fileExists("/usr/lib/enigma2/python/Plugins/Extensions/CoolTVGuide/plugin.pyo"): config.plisettings.PLIEPG_mode = ConfigSelection(default="cooltvguide", choices = [ ("pliepg", _("Show Graphical EPG")), ("single", _("Show Single EPG")), ("multi", _("Show Multi EPG")), ("eventview", _("Show Eventview")), ("merlinepgcenter", _("Show Merlin EPG Center")), ("cooltvguide", _("Show CoolTVGuide"))]) config.plisettings.PLIINFO_mode = ConfigSelection(default="coolinfoguide", choices = [ ("eventview", _("Show Eventview")), ("epgpress", _("Show EPG")), ("single", _("Show Single EPG")), ("coolsingleguide", _("Show CoolSingleGuide")), ("coolinfoguide", _("Show CoolInfoGuide")), ("cooltvguide", _("Show CoolTVGuide"))]) else: config.plisettings.PLIEPG_mode = ConfigSelection(default="pliepg", choices = [ ("pliepg", _("Show Graphical EPG")), ("single", _("Show Single EPG")), ("multi", _("Show Multi EPG")), ("eventview", _("Show Eventview")), ("merlinepgcenter", _("Show Merlin EPG Center"))]) config.plisettings.PLIINFO_mode = ConfigSelection(default="eventview", choices = [ ("eventview", _("Show Eventview")), ("epgpress", _("Show EPG")), ("single", _("Show Single EPG"))]) config.epgselection = ConfigSubsection() config.epgselection.sort = ConfigSelection(default="0", choices = [("0", _("Time")),("1", _("Alphanumeric"))]) config.epgselection.overjump = ConfigYesNo(default = False) config.epgselection.infobar_type_mode = ConfigSelection(choices = [("graphics",_("Multi EPG")), ("single", _("Single EPG"))], default = "graphics") if SystemInfo.get("NumVideoDecoders", 1) > 1: config.epgselection.infobar_preview_mode = ConfigSelection(choices = [("0",_("Disabled")), ("1", _("Fullscreen")), ("2", _("PiP"))], default = "1") else: config.epgselection.infobar_preview_mode = ConfigSelection(choices = [("0",_("Disabled")), ("1", _("Fullscreen"))], default = "1") config.epgselection.infobar_ok = ConfigSelection(choices = [("Zap",_("Zap")), ("Zap + Exit", _("Zap + Exit"))], default = "Zap") config.epgselection.infobar_oklong = ConfigSelection(choices = [("Zap",_("Zap")), ("Zap + Exit", _("Zap + Exit"))], default = "Zap + Exit") config.epgselection.infobar_itemsperpage = ConfigSelectionNumber(default = 2, stepwidth = 1, min = 1, max = 4, wraparound = True) if SystemInfo.get("NumVideoDecoders", 1) > 1: if about.getCPUString() in ('BCM7346B2', 'BCM7425B2'): previewdefault = "2" else: previewdefault = "1" config.epgselection.infobar_preview_mode = ConfigSelection(choices = [("0",_("Disabled")), ("1", _("Fullscreen")), ("2", _("PiP"))], default = previewdefault) else: config.epgselection.infobar_preview_mode = ConfigSelection(choices = [("0",_("Disabled")), ("1", _("Fullscreen"))], default = "1") config.epgselection.infobar_roundto = ConfigSelection(default = "15", choices = [("15", _("%d minutes") % 15), ("30", _("%d minutes") % 30), ("60", _("%d minutes") % 60)]) config.epgselection.infobar_prevtime = ConfigClock(default = time()) config.epgselection.infobar_prevtimeperiod = ConfigSelection(default = "300", choices = [("60", _("%d minutes") % 60), ("90", _("%d minutes") % 90), ("120", _("%d minutes") % 120), ("150", _("%d minutes") % 150), ("180", _("%d minutes") % 180), ("210", _("%d minutes") % 210), ("240", _("%d minutes") % 240), ("270", _("%d minutes") % 270), ("300", _("%d minutes") % 300)]) config.epgselection.infobar_primetimehour = ConfigSelectionNumber(default = 20, stepwidth = 1, min = 00, max = 23, wraparound = True) config.epgselection.infobar_primetimemins = ConfigSelectionNumber(default = 00, stepwidth = 1, min = 00, max = 59, wraparound = True) config.epgselection.infobar_servicetitle_mode = ConfigSelection(default = "servicename", choices = [("servicename", _("Service Name")),("picon", _("Picon")),("picon+servicename", _("Picon and Service Name")) ]) config.epgselection.infobar_servfs = ConfigSelectionNumber(default = 0, stepwidth = 1, min = -8, max = 10, wraparound = True) config.epgselection.infobar_eventfs = ConfigSelectionNumber(default = 0, stepwidth = 1, min = -8, max = 10, wraparound = True) config.epgselection.infobar_timelinefs = ConfigSelectionNumber(default = 0, stepwidth = 1, min = -8, max = 10, wraparound = True) config.epgselection.infobar_timeline24h = ConfigYesNo(default = True) config.epgselection.infobar_servicewidth = ConfigSelectionNumber(default = 250, stepwidth = 1, min = 70, max = 500, wraparound = True) config.epgselection.infobar_piconwidth = ConfigSelectionNumber(default = 100, stepwidth = 1, min = 70, max = 500, wraparound = True) config.epgselection.enhanced_preview_mode = ConfigYesNo(default = True) config.epgselection.enhanced_ok = ConfigSelection(choices = [("Zap",_("Zap")), ("Zap + Exit", _("Zap + Exit"))], default = "Zap") config.epgselection.enhanced_oklong = ConfigSelection(choices = [("Zap",_("Zap")), ("Zap + Exit", _("Zap + Exit"))], default = "Zap + Exit") config.epgselection.enhanced_eventfs = ConfigSelectionNumber(default = 0, stepwidth = 1, min = -8, max = 10, wraparound = True) config.epgselection.enhanced_itemsperpage = ConfigSelectionNumber(default = 18, stepwidth = 1, min = 12, max = 40, wraparound = True) config.epgselection.multi_showbouquet = ConfigYesNo(default = False) config.epgselection.multi_preview_mode = ConfigYesNo(default = True) config.epgselection.multi_ok = ConfigSelection(choices = [("Zap",_("Zap")), ("Zap + Exit", _("Zap + Exit"))], default = "Zap") config.epgselection.multi_oklong = ConfigSelection(choices = [("Zap",_("Zap")), ("Zap + Exit", _("Zap + Exit"))], default = "Zap + Exit") config.epgselection.multi_eventfs = ConfigSelectionNumber(default = 0, stepwidth = 1, min = -8, max = 10, wraparound = True) config.epgselection.multi_itemsperpage = ConfigSelectionNumber(default = 18, stepwidth = 1, min = 12, max = 40, wraparound = True) config.epgselection.graph_showbouquet = ConfigYesNo(default = False) config.epgselection.graph_preview_mode = ConfigYesNo(default = True) config.epgselection.graph_type_mode = ConfigSelection(choices = [("graphics",_("Graphics")), ("text", _("Text"))], default = "graphics") config.epgselection.graph_ok = ConfigSelection(choices = [("Zap",_("Zap")), ("Zap + Exit", _("Zap + Exit"))], default = "Zap") config.epgselection.graph_oklong = ConfigSelection(choices = [("Zap",_("Zap")), ("Zap + Exit", _("Zap + Exit"))], default = "Zap + Exit") config.epgselection.graph_info = ConfigSelection(choices = [("Channel Info", _("Channel Info")), ("Single EPG", _("Single EPG"))], default = "Channel Info") config.epgselection.graph_infolong = ConfigSelection(choices = [("Channel Info", _("Channel Info")), ("Single EPG", _("Single EPG"))], default = "Single EPG") config.epgselection.graph_roundto = ConfigSelection(default = "15", choices = [("15", _("%d minutes") % 15), ("30", _("%d minutes") % 30), ("60", _("%d minutes") % 60)]) config.epgselection.graph_prevtime = ConfigClock(default = time()) config.epgselection.graph_prevtimeperiod = ConfigSelection(default = "180", choices = [("60", _("%d minutes") % 60), ("90", _("%d minutes") % 90), ("120", _("%d minutes") % 120), ("150", _("%d minutes") % 150), ("180", _("%d minutes") % 180), ("210", _("%d minutes") % 210), ("240", _("%d minutes") % 240), ("270", _("%d minutes") % 270), ("300", _("%d minutes") % 300)]) config.epgselection.graph_primetimehour = ConfigSelectionNumber(default = 20, stepwidth = 1, min = 00, max = 23, wraparound = True) config.epgselection.graph_primetimemins = ConfigSelectionNumber(default = 00, stepwidth = 1, min = 00, max = 59, wraparound = True) config.epgselection.graph_servicetitle_mode = ConfigSelection(default = "picon+servicename", choices = [("servicename", _("Service Name")),("picon", _("Picon")),("picon+servicename", _("Picon and Service Name")) ]) config.epgselection.graph_channel1 = ConfigYesNo(default = False) config.epgselection.graph_servfs = ConfigSelectionNumber(default = 0, stepwidth = 1, min = -8, max = 10, wraparound = True) config.epgselection.graph_eventfs = ConfigSelectionNumber(default = 0, stepwidth = 1, min = -8, max = 10, wraparound = True) config.epgselection.graph_timelinefs = ConfigSelectionNumber(default = 0, stepwidth = 1, min = -8, max = 10, wraparound = True) config.epgselection.graph_timeline24h = ConfigYesNo(default = True) config.epgselection.graph_itemsperpage = ConfigSelectionNumber(default = 8, stepwidth = 1, min = 3, max = 16, wraparound = True) config.epgselection.graph_pig = ConfigYesNo(default = True) config.epgselection.graph_heightswitch = NoSave(ConfigYesNo(default = False)) config.epgselection.graph_servicewidth = ConfigSelectionNumber(default = 250, stepwidth = 1, min = 70, max = 500, wraparound = True) config.epgselection.graph_piconwidth = ConfigSelectionNumber(default = 100, stepwidth = 1, min = 70, max = 500, wraparound = True) config.oscaminfo = ConfigSubsection() config.oscaminfo.showInExtensions = ConfigYesNo(default=False) config.oscaminfo.userdatafromconf = ConfigYesNo(default = False) config.oscaminfo.autoupdate = ConfigYesNo(default = False) config.oscaminfo.username = ConfigText(default = "username", fixed_size = False, visible_width=12) config.oscaminfo.password = ConfigPassword(default = "password", fixed_size = False) config.oscaminfo.ip = ConfigIP( default = [ 127,0,0,1 ], auto_jump=True) config.oscaminfo.port = ConfigInteger(default = 16002, limits=(0,65536) ) config.oscaminfo.intervall = ConfigSelectionNumber(min = 1, max = 600, stepwidth = 1, default = 10, wraparound = True) SystemInfo["OScamInstalled"] = False config.cccaminfo = ConfigSubsection() config.cccaminfo.showInExtensions = ConfigYesNo(default=False) config.cccaminfo.serverNameLength = ConfigSelectionNumber(min = 10, max = 100, stepwidth = 1, default = 22, wraparound = True) config.cccaminfo.name = ConfigText(default="Profile", fixed_size=False) config.cccaminfo.ip = ConfigText(default="192.168.2.12", fixed_size=False) config.cccaminfo.username = ConfigText(default="", fixed_size=False) config.cccaminfo.password = ConfigText(default="", fixed_size=False) config.cccaminfo.port = ConfigInteger(default=16001, limits=(1, 65535)) config.cccaminfo.profile = ConfigText(default="", fixed_size=False) config.cccaminfo.ecmInfoEnabled = ConfigYesNo(default=True) config.cccaminfo.ecmInfoTime = ConfigSelectionNumber(min = 1, max = 10, stepwidth = 1, default = 5, wraparound = True) config.cccaminfo.ecmInfoForceHide = ConfigYesNo(default=True) config.cccaminfo.ecmInfoPositionX = ConfigInteger(default=50) config.cccaminfo.ecmInfoPositionY = ConfigInteger(default=50) config.cccaminfo.blacklist = ConfigText(default="/media/cf/CCcamInfo.blacklisted", fixed_size=False) config.cccaminfo.profiles = ConfigText(default="/media/cf/CCcamInfo.profiles", fixed_size=False) config.streaming = ConfigSubsection() config.streaming.stream_ecm = ConfigYesNo(default = False) config.streaming.descramble = ConfigYesNo(default = True) config.streaming.stream_eit = ConfigYesNo(default = True) config.streaming.stream_ait = ConfigYesNo(default = True) config.pluginbrowser = ConfigSubsection() config.pluginbrowser.po = ConfigYesNo(default = False) config.pluginbrowser.src = ConfigYesNo(default = False)
def InitLcd(): detected = eDBoxLCD.getInstance().detected() SystemInfo["Display"] = detected config.lcd = ConfigSubsection() if detected: def setLCDbright(configElement): ilcd.setBright(configElement.value) def setLCDcontrast(configElement): ilcd.setContrast(configElement.value) def setLCDinverted(configElement): ilcd.setInverted(configElement.value) def setLCDflipped(configElement): ilcd.setFlipped(configElement.value) def setLCDpower(configElement): ilcd.setPower(configElement.getValue()) def setLCDrepeat(configElement): ilcd.setRepeat(configElement.getValue()) def setLCDscrollspeed(configElement): ilcd.setScrollspeed(configElement.getValue()) standby_default = 0 ilcd = LCD() if not ilcd.isOled(): config.lcd.contrast = ConfigSlider(default=5, limits=(0, 20)) config.lcd.contrast.addNotifier(setLCDcontrast) else: config.lcd.contrast = ConfigNothing() standby_default = 1 config.lcd.standby = ConfigSlider(default=standby_default, limits=(0, 4)) config.lcd.standby.addNotifier(setLCDbright) config.lcd.standby.apply = lambda: setLCDbright(config.lcd.standby) config.lcd.bright = ConfigSlider(default=4, limits=(0, 4)) config.lcd.bright.addNotifier(setLCDbright) config.lcd.bright.apply = lambda: setLCDbright(config.lcd.bright) config.lcd.bright.callNotifiersOnSaveAndCancel = True config.lcd.invert = ConfigYesNo(default=False) config.lcd.invert.addNotifier(setLCDinverted) config.lcd.flip = ConfigYesNo(default=False) config.lcd.flip.addNotifier(setLCDflipped) config.lcd.scrollspeed = ConfigSlider(default=150, increment=10, limits=(0, 500)) config.lcd.scrollspeed.addNotifier(setLCDscrollspeed) config.lcd.repeat = ConfigSelection([("0", _("None")), ("1", _("1X")), ("2", _("2X")), ("3", _("3X")), ("4", _("4X")), ("500", _("Continues"))], "3") config.lcd.repeat.addNotifier(setLCDrepeat) config.lcd.power = ConfigSelection([("0", _("No")), ("1", _("Yes"))], "1") config.lcd.power.addNotifier(setLCDpower) else: def doNothing(): pass config.lcd.contrast = ConfigNothing() config.lcd.bright = ConfigNothing() config.lcd.standby = ConfigNothing() config.lcd.bright.apply = lambda: doNothing() config.lcd.standby.apply = lambda: doNothing() config.lcd.power = ConfigNothing() config.lcd.repeat = ConfigNothing() config.lcd.scrollspeed = ConfigNothing() config.misc.standbyCounter.addNotifier(standbyCounterChanged, initial_call=False)
def InitLcd(): detected = eDBoxLCD.getInstance() and eDBoxLCD.getInstance().detected() config.lcd = ConfigSubsection() if detected: def setLCDbright(configElement): ilcd.setBright(configElement.value) def setLCDcontrast(configElement): ilcd.setContrast(configElement.value) def setLCDinverted(configElement): ilcd.setInverted(configElement.value) def setLCDflipped(configElement): ilcd.setFlipped(configElement.value) standby_default = 0 ilcd = LCD() if not ilcd.isOled(): config.lcd.contrast = ConfigSlider(default=5, limits=(0, 20)) config.lcd.contrast.addNotifier(setLCDcontrast) else: config.lcd.contrast = ConfigNothing() standby_default = 1 config.lcd.standby = ConfigSlider(default=standby_default, limits=(0, 10)) config.lcd.standby.addNotifier(setLCDbright) config.lcd.standby.apply = lambda: setLCDbright(config.lcd.standby) config.lcd.bright = ConfigSlider(default=5, limits=(0, 10)) config.lcd.bright.addNotifier(setLCDbright) config.lcd.bright.apply = lambda: setLCDbright(config.lcd.bright) config.lcd.bright.callNotifiersOnSaveAndCancel = True config.lcd.invert = ConfigYesNo(default=False) config.lcd.invert.addNotifier(setLCDinverted) config.lcd.flip = ConfigYesNo(default=False) config.lcd.flip.addNotifier(setLCDflipped) if SystemInfo["LedPowerColor"]: def setLedPowerColor(configElement): open(SystemInfo["LedPowerColor"], "w").write(configElement.value) config.lcd.ledpowercolor = ConfigSelection(default="1", choices=[ ("0", _("off")), ("1", _("blue")), ("2", _("red")), ("3", _("violet")) ]) config.lcd.ledpowercolor.addNotifier(setLedPowerColor) if SystemInfo["LedStandbyColor"]: def setLedStandbyColor(configElement): open(SystemInfo["LedStandbyColor"], "w").write(configElement.value) config.lcd.ledstandbycolor = ConfigSelection(default="3", choices=[ ("0", _("off")), ("1", _("blue")), ("2", _("red")), ("3", _("violet")) ]) config.lcd.ledstandbycolor.addNotifier(setLedStandbyColor) if SystemInfo["LedSuspendColor"]: def setLedSuspendColor(configElement): open(SystemInfo["LedSuspendColor"], "w").write(configElement.value) config.lcd.ledsuspendcolor = ConfigSelection(default="2", choices=[ ("0", _("off")), ("1", _("blue")), ("2", _("red")), ("3", _("violet")) ]) config.lcd.ledsuspendcolor.addNotifier(setLedSuspendColor) if SystemInfo["Power4x7On"]: def setPower4x7On(configElement): open(SystemInfo["Power4x7On"], "w").write(configElement.value) config.lcd.power4x7on = ConfigSelection(default="on", choices=[("off", _("Off")), ("on", _("On"))]) config.lcd.power4x7on.addNotifier(setPower4x7On) if SystemInfo["Power4x7Standby"]: def setPower4x7Standby(configElement): open(SystemInfo["Power4x7Standby"], "w").write(configElement.value) config.lcd.power4x7standby = ConfigSelection(default="on", choices=[ ("off", _("Off")), ("on", _("On")) ]) config.lcd.power4x7standby.addNotifier(setPower4x7Standby) if SystemInfo["Power4x7Suspend"]: def setPower4x7Suspend(configElement): open(SystemInfo["Power4x7Suspend"], "w").write(configElement.value) config.lcd.power4x7suspend = ConfigSelection(default="off", choices=[ ("off", _("Off")), ("on", _("On")) ]) config.lcd.power4x7suspend.addNotifier(setPower4x7Suspend) if SystemInfo["LcdLiveTV"]: def lcdLiveTvChanged(configElement): setLCDLiveTv(configElement.value) configElement.save() config.lcd.showTv = ConfigYesNo(default=False) config.lcd.showTv.addNotifier(lcdLiveTvChanged) if "live_enable" in SystemInfo["LcdLiveTV"]: config.misc.standbyCounter.addNotifier( standbyCounterChangedLCDLiveTV, initial_call=False) else: def doNothing(): pass config.lcd.contrast = ConfigNothing() config.lcd.bright = ConfigNothing() config.lcd.standby = ConfigNothing() config.lcd.bright.apply = lambda: doNothing() config.lcd.standby.apply = lambda: doNothing() config.misc.standbyCounter.addNotifier(standbyCounterChanged, initial_call=False)
def InitAVSwitch(): config.av = ConfigSubsection() config.av.yuvenabled = ConfigBoolean(default=True) colorformat_choices = {"cvbs": _("CVBS"), "rgb": _("RGB"), "svideo": _("S-Video")} # when YUV is not enabled, don't let the user select it if config.av.yuvenabled.value: colorformat_choices["yuv"] = _("YPbPr") config.av.colorformat = ConfigSelection(choices=colorformat_choices, default="rgb") config.av.aspectratio = ConfigSelection(choices={ "4_3_letterbox": _("4:3 Letterbox"), "4_3_panscan": _("4:3 PanScan"), "16_9": _("16:9"), "16_9_always": _("16:9 always"), "16_10_letterbox": _("16:10 Letterbox"), "16_10_panscan": _("16:10 PanScan"), "16_9_letterbox": _("16:9 Letterbox")}, default = "16_9") config.av.aspect = ConfigSelection(choices={ "4_3": _("4:3"), "16_9": _("16:9"), "16_10": _("16:10"), "auto": _("Automatic")}, default = "auto") policy2_choices = { # TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. "letterbox": _("Letterbox"), # TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term "panscan": _("Pan&scan"), # TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) "scale": _("Just scale")} if os.path.exists("/proc/stb/video/policy2_choices") and "auto" in open("/proc/stb/video/policy2_choices").readline(): # TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. policy2_choices.update({"auto": _("Auto")}) # config.av.policy_169 = ConfigSelection(choices=policy2_choices, default = "letterbox") config.av.policy_169 = ConfigSelection(choices=policy2_choices, default = "scale" ) policy_choices = { # TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. "pillarbox": _("Pillarbox"), # TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term "panscan": _("Pan&scan"), # TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) "nonlinear": _("Nonlinear"), # TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) "scale": _("Just scale")} if os.path.exists("/proc/stb/video/policy_choices") and "auto" in open("/proc/stb/video/policy_choices").readline(): # TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. policy_choices.update({"auto": _("Auto")}) # config.av.policy_43 = ConfigSelection(choices=policy_choices, default = "pillarbox") config.av.policy_43 = ConfigSelection(choices=policy_choices, default = "scale") config.av.tvsystem = ConfigSelection(choices = {"pal": _("PAL"), "ntsc": _("NTSC"), "multinorm": _("multinorm")}, default="pal") config.av.wss = ConfigEnableDisable(default = True) config.av.generalAC3delay = ConfigSelectionNumber(-1000, 1000, 5, default = 0) config.av.generalPCMdelay = ConfigSelectionNumber(-1000, 1000, 5, default = 0) config.av.vcrswitch = ConfigEnableDisable(default = False) iAVSwitch = AVSwitch() def setColorFormat(configElement): map = {"cvbs": 0, "rgb": 1, "svideo": 2, "yuv": 3} iAVSwitch.setColorFormat(map[configElement.value]) def setAspectRatio(configElement): map = {"4_3_letterbox": 0, "4_3_panscan": 1, "16_9": 2, "16_9_always": 3, "16_10_letterbox": 4, "16_10_panscan": 5, "16_9_letterbox" : 6} iAVSwitch.setAspectRatio(map[configElement.value]) def setSystem(configElement): map = {"pal": 0, "ntsc": 1, "multinorm" : 2} iAVSwitch.setSystem(map[configElement.value]) def setWSS(configElement): iAVSwitch.setAspectWSS() # this will call the "setup-val" initial config.av.colorformat.addNotifier(setColorFormat) config.av.aspectratio.addNotifier(setAspectRatio) config.av.tvsystem.addNotifier(setSystem) config.av.wss.addNotifier(setWSS) iAVSwitch.setInput("ENCODER") # init on startup SystemInfo["ScartSwitch"] = eAVSwitch.getInstance().haveScartSwitch() try: can_downmix = "downmix" in open("/proc/stb/audio/ac3_choices", "r").read() except: can_downmix = False SystemInfo["CanDownmixAC3"] = can_downmix if can_downmix: def setAC3Downmix(configElement): open("/proc/stb/audio/ac3", "w").write(configElement.value and "downmix" or "passthrough") config.av.downmix_ac3 = ConfigYesNo(default = True) config.av.downmix_ac3.addNotifier(setAC3Downmix) try: can_osd_alpha = open("/proc/stb/video/alpha", "r") and True or False except: can_osd_alpha = False SystemInfo["CanChangeOsdAlpha"] = can_osd_alpha def setAlpha(config): open("/proc/stb/video/alpha", "w").write(str(config.value)) if can_osd_alpha: config.av.osd_alpha = ConfigSlider(default=255, limits=(0,255)) config.av.osd_alpha.addNotifier(setAlpha) if os.path.exists("/proc/stb/vmpeg/0/pep_scaler_sharpness"): def setScaler_sharpness(config): myval = int(config.value) try: print "--> setting scaler_sharpness to: %0.8X" % myval open("/proc/stb/vmpeg/0/pep_scaler_sharpness", "w").write("%0.8X" % myval) open("/proc/stb/vmpeg/0/pep_apply", "w").write("1") except IOError: print "couldn't write pep_scaler_sharpness" config.av.scaler_sharpness = ConfigSlider(default=13, limits=(0,26)) config.av.scaler_sharpness.addNotifier(setScaler_sharpness) else: config.av.scaler_sharpness = NoSave(ConfigNothing())
def InitLcd(): if getBoxType() in ( 'gbx34k', 'force4', 'alien5', 'viperslim', 'lunix', 'lunix4k', 'purehdse', 'vipert2c', 'evoslimse', 'evoslimt2c', 'valalinux', 'tmtwin4k', 'tmnanom3', 'mbmicrov2', 'revo4k', 'force3uhd', 'force2nano', 'evoslim', 'wetekplay', 'wetekplay2', 'wetekhub', 'ultrabox', 'novaip', 'dm520', 'dm525', 'purehd', 'mutant11', 'xpeedlxpro', 'zgemmai55', 'sf98', 'et7x00mini', 'xpeedlxcs2', 'xpeedlxcc', 'e4hd', 'e4hdhybrid', 'mbmicro', 'beyonwizt2', 'amikomini', 'dynaspark', 'amiko8900', 'sognorevolution', 'arguspingulux', 'arguspinguluxmini', 'arguspinguluxplus', 'sparkreloaded', 'sabsolo', 'sparklx', 'gis8120', 'gb800se', 'gb800solo', 'gb800seplus', 'gbultrase', 'gbipbox', 'tmsingle', 'tmnano2super', 'iqonios300hd', 'iqonios300hdv2', 'optimussos1plus', 'optimussos1', 'vusolo', 'et4x00', 'et5x00', 'et6x00', 'et7000', 'et7100', 'et7x00mini', 'mixosf7', 'mixoslumi', 'gbx1', 'gbx2', 'gbx3', 'gbx3h'): detected = False else: detected = eDBoxLCD.getInstance().detected() SystemInfo["Display"] = detected config.lcd = ConfigSubsection() if fileExists("/proc/stb/lcd/mode"): f = open("/proc/stb/lcd/mode", "r") can_lcdmodechecking = f.read() f.close() else: can_lcdmodechecking = False SystemInfo["LCDMiniTV"] = can_lcdmodechecking if detected: ilcd = LCD() if can_lcdmodechecking: def setLCDModeMinitTV(configElement): try: print 'setLCDModeMinitTV', configElement.value f = open("/proc/stb/lcd/mode", "w") f.write(configElement.value) f.close() except: pass def setMiniTVFPS(configElement): try: print 'setMiniTVFPS', configElement.value f = open("/proc/stb/lcd/fps", "w") f.write("%d \n" % configElement.value) f.close() except: pass def setLCDModePiP(configElement): pass def setLCDScreenshot(configElement): ilcd.setScreenShot(configElement.value) config.lcd.modepip = ConfigSelection(choices={ "0": _("off"), "5": _("PIP"), "7": _("PIP with OSD") }, default="0") if config.misc.boxtype.value in ('gbquad', 'gbquadplus'): config.lcd.modepip.addNotifier(setLCDModePiP) else: config.lcd.modepip = ConfigNothing() config.lcd.screenshot = ConfigYesNo(default=False) config.lcd.screenshot.addNotifier(setLCDScreenshot) config.lcd.modeminitv = ConfigSelection(choices={ "0": _("normal"), "1": _("MiniTV"), "2": _("OSD"), "3": _("MiniTV with OSD") }, default="0") config.lcd.fpsminitv = ConfigSlider(default=30, limits=(0, 30)) config.lcd.modeminitv.addNotifier(setLCDModeMinitTV) config.lcd.fpsminitv.addNotifier(setMiniTVFPS) else: config.lcd.modeminitv = ConfigNothing() config.lcd.screenshot = ConfigNothing() config.lcd.fpsminitv = ConfigNothing() config.lcd.scroll_speed = ConfigSelection(default="300", choices=[("500", _("slow")), ("300", _("normal")), ("100", _("fast"))]) config.lcd.scroll_delay = ConfigSelection( default="10000", choices=[("10000", "10 " + _("seconds")), ("20000", "20 " + _("seconds")), ("30000", "30 " + _("seconds")), ("60000", "1 " + _("minute")), ("300000", "5 " + _("minutes")), ("noscrolling", _("off"))]) def setLCDbright(configElement): ilcd.setBright(configElement.value) def setLCDstandbybright(configElement): ilcd.setStandbyBright(configElement.value) def setLCDdimbright(configElement): ilcd.setDimBright(configElement.value) def setLCDdimdelay(configElement): ilcd.setDimDelay(configElement.value) def setLCDcontrast(configElement): ilcd.setContrast(configElement.value) def setLCDinverted(configElement): ilcd.setInverted(configElement.value) def setLCDflipped(configElement): ilcd.setFlipped(configElement.value) def setLCDmode(configElement): ilcd.setMode(configElement.value) def setLCDpower(configElement): ilcd.setPower(configElement.value) def setfblcddisplay(configElement): ilcd.setfblcddisplay(configElement.value) def setLCDshowoutputresolution(configElement): ilcd.setShowoutputresolution(configElement.value) def setLCDminitvmode(configElement): ilcd.setLCDMiniTVMode(configElement.value) def setLCDminitvpipmode(configElement): ilcd.setLCDMiniTVPIPMode(configElement.value) def setLCDminitvfps(configElement): ilcd.setLCDMiniTVFPS(configElement.value) def setLEDnormalstate(configElement): ilcd.setLEDNormalState(configElement.value) def setLEDdeepstandby(configElement): ilcd.setLEDDeepStandbyState(configElement.value) def setLEDblinkingtime(configElement): ilcd.setLEDBlinkingTime(configElement.value) def setPowerLEDstate(configElement): if fileExists("/proc/stb/power/powerled"): f = open("/proc/stb/power/powerled", "w") f.write(configElement.value) f.close() def setPowerLEDstanbystate(configElement): if fileExists("/proc/stb/power/standbyled"): f = open("/proc/stb/power/standbyled", "w") f.write(configElement.value) f.close() def setPowerLEDdeepstanbystate(configElement): if fileExists("/proc/stb/power/suspendled"): f = open("/proc/stb/power/suspendled", "w") f.write(configElement.value) f.close() def setLedPowerColor(configElement): if fileExists("/proc/stb/fp/ledpowercolor"): f = open("/proc/stb/fp/ledpowercolor", "w") f.write(configElement.value) f.close() def setLedStandbyColor(configElement): if fileExists("/proc/stb/fp/ledstandbycolor"): f = open("/proc/stb/fp/ledstandbycolor", "w") f.write(configElement.value) f.close() def setLedSuspendColor(configElement): if fileExists("/proc/stb/fp/ledsuspendledcolor"): f = open("/proc/stb/fp/ledsuspendledcolor", "w") f.write(configElement.value) f.close() def setPower4x7On(configElement): if fileExists("/proc/stb/fp/power4x7on"): f = open("/proc/stb/fp/power4x7on", "w") f.write(configElement.value) f.close() def setPower4x7Standby(configElement): if fileExists("/proc/stb/fp/power4x7standby"): f = open("/proc/stb/fp/power4x7standby", "w") f.write(configElement.value) f.close() def setPower4x7Suspend(configElement): if fileExists("/proc/stb/fp/power4x7suspend"): f = open("/proc/stb/fp/power4x7suspend", "w") f.write(configElement.value) f.close() def setXcoreVFD(configElement): if fileExists( "/sys/module/brcmstb_osmega/parameters/pt6302_cgram"): f = open("/sys/module/brcmstb_osmega/parameters/pt6302_cgram", "w") f.write(configElement.value) f.close() if fileExists( "/sys/module/brcmstb_spycat4k/parameters/pt6302_cgram"): f = open( "/sys/module/brcmstb_spycat4k/parameters/pt6302_cgram", "w") f.write(configElement.value) f.close() if fileExists( "/sys/module/brcmstb_spycat4kmini/parameters/pt6302_cgram" ): f = open( "/sys/module/brcmstb_spycat4kmini/parameters/pt6302_cgram", "w") f.write(configElement.value) f.close() if fileExists( "/sys/module/brcmstb_spycat4kcombo/parameters/pt6302_cgram" ): f = open( "/sys/module/brcmstb_spycat4kcombo/parameters/pt6302_cgram", "w") f.write(configElement.value) f.close() config.usage.vfd_xcorevfd = ConfigSelection(default="0", choices=[ ("0", _("12 character")), ("1", _("8 character")) ]) config.usage.vfd_xcorevfd.addNotifier(setXcoreVFD) config.usage.lcd_powerled = ConfigSelection(default="on", choices=[("off", _("Off")), ("on", _("On"))]) config.usage.lcd_powerled.addNotifier(setPowerLEDstate) config.usage.lcd_standbypowerled = ConfigSelection(default="on", choices=[("off", _("Off")), ("on", _("On"))]) config.usage.lcd_standbypowerled.addNotifier(setPowerLEDstanbystate) config.usage.lcd_deepstandbypowerled = ConfigSelection( default="on", choices=[("off", _("Off")), ("on", _("On"))]) config.usage.lcd_deepstandbypowerled.addNotifier( setPowerLEDdeepstanbystate) config.usage.lcd_ledpowercolor = ConfigSelection(default="1", choices=[ ("0", _("off")), ("1", _("blue")), ("2", _("red")), ("3", _("violet")) ]) config.usage.lcd_ledpowercolor.addNotifier(setLedPowerColor) config.usage.lcd_ledstandbycolor = ConfigSelection( default="3", choices=[("0", _("off")), ("1", _("blue")), ("2", _("red")), ("3", _("violet"))]) config.usage.lcd_ledstandbycolor.addNotifier(setLedStandbyColor) config.usage.lcd_ledsuspendcolor = ConfigSelection( default="2", choices=[("0", _("off")), ("1", _("blue")), ("2", _("red")), ("3", _("violet"))]) config.usage.lcd_ledsuspendcolor.addNotifier(setLedSuspendColor) config.usage.lcd_power4x7on = ConfigSelection(default="on", choices=[ ("off", _("Off")), ("on", _("On")) ]) config.usage.lcd_power4x7on.addNotifier(setPower4x7On) config.usage.lcd_power4x7standby = ConfigSelection(default="on", choices=[("off", _("Off")), ("on", _("On"))]) config.usage.lcd_power4x7standby.addNotifier(setPower4x7Standby) config.usage.lcd_power4x7suspend = ConfigSelection(default="on", choices=[("off", _("Off")), ("on", _("On"))]) config.usage.lcd_power4x7suspend.addNotifier(setPower4x7Suspend) def setDateOnStandby(configElement): pass def setDateFormat(configElement): pass from datetime import datetime ntime = datetime.now() # 8 digit if getBoxType() in ('formuler1', 'osminiplus'): config.usage.lcd_dateformat = ConfigSelection( default="%H:%M", choices=[("OFF", "Off"), ("%H:%M", str(ntime.strftime(_("%H:%M")))), ("A%H:%M %d/%m", str(ntime.strftime(_("%H:%M <A> %d/%m")))), ("A%H:%M %d/%m/%y", str(ntime.strftime(_("%H:%M <A> %d/%m/%y")))), ("A%H:%M %d %b", str(ntime.strftime(_("%H:%M <A> %d %b")))), ("A%H:%M %a %d", str(ntime.strftime(_("%H:%M <A> %a %d"))))]) config.usage.lcd_dateformat.addNotifier(setDateFormat) #12 digit elif getBoxType() in ('vusolo2', 'osmega'): config.usage.lcd_dateformat = ConfigSelection( default="%H:%M %d/%m", choices=[ ("OFF", "Off"), ("%H:%M", str(ntime.strftime(_("%H:%M")))), ("%H:%M %d/%m", str(ntime.strftime(_("%H:%M %d/%m")))), ("%H:%M %d %b", str(ntime.strftime(_("%H:%M %d %b")))), ("%H:%M %a %d", str(ntime.strftime(_("%H:%M %a %d")))), ("A%H:%M %d/%m", str(ntime.strftime(_("%H:%M <A> %d/%m")))), ("A%H:%M %d/%m/%y", str(ntime.strftime(_("%H:%M <A> %d/%m/%y")))), ("A%H:%M %d/%m/%Y", str(ntime.strftime(_("%H:%M <A> %d/%m/%Y")))), ("A%H:%M %d %b", str(ntime.strftime(_("%H:%M <A> %d %b")))), ("A%H:%M %d %b %y", str(ntime.strftime(_("%H:%M <A> %d %b %y")))), ("A%H:%M %a %d", str(ntime.strftime(_("%H:%M <A> %a %d")))), ("A%H:%M %a %d/%m", str(ntime.strftime(_("%H:%M <A> %a %d/%m")))), ("A%H:%M %a %d/%m/%y", str(ntime.strftime(_("%H:%M <A> %a %d/%m/%y")))) ]) config.usage.lcd_dateformat.addNotifier(setDateFormat) #16 digit elif getBoxType() in ('sf3038', 'sf4008', 'mutant51'): config.usage.lcd_dateformat = ConfigSelection( default="%H:%M %d/%m/%Y", choices=[("OFF", "Off"), ("%H:%M", str(ntime.strftime(_("%H:%M")))), ("%H:%M %d/%m", str(ntime.strftime(_("%H:%M %d/%m")))), ("%H:%M %d/%m/%y", str(ntime.strftime(_("%H:%M %d/%m/%y")))), ("%H:%M %d/%m/%Y", str(ntime.strftime(_("%H:%M %d/%m/%Y")))), ("%H:%M %d %b", str(ntime.strftime(_("%H:%M %d %b")))), ("%H:%M %d %b %y", str(ntime.strftime(_("%H:%M %d %b %y")))), ("%H:%M %a %d", str(ntime.strftime(_("%H:%M %a %d")))), ("%H:%M %a %d/%m", str(ntime.strftime(_("%H:%M %a %d/%m")))), ("A%H:%M %d/%m", str(ntime.strftime(_("%H:%M <A> %d/%m")))), ("A%H:%M %d/%m/%y", str(ntime.strftime(_("%H:%M <A> %d/%m/%y")))), ("A%H:%M %d/%m/%Y", str(ntime.strftime(_("%H:%M <A> %d/%m/%Y")))), ("A%H:%M %d %b", str(ntime.strftime(_("%H:%M <A> %d %b")))), ("A%H:%M %d %b %y", str(ntime.strftime(_("%H:%M <A> %d %b %y")))), ("A%H:%M %a %d", str(ntime.strftime(_("%H:%M <A> %a %d")))), ("A%H:%M %a %d/%m", str(ntime.strftime(_("%H:%M <A> %a %d/%m")))), ("A%H:%M %a %d/%m/%y", str(ntime.strftime(_("%H:%M <A> %a %d/%m/%y")))), ("A%H:%M %a %d/%m/%Y", str(ntime.strftime(_("%H:%M <A> %a %d/%m/%Y"))))]) config.usage.lcd_dateformat.addNotifier(setDateFormat) else: config.usage.lcd_dateformat = ConfigNothing() if getBoxType() in ('dm900', 'dm920', 'e4hdultra', 'protek4k'): standby_default = 4 elif getBoxType() in ('spycat4kmini', 'osmega'): standby_default = 10 else: standby_default = 1 if not ilcd.isOled(): config.lcd.contrast = ConfigSlider(default=5, limits=(0, 20)) config.lcd.contrast.addNotifier(setLCDcontrast) else: config.lcd.contrast = ConfigNothing() if getBoxType() in ('novatwin', 'novacombo', 'mixosf5', 'mixosf5mini', 'gi9196m', 'gi9196lite', 'zgemmas2s', 'zgemmash1', 'zgemmash2', 'zgemmass', 'marvel1', 'enfinity', 'spycat'): config.lcd.standby = ConfigSlider(default=standby_default, limits=(0, 4)) config.lcd.dimbright = ConfigSlider(default=standby_default, limits=(0, 4)) config.lcd.bright = ConfigSlider(default=4, limits=(0, 4)) elif getBoxType() in ('zgemmahs', 'zgemmah2s', 'zgemmah2h', 'zgemmaslc'): config.lcd.standby = ConfigSlider(default=2, limits=(0, 8)) config.lcd.dimbright = ConfigSlider(default=5, limits=(0, 8)) config.lcd.bright = ConfigSlider(default=5, limits=(0, 8)) elif getBoxType() in ('spycat4kmini', 'osmega'): config.lcd.standby = ConfigSlider(default=standby_default, limits=(0, 10)) config.lcd.dimbright = ConfigSlider(default=standby_default, limits=(0, 10)) config.lcd.bright = ConfigSlider(default=10, limits=(0, 10)) else: config.lcd.standby = ConfigSlider(default=standby_default, limits=(0, 10)) config.lcd.dimbright = ConfigSlider(default=standby_default, limits=(0, 10)) config.lcd.bright = ConfigSlider( default=SystemInfo["DefaultDisplayBrightness"], limits=(0, 10)) config.lcd.dimbright.addNotifier(setLCDdimbright) config.lcd.dimbright.apply = lambda: setLCDdimbright(config.lcd. dimbright) config.lcd.dimdelay = ConfigSelection(default="0", choices=[ ("5", "5 " + _("seconds")), ("10", "10 " + _("seconds")), ("15", "15 " + _("seconds")), ("20", "20 " + _("seconds")), ("30", "30 " + _("seconds")), ("60", "1 " + _("minute")), ("120", "2 " + _("minutes")), ("300", "5 " + _("minutes")), ("0", _("off")) ]) config.lcd.dimdelay.addNotifier(setLCDdimdelay) config.lcd.standby.addNotifier(setLCDstandbybright) config.lcd.standby.apply = lambda: setLCDstandbybright(config.lcd. standby) config.lcd.bright.addNotifier(setLCDbright) config.lcd.bright.apply = lambda: setLCDbright(config.lcd.bright) config.lcd.bright.callNotifiersOnSaveAndCancel = True config.lcd.invert = ConfigYesNo(default=False) config.lcd.invert.addNotifier(setLCDinverted) config.lcd.flip = ConfigYesNo(default=False) config.lcd.flip.addNotifier(setLCDflipped) if SystemInfo["LcdLiveTV"]: def lcdLiveTvChanged(configElement): open(SystemInfo["LcdLiveTV"], "w").write(configElement.value and "0" or "1") InfoBarInstance = InfoBar.instance InfoBarInstance and InfoBarInstance.session.open(dummyScreen) config.lcd.showTv = ConfigYesNo(default=False) config.lcd.showTv.addNotifier(lcdLiveTvChanged) if SystemInfo["LCDMiniTV"] and config.misc.boxtype.value not in ( 'gbquad', 'gbquadplus', 'gbquad4k', 'gbue4k'): config.lcd.minitvmode = ConfigSelection( [("0", _("normal")), ("1", _("MiniTV")), ("2", _("OSD")), ("3", _("MiniTV with OSD"))], "0") config.lcd.minitvmode.addNotifier(setLCDminitvmode) config.lcd.minitvpipmode = ConfigSelection( [("0", _("off")), ("5", _("PIP")), ("7", _("PIP with OSD"))], "0") config.lcd.minitvpipmode.addNotifier(setLCDminitvpipmode) config.lcd.minitvfps = ConfigSlider(default=30, limits=(0, 30)) config.lcd.minitvfps.addNotifier(setLCDminitvfps) if SystemInfo["VFD_scroll_repeats"] and getBoxType() not in ( 'ixussone', 'ixusszero') and getDisplayType() not in ('7segment', ): def scroll_repeats(el): open(SystemInfo["VFD_scroll_repeats"], "w").write(el.value) choicelist = [("0", _("None")), ("1", _("1X")), ("2", _("2X")), ("3", _("3X")), ("4", _("4X")), ("500", _("Continues"))] config.usage.vfd_scroll_repeats = ConfigSelection( default="3", choices=choicelist) config.usage.vfd_scroll_repeats.addNotifier( scroll_repeats, immediate_feedback=False) else: config.usage.vfd_scroll_repeats = ConfigNothing() if SystemInfo["VFD_scroll_delay"] and getBoxType() not in ( 'ixussone', 'ixusszero') and getDisplayType() not in ('7segment', ): def scroll_delay(el): # add workaround for Boxes who need hex code if getBoxType() in ('sf4008', 'beyonwizu4'): open(SystemInfo["VFD_scroll_delay"], "w").write(hex(int(el.value))) else: open(SystemInfo["VFD_scroll_delay"], "w").write(str(el.value)) config.usage.vfd_scroll_delay = ConfigSlider(default=150, increment=10, limits=(0, 500)) config.usage.vfd_scroll_delay.addNotifier(scroll_delay, immediate_feedback=False) config.lcd.hdd = ConfigSelection([("0", _("No")), ("1", _("Yes"))], "1") else: config.lcd.hdd = ConfigNothing() config.usage.vfd_scroll_delay = ConfigNothing() if SystemInfo["VFD_initial_scroll_delay"] and getBoxType() not in ( 'ixussone', 'ixusszero') and getDisplayType() not in ('7segment', ): def initial_scroll_delay(el): if getBoxType() in ('sf4008', 'beyonwizu4'): # add workaround for Boxes who need hex code open(SystemInfo["VFD_initial_scroll_delay"], "w").write(hex(int(el.value))) else: open(SystemInfo["VFD_initial_scroll_delay"], "w").write(el.value) choicelist = [("3000", "3 " + _("seconds")), ("5000", "5 " + _("seconds")), ("10000", "10 " + _("seconds")), ("20000", "20 " + _("seconds")), ("30000", "30 " + _("seconds")), ("0", _("no delay"))] config.usage.vfd_initial_scroll_delay = ConfigSelection( default="10000", choices=choicelist) config.usage.vfd_initial_scroll_delay.addNotifier( initial_scroll_delay, immediate_feedback=False) else: config.usage.vfd_initial_scroll_delay = ConfigNothing() if SystemInfo["VFD_final_scroll_delay"] and getBoxType() not in ( 'ixussone', 'ixusszero') and getDisplayType() not in ('7segment', ): def final_scroll_delay(el): if getBoxType() in ('sf4008', 'beyonwizu4'): # add workaround for Boxes who need hex code open(SystemInfo["VFD_final_scroll_delay"], "w").write(hex(int(el.value))) else: open(SystemInfo["VFD_final_scroll_delay"], "w").write(el.value) choicelist = [("3000", "3 " + _("seconds")), ("5000", "5 " + _("seconds")), ("10000", "10 " + _("seconds")), ("20000", "20 " + _("seconds")), ("30000", "30 " + _("seconds")), ("0", _("no delay"))] config.usage.vfd_final_scroll_delay = ConfigSelection( default="10000", choices=choicelist) config.usage.vfd_final_scroll_delay.addNotifier( final_scroll_delay, immediate_feedback=False) else: config.usage.vfd_final_scroll_delay = ConfigNothing() if fileExists("/proc/stb/lcd/show_symbols"): config.lcd.mode = ConfigSelection([("0", _("No")), ("1", _("Yes"))], "1") config.lcd.mode.addNotifier(setLCDmode) else: config.lcd.mode = ConfigNothing() if fileExists("/proc/stb/power/vfd") or fileExists( "/proc/stb/lcd/vfd"): config.lcd.power = ConfigSelection([("0", _("No")), ("1", _("Yes"))], "1") config.lcd.power.addNotifier(setLCDpower) else: config.lcd.power = ConfigNothing() if fileExists("/proc/stb/fb/sd_detach"): config.lcd.fblcddisplay = ConfigSelection([("1", _("No")), ("0", _("Yes"))], "1") config.lcd.fblcddisplay.addNotifier(setfblcddisplay) else: config.lcd.fblcddisplay = ConfigNothing() if fileExists("/proc/stb/lcd/show_outputresolution"): config.lcd.showoutputresolution = ConfigSelection( [("0", _("No")), ("1", _("Yes"))], "1") config.lcd.showoutputresolution.addNotifier( setLCDshowoutputresolution) else: config.lcd.showoutputresolution = ConfigNothing() if getBoxType() == 'vuultimo': config.lcd.ledblinkingtime = ConfigSlider(default=5, increment=1, limits=(0, 15)) config.lcd.ledblinkingtime.addNotifier(setLEDblinkingtime) config.lcd.ledbrightnessdeepstandby = ConfigSlider(default=1, increment=1, limits=(0, 15)) config.lcd.ledbrightnessdeepstandby.addNotifier(setLEDnormalstate) config.lcd.ledbrightnessdeepstandby.addNotifier(setLEDdeepstandby) config.lcd.ledbrightnessdeepstandby.apply = lambda: setLEDdeepstandby( config.lcd.ledbrightnessdeepstandby) config.lcd.ledbrightnessstandby = ConfigSlider(default=1, increment=1, limits=(0, 15)) config.lcd.ledbrightnessstandby.addNotifier(setLEDnormalstate) config.lcd.ledbrightnessstandby.apply = lambda: setLEDnormalstate( config.lcd.ledbrightnessstandby) config.lcd.ledbrightness = ConfigSlider(default=3, increment=1, limits=(0, 15)) config.lcd.ledbrightness.addNotifier(setLEDnormalstate) config.lcd.ledbrightness.apply = lambda: setLEDnormalstate( config.lcd.ledbrightness) config.lcd.ledbrightness.callNotifiersOnSaveAndCancel = True else: def doNothing(): pass config.lcd.ledbrightness = ConfigNothing() config.lcd.ledbrightness.apply = lambda: doNothing() config.lcd.ledbrightnessstandby = ConfigNothing() config.lcd.ledbrightnessstandby.apply = lambda: doNothing() config.lcd.ledbrightnessdeepstandby = ConfigNothing() config.lcd.ledbrightnessdeepstandby.apply = lambda: doNothing() config.lcd.ledblinkingtime = ConfigNothing() else: def doNothing(): pass config.lcd.contrast = ConfigNothing() config.lcd.bright = ConfigNothing() config.lcd.standby = ConfigNothing() config.lcd.bright.apply = lambda: doNothing() config.lcd.standby.apply = lambda: doNothing() config.lcd.power = ConfigNothing() config.lcd.fblcddisplay = ConfigNothing() config.lcd.mode = ConfigNothing() config.lcd.hdd = ConfigNothing() config.lcd.scroll_speed = ConfigSelection(default="300", choices=[("500", _("slow")), ("300", _("normal")), ("100", _("fast"))]) config.lcd.scroll_delay = ConfigSelection( default="10000", choices=[("10000", "10 " + _("seconds")), ("20000", "20 " + _("seconds")), ("30000", "30 " + _("seconds")), ("60000", "1 " + _("minute")), ("300000", "5 " + _("minutes")), ("noscrolling", _("off"))]) config.lcd.showoutputresolution = ConfigNothing() config.lcd.ledbrightness = ConfigNothing() config.lcd.ledbrightness.apply = lambda: doNothing() config.lcd.ledbrightnessstandby = ConfigNothing() config.lcd.ledbrightnessstandby.apply = lambda: doNothing() config.lcd.ledbrightnessdeepstandby = ConfigNothing() config.lcd.ledbrightnessdeepstandby.apply = lambda: doNothing() config.lcd.ledblinkingtime = ConfigNothing() config.misc.standbyCounter.addNotifier(standbyCounterChanged, initial_call=False)
def InitUsageConfig(): config.usage = ConfigSubsection() config.usage.subnetwork = ConfigYesNo(default=True) config.usage.subnetwork_cable = ConfigYesNo(default=True) config.usage.subnetwork_terrestrial = ConfigYesNo(default=True) config.usage.showdish = ConfigYesNo(default=True) config.misc.showrotorposition = ConfigSelection( default='no', choices=[('no', _('no')), ('yes', _('yes')), ('withtext', _('with text')), ('tunername', _('with tuner name'))]) config.usage.multibouquet = ConfigYesNo(default=True) config.usage.alternative_number_mode = ConfigYesNo(default=True) def alternativeNumberModeChange(configElement): eDVBDB.getInstance().setNumberingMode(configElement.value) refreshServiceList() config.usage.alternative_number_mode.addNotifier( alternativeNumberModeChange) config.usage.hide_number_markers = ConfigYesNo(default=True) config.usage.hide_number_markers.addNotifier(refreshServiceList) config.usage.servicetype_icon_mode = ConfigSelection( default='0', choices=[('0', _('None')), ('1', _('Left from servicename')), ('2', _('Right from servicename'))]) config.usage.servicetype_icon_mode.addNotifier(refreshServiceList) config.usage.crypto_icon_mode = ConfigSelection( default='0', choices=[('0', _('None')), ('1', _('Left from servicename')), ('2', _('Right from servicename'))]) config.usage.crypto_icon_mode.addNotifier(refreshServiceList) config.usage.record_indicator_mode = ConfigSelection( default='0', choices=[('0', _('None')), ('1', _('Left from servicename')), ('2', _('Right from servicename')), ('3', _('Red colored'))]) config.usage.record_indicator_mode.addNotifier(refreshServiceList) choicelist = [('-1', _('Disable'))] for i in range(0, 1300, 100): choicelist.append( (str(i), ngettext('%d pixel wide', '%d pixels wide', i) % i)) config.usage.servicelist_column = ConfigSelection(default='-1', choices=choicelist) config.usage.servicelist_column.addNotifier(refreshServiceList) config.usage.service_icon_enable = ConfigYesNo(default=False) config.usage.service_icon_enable.addNotifier(refreshServiceList) config.usage.servicelist_cursor_behavior = ConfigSelection( default='standard', choices=[('standard', _('Standard')), ('keep', _('Keep service')), ('reverseB', _('Reverse bouquet buttons')), ('keep reverseB', _('Keep service') + ' + ' + _('Reverse bouquet buttons'))]) choicelist = [('by skin', _('As defined by the skin'))] for i in range(5, 41): choicelist.append(str(i)) config.usage.servicelist_number_of_services = ConfigSelection( default='by skin', choices=choicelist) config.usage.servicelist_number_of_services.addNotifier(refreshServiceList) config.usage.multiepg_ask_bouquet = ConfigYesNo(default=False) config.usage.quickzap_bouquet_change = ConfigYesNo(default=False) config.usage.e1like_radio_mode = ConfigYesNo(default=True) choicelist = [('0', _('No timeout'))] for i in range(1, 20): choicelist.append((str(i), ngettext('%d second', '%d seconds', i) % i)) config.usage.infobar_timeout = ConfigSelection(default='5', choices=choicelist) config.usage.show_infobar_do_dimming = ConfigYesNo(default=True) config.usage.show_infobar_dimming_speed = ConfigSelectionNumber( min=1, max=40, stepwidth=1, default=40, wraparound=True) config.usage.show_infobar_on_zap = ConfigYesNo(default=True) config.usage.show_infobar_on_skip = ConfigYesNo(default=True) config.usage.show_infobar_on_event_change = ConfigYesNo(default=False) config.usage.show_second_infobar = ConfigSelection( default=5, choices=[("", _('None'))] + choicelist + [('EPG', _('EPG'))]) config.usage.show_simple_second_infobar = ConfigYesNo(default=True) config.usage.infobar_frontend_source = ConfigSelection( default='settings', choices=[('settings', _('Settings')), ('tuner', _('Tuner'))]) config.usage.oldstyle_zap_controls = ConfigYesNo(default=False) config.usage.oldstyle_channel_select_controls = ConfigYesNo(default=False) config.usage.zap_with_ch_buttons = ConfigYesNo(default=False) config.usage.ok_is_channelselection = ConfigYesNo(default=False) config.usage.volume_instead_of_channelselection = ConfigYesNo( default=False) config.usage.channelselection_preview = ConfigYesNo(default=False) config.usage.show_spinner = ConfigYesNo(default=True) config.usage.menu_sort_weight = ConfigDictionarySet( default={'mainmenu': { 'submenu': {} }}) config.usage.menu_sort_mode = ConfigSelection( default='default', choices=[('a_z', _('alphabetical')), ('default', _('Default')), ('user', _('user defined'))]) config.usage.menu_show_numbers = ConfigYesNo(default=False) config.usage.menu_path = ConfigSelection(default='off', choices=[('off', _('Disabled')), ('small', _('Small')), ('large', _('Large'))]) config.usage.enable_tt_caching = ConfigYesNo(default=True) choicelist = [] for i in (10, 30): choicelist.append((str(i), ngettext('%d second', '%d seconds', i) % i)) for i in (60, 120, 300, 600, 1200, 1800): m = i / 60 choicelist.append((str(i), ngettext('%d minute', '%d minutes', m) % m)) for i in (3600, 7200, 14400): h = i / 3600 choicelist.append((str(i), ngettext('%d hour', '%d hours', h) % h)) config.usage.hdd_standby = ConfigSelection( default='300', choices=[('0', _('No standby'))] + choicelist) config.usage.output_12V = ConfigSelection(default='do not change', choices=[('do not change', _('Do not change')), ('off', _('Off')), ('on', _('On'))]) config.usage.pip_zero_button = ConfigSelection( default='standard', choices=[('standard', _('Standard')), ('swap', _('Swap PiP and main picture')), ('swapstop', _('Move PiP to main picture')), ('stop', _('Stop PiP'))]) config.usage.pip_hideOnExit = ConfigSelection(default='without popup', choices=[('no', _('No')), ('popup', _('With popup')), ('without popup', _('Without popup')) ]) choicelist = [('-1', _('Disabled')), ('0', _('No timeout'))] for i in [60, 300, 600, 900, 1800, 2700, 3600]: m = i / 60 choicelist.append((str(i), ngettext('%d minute', '%d minutes', m) % m)) config.usage.pip_last_service_timeout = ConfigSelection(default='0', choices=choicelist) config.usage.default_path = ConfigText(default='') config.usage.timer_path = ConfigText(default='<default>') config.usage.instantrec_path = ConfigText(default='<default>') config.usage.timeshift_path = ConfigText(default='/media/hdd/') config.usage.allowed_timeshift_paths = ConfigLocations( default=['/media/hdd/']) config.ncaminfo = ConfigSubsection() config.ncaminfo.showInExtensions = ConfigYesNo(default=False) config.ncaminfo.userdatafromconf = ConfigYesNo(default=False) config.ncaminfo.autoupdate = ConfigYesNo(default=False) config.ncaminfo.username = ConfigText(default='username', fixed_size=False, visible_width=12) config.ncaminfo.password = ConfigPassword(default='password', fixed_size=False) config.ncaminfo.ip = ConfigIP(default=[127, 0, 0, 1], auto_jump=True) config.ncaminfo.port = ConfigInteger(default=8181, limits=(0, 65536)) config.ncaminfo.intervall = ConfigSelectionNumber(min=1, max=600, stepwidth=1, default=10, wraparound=True) config.oscaminfo = ConfigSubsection() config.oscaminfo.showInExtensions = ConfigYesNo(default=False) config.oscaminfo.userdatafromconf = ConfigYesNo(default=False) config.oscaminfo.autoupdate = ConfigYesNo(default=False) config.oscaminfo.username = ConfigText(default='username', fixed_size=False, visible_width=12) config.oscaminfo.password = ConfigPassword(default='password', fixed_size=False) config.oscaminfo.ip = ConfigIP(default=[127, 0, 0, 1], auto_jump=True) config.oscaminfo.port = ConfigInteger(default=16002, limits=(0, 65536)) config.oscaminfo.intervall = ConfigSelectionNumber(min=1, max=600, stepwidth=1, default=10, wraparound=True) SystemInfo['OScamInstalled'] = False config.cccaminfo = ConfigSubsection() config.cccaminfo.showInExtensions = ConfigYesNo(default=False) config.cccaminfo.serverNameLength = ConfigSelectionNumber(min=10, max=100, stepwidth=1, default=22, wraparound=True) config.cccaminfo.name = ConfigText(default='Profile', fixed_size=False) config.cccaminfo.ip = ConfigText(default='192.168.2.12', fixed_size=False) config.cccaminfo.username = ConfigText(default='', fixed_size=False) config.cccaminfo.password = ConfigText(default='', fixed_size=False) config.cccaminfo.port = ConfigInteger(default=16001, limits=(1, 65535)) config.cccaminfo.profile = ConfigText(default='', fixed_size=False) config.cccaminfo.ecmInfoEnabled = ConfigYesNo(default=True) config.cccaminfo.ecmInfoTime = ConfigSelectionNumber(min=1, max=10, stepwidth=1, default=5, wraparound=True) config.cccaminfo.ecmInfoForceHide = ConfigYesNo(default=True) config.cccaminfo.ecmInfoPositionX = ConfigInteger(default=50) config.cccaminfo.ecmInfoPositionY = ConfigInteger(default=50) config.cccaminfo.blacklist = ConfigText( default='/media/cf/CCcamInfo.blacklisted', fixed_size=False) config.cccaminfo.profiles = ConfigText( default='/media/cf/CCcamInfo.profiles', fixed_size=False) config.usage.movielist_trashcan = ConfigYesNo(default=True) config.usage.movielist_trashcan_days = ConfigNumber(default=8) config.usage.movielist_trashcan_reserve = ConfigNumber(default=40) config.usage.on_movie_start = ConfigSelection( default='resume', choices=[ ('ask yes', _('Ask user') + ' ' + _('default') + ' ' + _('yes')), ('ask no', _('Ask user') + ' ' + _('default') + ' ' + _('no')), ('resume', _('Resume from last position')), ('beginning', _('Start from the beginning')) ]) config.usage.on_movie_stop = ConfigSelection( default='movielist', choices=[('ask', _('Ask user')), ('movielist', _('Return to movie list')), ('quit', _('Return to previous service'))]) config.usage.on_movie_eof = ConfigSelection( default='movielist', choices=[('ask', _('Ask user')), ('movielist', _('Return to movie list')), ('quit', _('Return to previous service')), ('pause', _('Pause movie at end')), ('playlist', _('Play next (return to movie list)')), ('playlistquit', _('Play next (return to previous service)')), ('loop', _('Continues play (loop)')), ('repeatcurrent', _('Repeat'))]) config.usage.next_movie_msg = ConfigYesNo(default=True) config.usage.last_movie_played = ConfigText() config.usage.leave_movieplayer_onExit = ConfigSelection( default='popup', choices=[('no', _('No')), ('popup', _('With popup')), ('without popup', _('Without popup')), ('movielist', _('Return to movie list'))]) config.usage.setup_level = ConfigSelection(default='expert', choices=[ ('simple', _('Normal')), ('intermediate', _('Advanced')), ('expert', _('Expert')) ]) config.usage.startup_to_standby = ConfigSelection( default='no', choices=[('no', _('No')), ('yes', _('Yes')), ('except', _('No, except Wakeup timer'))]) config.usage.wakeup_menu = ConfigNothing() config.usage.wakeup_enabled = ConfigYesNo(default=False) config.usage.wakeup_day = ConfigSubDict() config.usage.wakeup_time = ConfigSubDict() for i in range(7): config.usage.wakeup_day[i] = ConfigEnableDisable(default=False) config.usage.wakeup_time[i] = ConfigClock(default=21600) choicelist = [('0', _('Do nothing'))] for i in range(3600, 21601, 3600): h = abs(i / 3600) h = ngettext('%d hour', '%d hours', h) % h choicelist.append((str(i), _('Standby in ') + h)) config.usage.inactivity_timer = ConfigSelection(default='0', choices=choicelist) config.usage.inactivity_timer_blocktime = ConfigYesNo(default=True) config.usage.inactivity_timer_blocktime_begin = ConfigClock( default=time.mktime((0, 0, 0, 18, 0, 0, 0, 0, 0))) config.usage.inactivity_timer_blocktime_end = ConfigClock( default=time.mktime((0, 0, 0, 23, 0, 0, 0, 0, 0))) config.usage.inactivity_timer_blocktime_extra = ConfigYesNo(default=False) config.usage.inactivity_timer_blocktime_extra_begin = ConfigClock( default=time.mktime((0, 0, 0, 6, 0, 0, 0, 0, 0))) config.usage.inactivity_timer_blocktime_extra_end = ConfigClock( default=time.mktime((0, 0, 0, 9, 0, 0, 0, 0, 0))) choicelist = [('0', _('Disabled')), ('event_standby', _('Standby after current event'))] for i in range(900, 7201, 900): m = abs(i / 60) m = ngettext('%d minute', '%d minutes', m) % m choicelist.append((str(i), _('Standby in ') + m)) config.usage.sleep_timer = ConfigSelection(default='0', choices=choicelist) choicelist = [('0', _('Disabled'))] for i in [300, 300, 600] + range(900, 7201, 900): m = abs(i / 60) m = ngettext('%d minute', '%d minutes', m) % m choicelist.append((str(i), _('after ') + m)) config.usage.standby_to_shutdown_timer = ConfigSelection( default='0', choices=choicelist) config.usage.standby_to_shutdown_timer_blocktime = ConfigYesNo( default=True) config.usage.standby_to_shutdown_timer_blocktime_begin = ConfigClock( default=time.mktime((0, 0, 0, 6, 0, 0, 0, 0, 0))) config.usage.standby_to_shutdown_timer_blocktime_end = ConfigClock( default=time.mktime((0, 0, 0, 23, 0, 0, 0, 0, 0))) choicelist = [('0', _('Disabled'))] for m in (1, 5, 10, 15, 30, 60): choicelist.append( (str(m * 60), ngettext('%d minute', '%d minutes', m) % m)) config.usage.screen_saver = ConfigSelection(default='300', choices=choicelist) config.usage.check_timeshift = ConfigYesNo(default=True) choicelist = [('0', _('Disabled'))] for i in (2, 3, 4, 5, 10, 20, 30): choicelist.append((str(i), ngettext('%d second', '%d seconds', i) % i)) for i in (60, 120, 300): m = i / 60 choicelist.append((str(i), ngettext('%d minute', '%d minutes', m) % m)) config.usage.timeshift_start_delay = ConfigSelection(default='0', choices=choicelist) config.usage.alternatives_priority = ConfigSelection( default='0', choices=[('0', 'DVB-S/-C/-T'), ('1', 'DVB-S/-T/-C'), ('2', 'DVB-C/-S/-T'), ('3', 'DVB-C/-T/-S'), ('4', 'DVB-T/-C/-S'), ('5', 'DVB-T/-S/-C'), ('127', _('No priority'))]) config.usage.remote_fallback_enabled = ConfigYesNo(default=False) config.usage.remote_fallback = ConfigText(default='', fixed_size=False) config.usage.show_timer_conflict_warning = ConfigYesNo(default=True) dvbs_nims = [('-2', _('Disabled'))] dvbt_nims = [('-2', _('Disabled'))] dvbc_nims = [('-2', _('Disabled'))] atsc_nims = [('-2', _('Disabled'))] nims = [('-1', _('auto'))] for x in nimmanager.nim_slots: if x.isCompatible('DVB-S'): dvbs_nims.append((str(x.slot), x.getSlotName())) elif x.isCompatible('DVB-T'): dvbt_nims.append((str(x.slot), x.getSlotName())) elif x.isCompatible('DVB-C'): dvbc_nims.append((str(x.slot), x.getSlotName())) elif x.isCompatible('ATSC'): atsc_nims.append((str(x.slot), x.getSlotName())) nims.append((str(x.slot), x.getSlotName())) config.usage.frontend_priority = ConfigSelection(default='-1', choices=list(nims)) nims.insert(0, ('-2', _('Disabled'))) config.usage.recording_frontend_priority = ConfigSelection(default='-2', choices=nims) config.usage.frontend_priority_dvbs = ConfigSelection( default='-2', choices=list(dvbs_nims)) dvbs_nims.insert(1, ('-1', _('auto'))) config.usage.recording_frontend_priority_dvbs = ConfigSelection( default='-2', choices=dvbs_nims) config.usage.frontend_priority_dvbt = ConfigSelection( default='-2', choices=list(dvbt_nims)) dvbt_nims.insert(1, ('-1', _('auto'))) config.usage.recording_frontend_priority_dvbt = ConfigSelection( default='-2', choices=dvbt_nims) config.usage.frontend_priority_dvbc = ConfigSelection( default='-2', choices=list(dvbc_nims)) dvbc_nims.insert(1, ('-1', _('auto'))) config.usage.recording_frontend_priority_dvbc = ConfigSelection( default='-2', choices=dvbc_nims) config.usage.frontend_priority_atsc = ConfigSelection( default="-2", choices=list(atsc_nims)) atsc_nims.insert(1, ('-1', _('auto'))) config.usage.recording_frontend_priority_atsc = ConfigSelection( default='-2', choices=atsc_nims) SystemInfo['DVB-S_priority_tuner_available'] = len(dvbs_nims) > 3 and any( len(i) > 2 for i in (dvbt_nims, dvbc_nims, atsc_nims)) SystemInfo['DVB-T_priority_tuner_available'] = len(dvbt_nims) > 3 and any( len(i) > 2 for i in (dvbs_nims, dvbc_nims, atsc_nims)) SystemInfo['DVB-C_priority_tuner_available'] = len(dvbc_nims) > 3 and any( len(i) > 2 for i in (dvbs_nims, dvbt_nims, atsc_nims)) SystemInfo['ATSC_priority_tuner_available'] = len(atsc_nims) > 3 and any( len(i) > 2 for i in (dvbs_nims, dvbc_nims, dvbt_nims)) config.misc.disable_background_scan = ConfigYesNo(default=False) config.usage.show_event_progress_in_servicelist = ConfigSelection( default='barright', choices=[('barleft', _('Progress bar left')), ('barright', _('Progress bar right')), ('percleft', _('Percentage left')), ('percright', _('Percentage right')), ('no', _('No'))]) config.usage.show_channel_numbers_in_servicelist = ConfigYesNo( default=True) config.usage.show_event_progress_in_servicelist.addNotifier( refreshServiceList) config.usage.show_channel_numbers_in_servicelist.addNotifier( refreshServiceList) config.usage.blinking_display_clock_during_recording = ConfigYesNo( default=False) config.usage.show_message_when_recording_starts = ConfigYesNo(default=True) config.usage.load_length_of_movies_in_moviellist = ConfigYesNo( default=True) config.usage.show_icons_in_movielist = ConfigSelection( default='i', choices=[('o', _('Off')), ('p', _('Progress')), ('s', _('Small progress')), ('i', _('Icons'))]) config.usage.movielist_unseen = ConfigYesNo(default=False) config.usage.swap_snr_on_osd = ConfigYesNo(default=False) def SpinnerOnOffChanged(configElement): setSpinnerOnOff(int(configElement.value)) config.usage.show_spinner.addNotifier(SpinnerOnOffChanged) def EnableTtCachingChanged(configElement): setEnableTtCachingOnOff(int(configElement.value)) config.usage.enable_tt_caching.addNotifier(EnableTtCachingChanged) def TunerTypePriorityOrderChanged(configElement): setTunerTypePriorityOrder(int(configElement.value)) config.usage.alternatives_priority.addNotifier( TunerTypePriorityOrderChanged, immediate_feedback=False) def PreferredTunerChanged(configElement): setPreferredTuner(int(configElement.value)) config.usage.frontend_priority.addNotifier(PreferredTunerChanged) config.usage.hide_zap_errors = ConfigYesNo(default=False) config.usage.hide_ci_messages = ConfigYesNo(default=True) config.usage.show_cryptoinfo = ConfigYesNo(default=True) config.usage.show_eit_nownext = ConfigYesNo(default=True) config.usage.show_vcr_scart = ConfigYesNo(default=False) config.usage.show_update_disclaimer = ConfigYesNo(default=True) config.usage.pic_resolution = ConfigSelection( default=None, choices=[ (None, _('Same resolution as skin')), ('(720, 576)', '720x576'), ('(1280, 720)', '1280x720'), ('(1920, 1080)', '1920x1080') ][:SystemInfo['HasFullHDSkinSupport'] and 4 or 3]) if SystemInfo['Fan']: choicelist = [('off', _('Off')), ('on', _('On')), ('auto', _('Auto'))] if os.path.exists('/proc/stb/fp/fan_choices'): choicelist = [ x for x in choicelist if x[0] in open( '/proc/stb/fp/fan_choices', 'r').read().strip().split(' ') ] config.usage.fan = ConfigSelection(choicelist) def fanChanged(configElement): open(SystemInfo['Fan'], 'w').write(configElement.value) config.usage.fan.addNotifier(fanChanged) if SystemInfo['FanPWM']: def fanSpeedChanged(configElement): open(SystemInfo['FanPWM'], 'w').write(hex(configElement.value)[2:]) config.usage.fanspeed = ConfigSlider(default=127, increment=8, limits=(0, 255)) config.usage.fanspeed.addNotifier(fanSpeedChanged) if SystemInfo['StandbyLED']: def standbyLEDChanged(configElement): open(SystemInfo['StandbyLED'], 'w').write(configElement.value and 'on' or 'off') config.usage.standbyLED = ConfigYesNo(default=True) config.usage.standbyLED.addNotifier(standbyLEDChanged) if SystemInfo["PowerOffDisplay"]: def powerOffDisplayChanged(configElement): open(SystemInfo["PowerOffDisplay"], "w").write(configElement.value and "1" or "0") config.usage.powerOffDisplay = ConfigYesNo(default=True) config.usage.powerOffDisplay.addNotifier(powerOffDisplayChanged) if SystemInfo['WakeOnLAN']: def wakeOnLANChanged(configElement): if 'fp' in SystemInfo['WakeOnLAN']: open(SystemInfo['WakeOnLAN'], 'w').write(configElement.value and 'enable' or 'disable') else: open(SystemInfo['WakeOnLAN'], 'w').write(configElement.value and 'on' or 'off') config.usage.wakeOnLAN = ConfigYesNo(default=False) config.usage.wakeOnLAN.addNotifier(wakeOnLANChanged) if SystemInfo["hasXcoreVFD"]: def set12to8characterVFD(configElement): open(SystemInfo["hasXcoreVFD"], "w").write(not configElement.value and "1" or "0") config.usage.toggle12to8characterVFD = ConfigYesNo(default=False) config.usage.toggle12to8characterVFD.addNotifier(set12to8characterVFD) if SystemInfo["LcdLiveTVMode"]: def setLcdLiveTVMode(configElement): open(SystemInfo["LcdLiveTVMode"], "w").write(configElement.value) config.usage.LcdLiveTVMode = ConfigSelection( default="0", choices=[str(x) for x in range(0, 9)]) config.usage.LcdLiveTVMode.addNotifier(setLcdLiveTVMode) config.epg = ConfigSubsection() config.epg.eit = ConfigYesNo(default=True) config.epg.mhw = ConfigYesNo(default=False) config.epg.freesat = ConfigYesNo(default=True) config.epg.viasat = ConfigYesNo(default=True) config.epg.netmed = ConfigYesNo(default=True) config.epg.virgin = ConfigYesNo(default=False) config.misc.showradiopic = ConfigYesNo(default=True) def EpgSettingsChanged(configElement): from enigma import eEPGCache mask = 4294967295L if not config.epg.eit.value: mask &= ~(eEPGCache.NOWNEXT | eEPGCache.SCHEDULE | eEPGCache.SCHEDULE_OTHER) if not config.epg.mhw.value: mask &= ~eEPGCache.MHW if not config.epg.freesat.value: mask &= ~(eEPGCache.FREESAT_NOWNEXT | eEPGCache.FREESAT_SCHEDULE | eEPGCache.FREESAT_SCHEDULE_OTHER) if not config.epg.viasat.value: mask &= ~eEPGCache.VIASAT if not config.epg.netmed.value: mask &= ~(eEPGCache.NETMED_SCHEDULE | eEPGCache.NETMED_SCHEDULE_OTHER) if not config.epg.virgin.value: mask &= ~(eEPGCache.VIRGIN_NOWNEXT | eEPGCache.VIRGIN_SCHEDULE) eEPGCache.getInstance().setEpgSources(mask) config.epg.eit.addNotifier(EpgSettingsChanged) config.epg.mhw.addNotifier(EpgSettingsChanged) config.epg.freesat.addNotifier(EpgSettingsChanged) config.epg.viasat.addNotifier(EpgSettingsChanged) config.epg.netmed.addNotifier(EpgSettingsChanged) config.epg.virgin.addNotifier(EpgSettingsChanged) config.epg.histminutes = ConfigSelectionNumber(min=0, max=120, stepwidth=15, default=0, wraparound=True) def EpgHistorySecondsChanged(configElement): from enigma import eEPGCache eEPGCache.getInstance().setEpgHistorySeconds( config.epg.histminutes.getValue() * 60) config.epg.histminutes.addNotifier(EpgHistorySecondsChanged) def setHDDStandby(configElement): for hdd in harddiskmanager.HDDList(): hdd[1].setIdleTime(int(configElement.value)) config.usage.hdd_standby.addNotifier(setHDDStandby, immediate_feedback=False) if SystemInfo['12V_Output']: def set12VOutput(configElement): Misc_Options.getInstance().set_12V_output( configElement.value == 'on' and 1 or 0) config.usage.output_12V.addNotifier(set12VOutput, immediate_feedback=False) config.usage.keymap = ConfigText( default=eEnv.resolve('${datadir}/enigma2/keymap.xml')) config.usage.keytrans = ConfigText( default=eEnv.resolve('${datadir}/enigma2/keytranslation.xml')) config.seek = ConfigSubsection() config.seek.selfdefined_13 = ConfigNumber(default=15) config.seek.selfdefined_46 = ConfigNumber(default=60) config.seek.selfdefined_79 = ConfigNumber(default=300) config.seek.speeds_forward = ConfigSet( default=[2, 4, 8, 16, 32, 64, 128], choices=[2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128]) config.seek.speeds_backward = ConfigSet( default=[2, 4, 8, 16, 32, 64, 128], choices=[1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128]) config.seek.speeds_slowmotion = ConfigSet(default=[2, 4, 8], choices=[2, 4, 6, 8, 12, 16, 25]) config.seek.enter_forward = ConfigSelection(default='2', choices=[ '2', '4', '6', '8', '12', '16', '24', '32', '48', '64', '96', '128' ]) config.seek.enter_backward = ConfigSelection(default='1', choices=[ '1', '2', '4', '6', '8', '12', '16', '24', '32', '48', '64', '96', '128' ]) config.seek.on_pause = ConfigSelection(default='play', choices=[('play', _('Play')), ('step', _('Single step (GOP)')), ('last', _('Last speed'))]) config.usage.timerlist_finished_timer_position = ConfigSelection( default='end', choices=[('beginning', _('At beginning')), ('end', _('At end'))]) def updateEnterForward(configElement): if not configElement.value: configElement.value = [2] updateChoices(config.seek.enter_forward, configElement.value) config.seek.speeds_forward.addNotifier(updateEnterForward, immediate_feedback=False) def updateEnterBackward(configElement): if not configElement.value: configElement.value = [2] updateChoices(config.seek.enter_backward, configElement.value) config.seek.speeds_backward.addNotifier(updateEnterBackward, immediate_feedback=False) def updateEraseSpeed(el): eBackgroundFileEraser.getInstance().setEraseSpeed(int(el.value)) def updateEraseFlags(el): eBackgroundFileEraser.getInstance().setEraseFlags(int(el.value)) config.misc.erase_speed = ConfigSelection(default="20", choices=[("10", _("10 MB/s")), ("20", _("20 MB/s")), ("50", _("50 MB/s")), ("100", _("100 MB/s"))]) config.misc.erase_speed.addNotifier(updateEraseSpeed, immediate_feedback=False) config.misc.erase_flags = ConfigSelection(default='1', choices=[ ('0', _('Disable')), ('1', _('Internal hdd only')), ('3', _('Everywhere')) ]) config.misc.erase_flags.addNotifier(updateEraseFlags, immediate_feedback=False) if SystemInfo['ZapMode']: def setZapmode(el): open(SystemInfo['ZapMode'], 'w').write(el.value) config.misc.zapmode = ConfigSelection( default='mute', choices=[('mute', _('Black screen')), ('hold', _('Hold screen')), ('mutetilllock', _('Black screen till locked')), ('holdtilllock', _('Hold till locked'))]) config.misc.zapmode.addNotifier(setZapmode, immediate_feedback=False) config.usage.historymode = ConfigSelection(default='1', choices=[('0', _('Just zap')), ('1', _('Show menu'))]) if SystemInfo['VFD_scroll_repeats']: def scroll_repeats(el): open(SystemInfo['VFD_scroll_repeats'], 'w').write(el.value) choicelist = [] for i in range(1, 11, 1): choicelist.append(str(i)) config.usage.vfd_scroll_repeats = ConfigSelection(default='3', choices=choicelist) config.usage.vfd_scroll_repeats.addNotifier(scroll_repeats, immediate_feedback=False) if SystemInfo['VFD_scroll_delay']: def scroll_delay(el): open(SystemInfo['VFD_scroll_delay'], 'w').write(el.value) choicelist = [] for i in range(0, 1001, 50): choicelist.append(str(i)) config.usage.vfd_scroll_delay = ConfigSelection(default='150', choices=choicelist) config.usage.vfd_scroll_delay.addNotifier(scroll_delay, immediate_feedback=False) if SystemInfo['VFD_initial_scroll_delay']: def initial_scroll_delay(el): open(SystemInfo['VFD_initial_scroll_delay'], 'w').write(el.value) choicelist = [] for i in range(0, 20001, 500): choicelist.append(str(i)) config.usage.vfd_initial_scroll_delay = ConfigSelection( default='1000', choices=choicelist) config.usage.vfd_initial_scroll_delay.addNotifier( initial_scroll_delay, immediate_feedback=False) if SystemInfo['VFD_final_scroll_delay']: def final_scroll_delay(el): open(SystemInfo['VFD_final_scroll_delay'], 'w').write(el.value) choicelist = [] for i in range(0, 20001, 500): choicelist.append(str(i)) config.usage.vfd_final_scroll_delay = ConfigSelection( default='1000', choices=choicelist) config.usage.vfd_final_scroll_delay.addNotifier( final_scroll_delay, immediate_feedback=False) if SystemInfo['HasForceLNBOn']: def forceLNBPowerChanged(configElement): open(SystemInfo['HasForceLNBOn'], 'w').write(configElement.value) config.misc.forceLnbPower = ConfigSelection(default='on', choices=[('on', _('Yes')), ('off', _('No'))]) config.misc.forceLnbPower.addNotifier(forceLNBPowerChanged) if SystemInfo['HasForceToneburst']: def forceToneBurstChanged(configElement): open(SystemInfo['HasForceToneburst'], 'w').write(configElement.value) config.misc.forceToneBurst = ConfigSelection(default='enable', choices=[ ('enable', _('Yes')), ('disable', _('No')) ]) config.misc.forceToneBurst.addNotifier(forceToneBurstChanged) if SystemInfo['HasBypassEdidChecking']: def setHasBypassEdidChecking(configElement): open(SystemInfo['HasBypassEdidChecking'], 'w').write(configElement.value) config.av.bypassEdidChecking = ConfigSelection(default='00000000', choices=[('00000001', _('Yes')), ('00000000', _('No'))]) config.av.bypassEdidChecking.addNotifier(setHasBypassEdidChecking) if SystemInfo['HasColorspace']: def setHaveColorspace(configElement): open(SystemInfo['HasColorspace'], 'w').write(configElement.value) if SystemInfo['HasColorspaceSimple']: config.av.hdmicolorspace = ConfigSelection(default='Edid(Auto)', choices={ 'Edid(Auto)': _('Auto'), 'Hdmi_Rgb': _('RGB') }) else: config.av.hdmicolorspace = ConfigSelection(default='auto', choices={ 'auto': _('auto'), 'rgb': _('rgb'), '420': _('420'), '422': _('422'), '444': _('444') }) config.av.hdmicolorspace.addNotifier(setHaveColorspace) config.subtitles = ConfigSubsection() config.subtitles.ttx_subtitle_colors = ConfigSelection( default='1', choices=[('0', _('original')), ('1', _('white')), ('2', _('yellow'))]) config.subtitles.ttx_subtitle_original_position = ConfigYesNo( default=False) config.subtitles.subtitle_position = ConfigSelection(choices=[ '0', '10', '20', '30', '40', '50', '60', '70', '80', '90', '100', '150', '200', '250', '300', '350', '400', '450' ], default='50') config.subtitles.subtitle_alignment = ConfigSelection(choices=[ ('left', _('left')), ('center', _('center')), ('right', _('right')) ], default='center') config.subtitles.subtitle_rewrap = ConfigYesNo(default=False) config.subtitles.colourise_dialogs = ConfigYesNo(default=False) config.subtitles.subtitle_borderwidth = ConfigSelection( choices=['1', '2', '3', '4', '5'], default='3') config.subtitles.subtitle_fontsize = ConfigSelection( choices=['%d' % x for x in range(16, 101) if not x % 2], default='40') config.subtitles.showbackground = ConfigYesNo(default=False) subtitle_delay_choicelist = [] for i in range(-900000, 1845000, 45000): if i == 0: subtitle_delay_choicelist.append(('0', _('No delay'))) else: subtitle_delay_choicelist.append( (str(i), _("%2.1f sec") % (i / 90000.))) config.subtitles.subtitle_noPTSrecordingdelay = ConfigSelection( default='315000', choices=subtitle_delay_choicelist) config.subtitles.dvb_subtitles_yellow = ConfigYesNo(default=False) config.subtitles.dvb_subtitles_original_position = ConfigSelection( default='0', choices=[('0', _('Original')), ('1', _('Fixed')), ('2', _('Relative'))]) config.subtitles.dvb_subtitles_centered = ConfigYesNo(default=False) config.subtitles.subtitle_bad_timing_delay = ConfigSelection( default='0', choices=subtitle_delay_choicelist) config.subtitles.dvb_subtitles_backtrans = ConfigSelection( default='0', choices=[('0', _('No transparency')), ('25', '10%'), ('50', '20%'), ('75', '30%'), ('100', '40%'), ('125', '50%'), ('150', '60%'), ('175', '70%'), ('200', '80%'), ('225', '90%'), ('255', _('Full transparency'))]) config.subtitles.pango_subtitle_colors = ConfigSelection( default='1', choices=[('0', _('alternative')), ('1', _('white')), ('2', _('yellow'))]) config.subtitles.pango_subtitle_fontswitch = ConfigYesNo(default=True) config.subtitles.pango_subtitles_delay = ConfigSelection( default='0', choices=subtitle_delay_choicelist) config.subtitles.pango_subtitles_fps = ConfigSelection( default='1', choices=[('1', _('Original')), ('23976', _('23.976')), ('24000', _('24')), ('25000', _('25')), ('29970', _('29.97')), ('30000', _('30'))]) config.subtitles.pango_autoturnon = ConfigYesNo(default=True) config.autolanguage = ConfigSubsection() audio_language_choices = [ ('---', _('None')), ('orj dos ory org esl qaa und mis mul ORY ORJ Audio_ORJ', _('Original')), ('ara', _('Arabic')), ('eus baq', _('Basque')), ('bul', _('Bulgarian')), ('hrv', _('Croatian')), ('ces cze', _('Czech')), ('dan', _('Danish')), ('dut ndl', _('Dutch')), ('eng qaa', _('English')), ('est', _('Estonian')), ('fin', _('Finnish')), ('fra fre', _('French')), ('deu ger', _('German')), ('ell gre', _('Greek')), ('heb', _('Hebrew')), ('hun', _('Hungarian')), ('ind', _('Indonesian')), ('ita', _('Italian')), ('lav', _('Latvian')), ('lit', _('Lithuanian')), ('ltz', _('Luxembourgish')), ('nor', _('Norwegian')), ('pol', _('Polish')), ('por dub DUB', _('Portuguese')), ('fas per', _('Persian')), ('ron rum', _('Romanian')), ('rus', _('Russian')), ('srp', _('Serbian')), ('slk slo', _('Slovak')), ('slv', _('Slovenian')), ('spa', _('Spanish')), ('swe', _('Swedish')), ('tha', _('Thai')), ('tur Audio_TUR', _('Turkish')), ('ukr Ukr', _('Ukrainian')) ] def setEpgLanguage(configElement): eServiceEvent.setEPGLanguage(configElement.value) config.autolanguage.audio_epglanguage = ConfigSelection( audio_language_choices[:1] + audio_language_choices[2:], default='---') config.autolanguage.audio_epglanguage.addNotifier(setEpgLanguage) def setEpgLanguageAlternative(configElement): eServiceEvent.setEPGLanguageAlternative(configElement.value) config.autolanguage.audio_epglanguage_alternative = ConfigSelection( audio_language_choices[:1] + audio_language_choices[2:], default='---') config.autolanguage.audio_epglanguage_alternative.addNotifier( setEpgLanguageAlternative) config.autolanguage.audio_autoselect1 = ConfigSelection( choices=audio_language_choices, default='---') config.autolanguage.audio_autoselect2 = ConfigSelection( choices=audio_language_choices, default='---') config.autolanguage.audio_autoselect3 = ConfigSelection( choices=audio_language_choices, default='---') config.autolanguage.audio_autoselect4 = ConfigSelection( choices=audio_language_choices, default='---') config.autolanguage.audio_defaultac3 = ConfigYesNo(default=False) config.autolanguage.audio_defaultddp = ConfigYesNo(default=False) config.autolanguage.audio_usecache = ConfigYesNo(default=True) subtitle_language_choices = audio_language_choices[: 1] + audio_language_choices[ 2:] config.autolanguage.subtitle_autoselect1 = ConfigSelection( choices=subtitle_language_choices, default='---') config.autolanguage.subtitle_autoselect2 = ConfigSelection( choices=subtitle_language_choices, default='---') config.autolanguage.subtitle_autoselect3 = ConfigSelection( choices=subtitle_language_choices, default='---') config.autolanguage.subtitle_autoselect4 = ConfigSelection( choices=subtitle_language_choices, default='---') config.autolanguage.subtitle_hearingimpaired = ConfigYesNo(default=False) config.autolanguage.subtitle_defaultimpaired = ConfigYesNo(default=False) config.autolanguage.subtitle_defaultdvb = ConfigYesNo(default=False) config.autolanguage.subtitle_usecache = ConfigYesNo(default=True) config.autolanguage.equal_languages = ConfigSelection(default='15', choices=[ ('0', _('None')), ('1', '1'), ('2', '2'), ('3', '1,2'), ('4', '3'), ('5', '1,3'), ('6', '2,3'), ('7', '1,2,3'), ('8', '4'), ('9', '1,4'), ('10', '2,4'), ('11', '1,2,4'), ('12', '3,4'), ('13', '1,3,4'), ('14', '2,3,4'), ('15', _('All')) ]) config.streaming = ConfigSubsection() config.streaming.stream_ecm = ConfigYesNo(default=False) config.streaming.descramble = ConfigYesNo(default=True) config.streaming.descramble_client = ConfigYesNo(default=False) config.streaming.stream_eit = ConfigYesNo(default=True) config.streaming.stream_ait = ConfigYesNo(default=True) config.streaming.authentication = ConfigYesNo(default=False) config.mediaplayer = ConfigSubsection() config.mediaplayer.useAlternateUserAgent = ConfigYesNo(default=False) config.mediaplayer.alternateUserAgent = ConfigText(default='')
def InitAVSwitch(): config.av = ConfigSubsection() config.av.yuvenabled = ConfigBoolean(default=True) colorformat_choices = { "cvbs": _("CVBS"), "rgb": _("RGB"), "svideo": _("S-Video") } # when YUV is not enabled, don't let the user select it if config.av.yuvenabled.value: colorformat_choices["yuv"] = _("YPbPr") config.av.colorformat = ConfigSelection(choices=colorformat_choices, default="rgb") config.av.aspectratio = ConfigSelection(choices={ "4_3_letterbox": _("4:3 Letterbox"), "4_3_panscan": _("4:3 PanScan"), "16_9": _("16:9"), "16_9_always": _("16:9 always"), "16_10_letterbox": _("16:10 Letterbox"), "16_10_panscan": _("16:10 PanScan"), "16_9_letterbox": _("16:9 Letterbox") }, default="16_9") config.av.aspect = ConfigSelection(choices={ "4_3": _("4:3"), "16_9": _("16:9"), "16_10": _("16:10"), "auto": _("Automatic") }, default="auto") policy2_choices = { # TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. "letterbox": _("Letterbox"), # TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term "panscan": _("Pan&scan"), # TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) "scale": _("Just scale") } try: if "auto" in open("/proc/stb/video/policy2_choices").read(): # TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. policy2_choices.update({"auto": _("Auto")}) except: pass config.av.policy_169 = ConfigSelection(choices=policy2_choices, default="letterbox") policy_choices = { # TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. "pillarbox": _("Pillarbox"), # TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term "panscan": _("Pan&scan"), # TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) "nonlinear": _("Nonlinear"), # TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) "scale": _("Just scale") } try: if "auto" in open("/proc/stb/video/policy_choices").read(): # TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. policy_choices.update({"auto": _("Auto")}) except: pass config.av.policy_43 = ConfigSelection(choices=policy_choices, default="pillarbox") config.av.tvsystem = ConfigSelection(choices={ "pal": _("PAL"), "ntsc": _("NTSC"), "multinorm": _("multinorm") }, default="pal") config.av.wss = ConfigEnableDisable(default=True) config.av.generalAC3delay = ConfigSelectionNumber(-1000, 1000, 5, default=0) config.av.generalPCMdelay = ConfigSelectionNumber(-1000, 1000, 5, default=0) config.av.vcrswitch = ConfigEnableDisable(default=False) iAVSwitch = AVSwitch() def setColorFormat(configElement): map = {"cvbs": 0, "rgb": 1, "svideo": 2, "yuv": 3} iAVSwitch.setColorFormat(map[configElement.value]) def setAspectRatio(configElement): map = { "4_3_letterbox": 0, "4_3_panscan": 1, "16_9": 2, "16_9_always": 3, "16_10_letterbox": 4, "16_10_panscan": 5, "16_9_letterbox": 6 } iAVSwitch.setAspectRatio(map[configElement.value]) def setSystem(configElement): map = {"pal": 0, "ntsc": 1, "multinorm": 2} iAVSwitch.setSystem(map[configElement.value]) def setWSS(configElement): iAVSwitch.setAspectWSS() # this will call the "setup-val" initial config.av.colorformat.addNotifier(setColorFormat) config.av.aspectratio.addNotifier(setAspectRatio) config.av.tvsystem.addNotifier(setSystem) config.av.wss.addNotifier(setWSS) iAVSwitch.setInput("ENCODER") # init on startup if getBoxType() in ('gbquad', 'gbquadplus', 'gb800seplus', 'gb800ueplus', 'gbipbox', 'gbultra', 'gbultraue', 'gbultrase', 'tomcat', 'gbx1'): detected = False else: detected = eAVSwitch.getInstance().haveScartSwitch() SystemInfo["ScartSwitch"] = detected if os.path.exists("/proc/stb/hdmi/bypass_edid_checking"): f = open("/proc/stb/hdmi/bypass_edid_checking", "r") can_edidchecking = f.read().strip().split(" ") f.close() else: can_edidchecking = False SystemInfo["Canedidchecking"] = can_edidchecking if can_edidchecking: def setEDIDBypass(configElement): try: f = open("/proc/stb/hdmi/bypass_edid_checking", "w") f.write(configElement.value) f.close() except: pass config.av.bypass_edid_checking = ConfigSelection(choices={ "00000000": _("off"), "00000001": _("on") }, default="00000000") config.av.bypass_edid_checking.addNotifier(setEDIDBypass) else: config.av.bypass_edid_checking = ConfigNothing() if os.path.exists("/proc/stb/audio/3d_surround_choices"): f = open("/proc/stb/audio/3d_surround_choices", "r") can_3dsurround = f.read().strip().split(" ") f.close() else: can_3dsurround = False SystemInfo["Can3DSurround"] = can_3dsurround if can_3dsurround: def set3DSurround(configElement): f = open("/proc/stb/audio/3d_surround", "w") f.write(configElement.value) f.close() choice_list = [("none", _("off")), ("hdmi", _("HDMI")), ("spdif", _("SPDIF")), ("dac", _("DAC"))] config.av.surround_3d = ConfigSelection(choices=choice_list, default="none") config.av.surround_3d.addNotifier(set3DSurround) else: config.av.surround_3d = ConfigNothing() if os.path.exists("/proc/stb/audio/avl_choices"): f = open("/proc/stb/audio/avl_choices", "r") can_autovolume = f.read().strip().split(" ") f.close() else: can_autovolume = False SystemInfo["CanAutoVolume"] = can_autovolume if can_autovolume: def setAutoVulume(configElement): f = open("/proc/stb/audio/avl", "w") f.write(configElement.value) f.close() choice_list = [("none", _("off")), ("hdmi", _("HDMI")), ("spdif", _("SPDIF")), ("dac", _("DAC"))] config.av.autovolume = ConfigSelection(choices=choice_list, default="none") config.av.autovolume.addNotifier(setAutoVulume) else: config.av.autovolume = ConfigNothing() try: can_pcm_multichannel = os.access("/proc/stb/audio/multichannel_pcm", os.W_OK) except: can_pcm_multichannel = False SystemInfo["supportPcmMultichannel"] = can_pcm_multichannel if can_pcm_multichannel: def setPCMMultichannel(configElement): open("/proc/stb/audio/multichannel_pcm", "w").write(configElement.value and "enable" or "disable") config.av.pcm_multichannel = ConfigYesNo(default=False) config.av.pcm_multichannel.addNotifier(setPCMMultichannel) try: SystemInfo["CanDownmixAC3"] = "downmix" in open( "/proc/stb/audio/ac3_choices", "r").read() except: SystemInfo["CanDownmixAC3"] = False if SystemInfo["CanDownmixAC3"]: def setAC3Downmix(configElement): open("/proc/stb/audio/ac3", "w").write(configElement.value and "downmix" or "passthrough") if SystemInfo.get("supportPcmMultichannel", False) and not configElement.value: SystemInfo["CanPcmMultichannel"] = True else: SystemInfo["CanPcmMultichannel"] = False if can_pcm_multichannel: config.av.pcm_multichannel.setValue(False) config.av.downmix_ac3 = ConfigYesNo(default=True) config.av.downmix_ac3.addNotifier(setAC3Downmix) try: SystemInfo["CanDownmixDTS"] = "downmix" in open( "/proc/stb/audio/dts_choices", "r").read() except: SystemInfo["CanDownmixDTS"] = False if SystemInfo["CanDownmixDTS"]: def setDTSDownmix(configElement): open("/proc/stb/audio/dts", "w").write(configElement.value and "downmix" or "passthrough") config.av.downmix_dts = ConfigYesNo(default=True) config.av.downmix_dts.addNotifier(setDTSDownmix) try: SystemInfo["CanDownmixAAC"] = "downmix" in open( "/proc/stb/audio/aac_choices", "r").read() except: SystemInfo["CanDownmixAAC"] = False if SystemInfo["CanDownmixAAC"]: def setAACDownmix(configElement): open("/proc/stb/audio/aac", "w").write(configElement.value and "downmix" or "passthrough") config.av.downmix_aac = ConfigYesNo(default=True) config.av.downmix_aac.addNotifier(setAACDownmix) if os.path.exists("/proc/stb/audio/aac_transcode_choices"): f = open("/proc/stb/audio/aac_transcode_choices", "r") can_aactranscode = f.read().strip().split(" ") f.close() else: can_aactranscode = False SystemInfo["CanAACTranscode"] = can_aactranscode if can_aactranscode: def setAACTranscode(configElement): f = open("/proc/stb/audio/aac_transcode", "w") f.write(configElement.value) f.close() choice_list = [("off", _("off")), ("ac3", _("AC3")), ("dts", _("DTS"))] config.av.transcodeaac = ConfigSelection(choices=choice_list, default="off") config.av.transcodeaac.addNotifier(setAACTranscode) else: config.av.transcodeaac = ConfigNothing() try: SystemInfo["CanChangeOsdAlpha"] = open("/proc/stb/video/alpha", "r") and True or False except: SystemInfo["CanChangeOsdAlpha"] = False if SystemInfo["CanChangeOsdAlpha"]: def setAlpha(config): open("/proc/stb/video/alpha", "w").write(str(config.value)) config.av.osd_alpha = ConfigSlider(default=255, increment=5, limits=(20, 255)) config.av.osd_alpha.addNotifier(setAlpha) if os.path.exists("/proc/stb/vmpeg/0/pep_scaler_sharpness"): def setScaler_sharpness(config): myval = int(config.value) try: print "--> setting scaler_sharpness to: %0.8X" % myval open("/proc/stb/vmpeg/0/pep_scaler_sharpness", "w").write("%0.8X" % myval) open("/proc/stb/vmpeg/0/pep_apply", "w").write("1") except IOError: print "couldn't write pep_scaler_sharpness" if getBoxType() in ('gbquad', 'gbquadplus'): config.av.scaler_sharpness = ConfigSlider(default=5, limits=(0, 26)) else: config.av.scaler_sharpness = ConfigSlider(default=13, limits=(0, 26)) config.av.scaler_sharpness.addNotifier(setScaler_sharpness) else: config.av.scaler_sharpness = NoSave(ConfigNothing()) config.av.edid_override = ConfigYesNo(default=True)
def InitUsageConfig(): config.usage = ConfigSubsection(); config.usage.showdish = ConfigYesNo(default = True) config.usage.multibouquet = ConfigYesNo(default = True) config.usage.multiepg_ask_bouquet = ConfigYesNo(default = False) config.usage.quickzap_bouquet_change = ConfigYesNo(default = False) config.usage.e1like_radio_mode = ConfigYesNo(default = True) config.usage.infobar_timeout = ConfigSelection(default = "5", choices = [ ("0", _("no timeout")), ("1", "1 " + _("second")), ("2", "2 " + _("seconds")), ("3", "3 " + _("seconds")), ("4", "4 " + _("seconds")), ("5", "5 " + _("seconds")), ("6", "6 " + _("seconds")), ("7", "7 " + _("seconds")), ("8", "8 " + _("seconds")), ("9", "9 " + _("seconds")), ("10", "10 " + _("seconds"))]) config.usage.show_infobar_on_zap = ConfigYesNo(default = True) config.usage.show_infobar_on_skip = ConfigYesNo(default = True) config.usage.show_infobar_on_event_change = ConfigYesNo(default = False) config.usage.show_second_infobar = ConfigSelection(default = None, choices = [ (None, _("None")), ("0", _("no timeout")), ("1", "1 " + _("second")), ("2", "2 " + _("seconds")), ("3", "3 " + _("seconds")), ("4", "4 " + _("seconds")), ("5", "5 " + _("seconds")), ("6", "6 " + _("seconds")), ("7", "7 " + _("seconds")), ("8", "8 " + _("seconds")), ("9", "9 " + _("seconds")), ("10", "10 " + _("seconds"))]) config.usage.show_spinner = ConfigYesNo(default = True) config.usage.enable_tt_caching = ConfigYesNo(default = True) config.usage.hdd_standby = ConfigSelection(default = "300", choices = [ ("0", _("no standby")), ("10", "10 " + _("seconds")), ("30", "30 " + _("seconds")), ("60", "1 " + _("minute")), ("120", "2 " + _("minutes")), ("300", "5 " + _("minutes")), ("600", "10 " + _("minutes")), ("1200", "20 " + _("minutes")), ("1800", "30 " + _("minutes")), ("3600", "1 " + _("hour")), ("7200", "2 " + _("hours")), ("14400", "4 " + _("hours")) ]) config.usage.output_12V = ConfigSelection(default = "do not change", choices = [ ("do not change", _("do not change")), ("off", _("off")), ("on", _("on")) ]) config.usage.pip_zero_button = ConfigSelection(default = "standard", choices = [ ("standard", _("standard")), ("swap", _("swap PiP and main picture")), ("swapstop", _("move PiP to main picture")), ("stop", _("stop PiP")) ]) config.usage.default_path = ConfigText(default = resolveFilename(SCOPE_HDD)) config.usage.timer_path = ConfigText(default = "<default>") config.usage.instantrec_path = ConfigText(default = "<default>") config.usage.timeshift_path = ConfigText(default = "/media/hdd/") config.usage.allowed_timeshift_paths = ConfigLocations(default = ["/media/hdd/"]) config.usage.movielist_trashcan = ConfigYesNo(default=True) config.usage.movielist_trashcan_days = ConfigNumber(default=8) config.usage.movielist_trashcan_reserve = ConfigNumber(default=40) config.usage.on_movie_start = ConfigSelection(default = "resume", choices = [ ("ask", _("Ask user")), ("resume", _("Resume from last position")), ("beginning", _("Start from the beginning")) ]) config.usage.on_movie_stop = ConfigSelection(default = "movielist", choices = [ ("ask", _("Ask user")), ("movielist", _("Return to movie list")), ("quit", _("Return to previous service")) ]) config.usage.on_movie_eof = ConfigSelection(default = "movielist", choices = [ ("ask", _("Ask user")), ("movielist", _("Return to movie list")), ("quit", _("Return to previous service")), ("pause", _("Pause movie at end")) ]) config.usage.setup_level = ConfigSelection(default = "expert", choices = [ ("simple", _("Simple")), ("intermediate", _("Intermediate")), ("expert", _("Expert")) ]) config.usage.on_long_powerpress = ConfigSelection(default = "show_menu", choices = [ ("show_menu", _("show shutdown menu")), ("shutdown", _("immediate shutdown")), ("standby", _("Standby")) ] ) config.usage.on_short_powerpress = ConfigSelection(default = "standby", choices = [ ("show_menu", _("show shutdown menu")), ("shutdown", _("immediate shutdown")), ("standby", _("Standby")) ] ) config.usage.alternatives_priority = ConfigSelection(default = "0", choices = [ ("0", "DVB-S/-C/-T"), ("1", "DVB-S/-T/-C"), ("2", "DVB-C/-S/-T"), ("3", "DVB-C/-T/-S"), ("4", "DVB-T/-C/-S"), ("5", "DVB-T/-S/-C") ]) nims = [("-1", _("auto"))] for x in nimmanager.nim_slots: nims.append((str(x.slot), x.getSlotName())) config.usage.frontend_priority = ConfigSelection(default = "-1", choices = nims) config.misc.disable_background_scan = ConfigYesNo(default = False) config.usage.show_event_progress_in_servicelist = ConfigYesNo(default = True) config.usage.show_channel_numbers_in_servicelist = ConfigYesNo(default = True) config.usage.blinking_display_clock_during_recording = ConfigYesNo(default = False) config.usage.show_message_when_recording_starts = ConfigYesNo(default = True) config.usage.load_length_of_movies_in_moviellist = ConfigYesNo(default = True) config.usage.show_icons_in_movielist = ConfigSelection(default = 'i', choices = [ ('o', _("Off")), ('p', _("Progress")), ('s', _("Progress Small")), ('i', _("Icons")), ]) config.usage.movielist_unseen = ConfigYesNo(default = False) config.usage.swap_snr_on_osd = ConfigYesNo(default = False) def SpinnerOnOffChanged(configElement): setSpinnerOnOff(int(configElement.value)) config.usage.show_spinner.addNotifier(SpinnerOnOffChanged) def EnableTtCachingChanged(configElement): setEnableTtCachingOnOff(int(configElement.value)) config.usage.enable_tt_caching.addNotifier(EnableTtCachingChanged) def TunerTypePriorityOrderChanged(configElement): setTunerTypePriorityOrder(int(configElement.value)) config.usage.alternatives_priority.addNotifier(TunerTypePriorityOrderChanged, immediate_feedback=False) def PreferredTunerChanged(configElement): setPreferredTuner(int(configElement.value)) config.usage.frontend_priority.addNotifier(PreferredTunerChanged) config.usage.hide_zap_errors = ConfigYesNo(default = False) config.usage.hide_ci_messages = ConfigYesNo(default = False) config.usage.show_cryptoinfo = ConfigYesNo(default = True) config.usage.show_eit_nownext = ConfigYesNo(default = True) config.epg = ConfigSubsection() config.epg.eit = ConfigYesNo(default = True) config.epg.mhw = ConfigYesNo(default = False) config.epg.freesat = ConfigYesNo(default = True) config.epg.viasat = ConfigYesNo(default = True) config.epg.netmed = ConfigYesNo(default = True) config.misc.showradiopic = ConfigYesNo(default = True) def EpgSettingsChanged(configElement): from enigma import eEPGCache mask = 0xffffffff if not config.epg.eit.value: mask &= ~(eEPGCache.NOWNEXT | eEPGCache.SCHEDULE | eEPGCache.SCHEDULE_OTHER) if not config.epg.mhw.value: mask &= ~eEPGCache.MHW if not config.epg.freesat.value: mask &= ~(eEPGCache.FREESAT_NOWNEXT | eEPGCache.FREESAT_SCHEDULE | eEPGCache.FREESAT_SCHEDULE_OTHER) if not config.epg.viasat.value: mask &= ~eEPGCache.VIASAT if not config.epg.netmed.value: mask &= ~(eEPGCache.NETMED_SCHEDULE | eEPGCache.NETMED_SCHEDULE_OTHER) eEPGCache.getInstance().setEpgSources(mask) config.epg.eit.addNotifier(EpgSettingsChanged) config.epg.mhw.addNotifier(EpgSettingsChanged) config.epg.freesat.addNotifier(EpgSettingsChanged) config.epg.viasat.addNotifier(EpgSettingsChanged) config.epg.netmed.addNotifier(EpgSettingsChanged) def setHDDStandby(configElement): for hdd in harddiskmanager.HDDList(): hdd[1].setIdleTime(int(configElement.value)) config.usage.hdd_standby.addNotifier(setHDDStandby, immediate_feedback=False) def set12VOutput(configElement): if configElement.value == "on": enigma.Misc_Options.getInstance().set_12V_output(1) elif configElement.value == "off": enigma.Misc_Options.getInstance().set_12V_output(0) config.usage.output_12V.addNotifier(set12VOutput, immediate_feedback=False) SystemInfo["12V_Output"] = enigma.Misc_Options.getInstance().detected_12V_output() config.usage.keymap = ConfigText(default = eEnv.resolve("${datadir}/enigma2/keymap.xml")) config.seek = ConfigSubsection() config.seek.selfdefined_13 = ConfigNumber(default=15) config.seek.selfdefined_46 = ConfigNumber(default=60) config.seek.selfdefined_79 = ConfigNumber(default=300) config.seek.speeds_forward = ConfigSet(default=[2, 4, 8, 16, 32, 64, 128], choices=[2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128]) config.seek.speeds_backward = ConfigSet(default=[2, 4, 8, 16, 32, 64, 128], choices=[1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128]) config.seek.speeds_slowmotion = ConfigSet(default=[2, 4, 8], choices=[2, 4, 6, 8, 12, 16, 25]) config.seek.enter_forward = ConfigSelection(default = "2", choices = ["2", "4", "6", "8", "12", "16", "24", "32", "48", "64", "96", "128"]) config.seek.enter_backward = ConfigSelection(default = "1", choices = ["1", "2", "4", "6", "8", "12", "16", "24", "32", "48", "64", "96", "128"]) config.seek.on_pause = ConfigSelection(default = "play", choices = [ ("play", _("Play")), ("step", _("Singlestep (GOP)")), ("last", _("Last speed")) ]) config.crash = ConfigSubsection() config.crash.details = ConfigYesNo(default = False) config.usage.timerlist_finished_timer_position = ConfigSelection(default = "end", choices = [("beginning", _("at beginning")), ("end", _("at end"))]) def updateEnterForward(configElement): if not configElement.value: configElement.value = [2] updateChoices(config.seek.enter_forward, configElement.value) config.seek.speeds_forward.addNotifier(updateEnterForward, immediate_feedback = False) def updateEnterBackward(configElement): if not configElement.value: configElement.value = [2] updateChoices(config.seek.enter_backward, configElement.value) config.seek.speeds_backward.addNotifier(updateEnterBackward, immediate_feedback = False) def updateFlushSize(el): enigma.setFlushSize(int(el.value)) print "[SETTING] getFlushSize=", enigma.getFlushSize() def updateDemuxSize(el): enigma.setDemuxSize(int(el.value)) print "[SETTING] getDemuxSize=", enigma.getDemuxSize() config.misc.flush_size = ConfigSelection(default = "0", choices = [ ("0", "Off"), ("524288", "512kB"), ("1048576", "1 MB"), ("2097152", "2 MB"), ("4194304", "4 MB")]) config.misc.flush_size.addNotifier(updateFlushSize, immediate_feedback = False) config.misc.demux_size = ConfigSelection(default = "1540096", choices = [ ("770048", "Small 0.7 MB"), ("962560", "Normal 1 MB"), ("1540096", "Large 1.5MB"), ("1925120", "Huge 2 MB")]) config.misc.demux_size.addNotifier(updateDemuxSize, immediate_feedback = False) def updateEraseSpeed(el): enigma.eBackgroundFileEraser.getInstance().setEraseSpeed(int(el.value)) def updateEraseFlags(el): enigma.eBackgroundFileEraser.getInstance().setEraseFlags(int(el.value)) config.misc.erase_speed = ConfigSelection(default="20", choices = [ ("10", "10 MB/s"), ("20", "20 MB/s"), ("50", "50 MB/s"), ("100", "100 MB/s")]) config.misc.erase_speed.addNotifier(updateEraseSpeed, immediate_feedback = False) config.misc.erase_flags = ConfigSelection(default="1", choices = [ ("0", _("Disable")), ("1", _("Internal hdd only")), ("3", _("Everywhere"))]) config.misc.erase_flags.addNotifier(updateEraseFlags, immediate_feedback = False) SystemInfo["ZapMode"] = os.path.exists("/proc/stb/video/zapmode") if SystemInfo["ZapMode"]: def setZapmode(el): try: file = open("/proc/stb/video/zapmode", "w") file.write(el.value) file.close() except: pass config.misc.zapmode = ConfigSelection(default = "mute", choices = [ ("mute", _("Black screen")), ("hold", _("Hold screen")), ("mutetilllock", _("Black screen till locked")), ("holdtilllock", _("Hold till locked"))]) config.misc.zapmode.addNotifier(setZapmode, immediate_feedback = False) config.subtitles = ConfigSubsection() config.subtitles.ttx_subtitle_colors = ConfigSelection(default = "1", choices = [ ("0", _("original")), ("1", _("white")), ("2", _("yellow")) ]) config.subtitles.ttx_subtitle_original_position = ConfigYesNo(default = False) config.subtitles.subtitle_position = ConfigSelection( choices = ["0", "10", "20", "30", "40", "50", "60", "70", "80", "90", "100", "150", "200", "250", "300", "350", "400", "450"], default = "50") config.subtitles.subtitle_alignment = ConfigSelection(choices = ["left", "center", "right"], default = "center") config.subtitles.subtitle_rewrap = ConfigYesNo(default = False) config.subtitles.subtitle_borderwidth = ConfigSelection(choices = ["1", "2", "3", "4", "5"], default = "3") config.subtitles.subtitle_fontsize = ConfigSelection(choices = ["16", "18", "20", "22", "24", "26", "28", "30", "32", "34", "36", "38", "40", "42", "44", "46", "48", "50", "52", "54"], default = "34") config.subtitles.subtitle_noPTSrecordingdelay = ConfigSelection(default = "315000", choices = [ ("0", "No Delay"), ("45000", "0.5 sec"), ("90000", "1.0 sec"), ("135000", "1.5 sec"), ("180000", "2.0 sec"), ("225000", "2.5 sec"), ("270000", "3.0 sec"), ("315000", "3.5 sec"), ("360000", "4.0 sec"), ("405000", "4.5 sec"), ("450000", "5.0 sec"), ("495000", "5.5 sec"), ("540000", "6.0 sec"), ("585000", "6.5 sec"), ("630000", "7.0 sec"), ("475000", "7.5 sec"), ("720000", "8.0 sec"), ("765000", "8.5 sec"), ("810000", "9.0 sec"), ("855000", "9.5 sec"), ("900000", "10.0 sec")]) config.subtitles.dvb_subtitles_yellow = ConfigYesNo(default = False) config.subtitles.dvb_subtitles_centered = ConfigYesNo(default = False) config.subtitles.dvb_subtitles_backtrans = ConfigSelection(default = "0", choices = [ ("0", _("no transparency")), ("25", "10%"), ("50", "20%"), ("75", "30%"), ("100", "40%"), ("125", "50%"), ("150", "60%"), ("175", "70%"), ("200", "80%"), ("225", "90%"), ("255", _("full transparency"))]) config.subtitles.pango_subtitles_yellow = ConfigYesNo(default = False) config.autolanguage = ConfigSubsection() audio_language_choices=[ ("---", "None"), ("orj dos ory org esl qaa und mis mul ORY", "Original"), ("ara", "Arabic"), ("eus baq", "Basque"), ("bul", "Bulgarian"), ("hrv", "Croatian"), ("ces cze", "Czech"), ("dan", "Danish"), ("dut ndl", "Dutch"), ("eng", "English"), ("est", "Estonian"), ("fin", "Finnish"), ("fra fre", "French"), ("deu ger", "German"), ("ell gre", "Greek"), ("heb", "Hebrew"), ("hun", "Hungarian"), ("ita", "Italian"), ("lat", "Latvian"), ("lit", "Lithuanian"), ("ltz", "Letzeburgesch"), ("nor", "Norwegian"), ("pol", "Polish"), ("por", "Portuguese"), ("fas per", "Persian"), ("ron rum", "Romanian"), ("rus", "Russian"), ("srp", "Serbian"), ("slk slo", "Slovak"), ("slv", "Slovenian"), ("spa", "Spanish"), ("swe", "Swedish"), ("tur", "Turkish")] def setEpgLanguage(configElement): enigma.eServiceEvent.setEPGLanguage(configElement.value) config.autolanguage.audio_epglanguage = ConfigSelection(audio_language_choices[:1] + audio_language_choices [2:], default="---") config.autolanguage.audio_epglanguage.addNotifier(setEpgLanguage) def setEpgLanguageAlternative(configElement): enigma.eServiceEvent.setEPGLanguageAlternative(configElement.value) config.autolanguage.audio_epglanguage_alternative = ConfigSelection(audio_language_choices[:1] + audio_language_choices [2:], default="---") config.autolanguage.audio_epglanguage_alternative.addNotifier(setEpgLanguageAlternative) config.autolanguage.audio_autoselect1 = ConfigSelection(choices=audio_language_choices, default="---") config.autolanguage.audio_autoselect2 = ConfigSelection(choices=audio_language_choices, default="---") config.autolanguage.audio_autoselect3 = ConfigSelection(choices=audio_language_choices, default="---") config.autolanguage.audio_autoselect4 = ConfigSelection(choices=audio_language_choices, default="---") config.autolanguage.audio_defaultac3 = ConfigYesNo(default = False) config.autolanguage.audio_usecache = ConfigYesNo(default = True) subtitle_language_choices = audio_language_choices[:1] + audio_language_choices [2:] config.autolanguage.subtitle_autoselect1 = ConfigSelection(choices=subtitle_language_choices, default="---") config.autolanguage.subtitle_autoselect2 = ConfigSelection(choices=subtitle_language_choices, default="---") config.autolanguage.subtitle_autoselect3 = ConfigSelection(choices=subtitle_language_choices, default="---") config.autolanguage.subtitle_autoselect4 = ConfigSelection(choices=subtitle_language_choices, default="---") config.autolanguage.subtitle_hearingimpaired = ConfigYesNo(default = False) config.autolanguage.subtitle_defaultimpaired = ConfigYesNo(default = False) config.autolanguage.subtitle_defaultdvb = ConfigYesNo(default = False) config.autolanguage.subtitle_usecache = ConfigYesNo(default = True) config.autolanguage.equal_languages = ConfigSelection(default = "0", choices = [ ("0", "None"),("1", "1"),("2", "2"),("3", "1,2"), ("4", "3"),("5", "1,3"),("6", "2,3"),("7", "1,2,3"), ("8", "4"),("9", "1,4"),("10", "2,4"),("11", "1,2,4"), ("12", "3,4"),("13", "1,3,4"),("14", "2,3,4"),("15", "All")]) config.pc = ConfigSubsection(); config.pc.default_fullscreen = ConfigYesNo(default = False) config.pc.zoom_enable = ConfigYesNo(default = False); config.pc.image4_3_zoom_x = ConfigNumber(default = 100) config.pc.image4_3_zoom_y = ConfigNumber(default = 100) config.pc.image16_9_zoom_x = ConfigNumber(default = 100) config.pc.image16_9_zoom_y = ConfigNumber(default = 100)
def InitAVSwitch(): config.av = ConfigSubsection() config.av.yuvenabled = ConfigBoolean(default=True) colorformat_choices = {"cvbs": "CVBS"} # when YUV, Scart or S-Video is not support by HW, don't let the user select it if SystemInfo["HasYPbPr"]: colorformat_choices["yuv"] = "YPbPr" if SystemInfo["HasScart"]: colorformat_choices["rgb"] = "RGB" if SystemInfo["HasSVideo"]: colorformat_choices["svideo"] = "S-Video" config.av.colorformat = ConfigSelection(choices=colorformat_choices, default="cvbs") config.av.aspectratio = ConfigSelection(choices={ "4_3_letterbox": _("4:3 Letterbox"), "4_3_panscan": _("4:3 PanScan"), "16_9": "16:9", "16_9_always": _("16:9 always"), "16_10_letterbox": _("16:10 Letterbox"), "16_10_panscan": _("16:10 PanScan"), "16_9_letterbox": _("16:9 Letterbox") }, default="16_9") config.av.aspect = ConfigSelection(choices={ "4_3": "4:3", "16_9": "16:9", "16_10": "16:10", "auto": _("automatic") }, default="auto") policy2_choices = { # TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. "letterbox": _("Letterbox"), # TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term "panscan": _("Pan&scan"), # TRANSLATORS: (aspect ratio policy: scale as close to fullscreen as possible) "scale": _("Just scale") } if fileExists("/proc/stb/video/policy2_choices"): with open("/proc/stb/video/policy2_choices") as f: if "full" in f.read(): # TRANSLATORS: (aspect ratio policy: display as fullscreen, even if the content aspect ratio does not match the screen ratio) policy2_choices.update({"full": _("Full screen")}) elif "auto" in f.read(): # TRANSLATORS: (aspect ratio policy: automatically select the best aspect ratio mode) policy2_choices.update({"auto": _("Auto")}) config.av.policy_169 = ConfigSelection(choices=policy2_choices, default="letterbox") policy_choices = { # TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. "pillarbox": _("Pillarbox"), # TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term "panscan": _("Pan&scan"), # TRANSLATORS: (aspect ratio policy: scale as close to fullscreen as possible) "scale": _("Just scale") } if fileExists("/proc/stb/video/policy_choices"): with open("/proc/stb/video/policy_choices") as f: if "nonlinear" in f.read(): # TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) policy_choices.update({"nonlinear": _("Nonlinear")}) elif "full" in f.read(): # TRANSLATORS: (aspect ratio policy: display as fullscreen, even if the content aspect ratio does not match the screen ratio) policy_choices.update({"full": _("Full screen")}) elif "auto" in f.read(): # TRANSLATORS: (aspect ratio policy: automatically select the best aspect ratio mode) policy_choices.update({"auto": _("Auto")}) config.av.policy_43 = ConfigSelection(choices=policy_choices, default="pillarbox") config.av.tvsystem = ConfigSelection(choices={ "pal": "PAL", "ntsc": "NTSC", "multinorm": "multinorm" }, default="pal") config.av.wss = ConfigEnableDisable(default=True) config.av.generalAC3delay = ConfigSelectionNumber(-1000, 1000, 5, default=0) config.av.generalPCMdelay = ConfigSelectionNumber(-1000, 1000, 5, default=0) config.av.vcrswitch = ConfigEnableDisable(default=False) iAVSwitch = AVSwitch() def setColorFormat(configElement): map = {"cvbs": 0, "rgb": 1, "svideo": 2, "yuv": 3} iAVSwitch.setColorFormat(map[configElement.value]) def setAspectRatio(configElement): map = { "4_3_letterbox": 0, "4_3_panscan": 1, "16_9": 2, "16_9_always": 3, "16_10_letterbox": 4, "16_10_panscan": 5, "16_9_letterbox": 6 } iAVSwitch.setAspectRatio(map[configElement.value]) def setSystem(configElement): map = {"pal": 0, "ntsc": 1, "multinorm": 2} iAVSwitch.setSystem(map[configElement.value]) def setWSS(configElement): iAVSwitch.setAspectWSS() # this will call the "setup-val" initial config.av.colorformat.addNotifier(setColorFormat) config.av.aspectratio.addNotifier(setAspectRatio) config.av.tvsystem.addNotifier(setSystem) config.av.wss.addNotifier(setWSS) iAVSwitch.setInput("ENCODER") # init on startup SystemInfo["ScartSwitch"] = eAVSwitch.getInstance().haveScartSwitch() if SystemInfo["CanDownmixAC3"]: def setAC3Downmix(configElement): with open("/proc/stb/audio/ac3", "w") as f: if SystemInfo["DreamBoxAudio"]: f.write(configElement.value) else: f.write(configElement.value and "downmix" or "passthrough") if SystemInfo["DreamBoxAudio"]: choice_list = [("downmix", _("Downmix")), ("passthrough", _("Passthrough")), ("multichannel", _("convert to multi-channel PCM")), ("hdmi_best", _("use best / controlled by HDMI"))] config.av.downmix_ac3 = ConfigSelection(choices=choice_list, default="downmix") else: config.av.downmix_ac3 = ConfigYesNo(default=True) config.av.downmix_ac3.addNotifier(setAC3Downmix) if SystemInfo["CanAC3plusTranscode"]: def setAC3plusTranscode(configElement): with open("/proc/stb/audio/ac3plus", "w") as f: f.write(configElement.value) if SystemInfo["DreamBoxAudio"]: choice_list = [("use_hdmi_caps", _("controlled by HDMI")), ("force_ac3", _("convert to AC3")), ("multichannel", _("convert to multi-channel PCM")), ("hdmi_best", _("use best / controlled by HDMI")), ("force_ddp", _("force AC3plus"))] config.av.transcodeac3plus = ConfigSelection(choices=choice_list, default="force_ac3") else: choice_list = [("use_hdmi_caps", _("controlled by HDMI")), ("force_ac3", _("convert to AC3"))] config.av.transcodeac3plus = ConfigSelection(choices=choice_list, default="force_ac3") config.av.transcodeac3plus.addNotifier(setAC3plusTranscode) if SystemInfo["CanDownmixDTS"]: def setDTSDownmix(configElement): with open("/proc/stb/audio/dts", "w") as f: f.write(configElement.value and "downmix" or "passthrough") config.av.downmix_dts = ConfigYesNo(default=True) config.av.downmix_dts.addNotifier(setDTSDownmix) if SystemInfo["CanDTSHD"]: def setDTSHD(configElement): with open("/proc/stb/audio/dtshd", "w") as f: f.write(configElement.value) if boxtype in ("dm7080", "dm820"): choice_list = [("use_hdmi_caps", _("controlled by HDMI")), ("force_dts", _("convert to DTS"))] config.av.dtshd = ConfigSelection(choices=choice_list, default="use_hdmi_caps") else: choice_list = [("downmix", _("Downmix")), ("force_dts", _("convert to DTS")), ("use_hdmi_caps", _("controlled by HDMI")), ("multichannel", _("convert to multi-channel PCM")), ("hdmi_best", _("use best / controlled by HDMI"))] config.av.dtshd = ConfigSelection(choices=choice_list, default="downmix") config.av.dtshd.addNotifier(setDTSHD) if SystemInfo["CanWMAPRO"]: def setWMAPRO(configElement): with open("/proc/stb/audio/wmapro", "w") as f: f.write(configElement.value) choice_list = [("downmix", _("Downmix")), ("passthrough", _("Passthrough")), ("multichannel", _("convert to multi-channel PCM")), ("hdmi_best", _("use best / controlled by HDMI"))] config.av.wmapro = ConfigSelection(choices=choice_list, default="downmix") config.av.wmapro.addNotifier(setWMAPRO) if SystemInfo["CanDownmixAAC"]: def setAACDownmix(configElement): with open("/proc/stb/audio/aac", "w") as f: if SystemInfo["DreamBoxAudio"]: f.write(configElement.value) else: f.write(configElement.value and "downmix" or "passthrough") if SystemInfo["DreamBoxAudio"]: choice_list = [("downmix", _("Downmix")), ("passthrough", _("Passthrough")), ("multichannel", _("convert to multi-channel PCM")), ("hdmi_best", _("use best / controlled by HDMI"))] config.av.downmix_aac = ConfigSelection(choices=choice_list, default="downmix") else: config.av.downmix_aac = ConfigYesNo(default=True) config.av.downmix_aac.addNotifier(setAACDownmix) if fileExists("/proc/stb/video/alpha"): f = open("/proc/stb/video/alpha", "r") SystemInfo["CanChangeOsdAlpha"] = f and True or False f.close() else: SystemInfo["CanChangeOsdAlpha"] = False if SystemInfo["CanChangeOsdAlpha"]: def setAlpha(config): f = open("/proc/stb/video/alpha", "w") f.write(str(config.value)) f.close() config.av.osd_alpha = ConfigSlider(default=255, limits=(0, 255)) config.av.osd_alpha.addNotifier(setAlpha) if os.path.exists("/proc/stb/vmpeg/0/pep_scaler_sharpness"): def setScaler_sharpness(config): myval = int(config.value) try: print "--> setting scaler_sharpness to: %0.8X" % myval f = open("/proc/stb/vmpeg/0/pep_scaler_sharpness", "w") f.write("%0.8X" % myval) f.close() except IOError: print "couldn't write pep_scaler_sharpness" if fileExists("/proc/stb/vmpeg/0/pep_apply"): try: f = open("/proc/stb/vmpeg/0/pep_apply", "w") f.write("1") f.close() except IOError: print "couldn't write pep_apply" config.av.scaler_sharpness = ConfigSlider(default=13, limits=(0, 26)) config.av.scaler_sharpness.addNotifier(setScaler_sharpness) else: config.av.scaler_sharpness = NoSave(ConfigNothing()) if SystemInfo["HasMultichannelPCM"]: def setMultichannelPCM(configElement): f = open(SystemInfo["HasMultichannelPCM"], "w") f.write(configElement.value and "enable" or "disable") f.close() config.av.multichannel_pcm = ConfigYesNo(default=False) config.av.multichannel_pcm.addNotifier(setMultichannelPCM) if SystemInfo["HasAutoVolume"]: def setAutoVolume(configElement): f = open(SystemInfo["HasAutoVolume"], "w") f.write(configElement.value) f.close() config.av.autovolume = ConfigSelection(default="none", choices=[("none", _("off")), ("hdmi", "HDMI"), ("spdif", "SPDIF"), ("dac", "DAC")]) config.av.autovolume.addNotifier(setAutoVolume) if SystemInfo["HasAutoVolumeLevel"]: def setAutoVolumeLevel(configElement): f = open(SystemInfo["HasAutoVolumeLevel"], "w") f.write(configElement.value and "enabled" or "disabled") f.close() config.av.autovolumelevel = ConfigYesNo(default=False) config.av.autovolumelevel.addNotifier(setAutoVolumeLevel) if SystemInfo["Has3DSurround"]: def set3DSurround(configElement): f = open(SystemInfo["Has3DSurround"], "w") f.write(configElement.value) f.close() config.av.surround_3d = ConfigSelection(default="none", choices=[("none", _("off")), ("hdmi", "HDMI"), ("spdif", "SPDIF"), ("dac", "DAC")]) config.av.surround_3d.addNotifier(set3DSurround) if SystemInfo["Has3DSpeaker"]: def set3DSpeaker(configElement): f = open(SystemInfo["Has3DSpeaker"], "w") f.write(configElement.value) f.close() config.av.speaker_3d = ConfigSelection(default="center", choices=[("center", _("center")), ("wide", _("wide")), ("extrawide", _("extra wide"))]) config.av.speaker_3d.addNotifier(set3DSpeaker) if SystemInfo["Has3DSurroundSpeaker"]: def set3DSurroundSpeaker(configElement): f = open(SystemInfo["Has3DSurroundSpeaker"], "w") f.write(configElement.value) f.close() config.av.surround_3d_speaker = ConfigSelection( default="disabled", choices=[("disabled", _("off")), ("center", _("center")), ("wide", _("wide")), ("extrawide", _("extra wide"))]) config.av.surround_3d_speaker.addNotifier(set3DSurroundSpeaker) if SystemInfo["Has3DSurroundSoftLimiter"]: def set3DSurroundSoftLimiter(configElement): f = open(SystemInfo["Has3DSurroundSoftLimiter"], "w") f.write(configElement.value and "enabled" or "disabled") f.close() config.av.surround_softlimiter_3d = ConfigYesNo(default=False) config.av.surround_softlimiter_3d.addNotifier(set3DSurroundSoftLimiter) if SystemInfo["HDMIAudioSource"]: def setHDMIAudioSource(configElement): f = open(SystemInfo["HDMIAudioSource"], "w") f.write(configElement.value) f.close() config.av.hdmi_audio_source = ConfigSelection(default="pcm", choices=[("pcm", "PCM"), ("spdif", "SPDIF")]) config.av.hdmi_audio_source.addNotifier(setHDMIAudioSource) def setVolumeStepsize(configElement): eDVBVolumecontrol.getInstance().setVolumeSteps(int( configElement.value)) config.av.volume_stepsize = ConfigSelectionNumber(1, 10, 1, default=5) config.av.volume_stepsize.addNotifier(setVolumeStepsize)
def InitLcd(): if getBoxType() in ( 'gbx34k', 'force4', 'alien5', 'viperslim', 'lunix', 'lunix4k', 'purehdse', 'vipert2c', 'evoslimse', 'evoslimt2c', 'valalinux', 'tmtwin4k', 'tmnanom3', 'mbmicrov2', 'revo4k', 'force3uhd', 'force2nano', 'evoslim', 'wetekplay', 'wetekplay2', 'wetekhub', 'ultrabox', 'novaip', 'dm520', 'dm525', 'purehd', 'mutant11', 'xpeedlxpro', 'zgemmai55', 'sf98', 'et7x00mini', 'xpeedlxcs2', 'xpeedlxcc', 'e4hd', 'e4hdhybrid', 'mbmicro', 'beyonwizt2', 'amikomini', 'dynaspark', 'amiko8900', 'sognorevolution', 'arguspingulux', 'arguspinguluxmini', 'arguspinguluxplus', 'sparkreloaded', 'sabsolo', 'sparklx', 'gis8120', 'gb800se', 'gb800solo', 'gb800seplus', 'gbultrase', 'gbipbox', 'tmsingle', 'tmnano2super', 'iqonios300hd', 'iqonios300hdv2', 'optimussos1plus', 'optimussos1', 'vusolo', 'et4x00', 'et5x00', 'et6x00', 'et7000', 'et7100', 'et7x00mini', 'mixosf7', 'mixoslumi', 'gbx1', 'gbx2', 'gbx3', 'gbx3h'): detected = False else: detected = eDBoxLCD.getInstance().detected() SystemInfo['Display'] = detected config.lcd = ConfigSubsection() if fileExists('/proc/stb/lcd/mode'): f = open('/proc/stb/lcd/mode', 'r') can_lcdmodechecking = f.read() f.close() else: can_lcdmodechecking = False SystemInfo['LCDMiniTV'] = can_lcdmodechecking if detected: ilcd = LCD() if can_lcdmodechecking: def setLCDModeMinitTV(configElement): try: print 'setLCDModeMinitTV', configElement.value f = open('/proc/stb/lcd/mode', 'w') f.write(configElement.value) f.close() except: pass def setMiniTVFPS(configElement): try: print 'setMiniTVFPS', configElement.value f = open('/proc/stb/lcd/fps', 'w') f.write('%d \n' % configElement.value) f.close() except: pass def setLCDModePiP(configElement): pass def setLCDScreenshot(configElement): ilcd.setScreenShot(configElement.value) config.lcd.modepip = ConfigSelection(choices={ '0': _('off'), '5': _('PIP'), '7': _('PIP with OSD') }, default='0') config.lcd.modepip.addNotifier(setLCDModePiP) config.lcd.screenshot = ConfigYesNo(default=False) config.lcd.screenshot.addNotifier(setLCDScreenshot) config.lcd.modeminitv = ConfigSelection(choices={ '0': _('normal'), '1': _('MiniTV'), '2': _('OSD'), '3': _('MiniTV with OSD') }, default='0') config.lcd.fpsminitv = ConfigSlider(default=30, limits=(0, 30)) config.lcd.modeminitv.addNotifier(setLCDModeMinitTV) config.lcd.fpsminitv.addNotifier(setMiniTVFPS) else: config.lcd.modeminitv = ConfigNothing() config.lcd.screenshot = ConfigNothing() config.lcd.fpsminitv = ConfigNothing() config.lcd.scroll_speed = ConfigSelection(default='300', choices=[('500', _('slow')), ('300', _('normal')), ('100', _('fast'))]) config.lcd.scroll_delay = ConfigSelection( default='10000', choices=[('10000', '10 ' + _('seconds')), ('20000', '20 ' + _('seconds')), ('30000', '30 ' + _('seconds')), ('60000', '1 ' + _('minute')), ('300000', '5 ' + _('minutes')), ('noscrolling', _('off'))]) def setLCDbright(configElement): ilcd.setBright(configElement.value) def setLCDstandbybright(configElement): ilcd.setStandbyBright(configElement.value) def setLCDdimbright(configElement): ilcd.setDimBright(configElement.value) def setLCDdimdelay(configElement): ilcd.setDimDelay(configElement.value) def setLCDcontrast(configElement): ilcd.setContrast(configElement.value) def setLCDinverted(configElement): ilcd.setInverted(configElement.value) def setLCDflipped(configElement): ilcd.setFlipped(configElement.value) def setLCDmode(configElement): ilcd.setMode(configElement.value) def setLCDpower(configElement): ilcd.setPower(configElement.value) def setfblcddisplay(configElement): ilcd.setfblcddisplay(configElement.value) def setLCDshowoutputresolution(configElement): ilcd.setShowoutputresolution(configElement.value) def setLCDminitvmode(configElement): ilcd.setLCDMiniTVMode(configElement.value) def setLCDminitvpipmode(configElement): ilcd.setLCDMiniTVPIPMode(configElement.value) def setLCDminitvfps(configElement): ilcd.setLCDMiniTVFPS(configElement.value) def setLEDnormalstate(configElement): ilcd.setLEDNormalState(configElement.value) def setLEDdeepstandby(configElement): ilcd.setLEDDeepStandbyState(configElement.value) def setLEDblinkingtime(configElement): ilcd.setLEDBlinkingTime(configElement.value) def setPowerLEDstate(configElement): if fileExists('/proc/stb/power/powerled'): f = open('/proc/stb/power/powerled', 'w') f.write(configElement.value) f.close() def setPowerLEDstate2(configElement): if fileExists('/proc/stb/power/powerled2'): f = open('/proc/stb/power/powerled2', 'w') f.write(configElement.value) f.close() def setPowerLEDstanbystate(configElement): if fileExists('/proc/stb/power/standbyled'): f = open('/proc/stb/power/standbyled', 'w') f.write(configElement.value) f.close() def setPowerLEDdeepstanbystate(configElement): if fileExists('/proc/stb/power/suspendled'): f = open('/proc/stb/power/suspendled', 'w') f.write(configElement.value) f.close() def setLedPowerColor(configElement): if fileExists('/proc/stb/fp/ledpowercolor'): f = open('/proc/stb/fp/ledpowercolor', 'w') f.write(configElement.value) f.close() def setLedStandbyColor(configElement): if fileExists('/proc/stb/fp/ledstandbycolor'): f = open('/proc/stb/fp/ledstandbycolor', 'w') f.write(configElement.value) f.close() def setLedSuspendColor(configElement): if fileExists('/proc/stb/fp/ledsuspendledcolor'): f = open('/proc/stb/fp/ledsuspendledcolor', 'w') f.write(configElement.value) f.close() def setPower4x7On(configElement): if fileExists('/proc/stb/fp/power4x7on'): f = open('/proc/stb/fp/power4x7on', 'w') f.write(configElement.value) f.close() def setPower4x7Standby(configElement): if fileExists('/proc/stb/fp/power4x7standby'): f = open('/proc/stb/fp/power4x7standby', 'w') f.write(configElement.value) f.close() def setPower4x7Suspend(configElement): if fileExists('/proc/stb/fp/power4x7suspend'): f = open('/proc/stb/fp/power4x7suspend', 'w') f.write(configElement.value) f.close() def setXcoreVFD(configElement): if fileExists( '/sys/module/brcmstb_osmega/parameters/pt6302_cgram'): f = open('/sys/module/brcmstb_osmega/parameters/pt6302_cgram', 'w') f.write(configElement.value) f.close() if fileExists( '/sys/module/brcmstb_spycat4k/parameters/pt6302_cgram'): f = open( '/sys/module/brcmstb_spycat4k/parameters/pt6302_cgram', 'w') f.write(configElement.value) f.close() if fileExists( '/sys/module/brcmstb_spycat4kmini/parameters/pt6302_cgram' ): f = open( '/sys/module/brcmstb_spycat4kmini/parameters/pt6302_cgram', 'w') f.write(configElement.value) f.close() if fileExists( '/sys/module/brcmstb_spycat4kcombo/parameters/pt6302_cgram' ): f = open( '/sys/module/brcmstb_spycat4kcombo/parameters/pt6302_cgram', 'w') f.write(configElement.value) f.close() config.usage.vfd_xcorevfd = ConfigSelection(default='0', choices=[ ('0', _('12 character')), ('1', _('8 character')) ]) config.usage.vfd_xcorevfd.addNotifier(setXcoreVFD) config.usage.lcd_powerled = ConfigSelection(default='on', choices=[('off', _('Off')), ('on', _('On'))]) config.usage.lcd_powerled.addNotifier(setPowerLEDstate) config.usage.lcd_powerled2 = ConfigSelection(default='on', choices=[('off', _('Off')), ('on', _('On'))]) config.usage.lcd_powerled2.addNotifier(setPowerLEDstate2) config.usage.lcd_standbypowerled = ConfigSelection(default='on', choices=[('off', _('Off')), ('on', _('On'))]) config.usage.lcd_standbypowerled.addNotifier(setPowerLEDstanbystate) config.usage.lcd_deepstandbypowerled = ConfigSelection( default='on', choices=[('off', _('Off')), ('on', _('On'))]) config.usage.lcd_deepstandbypowerled.addNotifier( setPowerLEDdeepstanbystate) config.usage.lcd_ledpowercolor = ConfigSelection(default='1', choices=[ ('0', _('off')), ('1', _('blue')), ('2', _('red')), ('3', _('violet')) ]) config.usage.lcd_ledpowercolor.addNotifier(setLedPowerColor) config.usage.lcd_ledstandbycolor = ConfigSelection( default='3', choices=[('0', _('off')), ('1', _('blue')), ('2', _('red')), ('3', _('violet'))]) config.usage.lcd_ledstandbycolor.addNotifier(setLedStandbyColor) config.usage.lcd_ledsuspendcolor = ConfigSelection( default='2', choices=[('0', _('off')), ('1', _('blue')), ('2', _('red')), ('3', _('violet'))]) config.usage.lcd_ledsuspendcolor.addNotifier(setLedSuspendColor) config.usage.lcd_power4x7on = ConfigSelection(default='on', choices=[ ('off', _('Off')), ('on', _('On')) ]) config.usage.lcd_power4x7on.addNotifier(setPower4x7On) config.usage.lcd_power4x7standby = ConfigSelection(default='on', choices=[('off', _('Off')), ('on', _('On'))]) config.usage.lcd_power4x7standby.addNotifier(setPower4x7Standby) config.usage.lcd_power4x7suspend = ConfigSelection(default='on', choices=[('off', _('Off')), ('on', _('On'))]) config.usage.lcd_power4x7suspend.addNotifier(setPower4x7Suspend) def setDateOnStandby(configElement): pass def setDateFormat(configElement): pass from datetime import datetime ntime = datetime.now() if getBoxType() in ('formuler1', 'osminiplus'): config.usage.lcd_dateformat = ConfigSelection( default='%H:%M', choices=[('OFF', 'Off'), ('%H:%M', str(ntime.strftime(_('%H:%M')))), ('A%H:%M %d/%m', str(ntime.strftime(_('%H:%M <A> %d/%m')))), ('A%H:%M %d/%m/%y', str(ntime.strftime(_('%H:%M <A> %d/%m/%y')))), ('A%H:%M %d %b', str(ntime.strftime(_('%H:%M <A> %d %b')))), ('A%H:%M %a %d', str(ntime.strftime(_('%H:%M <A> %a %d'))))]) config.usage.lcd_dateformat.addNotifier(setDateFormat) elif getBoxType() in ('vusolo2', 'osmega'): config.usage.lcd_dateformat = ConfigSelection( default='%H:%M %d/%m', choices=[ ('OFF', 'Off'), ('%H:%M', str(ntime.strftime(_('%H:%M')))), ('%H:%M %d/%m', str(ntime.strftime(_('%H:%M %d/%m')))), ('%H:%M %d %b', str(ntime.strftime(_('%H:%M %d %b')))), ('%H:%M %a %d', str(ntime.strftime(_('%H:%M %a %d')))), ('A%H:%M %d/%m', str(ntime.strftime(_('%H:%M <A> %d/%m')))), ('A%H:%M %d/%m/%y', str(ntime.strftime(_('%H:%M <A> %d/%m/%y')))), ('A%H:%M %d/%m/%Y', str(ntime.strftime(_('%H:%M <A> %d/%m/%Y')))), ('A%H:%M %d %b', str(ntime.strftime(_('%H:%M <A> %d %b')))), ('A%H:%M %d %b %y', str(ntime.strftime(_('%H:%M <A> %d %b %y')))), ('A%H:%M %a %d', str(ntime.strftime(_('%H:%M <A> %a %d')))), ('A%H:%M %a %d/%m', str(ntime.strftime(_('%H:%M <A> %a %d/%m')))), ('A%H:%M %a %d/%m/%y', str(ntime.strftime(_('%H:%M <A> %a %d/%m/%y')))) ]) config.usage.lcd_dateformat.addNotifier(setDateFormat) elif getBoxType() in ('sf3038', 'sf4008', 'mutant51'): config.usage.lcd_dateformat = ConfigSelection( default='%H:%M %d/%m/%Y', choices=[('OFF', 'Off'), ('%H:%M', str(ntime.strftime(_('%H:%M')))), ('%H:%M %d/%m', str(ntime.strftime(_('%H:%M %d/%m')))), ('%H:%M %d/%m/%y', str(ntime.strftime(_('%H:%M %d/%m/%y')))), ('%H:%M %d/%m/%Y', str(ntime.strftime(_('%H:%M %d/%m/%Y')))), ('%H:%M %d %b', str(ntime.strftime(_('%H:%M %d %b')))), ('%H:%M %d %b %y', str(ntime.strftime(_('%H:%M %d %b %y')))), ('%H:%M %a %d', str(ntime.strftime(_('%H:%M %a %d')))), ('%H:%M %a %d/%m', str(ntime.strftime(_('%H:%M %a %d/%m')))), ('A%H:%M %d/%m', str(ntime.strftime(_('%H:%M <A> %d/%m')))), ('A%H:%M %d/%m/%y', str(ntime.strftime(_('%H:%M <A> %d/%m/%y')))), ('A%H:%M %d/%m/%Y', str(ntime.strftime(_('%H:%M <A> %d/%m/%Y')))), ('A%H:%M %d %b', str(ntime.strftime(_('%H:%M <A> %d %b')))), ('A%H:%M %d %b %y', str(ntime.strftime(_('%H:%M <A> %d %b %y')))), ('A%H:%M %a %d', str(ntime.strftime(_('%H:%M <A> %a %d')))), ('A%H:%M %a %d/%m', str(ntime.strftime(_('%H:%M <A> %a %d/%m')))), ('A%H:%M %a %d/%m/%y', str(ntime.strftime(_('%H:%M <A> %a %d/%m/%y')))), ('A%H:%M %a %d/%m/%Y', str(ntime.strftime(_('%H:%M <A> %a %d/%m/%Y'))))]) config.usage.lcd_dateformat.addNotifier(setDateFormat) else: config.usage.lcd_dateformat = ConfigNothing() if getBoxType() in ('dm900', 'dm920', 'e4hdultra', 'protek4k'): standby_default = 4 elif getBoxType() in ('spycat4kmini', 'osmega'): standby_default = 10 else: standby_default = 1 if not ilcd.isOled(): config.lcd.contrast = ConfigSlider(default=5, limits=(0, 20)) config.lcd.contrast.addNotifier(setLCDcontrast) else: config.lcd.contrast = ConfigNothing() if getBoxType() in ('novatwin', 'novacombo', 'mixosf5', 'mixosf5mini', 'gi9196m', 'gi9196lite', 'zgemmas2s', 'zgemmash1', 'zgemmash2', 'zgemmass', 'marvel1', 'enfinity', 'spycat'): config.lcd.standby = ConfigSlider(default=standby_default, limits=(0, 4)) config.lcd.dimbright = ConfigSlider(default=standby_default, limits=(0, 4)) config.lcd.bright = ConfigSlider(default=4, limits=(0, 4)) elif getBoxType() in ('zgemmahs', 'zgemmah2s', 'zgemmah2h', 'zgemmaslc'): config.lcd.standby = ConfigSlider(default=2, limits=(0, 8)) config.lcd.dimbright = ConfigSlider(default=5, limits=(0, 8)) config.lcd.bright = ConfigSlider(default=5, limits=(0, 8)) elif getBoxType() in ('spycat4kmini', 'osmega'): config.lcd.standby = ConfigSlider(default=standby_default, limits=(0, 10)) config.lcd.dimbright = ConfigSlider(default=standby_default, limits=(0, 10)) config.lcd.bright = ConfigSlider(default=10, limits=(0, 10)) else: config.lcd.standby = ConfigSlider(default=standby_default, limits=(0, 10)) config.lcd.dimbright = ConfigSlider(default=standby_default, limits=(0, 10)) config.lcd.bright = ConfigSlider( default=SystemInfo['DefaultDisplayBrightness'], limits=(0, 10)) config.lcd.dimbright.addNotifier(setLCDdimbright) config.lcd.dimbright.apply = lambda: setLCDdimbright(config.lcd. dimbright) config.lcd.dimdelay = ConfigSelection(default='0', choices=[ ('5', '5 ' + _('seconds')), ('10', '10 ' + _('seconds')), ('15', '15 ' + _('seconds')), ('20', '20 ' + _('seconds')), ('30', '30 ' + _('seconds')), ('60', '1 ' + _('minute')), ('120', '2 ' + _('minutes')), ('300', '5 ' + _('minutes')), ('0', _('off')) ]) config.lcd.dimdelay.addNotifier(setLCDdimdelay) config.lcd.standby.addNotifier(setLCDstandbybright) config.lcd.standby.apply = lambda: setLCDstandbybright(config.lcd. standby) config.lcd.bright.addNotifier(setLCDbright) config.lcd.bright.apply = lambda: setLCDbright(config.lcd.bright) config.lcd.bright.callNotifiersOnSaveAndCancel = True config.lcd.invert = ConfigYesNo(default=False) config.lcd.invert.addNotifier(setLCDinverted) config.lcd.flip = ConfigYesNo(default=False) config.lcd.flip.addNotifier(setLCDflipped) if SystemInfo['LcdLiveTV']: def lcdLiveTvChanged(configElement): open(SystemInfo['LcdLiveTV'], 'w').write(configElement.value and '0' or '1') InfoBarInstance = InfoBar.instance InfoBarInstance and InfoBarInstance.session.open(dummyScreen) config.lcd.showTv = ConfigYesNo(default=False) config.lcd.showTv.addNotifier(lcdLiveTvChanged) if SystemInfo['LCDMiniTV'] and config.misc.boxtype.value not in ( 'gbquad', 'gbquadplus', 'gbquad4k', 'gbue4k'): config.lcd.minitvmode = ConfigSelection( [('0', _('normal')), ('1', _('MiniTV')), ('2', _('OSD')), ('3', _('MiniTV with OSD'))], '0') config.lcd.minitvmode.addNotifier(setLCDminitvmode) config.lcd.minitvpipmode = ConfigSelection( [('0', _('off')), ('5', _('PIP')), ('7', _('PIP with OSD'))], '0') config.lcd.minitvpipmode.addNotifier(setLCDminitvpipmode) config.lcd.minitvfps = ConfigSlider(default=30, limits=(0, 30)) config.lcd.minitvfps.addNotifier(setLCDminitvfps) if SystemInfo['VFD_scroll_repeats'] and getBoxType() not in ( 'ixussone', 'ixusszero') and getDisplayType() not in ('7segment', ): def scroll_repeats(el): open(SystemInfo['VFD_scroll_repeats'], 'w').write(el.value) choicelist = [('0', _('None')), ('1', _('1X')), ('2', _('2X')), ('3', _('3X')), ('4', _('4X')), ('500', _('Continues'))] config.usage.vfd_scroll_repeats = ConfigSelection( default='3', choices=choicelist) config.usage.vfd_scroll_repeats.addNotifier( scroll_repeats, immediate_feedback=False) else: config.usage.vfd_scroll_repeats = ConfigNothing() if SystemInfo['VFD_scroll_delay'] and getBoxType() not in ( 'ixussone', 'ixusszero') and getDisplayType() not in ('7segment', ): def scroll_delay(el): if getBoxType() in ('sf4008', 'beyonwizu4'): open(SystemInfo['VFD_scroll_delay'], 'w').write(hex(int(el.value))) else: open(SystemInfo['VFD_scroll_delay'], 'w').write(str(el.value)) config.usage.vfd_scroll_delay = ConfigSlider(default=150, increment=10, limits=(0, 500)) config.usage.vfd_scroll_delay.addNotifier(scroll_delay, immediate_feedback=False) config.lcd.hdd = ConfigSelection([('0', _('No')), ('1', _('Yes'))], '1') else: config.lcd.hdd = ConfigNothing() config.usage.vfd_scroll_delay = ConfigNothing() if SystemInfo['VFD_initial_scroll_delay'] and getBoxType() not in ( 'ixussone', 'ixusszero') and getDisplayType() not in ('7segment', ): def initial_scroll_delay(el): if getBoxType() in ('sf4008', 'beyonwizu4'): open(SystemInfo['VFD_initial_scroll_delay'], 'w').write(hex(int(el.value))) else: open(SystemInfo['VFD_initial_scroll_delay'], 'w').write(el.value) choicelist = [('3000', '3 ' + _('seconds')), ('5000', '5 ' + _('seconds')), ('10000', '10 ' + _('seconds')), ('20000', '20 ' + _('seconds')), ('30000', '30 ' + _('seconds')), ('0', _('no delay'))] config.usage.vfd_initial_scroll_delay = ConfigSelection( default='10000', choices=choicelist) config.usage.vfd_initial_scroll_delay.addNotifier( initial_scroll_delay, immediate_feedback=False) else: config.usage.vfd_initial_scroll_delay = ConfigNothing() if SystemInfo['VFD_final_scroll_delay'] and getBoxType() not in ( 'ixussone', 'ixusszero') and getDisplayType() not in ('7segment', ): def final_scroll_delay(el): if getBoxType() in ('sf4008', 'beyonwizu4'): open(SystemInfo['VFD_final_scroll_delay'], 'w').write(hex(int(el.value))) else: open(SystemInfo['VFD_final_scroll_delay'], 'w').write(el.value) choicelist = [('3000', '3 ' + _('seconds')), ('5000', '5 ' + _('seconds')), ('10000', '10 ' + _('seconds')), ('20000', '20 ' + _('seconds')), ('30000', '30 ' + _('seconds')), ('0', _('no delay'))] config.usage.vfd_final_scroll_delay = ConfigSelection( default='10000', choices=choicelist) config.usage.vfd_final_scroll_delay.addNotifier( final_scroll_delay, immediate_feedback=False) else: config.usage.vfd_final_scroll_delay = ConfigNothing() if fileExists('/proc/stb/lcd/show_symbols'): config.lcd.mode = ConfigSelection([('0', _('No')), ('1', _('Yes'))], '1') config.lcd.mode.addNotifier(setLCDmode) else: config.lcd.mode = ConfigNothing() if fileExists('/proc/stb/power/vfd') or fileExists( '/proc/stb/lcd/vfd'): config.lcd.power = ConfigSelection([('0', _('No')), ('1', _('Yes'))], '1') config.lcd.power.addNotifier(setLCDpower) else: config.lcd.power = ConfigNothing() if fileExists('/proc/stb/fb/sd_detach'): config.lcd.fblcddisplay = ConfigSelection([('1', _('No')), ('0', _('Yes'))], '1') config.lcd.fblcddisplay.addNotifier(setfblcddisplay) else: config.lcd.fblcddisplay = ConfigNothing() if fileExists('/proc/stb/lcd/show_outputresolution'): config.lcd.showoutputresolution = ConfigSelection( [('0', _('No')), ('1', _('Yes'))], '1') config.lcd.showoutputresolution.addNotifier( setLCDshowoutputresolution) else: config.lcd.showoutputresolution = ConfigNothing() if getBoxType() == 'vuultimo': config.lcd.ledblinkingtime = ConfigSlider(default=5, increment=1, limits=(0, 15)) config.lcd.ledblinkingtime.addNotifier(setLEDblinkingtime) config.lcd.ledbrightnessdeepstandby = ConfigSlider(default=1, increment=1, limits=(0, 15)) config.lcd.ledbrightnessdeepstandby.addNotifier(setLEDnormalstate) config.lcd.ledbrightnessdeepstandby.addNotifier(setLEDdeepstandby) config.lcd.ledbrightnessdeepstandby.apply = lambda: setLEDdeepstandby( config.lcd.ledbrightnessdeepstandby) config.lcd.ledbrightnessstandby = ConfigSlider(default=1, increment=1, limits=(0, 15)) config.lcd.ledbrightnessstandby.addNotifier(setLEDnormalstate) config.lcd.ledbrightnessstandby.apply = lambda: setLEDnormalstate( config.lcd.ledbrightnessstandby) config.lcd.ledbrightness = ConfigSlider(default=3, increment=1, limits=(0, 15)) config.lcd.ledbrightness.addNotifier(setLEDnormalstate) config.lcd.ledbrightness.apply = lambda: setLEDnormalstate( config.lcd.ledbrightness) config.lcd.ledbrightness.callNotifiersOnSaveAndCancel = True else: def doNothing(): pass config.lcd.ledbrightness = ConfigNothing() config.lcd.ledbrightness.apply = lambda: doNothing() config.lcd.ledbrightnessstandby = ConfigNothing() config.lcd.ledbrightnessstandby.apply = lambda: doNothing() config.lcd.ledbrightnessdeepstandby = ConfigNothing() config.lcd.ledbrightnessdeepstandby.apply = lambda: doNothing() config.lcd.ledblinkingtime = ConfigNothing() else: def doNothing(): pass config.lcd.contrast = ConfigNothing() config.lcd.bright = ConfigNothing() config.lcd.standby = ConfigNothing() config.lcd.bright.apply = lambda: doNothing() config.lcd.standby.apply = lambda: doNothing() config.lcd.power = ConfigNothing() config.lcd.fblcddisplay = ConfigNothing() config.lcd.mode = ConfigNothing() config.lcd.hdd = ConfigNothing() config.lcd.scroll_speed = ConfigSelection(default='300', choices=[('500', _('slow')), ('300', _('normal')), ('100', _('fast'))]) config.lcd.scroll_delay = ConfigSelection( default='10000', choices=[('10000', '10 ' + _('seconds')), ('20000', '20 ' + _('seconds')), ('30000', '30 ' + _('seconds')), ('60000', '1 ' + _('minute')), ('300000', '5 ' + _('minutes')), ('noscrolling', _('off'))]) config.lcd.showoutputresolution = ConfigNothing() config.lcd.ledbrightness = ConfigNothing() config.lcd.ledbrightness.apply = lambda: doNothing() config.lcd.ledbrightnessstandby = ConfigNothing() config.lcd.ledbrightnessstandby.apply = lambda: doNothing() config.lcd.ledbrightnessdeepstandby = ConfigNothing() config.lcd.ledbrightnessdeepstandby.apply = lambda: doNothing() config.lcd.ledblinkingtime = ConfigNothing() config.misc.standbyCounter.addNotifier(standbyCounterChanged, initial_call=False)
def InitUsageConfig(): config.usage = ConfigSubsection() config.usage.showdish = ConfigYesNo(default=True) config.usage.multibouquet = ConfigYesNo(default=True) config.usage.multiepg_ask_bouquet = ConfigYesNo(default=False) config.usage.alternative_number_mode = ConfigYesNo(default=False) def alternativeNumberModeChange(configElement): eDVBDB.getInstance().setNumberingMode(configElement.value) refreshServiceList() config.usage.alternative_number_mode.addNotifier( alternativeNumberModeChange) choicelist = [("-1", _("Disable"))] for i in range(0, 1300, 100): choicelist.append( (str(i), ngettext("%d pixel wide", "%d pixels wide", i) % i)) config.usage.servicelist_column = ConfigSelection(default="-1", choices=choicelist) config.usage.servicelist_column.addNotifier(refreshServiceList) config.usage.hide_number_markers = ConfigYesNo(default=False) config.usage.hide_number_markers.addNotifier(refreshServiceList) config.usage.servicetype_icon_mode = ConfigSelection( default="0", choices=[("0", _("None")), ("1", _("Left from servicename")), ("2", _("Right from servicename"))]) config.usage.servicetype_icon_mode.addNotifier(refreshServiceList) config.usage.crypto_icon_mode = ConfigSelection( default="0", choices=[("0", _("None")), ("1", _("Left from servicename")), ("2", _("Right from servicename"))]) config.usage.crypto_icon_mode.addNotifier(refreshServiceList) config.usage.record_indicator_mode = ConfigSelection( default="0", choices=[("0", _("None")), ("1", _("Left from servicename")), ("2", _("Right from servicename")), ("3", _("Red colored"))]) config.usage.record_indicator_mode.addNotifier(refreshServiceList) config.usage.quickzap_bouquet_change = ConfigYesNo(default=False) config.usage.e1like_radio_mode = ConfigYesNo(default=False) config.usage.infobar_timeout = ConfigSelection( default="5", choices=[("0", _("no timeout")), ("1", "1 " + _("second")), ("2", "2 " + _("seconds")), ("3", "3 " + _("seconds")), ("4", "4 " + _("seconds")), ("5", "5 " + _("seconds")), ("6", "6 " + _("seconds")), ("7", "7 " + _("seconds")), ("8", "8 " + _("seconds")), ("9", "9 " + _("seconds")), ("10", "10 " + _("seconds"))]) config.usage.show_infobar_on_zap = ConfigYesNo(default=True) config.usage.show_infobar_on_skip = ConfigYesNo(default=True) config.usage.show_infobar_on_event_change = ConfigYesNo(default=True) config.usage.show_second_infobar = ConfigSelection( default=None, choices=[(None, _("None"))] + choicelist + [("EPG", _("EPG")), ("Event", _("Event view"))]) config.usage.show_eit_nownext = ConfigYesNo(default=True) config.usage.hide_zap_errors = ConfigYesNo(default=False) config.usage.hide_ci_messages = ConfigYesNo(default=False) config.usage.show_cryptoinfo = ConfigYesNo(default=True) config.usage.pic_resolution = ConfigSelection( default=None, choices=[(None, _("Same resolution as skin")), ("(720, 576)", "720x576"), ("(1280, 720)", "1280x720"), ("(1920, 1080)", "1920x1080")]) config.usage.hdd_standby = ConfigSelection( default="600", choices=[("0", _("no standby")), ("10", "10 " + _("seconds")), ("30", "30 " + _("seconds")), ("60", "1 " + _("minute")), ("120", "2 " + _("minutes")), ("300", "5 " + _("minutes")), ("600", "10 " + _("minutes")), ("1200", "20 " + _("minutes")), ("1800", "30 " + _("minutes")), ("3600", "1 " + _("hour")), ("7200", "2 " + _("hours")), ("14400", "4 " + _("hours"))]) config.usage.output_12V = ConfigSelection(default="do not change", choices=[("do not change", _("do not change")), ("off", _("off")), ("on", _("on"))]) config.usage.pip_zero_button = ConfigSelection( default="standard", choices=[("standard", _("standard")), ("swap", _("swap PiP and main picture")), ("swapstop", _("move PiP to main picture")), ("stop", _("stop PiP"))]) config.usage.default_path = ConfigText(default=resolveFilename(SCOPE_HDD)) config.usage.timer_path = ConfigText(default="<default>") config.usage.instantrec_path = ConfigText(default="<default>") config.usage.timeshift_path = ConfigText(default="/media/hdd/") config.usage.allowed_timeshift_paths = ConfigLocations( default=["/media/hdd/"]) config.usage.on_movie_start = ConfigSelection( default="ask", choices=[("ask", _("Ask user")), ("resume", _("Resume from last position")), ("beginning", _("Start from the beginning"))]) config.usage.on_movie_stop = ConfigSelection( default="ask", choices=[("ask", _("Ask user")), ("movielist", _("Return to movie list")), ("quit", _("Return to previous service"))]) config.usage.on_movie_eof = ConfigSelection( default="ask", choices=[("ask", _("Ask user")), ("movielist", _("Return to movie list")), ("quit", _("Return to previous service")), ("pause", _("Pause movie at end"))]) config.usage.setup_level = ConfigSelection(default="intermediate", choices=[ ("simple", _("Simple")), ("intermediate", _("Intermediate")), ("expert", _("Expert")) ]) config.usage.on_long_powerpress = ConfigSelection( default="show_menu", choices=[("show_menu", _("show shutdown menu")), ("shutdown", _("immediate shutdown")), ("standby", _("Standby"))]) config.usage.on_short_powerpress = ConfigSelection( default="standby", choices=[("show_menu", _("show shutdown menu")), ("shutdown", _("immediate shutdown")), ("standby", _("Standby"))]) config.usage.alternatives_priority = ConfigSelection( default="0", choices=[("0", "DVB-S/-C/-T"), ("1", "DVB-S/-T/-C"), ("2", "DVB-C/-S/-T"), ("3", "DVB-C/-T/-S"), ("4", "DVB-T/-C/-S"), ("5", "DVB-T/-S/-C")]) config.usage.service_icon_enable = ConfigYesNo(default=False) config.usage.service_icon_enable.addNotifier(refreshServiceList) config.usage.show_event_progress_in_servicelist = ConfigYesNo(default=True) config.usage.show_event_progress_in_servicelist.addNotifier( refreshServiceList) config.usage.show_event_progress_in_servicelist = ConfigSelection( default='barright', choices=[('barleft', _("Progress bar left")), ('barright', _("Progress bar right")), ('percleft', _("Percentage left")), ('percright', _("Percentage right")), ('no', _("No"))]) config.usage.show_channel_numbers_in_servicelist = ConfigYesNo( default=True) config.usage.show_event_progress_in_servicelist.addNotifier( refreshServiceList) config.usage.show_channel_numbers_in_servicelist.addNotifier( refreshServiceList) nims = [("-1", _("auto"))] for x in nimmanager.nim_slots: nims.append((str(x.slot), x.getSlotName())) config.usage.frontend_priority = ConfigSelection(default="-1", choices=nims) config.usage.blinking_display_clock_during_recording = ConfigYesNo( default=False) config.usage.show_message_when_recording_starts = ConfigYesNo(default=True) config.usage.load_length_of_movies_in_moviellist = ConfigYesNo( default=True) def TunerTypePriorityOrderChanged(configElement): setTunerTypePriorityOrder(int(configElement.value)) config.usage.alternatives_priority.addNotifier( TunerTypePriorityOrderChanged, immediate_feedback=False) def PreferredTunerChanged(configElement): setPreferredTuner(int(configElement.value)) config.usage.frontend_priority.addNotifier(PreferredTunerChanged) def setHDDStandby(configElement): for hdd in harddiskmanager.HDDList(): hdd[1].setIdleTime(int(configElement.value)) config.usage.hdd_standby.addNotifier(setHDDStandby, immediate_feedback=False) def set12VOutput(configElement): if configElement.value == "on": Misc_Options.getInstance().set_12V_output(1) elif configElement.value == "off": Misc_Options.getInstance().set_12V_output(0) config.usage.output_12V.addNotifier(set12VOutput, immediate_feedback=False) SystemInfo["12V_Output"] = Misc_Options.getInstance().detected_12V_output() config.usage.keymap = ConfigText( default=eEnv.resolve("${datadir}/enigma2/keymap.xml")) config.seek = ConfigSubsection() config.seek.selfdefined_13 = ConfigNumber(default=15) config.seek.selfdefined_46 = ConfigNumber(default=60) config.seek.selfdefined_79 = ConfigNumber(default=300) config.seek.speeds_forward = ConfigSet( default=[2, 4, 8, 16, 32, 64, 128], choices=[2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128]) config.seek.speeds_backward = ConfigSet( default=[2, 4, 8, 16, 32, 64, 128], choices=[1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128]) config.seek.speeds_slowmotion = ConfigSet(default=[2, 4, 8], choices=[2, 4, 6, 8, 12, 16, 25]) config.seek.enter_forward = ConfigSelection(default="2", choices=[ "2", "4", "6", "8", "12", "16", "24", "32", "48", "64", "96", "128" ]) config.seek.enter_backward = ConfigSelection(default="1", choices=[ "1", "2", "4", "6", "8", "12", "16", "24", "32", "48", "64", "96", "128" ]) config.seek.on_pause = ConfigSelection(default="play", choices=[("play", _("Play")), ("step", _("Singlestep (GOP)")), ("last", _("Last speed"))]) config.usage.timerlist_finished_timer_position = ConfigSelection( default="beginning", choices=[("beginning", _("at beginning")), ("end", _("at end"))]) def updateEnterForward(configElement): if not configElement.value: configElement.value = [2] updateChoices(config.seek.enter_forward, configElement.value) config.seek.speeds_forward.addNotifier(updateEnterForward, immediate_feedback=False) def updateEnterBackward(configElement): if not configElement.value: configElement.value = [2] updateChoices(config.seek.enter_backward, configElement.value) config.seek.speeds_backward.addNotifier(updateEnterBackward, immediate_feedback=False) config.subtitles = ConfigSubsection() if config.skin.xres.value == 1920: config.subtitles.subtitle_fontsize = ConfigSelection(choices=[ "30", "32", "34", "36", "38", "40", "42", "44", "46", "48", "50", "52", "54", "56", "58", "60", "62", "64", "66", "68", "70", "72", "74", "76", "78", "80" ], default="54") else: config.subtitles.subtitle_fontsize = ConfigSelection(choices=[ "16", "18", "20", "22", "24", "26", "28", "30", "32", "34", "36", "38", "40", "42", "44", "46", "48", "50", "52", "54" ], default="34") if SystemInfo["ZapMode"]: def setZapmode(el): open(SystemInfo["ZapMode"], "w").write(el.value) config.misc.zapmode = ConfigSelection( default="mute", choices=[("mute", _("Black screen")), ("hold", _("Hold screen")), ("mutetilllock", _("Black screen till locked")), ("holdtilllock", _("Hold till locked"))]) config.misc.zapmode.addNotifier(setZapmode, immediate_feedback=False) subtitle_delay_choicelist = [] for i in range(-900000, 1845000, 45000): if i == 0: subtitle_delay_choicelist.append(("0", _("No delay"))) else: subtitle_delay_choicelist.append( ("%d" % i, "%2.1f sec" % (i / 90000.))) config.subtitles.subtitle_noPTSrecordingdelay = ConfigSelection( default="315000", choices=subtitle_delay_choicelist) config.subtitles.subtitle_bad_timing_delay = ConfigSelection( default="0", choices=subtitle_delay_choicelist) config.subtitles.dvb_subtitles_yellow = ConfigYesNo(default=False) config.subtitles.dvb_subtitles_centered = ConfigYesNo(default=False) config.subtitles.dvb_subtitles_backtrans = ConfigSelection( default="0", choices=[("0", _("no transparency")), ("25", "10%"), ("50", "20%"), ("75", "30%"), ("100", "40%"), ("125", "50%"), ("150", "60%"), ("175", "70%"), ("200", "80%"), ("225", "90%"), ("255", _("full transparency"))]) config.autolanguage = ConfigSubsection() audio_language_choices = [ ("---", _("None")), ("orj dos ory org esl qaa und mis mul ORY ORJ Audio_ORJ", _("Original")), ("ara", _("Arabic")), ("eus baq", _("Basque")), ("bul", _("Bulgarian")), ("hrv", _("Croatian")), ("ces cze", _("Czech")), ("dan", _("Danish")), ("dut ndl", _("Dutch")), ("eng qaa", _("English")), ("est", _("Estonian")), ("fin", _("Finnish")), ("fra fre", _("French")), ("deu ger", _("German")), ("ell gre", _("Greek")), ("heb", _("Hebrew")), ("hun", _("Hungarian")), ("ita", _("Italian")), ("lav", _("Latvian")), ("lit", _("Lithuanian")), ("ltz", _("Luxembourgish")), ("nor", _("Norwegian")), ("pol", _("Polish")), ("por", _("Portuguese")), ("fas per", _("Persian")), ("ron rum", _("Romanian")), ("rus", _("Russian")), ("srp", _("Serbian")), ("slk slo", _("Slovak")), ("slv", _("Slovenian")), ("spa", _("Spanish")), ("swe", _("Swedish")), ("tha", _("Thai")), ("tur Audio_TUR", _("Turkish")), ("und", _("Undetermined")), ] config.autolanguage.audio_autoselect1 = ConfigSelection( choices=audio_language_choices, default="---") config.autolanguage.audio_autoselect2 = ConfigSelection( choices=audio_language_choices, default="---") config.autolanguage.audio_autoselect3 = ConfigSelection( choices=audio_language_choices, default="---") config.autolanguage.audio_autoselect4 = ConfigSelection( choices=audio_language_choices, default="---") config.autolanguage.audio_defaultac3 = ConfigYesNo(default=False) config.autolanguage.audio_usecache = ConfigYesNo(default=True) subtitle_language_choices = audio_language_choices[: 1] + audio_language_choices[ 2:] config.autolanguage.subtitle_autoselect1 = ConfigSelection( choices=subtitle_language_choices, default="---") config.autolanguage.subtitle_autoselect2 = ConfigSelection( choices=subtitle_language_choices, default="---") config.autolanguage.subtitle_autoselect3 = ConfigSelection( choices=subtitle_language_choices, default="---") config.autolanguage.subtitle_autoselect4 = ConfigSelection( choices=subtitle_language_choices, default="---") config.autolanguage.subtitle_hearingimpaired = ConfigYesNo(default=False) config.autolanguage.subtitle_defaultimpaired = ConfigYesNo(default=False) config.autolanguage.subtitle_defaultdvb = ConfigYesNo(default=False) config.autolanguage.subtitle_usecache = ConfigYesNo(default=True)
def FinalInitUsageConfig(): try: usage_old = config.usage.dict().copy() except KeyError: usage_old = {} try: seek_old = config.seek.dict().copy() except KeyError: seek_old = {} #We have do it again to ensure tranlsations are applied after language load has finished config.usage.setup_level = ConfigSelection(default="intermediate", choices=[ ("simple", _("Simple")), ("intermediate", _("Intermediate")), ("expert", _("Expert")) ]) config.seek.on_pause = ConfigSelection(default="play", choices=[("play", _("Play")), ("step", _("Singlestep (GOP)")), ("last", _("Last speed"))]) inactivity_shutdown_choices = [("never", _("disabled"))] for i in range(1, 6): inactivity_shutdown_choices.extend([ ("%d" % i, ngettext("%(num)d hour", "%(num)d hours", i) % { "num": i }) ]) config.usage.inactivity_shutdown = ConfigSelection( default="3", choices=inactivity_shutdown_choices) config.usage.inactivity_shutdown_initialized = ConfigYesNo(default=False) config.usage.showdish = ConfigYesNo(default=True) config.usage.multibouquet = ConfigYesNo(default=False) config.usage.multiepg_ask_bouquet = ConfigYesNo(default=False) config.usage.quickzap_bouquet_change = ConfigYesNo(default=False) config.usage.e1like_radio_mode = ConfigYesNo(default=False) config.usage.infobar_timeout = ConfigSelection( default="5", choices=[("0", _("no timeout")), ("1", "1 " + _("second")), ("2", "2 " + _("seconds")), ("3", "3 " + _("seconds")), ("4", "4 " + _("seconds")), ("5", "5 " + _("seconds")), ("6", "6 " + _("seconds")), ("7", "7 " + _("seconds")), ("8", "8 " + _("seconds")), ("9", "9 " + _("seconds")), ("10", "10 " + _("seconds"))]) config.usage.show_infobar_on_zap = ConfigYesNo(default=True) config.usage.show_infobar_on_skip = ConfigYesNo(default=True) config.usage.show_infobar_on_event_change = ConfigYesNo(default=True) config.usage.hdd_standby = ConfigSelection( default="600", choices=[("0", _("no standby")), ("10", "10 " + _("seconds")), ("30", "30 " + _("seconds")), ("60", "1 " + _("minute")), ("120", "2 " + _("minutes")), ("300", "5 " + _("minutes")), ("600", "10 " + _("minutes")), ("1200", "20 " + _("minutes")), ("1800", "30 " + _("minutes")), ("3600", "1 " + _("hour")), ("7200", "2 " + _("hours")), ("14400", "4 " + _("hours"))]) config.usage.pip_zero_button = ConfigSelection( default="standard", choices=[("standard", _("standard")), ("swap", _("swap PiP and main picture")), ("swapstop", _("move PiP to main picture")), ("stop", _("stop PiP"))]) config.usage.default_path = ConfigText(default=resolveFilename(SCOPE_HDD)) config.usage.timer_path = ConfigText(default="<default>") config.usage.instantrec_path = ConfigText(default="<default>") config.usage.timeshift_path = ConfigText(default="/media/hdd/") config.usage.allowed_timeshift_paths = ConfigLocations( default=["/media/hdd/"]) config.usage.on_movie_start = ConfigSelection( default="ask", choices=[("ask", _("Ask user")), ("resume", _("Resume from last position")), ("beginning", _("Start from the beginning"))]) config.usage.on_movie_stop = ConfigSelection( default="ask", choices=[("ask", _("Ask user")), ("movielist", _("Return to movie list")), ("quit", _("Return to previous service"))]) config.usage.on_movie_eof = ConfigSelection( default="ask", choices=[("ask", _("Ask user")), ("movielist", _("Return to movie list")), ("quit", _("Return to previous service")), ("pause", _("Pause movie at end"))]) config.usage.resume_treshold = ConfigInteger(default=30, limits=[0, 300]) config.usage.on_long_powerpress = ConfigSelection( default="show_menu", choices=[("show_menu", _("show shutdown menu")), ("shutdown", _("immediate shutdown")), ("standby", _("Idle Mode"))]) config.usage.on_short_powerpress = ConfigSelection( default="standby", choices=[("show_menu", _("show shutdown menu")), ("shutdown", _("immediate shutdown")), ("standby", _("Idle Mode"))]) config.usage.alternatives_priority = ConfigSelection( default="0", choices=[("0", "DVB-S/-C/-T"), ("1", "DVB-S/-T/-C"), ("2", "DVB-C/-S/-T"), ("3", "DVB-C/-T/-S"), ("4", "DVB-T/-C/-S"), ("5", "DVB-T/-S/-C")]) config.usage.show_event_progress_in_servicelist = ConfigYesNo( default=False) config.usage.blinking_display_clock_during_recording = ConfigYesNo( default=False) config.usage.show_message_when_recording_starts = ConfigYesNo(default=True) config.usage.load_length_of_movies_in_moviellist = ConfigYesNo( default=True) config.usage.timerlist_finished_timer_position = ConfigSelection( default="beginning", choices=[("beginning", _("at beginning")), ("end", _("at end"))]) config.usage.text_subtitle_presentation = ConfigSelection( default="black box", choices=[("black box", _("black box")), ("drop-shadow", _("drop-shadow"))]) config.usage.text_subtitle_black_box_transparency = ConfigSlider( default=0x64, increment=5, limits=(0, 0xff)) config.usage.ttx_subtitle_prefer_pmt_language_code = ConfigYesNo( default=True) # Channelselection settings config.usage.configselection_showsettingsincontextmenu = ConfigYesNo( default=True) config.usage.configselection_showlistnumbers = ConfigYesNo(default=True) config.usage.configselection_showservicename = ConfigYesNo(default=True) config.usage.configselection_progressbarposition = ConfigSelection( default="0", choices=[("0", _("After servicenumber")), ("1", _("After servicename")), ("2", _("After servicedescription"))]) config.usage.configselection_servicenamecolwidth = ConfigInteger( 200, limits=(100, 400)) config.usage.configselection_columnstyle = ConfigYesNo(default=False) config.usage.configselection_additionaltimedisplayposition = ConfigSelection( default="1", choices=[("0", _("ahead")), ("1", _("behind"))]) config.usage.configselection_showadditionaltimedisplay = ConfigSelection( default="0", choices=[("0", _("Off")), ("1", _("Percent")), ("2", _("Remain")), ("3", _("Remain / duration")), ("4", _("Elapsed")), ("5", _("Elapsed / duration")), ("6", _("Elapsed / remain / duration")), ("7", _("Time"))]) config.usage.configselection_showpicons = ConfigYesNo(default=False) config.usage.configselection_bigpicons = ConfigYesNo(default=False) config.usage.configselection_secondlineinfo = ConfigSelection( default="0", choices=[("0", _("nothing")), ("1", _("short description")), ("2", _("upcoming event"))]) config.usage.configselection_piconspath = ConfigSelection( default=eEnv.resolve('${datadir}/enigma2/picon_50x30/'), choices=[ (eEnv.resolve('${datadir}/enigma2/picon_50x30/'), eEnv.resolve('${datadir}/enigma2/picon_50x30')), (eEnv.resolve('${datadir}/enigma2/picon/'), eEnv.resolve('${datadir}/enigma2/picon')), (eEnv.resolve('/data/picon_50x30/'), eEnv.resolve('/data/picon_50x30')), (eEnv.resolve('/data/picon/'), eEnv.resolve('/data/picon')), ]) config.usage.configselection_showrecordings = ConfigYesNo(default=False) config.usage.standby_zaptimer_wakeup = ConfigYesNo(default=True) seek = config.seek.dict() for (key, value) in seek_old.items(): value_old = value.value configEntry = seek[key] value_new = configEntry.value if value_old != value_new: configEntry.value = value_old configEntry._ConfigElement__notifiers = value._ConfigElement__notifiers configEntry._ConfigElement__notifiers_final = value._ConfigElement__notifiers_final usage = config.usage.dict() for (key, value) in usage_old.items(): value_old = value.value configEntry = usage[key] value_new = configEntry.value if value_old != value_new: configEntry.value = value_old configEntry._ConfigElement__notifiers = value._ConfigElement__notifiers configEntry._ConfigElement__notifiers_final = value._ConfigElement__notifiers_final if usage_old.get("alternatives_priority", None) == None: def TunerTypePriorityOrderChanged(configElement): setTunerTypePriorityOrder(int(configElement.value)) config.usage.alternatives_priority.addNotifier( TunerTypePriorityOrderChanged, immediate_feedback=False) if usage_old.get("hdd_standby", None) == None: def setHDDStandby(configElement): for hdd in harddiskmanager.HDDList(): hdd[1].setIdleTime(int(configElement.value)) config.usage.hdd_standby.addNotifier(setHDDStandby, immediate_feedback=False) config.usage.record_mode = ConfigSelection( default="direct_io", choices=[("direct_io", _("Direct IO (default)")), ("cached_io", _("Cached IO"))]) config.usage.max_stream_resolution = ConfigSelection( default="1080", choices=["480", "720", "1080", "1440", "2160"]) config.media_database = ConfigSubsection() config.media_database.readmeta = ConfigYesNo(default=False)
def InitAVSwitch(): config.av = ConfigSubsection() config.av.osd_alpha = ConfigSlider(default=255, limits=(0,255)) # Make openATV compatible with some plugins who still use config.av.osd_alpha if getBoxType() == 'vuduo' or getBoxType().startswith('ixuss'): config.av.yuvenabled = ConfigBoolean(default=False) else: config.av.yuvenabled = ConfigBoolean(default=True) colorformat_choices = {"cvbs": _("CVBS"), "rgb": _("RGB"), "svideo": _("S-Video")} # when YUV is not enabled, don't let the user select it if config.av.yuvenabled.getValue(): colorformat_choices["yuv"] = _("YPbPr") config.av.colorformat = ConfigSelection(choices=colorformat_choices, default="rgb") config.av.aspectratio = ConfigSelection(choices={ "4_3_letterbox": _("4:3 Letterbox"), "4_3_panscan": _("4:3 PanScan"), "16_9": _("16:9"), "16_9_always": _("16:9 always"), "16_10_letterbox": _("16:10 Letterbox"), "16_10_panscan": _("16:10 PanScan"), "16_9_letterbox": _("16:9 Letterbox")}, default = "16_9") config.av.aspect = ConfigSelection(choices={ "4_3": _("4:3"), "16_9": _("16:9"), "16_10": _("16:10"), "auto": _("Automatic")}, default = "auto") policy2_choices = { # TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. "letterbox": _("Letterbox"), # TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term "panscan": _("Pan&scan"), # TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) "scale": _("Just scale")} if os.path.exists("/proc/stb/video/policy2_choices"): f = open("/proc/stb/video/policy2_choices") if "auto" in f.readline(): # TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. policy2_choices.update({"auto": _("Auto")}) f.close() config.av.policy_169 = ConfigSelection(choices=policy2_choices, default = "letterbox") policy_choices = { # TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. "pillarbox": _("Pillarbox"), # TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term "panscan": _("Pan&scan"), # TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) "nonlinear": _("Nonlinear"), # TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) "scale": _("Just scale")} if os.path.exists("/proc/stb/video/policy_choices"): f = open("/proc/stb/video/policy_choices") if "auto" in f.readline(): # TRANSLATORS: (aspect ratio policy: always try to display as fullscreen, when there is no content (black bars) on left/right, even if this breaks the aspect. policy_choices.update({"auto": _("Auto")}) f.close() config.av.policy_43 = ConfigSelection(choices=policy_choices, default = "pillarbox") config.av.tvsystem = ConfigSelection(choices = {"pal": _("PAL"), "ntsc": _("NTSC"), "multinorm": _("multinorm")}, default="pal") config.av.wss = ConfigEnableDisable(default = True) config.av.generalAC3delay = ConfigSelectionNumber(-1000, 1000, 5, default = 0) config.av.generalPCMdelay = ConfigSelectionNumber(-1000, 1000, 5, default = 0) config.av.vcrswitch = ConfigEnableDisable(default = False) iAVSwitch = AVSwitch() def setColorFormat(configElement): if getBoxType() == 'et6x00': map = {"cvbs": 3, "rgb": 3, "svideo": 2, "yuv": 3} elif getBoxType() == 'gbquad' or getBoxType().startswith('et'): map = {"cvbs": 0, "rgb": 3, "svideo": 2, "yuv": 3} else: map = {"cvbs": 0, "rgb": 1, "svideo": 2, "yuv": 3} iAVSwitch.setColorFormat(map[configElement.getValue()]) def setAspectRatio(configElement): map = {"4_3_letterbox": 0, "4_3_panscan": 1, "16_9": 2, "16_9_always": 3, "16_10_letterbox": 4, "16_10_panscan": 5, "16_9_letterbox" : 6} iAVSwitch.setAspectRatio(map[configElement.getValue()]) def setSystem(configElement): map = {"pal": 0, "ntsc": 1, "multinorm" : 2} iAVSwitch.setSystem(map[configElement.getValue()]) def setWSS(configElement): iAVSwitch.setAspectWSS() config.av.colorformat.addNotifier(setColorFormat) if not os.path.exists('/usr/lib/enigma2/python/Plugins/SystemPlugins/Videomode/VideoHardware.pyo'): # this will call the "setup-val" initial config.av.aspectratio.addNotifier(setAspectRatio) config.av.tvsystem.addNotifier(setSystem) config.av.wss.addNotifier(setWSS) iAVSwitch.setInput("ENCODER") # init on startup if getBoxType() == 'gbquad' or getBoxType() == 'et5x00' or getBoxType() == 'ixussone' or getBoxType() == 'ixusszero' or model == 'et6000' or getBoxType() == 'e3hd' or getBoxType() == 'odinm6' or getBoxType() == 'omtimussos1' or getBoxType() == 'omtimussos2': detected = False else: detected = eAVSwitch.getInstance().haveScartSwitch() SystemInfo["ScartSwitch"] = detected config.av.show_vcr_scart = ConfigEnableDisable(default = False) if os.path.exists("/proc/stb/hdmi/bypass_edid_checking"): f = open("/proc/stb/hdmi/bypass_edid_checking", "r") can_edidchecking = f.read().strip().split(" ") f.close() else: can_edidchecking = False SystemInfo["Canedidchecking"] = can_edidchecking if can_edidchecking: def setEDIDBypass(configElement): try: f = open("/proc/stb/hdmi/bypass_edid_checking", "w") f.write(configElement.value) f.close() except: pass config.av.bypass_edid_checking = ConfigSelection(choices={ "00000000": _("off"), "00000001": _("on")}, default = "00000000") config.av.bypass_edid_checking.addNotifier(setEDIDBypass) else: config.av.bypass_edid_checking = ConfigNothing() if os.path.exists("/proc/stb/audio/3d_surround_choices"): f = open("/proc/stb/audio/3d_surround_choices", "r") can_3dsurround = f.read().strip().split(" ") f.close() else: can_3dsurround = False SystemInfo["Can3DSurround"] = can_3dsurround if can_3dsurround: def set3DSurround(configElement): f = open("/proc/stb/audio/3d_surround", "w") f.write(configElement.value) f.close() choice_list = [("none", _("off")), ("hdmi", _("HDMI")), ("spdif", _("SPDIF")), ("dac", _("DAC"))] config.av.surround_3d = ConfigSelection(choices = choice_list, default = "none") config.av.surround_3d.addNotifier(set3DSurround) else: config.av.surround_3d = ConfigNothing() if os.path.exists("/proc/stb/audio/avl_choices"): f = open("/proc/stb/audio/avl_choices", "r") can_autovolume = f.read().strip().split(" ") f.close() else: can_autovolume = False SystemInfo["CanAutoVolume"] = can_autovolume if can_autovolume: def setAutoVulume(configElement): f = open("/proc/stb/audio/avl", "w") f.write(configElement.value) f.close() choice_list = [("none", _("off")), ("hdmi", _("HDMI")), ("spdif", _("SPDIF")), ("dac", _("DAC"))] config.av.autovolume = ConfigSelection(choices = choice_list, default = "none") config.av.autovolume.addNotifier(setAutoVulume) else: config.av.autovolume = ConfigNothing() try: f = open("/proc/stb/audio/ac3_choices", "r") file = f.read()[:-1] f.close() can_downmix = file.find("downmix") != -1 except: can_downmix = False SystemInfo["CanDownmixAC3"] = can_downmix if can_downmix: def setAC3Downmix(configElement): f = open("/proc/stb/audio/ac3", "w") f.write(configElement.value and "downmix" or "passthrough") f.close() config.av.downmix_ac3 = ConfigYesNo(default = True) config.av.downmix_ac3.addNotifier(setAC3Downmix) if os.path.exists("/proc/stb/vmpeg/0/pep_scaler_sharpness"): def setScaler_sharpness(config): myval = int(config.getValue()) try: print "--> setting scaler_sharpness to: %0.8X" % myval f = open("/proc/stb/vmpeg/0/pep_scaler_sharpness", "w") f.write("%0.8X" % myval) f.close() f = open("/proc/stb/vmpeg/0/pep_apply", "w") f.write("1") f.close() except IOError: print "couldn't write pep_scaler_sharpness" if getBoxType() == 'gbquad': config.av.scaler_sharpness = ConfigSlider(default=13, limits=(0,26)) else: config.av.scaler_sharpness = ConfigSlider(default=13, limits=(0,26)) config.av.scaler_sharpness.addNotifier(setScaler_sharpness) else: config.av.scaler_sharpness = NoSave(ConfigNothing())
def InitAVSwitch(): config.av = ConfigSubsection() config.av.yuvenabled = ConfigBoolean(default=True) colorformat_choices = {"cvbs": _("CVBS")} # when YUV, Scart or S-Video is not support by HW, don't let the user select it if SystemInfo["HasYPbPr"]: colorformat_choices["yuv"] = _("YPbPr") if SystemInfo["HasScart"]: colorformat_choices["rgb"] = _("RGB") if SystemInfo["HasSVideo"]: colorformat_choices["svideo"] = _("S-Video") config.av.colorformat = ConfigSelection(choices=colorformat_choices, default="cvbs") config.av.aspectratio = ConfigSelection(choices={ "4_3_letterbox": _("4:3 Letterbox"), "4_3_panscan": _("4:3 PanScan"), "16_9": _("16:9"), "16_9_always": _("16:9 always"), "16_10_letterbox": _("16:10 Letterbox"), "16_10_panscan": _("16:10 PanScan"), "16_9_letterbox": _("16:9 Letterbox") }, default="16_9") config.av.aspect = ConfigSelection(choices={ "4_3": _("4:3"), "16_9": _("16:9"), "16_10": _("16:10"), "auto": _("Automatic") }, default="auto") policy2_choices = { # TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. "letterbox": _("Letterbox"), # TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term "panscan": _("Pan&scan"), # TRANSLATORS: (aspect ratio policy: scale as close to fullscreen as possible) "scale": _("Just scale") } try: if "full" in open("/proc/stb/video/policy2_choices").read(): # TRANSLATORS: (aspect ratio policy: display as fullscreen, even if the content aspect ratio does not match the screen ratio) policy2_choices.update({"full": _("Full screen")}) except: pass try: if "auto" in open("/proc/stb/video/policy2_choices").read(): # TRANSLATORS: (aspect ratio policy: automatically select the best aspect ratio mode) policy2_choices.update({"auto": _("Auto")}) except: pass config.av.policy_169 = ConfigSelection(choices=policy2_choices, default="scale") policy_choices = { # TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. "pillarbox": _("Pillarbox"), # TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term "panscan": _("Pan&scan"), # TRANSLATORS: (aspect ratio policy: scale as close to fullscreen as possible) "scale": _("Just scale") } try: if "nonlinear" in open("/proc/stb/video/policy_choices").read(): # TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) policy_choices.update({"nonlinear": _("Nonlinear")}) except: pass try: if "full" in open("/proc/stb/video/policy_choices").read(): # TRANSLATORS: (aspect ratio policy: display as fullscreen, even if the content aspect ratio does not match the screen ratio) policy_choices.update({"full": _("Full screen")}) except: pass try: if "auto" in open("/proc/stb/video/policy_choices").read(): # TRANSLATORS: (aspect ratio policy: automatically select the best aspect ratio mode) policy_choices.update({"auto": _("Auto")}) except: pass config.av.policy_43 = ConfigSelection(choices=policy_choices, default="scale") config.av.tvsystem = ConfigSelection(choices={ "pal": _("PAL"), "ntsc": _("NTSC"), "multinorm": _("multinorm") }, default="pal") config.av.wss = ConfigEnableDisable(default=True) config.av.generalAC3delay = ConfigSelectionNumber(-1000, 1000, 5, default=0) config.av.generalPCMdelay = ConfigSelectionNumber(-1000, 1000, 5, default=0) config.av.vcrswitch = ConfigEnableDisable(default=False) iAVSwitch = AVSwitch() def setColorFormat(configElement): map = {"cvbs": 0, "rgb": 1, "svideo": 2, "yuv": 3} iAVSwitch.setColorFormat(map[configElement.value]) def setAspectRatio(configElement): map = { "4_3_letterbox": 0, "4_3_panscan": 1, "16_9": 2, "16_9_always": 3, "16_10_letterbox": 4, "16_10_panscan": 5, "16_9_letterbox": 6 } iAVSwitch.setAspectRatio(map[configElement.value]) def setSystem(configElement): map = {"pal": 0, "ntsc": 1, "multinorm": 2} iAVSwitch.setSystem(map[configElement.value]) def setWSS(configElement): iAVSwitch.setAspectWSS() # this will call the "setup-val" initial config.av.colorformat.addNotifier(setColorFormat) config.av.aspectratio.addNotifier(setAspectRatio) config.av.tvsystem.addNotifier(setSystem) config.av.wss.addNotifier(setWSS) iAVSwitch.setInput("ENCODER") # init on startup SystemInfo["ScartSwitch"] = eAVSwitch.getInstance().haveScartSwitch() if SystemInfo["CanDownmixAC3"]: def setAC3Downmix(configElement): open("/proc/stb/audio/ac3", "w").write(configElement.value and "downmix" or "passthrough") config.av.downmix_ac3 = ConfigYesNo(default=True) config.av.downmix_ac3.addNotifier(setAC3Downmix) if SystemInfo["CanDownmixDTS"]: def setDTSDownmix(configElement): open("/proc/stb/audio/dts", "w").write(configElement.value and "downmix" or "passthrough") config.av.downmix_dts = ConfigYesNo(default=True) config.av.downmix_dts.addNotifier(setDTSDownmix) if SystemInfo["CanDownmixAAC"]: def setAACDownmix(configElement): open("/proc/stb/audio/aac", "w").write(configElement.value and "downmix" or "passthrough") config.av.downmix_aac = ConfigYesNo(default=True) config.av.downmix_aac.addNotifier(setAACDownmix) if SystemInfo["CanChangeOsdAlpha"]: def setAlpha(config): open("/proc/stb/video/alpha", "w").write(str(config.value)) config.av.osd_alpha = ConfigSlider(default=255, limits=(0, 255)) config.av.osd_alpha.addNotifier(setAlpha) if SystemInfo["ScalerSharpness"]: def setScaler_sharpness(config): myval = int(config.value) try: print "--> setting scaler_sharpness to: %0.8X" % myval open("/proc/stb/vmpeg/0/pep_scaler_sharpness", "w").write("%0.8X" % myval) open("/proc/stb/vmpeg/0/pep_apply", "w").write("1") except IOError: print "couldn't write pep_scaler_sharpness" config.av.scaler_sharpness = ConfigSlider(default=13, limits=(0, 26)) config.av.scaler_sharpness.addNotifier(setScaler_sharpness) else: config.av.scaler_sharpness = NoSave(ConfigNothing()) if SystemInfo["HasMultichannelPCM"]: def setMultichannelPCM(configElement): open(SystemInfo["HasMultichannelPCM"], "w").write(configElement.value and "enable" or "disable") config.av.multichannel_pcm = ConfigYesNo(default=False) config.av.multichannel_pcm.addNotifier(setMultichannelPCM) if SystemInfo["HDMIAudioSource"]: def setHDMIAudioSource(configElement): open(SystemInfo["HDMIAudioSource"], "w").write(configElement.value) config.av.hdmi_audio_source = ConfigSelection(default="pcm", choices=[ ("pcm", _("PCM")), ("spdif", _("SPDIF")) ]) config.av.hdmi_audio_source.addNotifier(setHDMIAudioSource) def setVolumeStepsize(configElement): eDVBVolumecontrol.getInstance().setVolumeSteps(int( configElement.value)) config.av.volume_stepsize = ConfigSelectionNumber(1, 10, 1, default=2) config.av.volume_stepsize.addNotifier(setVolumeStepsize)
def InitLcd(): if getBoxType() in ( 'force4', 'alien5', 'viperslim', 'lunix', 'purehdse', 'vipert2c', 'evoslimse', 'evoslimt2c', 'valalinux', 'tmtwin4k', 'tmnanom3', 'mbmicrov2', 'revo4k', 'force3uhd', 'force2nano', 'evoslim', 'wetekplay', 'wetekplay2', 'wetekhub', 'ultrabox', 'novaip', 'dm520', 'dm525', 'purehd', 'mutant11', 'xpeedlxpro', 'zgemmai55', 'sf98', 'et7x00mini', 'xpeedlxcs2', 'xpeedlxcc', 'e4hd', 'e4hdhybrid', 'mbmicro', 'beyonwizt2', 'amikomini', 'dynaspark', 'amiko8900', 'sognorevolution', 'arguspingulux', 'arguspinguluxmini', 'arguspinguluxplus', 'sparkreloaded', 'sabsolo', 'sparklx', 'gis8120', 'gb800se', 'gb800solo', 'gb800seplus', 'gbultrase', 'gbipbox', 'tmsingle', 'tmnano2super', 'iqonios300hd', 'iqonios300hdv2', 'optimussos1plus', 'optimussos1', 'vusolo', 'et4x00', 'et5x00', 'et6x00', 'et7000', 'et7100', 'mixosf7', 'mixoslumi', 'gbx1', 'gbx2', 'gbx3', 'gbx3h'): detected = False else: detected = eDBoxLCD.getInstance().detected() SystemInfo["Display"] = detected config.lcd = ConfigSubsection() if fileExists("/proc/stb/lcd/mode"): f = open("/proc/stb/lcd/mode", "r") can_lcdmodechecking = f.read() f.close() else: can_lcdmodechecking = False SystemInfo["LCDMiniTV"] = can_lcdmodechecking if SystemInfo["StandbyLED"]: def standbyLEDChanged(configElement): file = open("/proc/stb/power/standbyled", "w") file.write(configElement.value and "on" or "off") file.close() config.usage.standbyLED = ConfigYesNo(default=True) config.usage.standbyLED.addNotifier(standbyLEDChanged) if detected: ilcd = LCD() if can_lcdmodechecking: def setLCDModeMinitTV(configElement): try: print 'setLCDModeMinitTV', configElement.value f = open("/proc/stb/lcd/mode", "w") f.write(configElement.value) f.close() except: pass def setMiniTVFPS(configElement): try: print 'setMiniTVFPS', configElement.value f = open("/proc/stb/lcd/fps", "w") f.write("%d \n" % configElement.value) f.close() except: pass def setLCDModePiP(configElement): pass def setLCDScreenshot(configElement): ilcd.setScreenShot(configElement.value) if getBoxType() in ('gbquad4k', 'gbue4k'): config.lcd.modepip = ConfigSelection(choices={ "0": _("off"), "4": _("PIP"), "6": _("PIP with OSD") }, default="0") else: config.lcd.modepip = ConfigSelection(choices={ "0": _("off"), "5": _("PIP"), "7": _("PIP with OSD") }, default="0") if config.misc.boxtype.value in ('gbquad', 'gbquadplus', 'gbquad4k', 'gbue4k'): config.lcd.modepip.addNotifier(setLCDModePiP) else: config.lcd.modepip = ConfigNothing() config.lcd.screenshot = ConfigYesNo(default=False) config.lcd.screenshot.addNotifier(setLCDScreenshot) if getBoxType() in ('gbquad4k', 'gbue4k'): # (0:normal, 1:video0, 2:fb, 3:vide0+fb, 4:video1, 5:vide0+video1, 6:video1+fb, 7:video0+video1+fb) config.lcd.modeminitv = ConfigSelection( default="0", choices=[("0", _("normal")), ("1", _("MiniTV") + _(" - video0")), ("3", _("MiniTV with OSD") + _(" - video0")), ("2", _("OSD")), ("4", _("MiniTV") + _(" - video1")), ("6", _("MiniTV with OSD") + _(" - video1")), ("5", _("MiniTV") + _(" - video0+video1")), ("7", _("MiniTV with OSD") + _(" - video0+video1"))]) else: config.lcd.modeminitv = ConfigSelection(choices={ "0": _("normal"), "1": _("MiniTV"), "2": _("OSD"), "3": _("MiniTV with OSD") }, default="0") config.lcd.fpsminitv = ConfigSlider(default=30, limits=(0, 30)) config.lcd.modeminitv.addNotifier(setLCDModeMinitTV) config.lcd.fpsminitv.addNotifier(setMiniTVFPS) else: config.lcd.modeminitv = ConfigNothing() config.lcd.screenshot = ConfigNothing() config.lcd.fpsminitv = ConfigNothing() config.lcd.scroll_speed = ConfigSelection(default="300", choices=[("500", _("slow")), ("300", _("normal")), ("100", _("fast"))]) config.lcd.scroll_delay = ConfigSelection( default="10000", choices=[("10000", "10 " + _("seconds")), ("20000", "20 " + _("seconds")), ("30000", "30 " + _("seconds")), ("60000", "1 " + _("minute")), ("300000", "5 " + _("minutes")), ("noscrolling", _("off"))]) def setLCDbright(configElement): ilcd.setBright(configElement.value) def setLCDstandbybright(configElement): ilcd.setStandbyBright(configElement.value) def setLCDdimbright(configElement): ilcd.setDimBright(configElement.value) def setLCDdimdelay(configElement): ilcd.setDimDelay(configElement.value) def setLCDcontrast(configElement): ilcd.setContrast(configElement.value) def setLCDinverted(configElement): ilcd.setInverted(configElement.value) def setLCDflipped(configElement): ilcd.setFlipped(configElement.value) def setLCDmode(configElement): ilcd.setMode(configElement.value) def setLCDpower(configElement): ilcd.setPower(configElement.value) def setfblcddisplay(configElement): ilcd.setfblcddisplay(configElement.value) def setLCDshowoutputresolution(configElement): ilcd.setShowoutputresolution(configElement.value) def setLCDminitvmode(configElement): ilcd.setLCDMiniTVMode(configElement.value) def setLCDminitvpipmode(configElement): ilcd.setLCDMiniTVPIPMode(configElement.value) def setLCDminitvfps(configElement): ilcd.setLCDMiniTVFPS(configElement.value) def setLCDrepeat(configElement): ilcd.setRepeat(configElement.value) def setLCDscrollspeed(configElement): ilcd.setScrollspeed(configElement.value) if fileExists("/proc/stb/lcd/symbol_hdd"): f = open("/proc/stb/lcd/symbol_hdd", "w") f.write("0") f.close() if fileExists("/proc/stb/lcd/symbol_hddprogress"): f = open("/proc/stb/lcd/symbol_hddprogress", "w") f.write("0") f.close() if fileExists("/sys/module/brcmstb_osmega/parameters/pt6302_cgram"): f = open("/sys/module/brcmstb_osmega/parameters/pt6302_cgram", "w") f.write("0") f.close() def setLEDnormalstate(configElement): ilcd.setLEDNormalState(configElement.value) def setLEDdeepstandby(configElement): ilcd.setLEDDeepStandbyState(configElement.value) def setLEDblinkingtime(configElement): ilcd.setLEDBlinkingTime(configElement.value) standby_default = 0 if not ilcd.isOled(): config.lcd.contrast = ConfigSlider(default=5, limits=(0, 20)) config.lcd.contrast.addNotifier(setLCDcontrast) else: config.lcd.contrast = ConfigNothing() if getBoxType() in ('dm900', 'dm920', 'e4hdultra', 'protek4k'): standby_default = 4 elif getBoxType() in ('spycat4kmini', 'osmega'): standby_default = 10 else: standby_default = 1 if getBoxType() in ('novatwin', 'novacombo', 'mixosf5', 'mixosf5mini', 'gi9196m', 'gi9196lite', 'zgemmas2s', 'zgemmash1', 'zgemmash2', 'zgemmass', 'zgemmahs', 'zgemmah2s', 'zgemmah2h', 'spycat'): config.lcd.standby = ConfigSlider(default=standby_default, limits=(0, 4)) config.lcd.dimbright = ConfigSlider(default=standby_default, limits=(0, 4)) config.lcd.bright = ConfigSlider(default=4, limits=(0, 4)) elif getBoxType() in ('spycat4kmini', 'osmega'): config.lcd.standby = ConfigSlider(default=standby_default, limits=(0, 10)) config.lcd.dimbright = ConfigSlider(default=standby_default, limits=(0, 10)) config.lcd.bright = ConfigSlider(default=10, limits=(0, 10)) else: config.lcd.standby = ConfigSlider(default=standby_default, limits=(0, 10)) config.lcd.dimbright = ConfigSlider(default=standby_default, limits=(0, 10)) config.lcd.bright = ConfigSlider( default=SystemInfo["DefaultDisplayBrightness"], limits=(0, 10)) config.lcd.dimbright.addNotifier(setLCDdimbright) config.lcd.dimbright.apply = lambda: setLCDdimbright(config.lcd. dimbright) config.lcd.dimdelay = ConfigSelection(default="0", choices=[ ("5", "5 " + _("seconds")), ("10", "10 " + _("seconds")), ("15", "15 " + _("seconds")), ("20", "20 " + _("seconds")), ("30", "30 " + _("seconds")), ("60", "1 " + _("minute")), ("120", "2 " + _("minutes")), ("300", "5 " + _("minutes")), ("0", _("off")) ]) config.lcd.dimdelay.addNotifier(setLCDdimdelay) config.lcd.standby.addNotifier(setLCDstandbybright) config.lcd.standby.apply = lambda: setLCDstandbybright(config.lcd. standby) config.lcd.bright.addNotifier(setLCDbright) config.lcd.bright.apply = lambda: setLCDbright(config.lcd.bright) config.lcd.bright.callNotifiersOnSaveAndCancel = True config.lcd.invert = ConfigYesNo(default=False) config.lcd.invert.addNotifier(setLCDinverted) config.lcd.flip = ConfigYesNo(default=False) config.lcd.flip.addNotifier(setLCDflipped) if SystemInfo["LcdLiveTV"]: def lcdLiveTvChanged(configElement): open(SystemInfo["LcdLiveTV"], "w").write(configElement.value and "0" or "1") from Screens.InfoBar import InfoBar InfoBarInstance = InfoBar.instance InfoBarInstance and InfoBarInstance.session.open(dummyScreen) config.lcd.showTv = ConfigYesNo(default=False) config.lcd.showTv.addNotifier(lcdLiveTvChanged) if SystemInfo["LCDMiniTV"] and config.misc.boxtype.value not in ( 'gbquad', 'gbquadplus', 'gbquad4k', 'gbue4k'): config.lcd.minitvmode = ConfigSelection( [("0", _("normal")), ("1", _("MiniTV")), ("2", _("OSD")), ("3", _("MiniTV with OSD"))], "0") config.lcd.minitvmode.addNotifier(setLCDminitvmode) config.lcd.minitvpipmode = ConfigSelection( [("0", _("off")), ("5", _("PIP")), ("7", _("PIP with OSD"))], "0") config.lcd.minitvpipmode.addNotifier(setLCDminitvpipmode) config.lcd.minitvfps = ConfigSlider(default=30, limits=(0, 30)) config.lcd.minitvfps.addNotifier(setLCDminitvfps) if getBoxType() in ('mixosf5', 'mixosf5mini', 'gi9196m', 'gi9196lite'): config.lcd.scrollspeed = ConfigSlider(default=150, increment=10, limits=(0, 500)) config.lcd.scrollspeed.addNotifier(setLCDscrollspeed) config.lcd.repeat = ConfigSelection([("0", _("None")), ("1", _("1X")), ("2", _("2X")), ("3", _("3X")), ("4", _("4X")), ("500", _("Continues"))], "3") config.lcd.repeat.addNotifier(setLCDrepeat) config.lcd.hdd = ConfigNothing() config.lcd.mode = ConfigNothing() elif fileExists("/proc/stb/lcd/scroll_delay") and not getBoxType() in ( 'ixussone', 'ixusszero'): config.lcd.hdd = ConfigSelection([("0", _("No")), ("1", _("Yes"))], "1") config.lcd.scrollspeed = ConfigSlider(default=150, increment=10, limits=(0, 500)) config.lcd.scrollspeed.addNotifier(setLCDscrollspeed) config.lcd.repeat = ConfigSelection([("0", _("None")), ("1", _("1X")), ("2", _("2X")), ("3", _("3X")), ("4", _("4X")), ("500", _("Continues"))], "3") config.lcd.repeat.addNotifier(setLCDrepeat) config.lcd.mode = ConfigSelection([("0", _("No")), ("1", _("Yes"))], "1") config.lcd.mode.addNotifier(setLCDmode) else: config.lcd.mode = ConfigNothing() config.lcd.repeat = ConfigNothing() config.lcd.scrollspeed = ConfigNothing() config.lcd.hdd = ConfigNothing() if fileExists("/proc/stb/power/vfd") or fileExists( "/proc/stb/lcd/vfd"): config.lcd.power = ConfigSelection([("0", _("No")), ("1", _("Yes"))], "1") config.lcd.power.addNotifier(setLCDpower) else: config.lcd.power = ConfigNothing() if fileExists("/proc/stb/fb/sd_detach"): config.lcd.fblcddisplay = ConfigSelection([("1", _("No")), ("0", _("Yes"))], "1") config.lcd.fblcddisplay.addNotifier(setfblcddisplay) else: config.lcd.fblcddisplay = ConfigNothing() if fileExists("/proc/stb/lcd/show_outputresolution"): config.lcd.showoutputresolution = ConfigSelection( [("0", _("No")), ("1", _("Yes"))], "1") config.lcd.showoutputresolution.addNotifier( setLCDshowoutputresolution) else: config.lcd.showoutputresolution = ConfigNothing() if getBoxType() == 'vuultimo': config.lcd.ledblinkingtime = ConfigSlider(default=5, increment=1, limits=(0, 15)) config.lcd.ledblinkingtime.addNotifier(setLEDblinkingtime) config.lcd.ledbrightnessdeepstandby = ConfigSlider(default=1, increment=1, limits=(0, 15)) config.lcd.ledbrightnessdeepstandby.addNotifier(setLEDnormalstate) config.lcd.ledbrightnessdeepstandby.addNotifier(setLEDdeepstandby) config.lcd.ledbrightnessdeepstandby.apply = lambda: setLEDdeepstandby( config.lcd.ledbrightnessdeepstandby) config.lcd.ledbrightnessstandby = ConfigSlider(default=1, increment=1, limits=(0, 15)) config.lcd.ledbrightnessstandby.addNotifier(setLEDnormalstate) config.lcd.ledbrightnessstandby.apply = lambda: setLEDnormalstate( config.lcd.ledbrightnessstandby) config.lcd.ledbrightness = ConfigSlider(default=3, increment=1, limits=(0, 15)) config.lcd.ledbrightness.addNotifier(setLEDnormalstate) config.lcd.ledbrightness.apply = lambda: setLEDnormalstate( config.lcd.ledbrightness) config.lcd.ledbrightness.callNotifiersOnSaveAndCancel = True else: def doNothing(): pass config.lcd.ledbrightness = ConfigNothing() config.lcd.ledbrightness.apply = lambda: doNothing() config.lcd.ledbrightnessstandby = ConfigNothing() config.lcd.ledbrightnessstandby.apply = lambda: doNothing() config.lcd.ledbrightnessdeepstandby = ConfigNothing() config.lcd.ledbrightnessdeepstandby.apply = lambda: doNothing() config.lcd.ledblinkingtime = ConfigNothing() else: def doNothing(): pass config.lcd.contrast = ConfigNothing() config.lcd.bright = ConfigNothing() config.lcd.standby = ConfigNothing() config.lcd.bright.apply = lambda: doNothing() config.lcd.standby.apply = lambda: doNothing() config.lcd.power = ConfigNothing() config.lcd.fblcddisplay = ConfigNothing() config.misc.vfdcontrol = ConfigSelection([("0", _("No")), ("1", _("Yes"))], "0") config.lcd.mode = ConfigNothing() config.lcd.repeat = ConfigNothing() config.lcd.scrollspeed = ConfigNothing() config.lcd.scroll_speed = ConfigSelection(choices=[("300", _("normal"))]) config.lcd.scroll_delay = ConfigSelection(choices=[("noscrolling", _("off"))]) config.lcd.showoutputresolution = ConfigNothing() config.lcd.ledbrightness = ConfigNothing() config.lcd.ledbrightness.apply = lambda: doNothing() config.lcd.ledbrightnessstandby = ConfigNothing() config.lcd.ledbrightnessstandby.apply = lambda: doNothing() config.lcd.ledbrightnessdeepstandby = ConfigNothing() config.lcd.ledbrightnessdeepstandby.apply = lambda: doNothing() config.lcd.ledblinkingtime = ConfigNothing() config.misc.standbyCounter.addNotifier(standbyCounterChanged, initial_call=False)
def InitUsageConfig(): config.misc.boxtype = ConfigText(default=getHWType()) config.misc.remotecontrol_text_support = ConfigYesNo(default=False) config.usage = ConfigSubsection() config.usage.showdish = ConfigYesNo(default=True) config.usage.multibouquet = ConfigYesNo(default=True) config.usage.alternative_number_mode = ConfigYesNo(default=False) def alternativeNumberModeChange(configElement): enigma.eDVBDB.getInstance().setNumberingMode(configElement.value) refreshServiceList() config.usage.alternative_number_mode.addNotifier( alternativeNumberModeChange) config.usage.multiepg_ask_bouquet = ConfigYesNo(default=False) config.usage.quickzap_bouquet_change = ConfigYesNo(default=False) config.usage.e1like_radio_mode = ConfigYesNo(default=True) choicelist = [] for i in range(1, 12): choicelist.append( ("%d" % i, ngettext("%d second", "%d seconds", i) % i)) config.usage.infobar_timeout = ConfigSelection( default="5", choices=[("0", _("No timeout"))] + choicelist) config.usage.show_infobar_on_zap = ConfigYesNo(default=True) config.usage.show_infobar_on_skip = ConfigYesNo(default=True) config.usage.show_infobar_on_event_change = ConfigYesNo(default=False) config.usage.show_second_infobar = ConfigSelection( default=None, choices=[(None, _("None")), ("0", _("No timeout"))] + choicelist + [("EPG", _("EPG"))]) config.usage.show_spinner = ConfigYesNo(default=True) config.usage.sort_settings = ConfigYesNo( default=False ) # unused by sif.. just for compatibility with oe-alliance mount manager config.usage.enable_tt_caching = ConfigYesNo(default=True) choicelist = [] for i in (10, 30): choicelist.append( ("%d" % i, ngettext("%d second", "%d seconds", i) % i)) for i in (60, 120, 300, 600, 1200, 1800): m = i / 60 choicelist.append( ("%d" % i, ngettext("%d minute", "%d minutes", m) % m)) for i in (3600, 7200, 14400): h = i / 3600 choicelist.append(("%d" % i, ngettext("%d hour", "%d hours", h) % h)) config.usage.hdd_standby = ConfigSelection( default="300", choices=[("0", _("No standby"))] + choicelist) config.usage.output_12V = ConfigSelection(default="do not change", choices=[("do not change", _("Do not change")), ("off", _("Off")), ("on", _("On"))]) config.usage.pip_zero_button = ConfigSelection( default="standard", choices=[("standard", _("Standard")), ("swap", _("Swap PiP and main picture")), ("swapstop", _("Move PiP to main picture")), ("stop", _("Stop PiP"))]) config.usage.default_path = ConfigText(default=resolveFilename(SCOPE_HDD)) config.usage.timer_path = ConfigText(default="<default>") config.usage.instantrec_path = ConfigText(default="<default>") config.usage.timeshift_path = ConfigText(default="/media/hdd/") config.usage.allowed_timeshift_paths = ConfigLocations( default=["/media/hdd/"]) config.usage.movielist_trashcan = ConfigYesNo(default=True) config.usage.movielist_trashcan_days = ConfigNumber(default=8) config.usage.movielist_trashcan_reserve = ConfigNumber(default=40) config.usage.on_movie_start = ConfigSelection( default="resume", choices=[("ask", _("Ask user")), ("resume", _("Resume from last position")), ("beginning", _("Start from the beginning"))]) config.usage.on_movie_stop = ConfigSelection( default="movielist", choices=[("ask", _("Ask user")), ("movielist", _("Return to movie list")), ("quit", _("Return to previous service"))]) config.usage.on_movie_eof = ConfigSelection( default="movielist", choices=[("ask", _("Ask user")), ("movielist", _("Return to movie list")), ("quit", _("Return to previous service")), ("pause", _("Pause movie at end")), ("playlist", _("Play next (return to movie list)")), ("playlistquit", _("Play next (return to previous service)")), ("loop", _("Continues play (loop)"))]) config.usage.next_movie_msg = ConfigYesNo(default=True) config.usage.setup_level = ConfigSelection(default="expert", choices=[ ("simple", _("Simple")), ("intermediate", _("Intermediate")), ("expert", _("Expert")) ]) config.usage.on_long_powerpress = ConfigSelection( default="show_menu", choices=[("show_menu", _("Show shutdown menu")), ("shutdown", _("Immediate shutdown")), ("standby", _("Standby"))]) config.usage.on_short_powerpress = ConfigSelection( default="standby", choices=[("show_menu", _("Show shutdown menu")), ("shutdown", _("Immediate shutdown")), ("standby", _("Standby"))]) config.usage.alternatives_priority = ConfigSelection( default="0", choices=[("0", "DVB-S/-C/-T"), ("1", "DVB-S/-T/-C"), ("2", "DVB-C/-S/-T"), ("3", "DVB-C/-T/-S"), ("4", "DVB-T/-C/-S"), ("5", "DVB-T/-S/-C")]) nims = [("-1", _("auto"))] for x in nimmanager.nim_slots: nims.append((str(x.slot), x.getSlotName())) config.usage.frontend_priority = ConfigSelection(default="-1", choices=nims) config.misc.disable_background_scan = ConfigYesNo(default=False) config.usage.show_event_progress_in_servicelist = ConfigSelection( default='barright', choices=[('barleft', _("Progress bar left")), ('barright', _("Progress bar right")), ('percleft', _("Percentage left")), ('percright', _("Percentage right")), ('no', _("No"))]) config.usage.show_channel_numbers_in_servicelist = ConfigYesNo( default=True) config.usage.show_event_progress_in_servicelist.addNotifier( refreshServiceList) config.usage.show_channel_numbers_in_servicelist.addNotifier( refreshServiceList) config.usage.blinking_display_clock_during_recording = ConfigYesNo( default=False) config.usage.show_message_when_recording_starts = ConfigYesNo(default=True) config.usage.load_length_of_movies_in_moviellist = ConfigYesNo( default=True) config.usage.show_icons_in_movielist = ConfigSelection( default='i', choices=[ ('o', _("Off")), ('p', _("Progress")), ('s', _("Small progress")), ('i', _("Icons")), ]) config.usage.movielist_unseen = ConfigYesNo(default=False) config.usage.swap_snr_on_osd = ConfigYesNo(default=False) def SpinnerOnOffChanged(configElement): setSpinnerOnOff(int(configElement.value)) config.usage.show_spinner.addNotifier(SpinnerOnOffChanged) def EnableTtCachingChanged(configElement): setEnableTtCachingOnOff(int(configElement.value)) config.usage.enable_tt_caching.addNotifier(EnableTtCachingChanged) def TunerTypePriorityOrderChanged(configElement): setTunerTypePriorityOrder(int(configElement.value)) config.usage.alternatives_priority.addNotifier( TunerTypePriorityOrderChanged, immediate_feedback=False) def PreferredTunerChanged(configElement): setPreferredTuner(int(configElement.value)) config.usage.frontend_priority.addNotifier(PreferredTunerChanged) config.usage.hide_zap_errors = ConfigYesNo(default=False) config.usage.hide_ci_messages = ConfigYesNo(default=False) config.usage.show_cryptoinfo = ConfigYesNo(default=True) config.usage.show_eit_nownext = ConfigYesNo(default=True) config.epg = ConfigSubsection() config.epg.eit = ConfigYesNo(default=True) config.epg.mhw = ConfigYesNo(default=False) config.epg.freesat = ConfigYesNo(default=True) config.epg.viasat = ConfigYesNo(default=True) config.epg.netmed = ConfigYesNo(default=True) config.misc.showradiopic = ConfigYesNo(default=True) def EpgSettingsChanged(configElement): from enigma import eEPGCache mask = 0xffffffff if not config.epg.eit.value: mask &= ~(eEPGCache.NOWNEXT | eEPGCache.SCHEDULE | eEPGCache.SCHEDULE_OTHER) if not config.epg.mhw.value: mask &= ~eEPGCache.MHW if not config.epg.freesat.value: mask &= ~(eEPGCache.FREESAT_NOWNEXT | eEPGCache.FREESAT_SCHEDULE | eEPGCache.FREESAT_SCHEDULE_OTHER) if not config.epg.viasat.value: mask &= ~eEPGCache.VIASAT if not config.epg.netmed.value: mask &= ~(eEPGCache.NETMED_SCHEDULE | eEPGCache.NETMED_SCHEDULE_OTHER) eEPGCache.getInstance().setEpgSources(mask) config.epg.eit.addNotifier(EpgSettingsChanged) config.epg.mhw.addNotifier(EpgSettingsChanged) config.epg.freesat.addNotifier(EpgSettingsChanged) config.epg.viasat.addNotifier(EpgSettingsChanged) config.epg.netmed.addNotifier(EpgSettingsChanged) config.epg.histminutes = ConfigSelectionNumber(min=0, max=120, stepwidth=15, default=0, wraparound=True) def EpgHistorySecondsChanged(configElement): from enigma import eEPGCache eEPGCache.getInstance().setEpgHistorySeconds( config.epg.histminutes.getValue() * 60) config.epg.histminutes.addNotifier(EpgHistorySecondsChanged) def setHDDStandby(configElement): for hdd in harddiskmanager.HDDList(): hdd[1].setIdleTime(int(configElement.value)) config.usage.hdd_standby.addNotifier(setHDDStandby, immediate_feedback=False) def set12VOutput(configElement): if configElement.value == "on": enigma.Misc_Options.getInstance().set_12V_output(1) elif configElement.value == "off": enigma.Misc_Options.getInstance().set_12V_output(0) config.usage.output_12V.addNotifier(set12VOutput, immediate_feedback=False) SystemInfo["12V_Output"] = enigma.Misc_Options.getInstance( ).detected_12V_output() config.usage.keymap = ConfigText( default=eEnv.resolve("${datadir}/enigma2/keymap.xml")) config.seek = ConfigSubsection() config.seek.selfdefined_13 = ConfigNumber(default=15) config.seek.selfdefined_46 = ConfigNumber(default=60) config.seek.selfdefined_79 = ConfigNumber(default=300) config.seek.speeds_forward = ConfigSet( default=[2, 4, 8, 16, 32, 64, 128], choices=[2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128]) config.seek.speeds_backward = ConfigSet( default=[2, 4, 8, 16, 32, 64, 128], choices=[1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128]) config.seek.speeds_slowmotion = ConfigSet(default=[2, 4, 8], choices=[2, 4, 6, 8, 12, 16, 25]) config.seek.enter_forward = ConfigSelection(default="2", choices=[ "2", "4", "6", "8", "12", "16", "24", "32", "48", "64", "96", "128" ]) config.seek.enter_backward = ConfigSelection(default="1", choices=[ "1", "2", "4", "6", "8", "12", "16", "24", "32", "48", "64", "96", "128" ]) config.seek.on_pause = ConfigSelection(default="play", choices=[("play", _("Play")), ("step", _("Single step (GOP)")), ("last", _("Last speed"))]) config.crash = ConfigSubsection() config.crash.details = ConfigYesNo(default=False) config.usage.timerlist_finished_timer_position = ConfigSelection( default="end", choices=[("beginning", _("At beginning")), ("end", _("At end"))]) def updateEnterForward(configElement): if not configElement.value: configElement.value = [2] updateChoices(config.seek.enter_forward, configElement.value) config.seek.speeds_forward.addNotifier(updateEnterForward, immediate_feedback=False) def updateEnterBackward(configElement): if not configElement.value: configElement.value = [2] updateChoices(config.seek.enter_backward, configElement.value) config.seek.speeds_backward.addNotifier(updateEnterBackward, immediate_feedback=False) def updateEraseSpeed(el): enigma.eBackgroundFileEraser.getInstance().setEraseSpeed(int(el.value)) def updateEraseFlags(el): enigma.eBackgroundFileEraser.getInstance().setEraseFlags(int(el.value)) config.misc.erase_speed = ConfigSelection(default="20", choices=[("10", "10 MB/s"), ("20", "20 MB/s"), ("50", "50 MB/s"), ("100", "100 MB/s")]) config.misc.erase_speed.addNotifier(updateEraseSpeed, immediate_feedback=False) config.misc.erase_flags = ConfigSelection(default="1", choices=[ ("0", _("Disable")), ("1", _("Internal hdd only")), ("3", _("Everywhere")) ]) config.misc.erase_flags.addNotifier(updateEraseFlags, immediate_feedback=False) SystemInfo["ZapMode"] = os.path.exists("/proc/stb/video/zapmode") if SystemInfo["ZapMode"]: def setZapmode(el): try: file = open("/proc/stb/video/zapmode", "w") file.write(el.value) file.close() except: pass config.misc.zapmode = ConfigSelection( default="mute", choices=[("mute", _("Black screen")), ("hold", _("Hold screen")), ("mutetilllock", _("Black screen till locked")), ("holdtilllock", _("Hold till locked"))]) config.misc.zapmode.addNotifier(setZapmode, immediate_feedback=False) config.subtitles = ConfigSubsection() config.subtitles.ttx_subtitle_colors = ConfigSelection( default="1", choices=[("0", _("original")), ("1", _("white")), ("2", _("yellow"))]) config.subtitles.ttx_subtitle_original_position = ConfigYesNo( default=False) config.subtitles.subtitle_position = ConfigSelection(choices=[ "0", "10", "20", "30", "40", "50", "60", "70", "80", "90", "100", "150", "200", "250", "300", "350", "400", "450" ], default="50") config.subtitles.subtitle_alignment = ConfigSelection(choices=[ ("left", _("left")), ("center", _("center")), ("right", _("right")) ], default="center") config.subtitles.subtitle_rewrap = ConfigYesNo(default=False) config.subtitles.subtitle_borderwidth = ConfigSelection( choices=["1", "2", "3", "4", "5"], default="3") config.subtitles.subtitle_fontsize = ConfigSelection(choices=[ "16", "18", "20", "22", "24", "26", "28", "30", "32", "34", "36", "38", "40", "42", "44", "46", "48", "50", "52", "54" ], default="34") choicelist = [] for i in range(45000, 945000, 45000): choicelist.append(("%d" % i, "%2.1f sec" % (i / 90000.))) config.subtitles.subtitle_noPTSrecordingdelay = ConfigSelection( default="315000", choices=[("0", _("No delay"))] + choicelist) config.subtitles.dvb_subtitles_yellow = ConfigYesNo(default=False) config.subtitles.dvb_subtitles_original_position = ConfigSelection( default="0", choices=[("0", _("Original")), ("1", _("Fixed")), ("2", _("Relative"))]) config.subtitles.dvb_subtitles_centered = ConfigYesNo(default=False) config.subtitles.dvb_subtitles_backtrans = ConfigSelection( default="0", choices=[("0", _("No transparency")), ("25", "10%"), ("50", "20%"), ("75", "30%"), ("100", "40%"), ("125", "50%"), ("150", "60%"), ("175", "70%"), ("200", "80%"), ("225", "90%"), ("255", _("Full transparency"))]) config.subtitles.pango_subtitles_yellow = ConfigYesNo(default=False) config.autolanguage = ConfigSubsection() audio_language_choices = [ ("---", _("None")), ("orj dos ory org esl qaa und mis mul ORY ORJ Audio_ORJ", _("Original")), ("ara", _("Arabic")), ("eus baq", _("Basque")), ("bul", _("Bulgarian")), ("hrv", _("Croatian")), ("ces cze", _("Czech")), ("dan", _("Danish")), ("dut ndl", _("Dutch")), ("eng qaa", _("English")), ("est", _("Estonian")), ("fin", _("Finnish")), ("fra fre", _("French")), ("deu ger", _("German")), ("ell gre", _("Greek")), ("heb", _("Hebrew")), ("hun", _("Hungarian")), ("ita", _("Italian")), ("lat", _("Latvian")), ("lit", _("Lithuanian")), ("ltz", _("Luxembourgish")), ("nor", _("Norwegian")), ("pol", _("Polish")), ("por", _("Portuguese")), ("fas per", _("Persian")), ("ron rum", _("Romanian")), ("rus", _("Russian")), ("srp", _("Serbian")), ("slk slo", _("Slovak")), ("slv", _("Slovenian")), ("spa", _("Spanish")), ("swe", _("Swedish")), ("tha", _("Thai")), ("tur Audio_TUR", _("Turkish")) ] def setEpgLanguage(configElement): enigma.eServiceEvent.setEPGLanguage(configElement.value) config.autolanguage.audio_epglanguage = ConfigSelection( audio_language_choices[:1] + audio_language_choices[2:], default="---") config.autolanguage.audio_epglanguage.addNotifier(setEpgLanguage) def setEpgLanguageAlternative(configElement): enigma.eServiceEvent.setEPGLanguageAlternative(configElement.value) config.autolanguage.audio_epglanguage_alternative = ConfigSelection( audio_language_choices[:1] + audio_language_choices[2:], default="---") config.autolanguage.audio_epglanguage_alternative.addNotifier( setEpgLanguageAlternative) config.autolanguage.audio_autoselect1 = ConfigSelection( choices=audio_language_choices, default="---") config.autolanguage.audio_autoselect2 = ConfigSelection( choices=audio_language_choices, default="---") config.autolanguage.audio_autoselect3 = ConfigSelection( choices=audio_language_choices, default="---") config.autolanguage.audio_autoselect4 = ConfigSelection( choices=audio_language_choices, default="---") config.autolanguage.audio_defaultac3 = ConfigYesNo(default=False) config.autolanguage.audio_usecache = ConfigYesNo(default=True) subtitle_language_choices = audio_language_choices[: 1] + audio_language_choices[ 2:] config.autolanguage.subtitle_autoselect1 = ConfigSelection( choices=subtitle_language_choices, default="---") config.autolanguage.subtitle_autoselect2 = ConfigSelection( choices=subtitle_language_choices, default="---") config.autolanguage.subtitle_autoselect3 = ConfigSelection( choices=subtitle_language_choices, default="---") config.autolanguage.subtitle_autoselect4 = ConfigSelection( choices=subtitle_language_choices, default="---") config.autolanguage.subtitle_hearingimpaired = ConfigYesNo(default=False) config.autolanguage.subtitle_defaultimpaired = ConfigYesNo(default=False) config.autolanguage.subtitle_defaultdvb = ConfigYesNo(default=False) config.autolanguage.subtitle_usecache = ConfigYesNo(default=True) config.autolanguage.equal_languages = ConfigSelection(default="15", choices=[ ("0", "None"), ("1", "1"), ("2", "2"), ("3", "1,2"), ("4", "3"), ("5", "1,3"), ("6", "2,3"), ("7", "1,2,3"), ("8", "4"), ("9", "1,4"), ("10", "2,4"), ("11", "1,2,4"), ("12", "3,4"), ("13", "1,3,4"), ("14", "2,3,4"), ("15", "All") ]) config.streaming = ConfigSubsection() config.streaming.stream_ecm = ConfigYesNo(default=False) config.streaming.descramble = ConfigYesNo(default=True) config.streaming.stream_eit = ConfigYesNo(default=True) config.streaming.stream_ait = ConfigYesNo(default=True)
def InitRecordingConfig(): config.recording = ConfigSubsection() # actually this is "recordings always have priority". "Yes" does mean: don't ask. The RecordTimer will ask when value is 0. config.recording.asktozap = ConfigYesNo(default=True) config.recording.asktozap1 = ConfigYesNo(default=True) config.recording.margin_before = ConfigSelectionNumber(min=0, max=120, stepwidth=1, default=3, wraparound=True) config.recording.margin_after = ConfigSelectionNumber(min=0, max=120, stepwidth=1, default=5, wraparound=True) config.recording.ascii_filenames = ConfigYesNo(default=False) config.recording.keep_timers = ConfigSelectionNumber(min=1, max=120, stepwidth=1, default=7, wraparound=True) config.recording.filename_composition = ConfigSelection( default="standard", choices=[("standard", _("standard")), ("veryveryshort", _("Very very short filenames - Warning")), ("veryshort", _("Very short filenames")), ("shortwithtime", _("Short filenames with time")), ("short", _("Short filenames")), ("long", _("Long filenames"))]) config.recording.offline_decode_delay = ConfigSelectionNumber( min=1, max=10000, stepwidth=10, default=1000, wraparound=True) config.recording.ecm_data = ConfigSelection(choices=[ ("normal", _("normal")), ("descrambled+ecm", _("descramble and record ecm")), ("scrambled+ecm", _("don't descramble, record ecm")) ], default="normal") config.recording.include_ait = ConfigYesNo(default=False) config.recording.show_rec_symbol_for_rec_types = ConfigSelection( choices=[("any", _("any recordings")), ("real", _("real recordings")), ("real_streaming", _("real recordings or streaming")), ("real_pseudo", _("real or pseudo recordings"))], default="real_streaming") config.recording.warn_box_restart_rec_types = ConfigSelection( choices=[("any", _("any recordings")), ("real", _("real recordings")), ("real_streaming", _("real recordings or streaming")), ("real_pseudo", _("real or pseudo recordings"))], default="real_streaming") config.recording.ask_to_abort_pseudo_rec = ConfigSelection( choices=[("ask", _("ask user")), ("abort_no_msg", _("just abort, no message")), ("abort_msg", _("just abort, show message")), ("never_abort", _("never abort"))], default="abort_msg") config.recording.ask_to_abort_streaming = ConfigSelection( choices=[("ask", _("ask user")), ("abort_no_msg", _("just abort, no message")), ("abort_msg", _("just abort, show message")), ("never_abort", _("never abort"))], default="abort_msg") config.recording.ask_to_abort_pip = ConfigSelection(choices=[ ("ask", _("ask user")), ("abort_no_msg", _("just abort, no message")), ("abort_msg", _("just abort, show message")), ("never_abort", _("never abort")) ], default="abort_msg")
def InitUsageConfig(): config.usage = ConfigSubsection() config.usage.subnetwork = ConfigYesNo(default = True) config.usage.subnetwork_cable = ConfigYesNo(default = True) config.usage.subnetwork_terrestrial = ConfigYesNo(default = True) config.usage.showdish = ConfigYesNo(default = True) config.misc.showrotorposition = ConfigSelection(default = "no", choices = [("no", _("no")), ("yes", _("yes")), ("withtext", _("with text")), ("tunername", _("with tuner name"))]) config.usage.multibouquet = ConfigYesNo(default = True) config.usage.alternative_number_mode = ConfigYesNo(default = False) def alternativeNumberModeChange(configElement): eDVBDB.getInstance().setNumberingMode(configElement.value) refreshServiceList() config.usage.alternative_number_mode.addNotifier(alternativeNumberModeChange) config.usage.hide_number_markers = ConfigYesNo(default = True) config.usage.hide_number_markers.addNotifier(refreshServiceList) config.usage.servicetype_icon_mode = ConfigSelection(default = "1", choices = [("0", _("None")), ("1", _("Left from servicename")), ("2", _("Right from servicename"))]) config.usage.servicetype_icon_mode.addNotifier(refreshServiceList) config.usage.crypto_icon_mode = ConfigSelection(default = "2", choices = [("0", _("None")), ("1", _("Left from servicename")), ("2", _("Right from servicename"))]) config.usage.crypto_icon_mode.addNotifier(refreshServiceList) config.usage.record_indicator_mode = ConfigSelection(default = "3", choices = [("0", _("None")), ("1", _("Left from servicename")), ("2", _("Right from servicename")), ("3", _("Red colored"))]) config.usage.record_indicator_mode.addNotifier(refreshServiceList) choicelist = [("-1", _("Disable"))] for i in range(0,1300,100): choicelist.append((str(i), ngettext("%d pixel wide", "%d pixels wide", i) % i)) config.usage.servicelist_column = ConfigSelection(default="-1", choices=choicelist) config.usage.servicelist_column.addNotifier(refreshServiceList) config.usage.service_icon_enable = ConfigYesNo(default = True) config.usage.service_icon_enable.addNotifier(refreshServiceList) config.usage.servicelist_cursor_behavior = ConfigSelection(default = "keep", choices = [ ("standard", _("Standard")), ("keep", _("Keep service")), ("reverseB", _("Reverse bouquet buttons")), ("keep reverseB", _("Keep service") + " + " + _("Reverse bouquet buttons"))]) choicelist = [("by skin", _("As defined by the skin"))] for i in range (5,41): choicelist.append((str(i))) config.usage.servicelist_number_of_services = ConfigSelection(default = "by skin", choices = choicelist) config.usage.servicelist_number_of_services.addNotifier(refreshServiceList) config.usage.multiepg_ask_bouquet = ConfigYesNo(default = False) config.usage.quickzap_bouquet_change = ConfigYesNo(default = False) config.usage.e1like_radio_mode = ConfigYesNo(default = False) choicelist = [("0", _("No timeout"))] for i in range(1, 12): choicelist.append((str(i), ngettext("%d second", "%d seconds", i) % i)) config.usage.infobar_timeout = ConfigSelection(default = "5", choices = choicelist) config.usage.show_infobar_on_zap = ConfigYesNo(default = True) config.usage.show_infobar_on_skip = ConfigYesNo(default = True) config.usage.show_infobar_on_event_change = ConfigYesNo(default = False) config.usage.show_second_infobar = ConfigSelection(default = "0", choices = [("", _("None"))] + choicelist + [("EPG",_("EPG"))]) config.usage.show_simple_second_infobar = ConfigYesNo(default = False) config.usage.infobar_frontend_source = ConfigSelection(default = "settings", choices = [("settings", _("Settings")), ("tuner", _("Tuner"))]) config.usage.oldstyle_zap_controls = ConfigYesNo(default = False) config.usage.oldstyle_channel_select_controls = ConfigYesNo(default = False) config.usage.zap_with_ch_buttons = ConfigYesNo(default = False) config.usage.ok_is_channelselection = ConfigYesNo(default = False) config.usage.volume_instead_of_channelselection = ConfigYesNo(default = False) config.usage.channelselection_preview = ConfigYesNo(default = False) config.usage.show_spinner = ConfigYesNo(default = True) config.usage.menu_sort_weight = ConfigDictionarySet(default = { "mainmenu" : {"submenu" : {} }}) config.usage.menu_sort_mode = ConfigSelection(default = "default", choices = [ ("a_z", _("alphabetical")), ("default", _("Default")), ("user", _("user defined")),]) config.usage.menu_show_numbers = ConfigSelection(default = "no", choices = [("no", _("no")), ("menu&plugins", _("in menu and plugins")), ("menu", _("in menu only")), ("plugins", _("in plugins only"))]) config.usage.menu_path = ConfigSelection(default = "off", choices = [ ("off", _("Disabled")), ("small", _("Small")), ("large", _("Large")),]) config.usage.enable_tt_caching = ConfigYesNo(default = True) config.usage.sort_settings = ConfigYesNo(default=False) choicelist = [] for i in (10, 30): choicelist.append((str(i), ngettext("%d second", "%d seconds", i) % i)) for i in (60, 120, 300, 600, 1200, 1800): m = i / 60 choicelist.append((str(i), ngettext("%d minute", "%d minutes", m) % m)) for i in (3600, 7200, 14400): h = i / 3600 choicelist.append((str(i), ngettext("%d hour", "%d hours", h) % h)) config.usage.hdd_standby = ConfigSelection(default = "300", choices = [("0", _("No standby"))] + choicelist) config.usage.output_12V = ConfigSelection(default = "do not change", choices = [ ("do not change", _("Do not change")), ("off", _("Off")), ("on", _("On")) ]) config.usage.pip_zero_button = ConfigSelection(default = "standard", choices = [ ("standard", _("Standard")), ("swap", _("Swap PiP and main picture")), ("swapstop", _("Move PiP to main picture")), ("stop", _("Stop PiP")) ]) config.usage.pip_hideOnExit = ConfigSelection(default = "without popup", choices = [ ("no", _("no")), ("popup", _("With popup")), ("without popup", _("Without popup")) ]) choicelist = [("-1", _("Disabled")), ("0", _("No timeout"))] for i in [60, 300, 600, 900, 1800, 2700, 3600]: m = i/60 choicelist.append((str(i), ngettext("%d minute", "%d minutes", m) % m)) config.usage.pip_last_service_timeout = ConfigSelection(default = "0", choices = choicelist) config.usage.default_path = ConfigText(default = "") config.usage.timer_path = ConfigText(default = "<default>") config.usage.instantrec_path = ConfigText(default = "<default>") config.usage.timeshift_path = ConfigText(default = "/media/hdd/") config.usage.allowed_timeshift_paths = ConfigLocations(default = ["/media/hdd/"]) config.usage.movielist_trashcan = ConfigYesNo(default=True) config.usage.movielist_trashcan_days = ConfigNumber(default=7) config.usage.movielist_trashcan_reserve = ConfigNumber(default=40) config.usage.on_movie_start = ConfigSelection(default = "resume", choices = [ ("ask yes", _("Ask user") + " " + _("default") + " " + _("yes")), ("ask no", _("Ask user") + " " + _("default") + " " + _("no")), ("resume", _("Resume from last position")), ("beginning", _("Start from the beginning"))]) config.usage.on_movie_stop = ConfigSelection(default = "movielist", choices = [ ("ask", _("Ask user")), ("movielist", _("Return to movie list")), ("quit", _("Return to previous service")) ]) config.usage.on_movie_eof = ConfigSelection(default = "movielist", choices = [ ("ask", _("Ask user")), ("movielist", _("Return to movie list")), ("quit", _("Return to previous service")), ("pause", _("Pause movie at end")), ("playlist", _("Play next (return to movie list)")), ("playlistquit", _("Play next (return to previous service)")), ("loop", _("Continues play (loop)")), ("repeatcurrent", _("Repeat"))]) config.usage.next_movie_msg = ConfigYesNo(default = True) config.usage.last_movie_played = ConfigText() config.usage.leave_movieplayer_onExit = ConfigSelection(default = "popup", choices = [ ("no", _("no")), ("popup", _("With popup")), ("without popup", _("Without popup")), ("movielist", _("Return to movie list")) ]) config.usage.setup_level = ConfigSelection(default = "expert", choices = [ ("simple", _("Normal")), ("intermediate", _("Advanced")), ("expert", _("Expert")) ]) config.usage.startup_to_standby = ConfigSelection(default = "no", choices = [ ("no", _("no")), ("yes", _("yes")), ("except", _("No, except Wakeup timer")) ]) config.usage.wakeup_enabled = ConfigSelection(default = "no", choices = [ ("no", _("no")), ("yes", _("yes")), ("standby", _("Yes, only from standby")), ("deepstandby", _("Yes, only from deep standby")) ]) config.usage.wakeup_day = ConfigSubDict() config.usage.wakeup_time = ConfigSubDict() for i in range(7): config.usage.wakeup_day[i] = ConfigEnableDisable(default = False) config.usage.wakeup_time[i] = ConfigClock(default = ((6 * 60 + 0) * 60)) choicelist = [("0", _("Do nothing"))] for i in range(3600, 21601, 3600): h = abs(i / 3600) h = ngettext("%d hour", "%d hours", h) % h choicelist.append((str(i), _("Standby in ") + h)) config.usage.inactivity_timer = ConfigSelection(default = "0", choices = choicelist) config.usage.inactivity_timer_blocktime = ConfigYesNo(default = True) config.usage.inactivity_timer_blocktime_begin = ConfigClock(default = time.mktime((0, 0, 0, 18, 0, 0, 0, 0, 0))) config.usage.inactivity_timer_blocktime_end = ConfigClock(default = time.mktime((0, 0, 0, 23, 0, 0, 0, 0, 0))) config.usage.inactivity_timer_blocktime_extra = ConfigYesNo(default = False) config.usage.inactivity_timer_blocktime_extra_begin = ConfigClock(default = time.mktime((0, 0, 0, 6, 0, 0, 0, 0, 0))) config.usage.inactivity_timer_blocktime_extra_end = ConfigClock(default = time.mktime((0, 0, 0, 9, 0, 0, 0, 0, 0))) config.usage.inactivity_timer_blocktime_by_weekdays = ConfigYesNo(default = False) config.usage.inactivity_timer_blocktime_day = ConfigSubDict() config.usage.inactivity_timer_blocktime_begin_day = ConfigSubDict() config.usage.inactivity_timer_blocktime_end_day = ConfigSubDict() config.usage.inactivity_timer_blocktime_extra_day = ConfigSubDict() config.usage.inactivity_timer_blocktime_extra_begin_day = ConfigSubDict() config.usage.inactivity_timer_blocktime_extra_end_day = ConfigSubDict() for i in range(7): config.usage.inactivity_timer_blocktime_day[i] = ConfigYesNo(default = False) config.usage.inactivity_timer_blocktime_begin_day[i] = ConfigClock(default = time.mktime((0, 0, 0, 18, 0, 0, 0, 0, 0))) config.usage.inactivity_timer_blocktime_end_day[i] = ConfigClock(default = time.mktime((0, 0, 0, 23, 0, 0, 0, 0, 0))) config.usage.inactivity_timer_blocktime_extra_day[i] = ConfigYesNo(default = False) config.usage.inactivity_timer_blocktime_extra_begin_day[i] = ConfigClock(default = time.mktime((0, 0, 0, 6, 0, 0, 0, 0, 0))) config.usage.inactivity_timer_blocktime_extra_end_day[i] = ConfigClock(default = time.mktime((0, 0, 0, 9, 0, 0, 0, 0, 0))) choicelist = [("0", _("Disabled")),("event_standby", _("Standby after current event"))] for i in range(900, 7201, 900): m = abs(i / 60) m = ngettext("%d minute", "%d minutes", m) % m choicelist.append((str(i), _("Standby in ") + m)) config.usage.sleep_timer = ConfigSelection(default = "0", choices = choicelist) choicelist = [("0", _("Disabled"))] for i in [300, 600] + range(900, 7201, 900): m = abs(i / 60) m = ngettext("%d minute", "%d minutes", m) % m choicelist.append((str(i), _("after ") + m)) config.usage.standby_to_shutdown_timer = ConfigSelection(default = "0", choices = choicelist) config.usage.standby_to_shutdown_timer_blocktime = ConfigYesNo(default = False) config.usage.standby_to_shutdown_timer_blocktime_begin = ConfigClock(default = time.mktime((0, 0, 0, 6, 0, 0, 0, 0, 0))) config.usage.standby_to_shutdown_timer_blocktime_end = ConfigClock(default = time.mktime((0, 0, 0, 23, 0, 0, 0, 0, 0))) choicelist = [("0", _("Disabled"))] for m in (1, 5, 10, 15, 30, 60): choicelist.append((str(m * 60), ngettext("%d minute", "%d minutes", m) % m)) config.usage.screen_saver = ConfigSelection(default = "300", choices = choicelist) config.usage.check_timeshift = ConfigYesNo(default = True) choicelist = [("0", _("Disabled"))] for i in (2, 3, 4, 5, 10, 20, 30): choicelist.append((str(i), ngettext("%d second", "%d seconds", i) % i)) for i in (60, 120, 300): m = i / 60 choicelist.append((str(i), ngettext("%d minute", "%d minutes", m) % m)) config.usage.timeshift_start_delay = ConfigSelection(default = "0", choices = choicelist) config.usage.alternatives_priority = ConfigSelection(default = "1", choices = [ ("0", "DVB-S/-C/-T"), ("1", "DVB-S/-T/-C"), ("2", "DVB-C/-S/-T"), ("3", "DVB-C/-T/-S"), ("4", "DVB-T/-C/-S"), ("5", "DVB-T/-S/-C"), ("127", _("No priority")) ]) def remote_fallback_changed(configElement): if configElement.value: configElement.value = "%s%s" % (not configElement.value.startswith("http://") and "http://" or "", configElement.value) configElement.value = "%s%s" % (configElement.value, configElement.value.count(":") == 1 and ":8001" or "") config.usage.remote_fallback_enabled = ConfigYesNo(default = False) config.usage.remote_fallback = ConfigText(default = "", fixed_size = False) config.usage.remote_fallback.addNotifier(remote_fallback_changed, immediate_feedback=False) config.usage.remote_fallback_import_url = ConfigText(default = "", fixed_size = False) config.usage.remote_fallback_import_url.addNotifier(remote_fallback_changed, immediate_feedback=False) config.usage.remote_fallback_import = ConfigSelection(default = "", choices = [("", _("No")), ("channels", _("Channels only")), ("channels_epg", _("Channels and EPG")), ("epg", _("EPG only"))]) config.usage.remote_fallback_import_restart = ConfigYesNo(default = False) config.usage.remote_fallback_import_standby = ConfigYesNo(default = False) config.usage.remote_fallback_ok = ConfigYesNo(default = False) config.usage.remote_fallback_nok = ConfigYesNo(default = False) config.usage.remote_fallback_extension_menu = ConfigYesNo(default = False) config.usage.remote_fallback_external_timer = ConfigYesNo(default = False) config.usage.remote_fallback_openwebif_customize = ConfigYesNo(default = False) config.usage.remote_fallback_openwebif_userid = ConfigText(default = "root") config.usage.remote_fallback_openwebif_password = ConfigPassword(default = "default") config.usage.remote_fallback_openwebif_port = ConfigInteger(default=80, limits=(0,65535)) config.usage.show_timer_conflict_warning = ConfigYesNo(default = True) dvbs_nims = [("-2", _("Disabled"))] dvbt_nims = [("-2", _("Disabled"))] dvbc_nims = [("-2", _("Disabled"))] atsc_nims = [("-2", _("Disabled"))] nims = [("-1", _("auto"))] for x in nimmanager.nim_slots: if x.isCompatible("DVB-S"): dvbs_nims.append((str(x.slot), x.getSlotName())) elif x.isCompatible("DVB-T"): dvbt_nims.append((str(x.slot), x.getSlotName())) elif x.isCompatible("DVB-C"): dvbc_nims.append((str(x.slot), x.getSlotName())) elif x.isCompatible("ATSC"): atsc_nims.append((str(x.slot), x.getSlotName())) nims.append((str(x.slot), x.getSlotName())) config.usage.frontend_priority = ConfigSelection(default = "-1", choices = list(nims)) nims.insert(0,("-2", _("Disabled"))) config.usage.recording_frontend_priority = ConfigSelection(default = "-2", choices = nims) config.usage.frontend_priority_dvbs = ConfigSelection(default = "-2", choices = list(dvbs_nims)) dvbs_nims.insert(1,("-1", _("auto"))) config.usage.recording_frontend_priority_dvbs = ConfigSelection(default = "-2", choices = dvbs_nims) config.usage.frontend_priority_dvbt = ConfigSelection(default = "-2", choices = list(dvbt_nims)) dvbt_nims.insert(1,("-1", _("auto"))) config.usage.recording_frontend_priority_dvbt = ConfigSelection(default = "-2", choices = dvbt_nims) config.usage.frontend_priority_dvbc = ConfigSelection(default = "-2", choices = list(dvbc_nims)) dvbc_nims.insert(1,("-1", _("auto"))) config.usage.recording_frontend_priority_dvbc = ConfigSelection(default = "-2", choices = dvbc_nims) config.usage.frontend_priority_atsc = ConfigSelection(default = "-2", choices = list(atsc_nims)) atsc_nims.insert(1,("-1", _("auto"))) config.usage.recording_frontend_priority_atsc = ConfigSelection(default = "-2", choices = atsc_nims) SystemInfo["DVB-S_priority_tuner_available"] = len(dvbs_nims) > 3 and any(len(i) > 2 for i in (dvbt_nims, dvbc_nims, atsc_nims)) SystemInfo["DVB-T_priority_tuner_available"] = len(dvbt_nims) > 3 and any(len(i) > 2 for i in (dvbs_nims, dvbc_nims, atsc_nims)) SystemInfo["DVB-C_priority_tuner_available"] = len(dvbc_nims) > 3 and any(len(i) > 2 for i in (dvbs_nims, dvbt_nims, atsc_nims)) SystemInfo["ATSC_priority_tuner_available"] = len(atsc_nims) > 3 and any(len(i) > 2 for i in (dvbs_nims, dvbc_nims, dvbt_nims)) config.misc.disable_background_scan = ConfigYesNo(default = False) config.misc.use_ci_assignment = ConfigYesNo(default = False) config.usage.show_event_progress_in_servicelist = ConfigSelection(default = 'percright', choices = [ ('barleft', _("Progress bar left")), ('barright', _("Progress bar right")), ('percleft', _("Percentage left")), ('percright', _("Percentage right")), ('no', _("no")) ]) config.usage.show_channel_numbers_in_servicelist = ConfigYesNo(default = True) config.usage.show_event_progress_in_servicelist.addNotifier(refreshServiceList) config.usage.show_channel_numbers_in_servicelist.addNotifier(refreshServiceList) config.usage.blinking_display_clock_during_recording = ConfigYesNo(default = False) config.usage.show_message_when_recording_starts = ConfigYesNo(default = True) config.usage.load_length_of_movies_in_moviellist = ConfigYesNo(default = True) config.usage.show_icons_in_movielist = ConfigSelection(default = 'i', choices = [ ('o', _("Off")), ('p', _("Progress")), ('s', _("Small progress")), ('i', _("Icons")), ]) config.usage.movielist_unseen = ConfigYesNo(default = False) config.usage.swap_snr_on_osd = ConfigYesNo(default = False) config.usage.frontled_color = ConfigSelection(default = "0", choices = [("0", _("Off")), ("1", _("Blue")), ("2", _("Red")), ("3", _("Blinking blue")), ("4", _("Blinking red"))]) config.usage.frontledrec_color = ConfigSelection(default = "3", choices = [("0", _("Off")), ("1", _("Blue")), ("2", _("Red")), ("3", _("Blinking blue")), ("4", _("Blinking red"))]) config.usage.frontledstdby_color = ConfigSelection(default = "0", choices = [("0", _("Off")), ("1", _("Blue")), ("2", _("Red")), ("3", _("Blinking blue")), ("4", _("Blinking red"))]) config.usage.frontledrecstdby_color = ConfigSelection(default = "3", choices = [("0", _("Off")), ("1", _("Blue")), ("2", _("Red")), ("3", _("Blinking blue")), ("4", _("Blinking red"))]) config.usage.lcd_scroll_delay = ConfigSelection(default = "10000", choices = [ ("10000", "10 " + _("seconds")), ("20000", "20 " + _("seconds")), ("30000", "30 " + _("seconds")), ("60000", "1 " + _("minute")), ("300000", "5 " + _("minutes")), ("noscrolling", _("off"))]) config.usage.lcd_scroll_speed = ConfigSelection(default = "300", choices = [ ("500", _("slow")), ("300", _("normal")), ("100", _("fast"))]) def SpinnerOnOffChanged(configElement): setSpinnerOnOff(int(configElement.value)) config.usage.show_spinner.addNotifier(SpinnerOnOffChanged) def EnableTtCachingChanged(configElement): setEnableTtCachingOnOff(int(configElement.value)) config.usage.enable_tt_caching.addNotifier(EnableTtCachingChanged) def TunerTypePriorityOrderChanged(configElement): setTunerTypePriorityOrder(int(configElement.value)) config.usage.alternatives_priority.addNotifier(TunerTypePriorityOrderChanged, immediate_feedback=False) def PreferredTunerChanged(configElement): setPreferredTuner(int(configElement.value)) config.usage.frontend_priority.addNotifier(PreferredTunerChanged) config.usage.show_picon_in_display = ConfigYesNo(default = True) config.usage.hide_zap_errors = ConfigYesNo(default = False) config.usage.show_cryptoinfo = ConfigYesNo(default = True) config.usage.show_eit_nownext = ConfigYesNo(default = True) config.usage.show_vcr_scart = ConfigYesNo(default = False) config.usage.show_update_disclaimer = ConfigYesNo(default = True) config.usage.pic_resolution = ConfigSelection(default=None, choices=[(None, _("Same resolution as skin")), ("(720, 576)","720x576"), ("(1280, 720)", "1280x720"), ("(1920, 1080)", "1920x1080")][:SystemInfo["HasFullHDSkinSupport"] and 4 or 3]) if SystemInfo["Fan"]: choicelist = [('off', _("Off")), ('on', _("On")), ('auto', _("Auto"))] if os.path.exists("/proc/stb/fp/fan_choices"): choicelist = [x for x in choicelist if x[0] in open("/proc/stb/fp/fan_choices", "r").read().strip().split(" ")] config.usage.fan = ConfigSelection(choicelist) def fanChanged(configElement): open(SystemInfo["Fan"], "w").write(configElement.value) config.usage.fan.addNotifier(fanChanged) if SystemInfo["FanPWM"]: def fanSpeedChanged(configElement): open(SystemInfo["FanPWM"], "w").write(hex(configElement.value)[2:]) config.usage.fanspeed = ConfigSlider(default=127, increment=8, limits=(0, 255)) config.usage.fanspeed.addNotifier(fanSpeedChanged) if SystemInfo["StandbyLED"]: def standbyLEDChanged(configElement): open(SystemInfo["StandbyLED"], "w").write(configElement.value and "on" or "off") config.usage.standbyLED = ConfigYesNo(default = True) config.usage.standbyLED.addNotifier(standbyLEDChanged) if SystemInfo["SuspendLED"]: def suspendLEDChanged(configElement): open(SystemInfo["SuspendLED"], "w").write(configElement.value and "on" or "off") config.usage.suspendLED = ConfigYesNo(default = True) config.usage.suspendLED.addNotifier(suspendLEDChanged) if SystemInfo["PowerOffDisplay"]: def powerOffDisplayChanged(configElement): open(SystemInfo["PowerOffDisplay"], "w").write(configElement.value and "1" or "0") config.usage.powerOffDisplay = ConfigYesNo(default = True) config.usage.powerOffDisplay.addNotifier(powerOffDisplayChanged) if SystemInfo["LCDshow_symbols"]: def lcdShowSymbols(configElement): open(SystemInfo["LCDshow_symbols"], "w").write(configElement.value and "1" or "0") config.usage.lcd_show_symbols = ConfigYesNo(default = True) config.usage.lcd_show_symbols.addNotifier(lcdShowSymbols) if SystemInfo["WakeOnLAN"]: def wakeOnLANChanged(configElement): if "fp" in SystemInfo["WakeOnLAN"]: open(SystemInfo["WakeOnLAN"], "w").write(configElement.value and "enable" or "disable") else: open(SystemInfo["WakeOnLAN"], "w").write(configElement.value and "on" or "off") config.usage.wakeOnLAN = ConfigYesNo(default = False) config.usage.wakeOnLAN.addNotifier(wakeOnLANChanged) if SystemInfo["LcdLiveTVMode"]: def setLcdLiveTVMode(configElement): open(SystemInfo["LcdLiveTVMode"], "w").write(configElement.value) config.usage.LcdLiveTVMode = ConfigSelection(default = "0", choices=[str(x) for x in range(0,9)]) config.usage.LcdLiveTVMode.addNotifier(setLcdLiveTVMode) if SystemInfo["LcdLiveDecoder"]: def setLcdLiveDecoder(configElement): open(SystemInfo["LcdLiveDecoder"], "w").write(configElement.value) config.usage.LcdLiveDecoder = ConfigSelection(default = "0", choices=[str(x) for x in range(0,4)]) config.usage.LcdLiveDecoder.addNotifier(setLcdLiveDecoder) config.usage.boolean_graphic = ConfigYesNo(default=True) config.epg = ConfigSubsection() config.epg.eit = ConfigYesNo(default = True) config.epg.mhw = ConfigYesNo(default = False) config.epg.freesat = ConfigYesNo(default = True) config.epg.viasat = ConfigYesNo(default = True) config.epg.netmed = ConfigYesNo(default = True) config.epg.virgin = ConfigYesNo(default = False) config.misc.showradiopic = ConfigYesNo(default = True) def EpgSettingsChanged(configElement): from enigma import eEPGCache mask = 0xffffffff if not config.epg.eit.value: mask &= ~(eEPGCache.NOWNEXT | eEPGCache.SCHEDULE | eEPGCache.SCHEDULE_OTHER) if not config.epg.mhw.value: mask &= ~eEPGCache.MHW if not config.epg.freesat.value: mask &= ~(eEPGCache.FREESAT_NOWNEXT | eEPGCache.FREESAT_SCHEDULE | eEPGCache.FREESAT_SCHEDULE_OTHER) if not config.epg.viasat.value: mask &= ~eEPGCache.VIASAT if not config.epg.netmed.value: mask &= ~(eEPGCache.NETMED_SCHEDULE | eEPGCache.NETMED_SCHEDULE_OTHER) if not config.epg.virgin.value: mask &= ~(eEPGCache.VIRGIN_NOWNEXT | eEPGCache.VIRGIN_SCHEDULE) eEPGCache.getInstance().setEpgSources(mask) config.epg.eit.addNotifier(EpgSettingsChanged) config.epg.mhw.addNotifier(EpgSettingsChanged) config.epg.freesat.addNotifier(EpgSettingsChanged) config.epg.viasat.addNotifier(EpgSettingsChanged) config.epg.netmed.addNotifier(EpgSettingsChanged) config.epg.virgin.addNotifier(EpgSettingsChanged) config.epg.histminutes = ConfigSelectionNumber(min = 0, max = 120, stepwidth = 15, default = 0, wraparound = True) def EpgHistorySecondsChanged(configElement): from enigma import eEPGCache eEPGCache.getInstance().setEpgHistorySeconds(config.epg.histminutes.getValue()*60) config.epg.histminutes.addNotifier(EpgHistorySecondsChanged) def setHDDStandby(configElement): for hdd in harddiskmanager.HDDList(): hdd[1].setIdleTime(int(configElement.value)) config.usage.hdd_standby.addNotifier(setHDDStandby, immediate_feedback=False) if SystemInfo["12V_Output"]: def set12VOutput(configElement): Misc_Options.getInstance().set_12V_output(configElement.value == "on" and 1 or 0) config.usage.output_12V.addNotifier(set12VOutput, immediate_feedback=False) config.usage.keymap = ConfigText(default = eEnv.resolve("${datadir}/enigma2/keymap.xml")) config.usage.keytrans = ConfigText(default = eEnv.resolve("${datadir}/enigma2/keytranslation.xml")) config.usage.alternative_imagefeed = ConfigText(default="", fixed_size=False) config.seek = ConfigSubsection() config.seek.selfdefined_13 = ConfigNumber(default=15) config.seek.selfdefined_46 = ConfigNumber(default=60) config.seek.selfdefined_79 = ConfigNumber(default=300) config.seek.speeds_forward = ConfigSet(default=[2, 4, 8, 16, 32, 64, 128], choices=[2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128]) config.seek.speeds_backward = ConfigSet(default=[2, 4, 8, 16, 32, 64, 128], choices=[1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128]) config.seek.speeds_slowmotion = ConfigSet(default=[2, 4, 8], choices=[2, 4, 6, 8, 12, 16, 25]) config.seek.enter_forward = ConfigSelection(default = "2", choices = ["2", "4", "6", "8", "12", "16", "24", "32", "48", "64", "96", "128"]) config.seek.enter_backward = ConfigSelection(default = "1", choices = ["1", "2", "4", "6", "8", "12", "16", "24", "32", "48", "64", "96", "128"]) config.seek.on_pause = ConfigSelection(default = "play", choices = [ ("play", _("Play")), ("step", _("Single step (GOP)")), ("last", _("Last speed")) ]) config.usage.timerlist_finished_timer_position = ConfigSelection(default = "end", choices = [("beginning", _("At beginning")), ("end", _("At end"))]) def updateEnterForward(configElement): if not configElement.value: configElement.value = [2] updateChoices(config.seek.enter_forward, configElement.value) config.seek.speeds_forward.addNotifier(updateEnterForward, immediate_feedback = False) def updateEnterBackward(configElement): if not configElement.value: configElement.value = [2] updateChoices(config.seek.enter_backward, configElement.value) config.seek.speeds_backward.addNotifier(updateEnterBackward, immediate_feedback = False) def updateEraseSpeed(el): eBackgroundFileEraser.getInstance().setEraseSpeed(int(el.value)) def updateEraseFlags(el): eBackgroundFileEraser.getInstance().setEraseFlags(int(el.value)) config.misc.erase_speed = ConfigSelection(default="20", choices = [ ("10", _("10 MB/s")), ("20", _("20 MB/s")), ("50", _("50 MB/s")), ("100", _("100 MB/s"))]) config.misc.erase_speed.addNotifier(updateEraseSpeed, immediate_feedback = False) config.misc.erase_flags = ConfigSelection(default="1", choices = [ ("0", _("Disable")), ("1", _("Internal hdd only")), ("3", _("Everywhere"))]) config.misc.erase_flags.addNotifier(updateEraseFlags, immediate_feedback = False) if SystemInfo["ZapMode"]: def setZapmode(el): open(SystemInfo["ZapMode"], "w").write(el.value) config.misc.zapmode = ConfigSelection(default = "mute", choices = [ ("mute", _("Black screen")), ("hold", _("Hold screen")), ("mutetilllock", _("Black screen till locked")), ("holdtilllock", _("Hold till locked"))]) config.misc.zapmode.addNotifier(setZapmode, immediate_feedback = False) if SystemInfo["VFD_scroll_repeats"]: def scroll_repeats(el): open(SystemInfo["VFD_scroll_repeats"], "w").write(el.value) choicelist = [] for i in range(1, 11, 1): choicelist.append((str(i))) config.usage.vfd_scroll_repeats = ConfigSelection(default = "3", choices = choicelist) config.usage.vfd_scroll_repeats.addNotifier(scroll_repeats, immediate_feedback = False) if SystemInfo["VFD_scroll_delay"]: def scroll_delay(el): open(SystemInfo["VFD_scroll_delay"], "w").write(el.value) choicelist = [] for i in range(0, 1001, 50): choicelist.append((str(i))) config.usage.vfd_scroll_delay = ConfigSelection(default = "150", choices = choicelist) config.usage.vfd_scroll_delay.addNotifier(scroll_delay, immediate_feedback = False) if SystemInfo["VFD_initial_scroll_delay"]: def initial_scroll_delay(el): open(SystemInfo["VFD_initial_scroll_delay"], "w").write(el.value) choicelist = [] for i in range(0, 20001, 500): choicelist.append((str(i))) config.usage.vfd_initial_scroll_delay = ConfigSelection(default = "1000", choices = choicelist) config.usage.vfd_initial_scroll_delay.addNotifier(initial_scroll_delay, immediate_feedback = False) if SystemInfo["VFD_final_scroll_delay"]: def final_scroll_delay(el): open(SystemInfo["VFD_final_scroll_delay"], "w").write(el.value) choicelist = [] for i in range(0, 20001, 500): choicelist.append((str(i))) config.usage.vfd_final_scroll_delay = ConfigSelection(default = "1000", choices = choicelist) config.usage.vfd_final_scroll_delay.addNotifier(final_scroll_delay, immediate_feedback = False) if SystemInfo["HasBypassEdidChecking"]: def setHasBypassEdidChecking(configElement): open(SystemInfo["HasBypassEdidChecking"], "w").write(configElement.value) config.av.bypassEdidChecking = ConfigSelection(default = "00000000", choices = [ ("00000001", _("yes")), ("00000000", _("no"))] ) config.av.bypassEdidChecking.addNotifier(setHasBypassEdidChecking) if SystemInfo["HasColorspace"]: def setHaveColorspace(configElement): open(SystemInfo["HasColorspace"], "w").write(configElement.value) if SystemInfo["HasColorspaceSimple"]: config.av.hdmicolorspace = ConfigSelection(default = "Edid(Auto)", choices={"Edid(Auto)": _("Auto"), "Hdmi_Rgb": _("RGB"), "444": _("YCbCr444"), "422": _("YCbCr422"), "420": _("YCbCr420")}) else: if getBoxType() in ("dm900","dm920","vuzero4k"): config.av.hdmicolorspace = ConfigSelection(choices={ "Edid(Auto)": _("Auto"), "Hdmi_Rgb": _("RGB"), "Itu_R_BT_709": _("BT709"), "DVI_Full_Range_RGB": _("Full Range RGB"), "FCC": _("FCC 1953"), "Itu_R_BT_470_2_BG": _("BT470 BG"), "Smpte_170M": _("Smpte 170M"), "Smpte_240M": _("Smpte 240M"), "Itu_R_BT_2020_NCL": _("BT2020 NCL"), "Itu_R_BT_2020_CL": _("BT2020 CL"), "XvYCC_709": _("BT709 XvYCC"), "XvYCC_601": _("BT601 XvYCC")}, default = "Edid(Auto)") else: config.av.hdmicolorspace = ConfigSelection(default = "auto", choices={"auto": _("auto"), "rgb": _("rgb"), "420": _("420"), "422": _("422"), "444": _("444")}) config.av.hdmicolorspace.addNotifier(setHaveColorspace) if SystemInfo["HasColordepth"]: def setHaveColordepth(configElement): open(SystemInfo["HasColordepth"], "w").write(configElement.value) config.av.hdmicolordepth = ConfigSelection(default = "auto", choices={"auto": _("Auto"), "8bit": _("8bit"), "10bit": _("10bit"), "12bit": _("12bit")}) config.av.hdmicolordepth.addNotifier(setHaveColordepth) if SystemInfo["HasHDMIpreemphasis"]: def setHDMIpreemphasis(configElement): open(SystemInfo["HasHDMIpreemphasis"], "w").write(configElement.value) config.av.hdmipreemphasis = ConfigSelection(default = "off", choices = [ ("on", _("yes")), ("off", _("no"))] ) config.av.hdmipreemphasis.addNotifier(setHDMIpreemphasis) if SystemInfo["HasColorimetry"]: def setColorimetry(configElement): open(SystemInfo["HasColorimetry"], "w").write(configElement.value) config.av.hdmicolorimetry = ConfigSelection(default = "auto", choices = [("auto", _("Auto")), ("bt2020ncl", _("BT 2020 NCL")), ("bt2020cl", _("BT 2020 CL")), ("bt709", _("BT 709"))]) config.av.hdmicolorimetry.addNotifier(setColorimetry) if SystemInfo["HasHdrType"]: def setHdmiHdrType(configElement): open(SystemInfo["HasHdrType"], "w").write(configElement.value) config.av.hdmihdrtype = ConfigSelection(default = "auto", choices={"auto": _("Auto"), "none": _("SDR"), "hdr10": _("HDR10"), "hlg": _("HLG"), "dolby": _("Dolby")}) config.av.hdmihdrtype.addNotifier(setHdmiHdrType) if SystemInfo["HDRSupport"]: def setHlgSupport(configElement): open("/proc/stb/hdmi/hlg_support", "w").write(configElement.value) config.av.hlg_support = ConfigSelection(default = "auto(EDID)", choices = [ ("auto(EDID)", _("controlled by HDMI")), ("yes", _("force enabled")), ("no", _("force disabled")) ]) config.av.hlg_support.addNotifier(setHlgSupport) def setHdr10Support(configElement): open("/proc/stb/hdmi/hdr10_support", "w").write(configElement.value) config.av.hdr10_support = ConfigSelection(default = "auto(EDID)", choices = [ ("auto(EDID)", _("controlled by HDMI")), ("yes", _("force enabled")), ("no", _("force disabled")) ]) config.av.hdr10_support.addNotifier(setHdr10Support) def setDisable12Bit(configElement): open("/proc/stb/video/disable_12bit", "w").write(configElement.value) config.av.allow_12bit = ConfigSelection(default = "0", choices = [ ("0", _("yes")), ("1", _("no")) ]); config.av.allow_12bit.addNotifier(setDisable12Bit) def setDisable10Bit(configElement): open("/proc/stb/video/disable_10bit", "w").write(configElement.value) config.av.allow_10bit = ConfigSelection(default = "0", choices = [ ("0", _("yes")), ("1", _("no")) ]); config.av.allow_10bit.addNotifier(setDisable10Bit) config.subtitles = ConfigSubsection() config.subtitles.ttx_subtitle_colors = ConfigSelection(default = "1", choices = [ ("0", _("original")), ("1", _("white")), ("2", _("yellow")) ]) config.subtitles.ttx_subtitle_original_position = ConfigYesNo(default = False) config.subtitles.subtitle_position = ConfigSelection( choices = ["0", "10", "20", "30", "40", "50", "60", "70", "80", "90", "100", "150", "200", "250", "300", "350", "400", "450"], default = "50") config.subtitles.subtitle_alignment = ConfigSelection(choices = [("left", _("left")), ("center", _("center")), ("right", _("right"))], default = "center") config.subtitles.subtitle_rewrap = ConfigYesNo(default = False) config.subtitles.colourise_dialogs = ConfigYesNo(default = False) config.subtitles.subtitle_borderwidth = ConfigSelection(choices = ["1", "2", "3", "4", "5"], default = "3") config.subtitles.subtitle_fontsize = ConfigSelection(choices = ["%d" % x for x in range(16,101) if not x % 2], default = "40") config.subtitles.showbackground = ConfigYesNo(default = False) subtitle_delay_choicelist = [] for i in range(-900000, 1845000, 45000): if i == 0: subtitle_delay_choicelist.append(("0", _("No delay"))) else: subtitle_delay_choicelist.append((str(i), _("%2.1f sec") % (i / 90000.))) config.subtitles.subtitle_noPTSrecordingdelay = ConfigSelection(default = "315000", choices = subtitle_delay_choicelist) config.subtitles.dvb_subtitles_yellow = ConfigYesNo(default = False) config.subtitles.dvb_subtitles_original_position = ConfigSelection(default = "0", choices = [("0", _("Original")), ("1", _("Fixed")), ("2", _("Relative"))]) config.subtitles.dvb_subtitles_centered = ConfigYesNo(default = False) config.subtitles.subtitle_bad_timing_delay = ConfigSelection(default = "0", choices = subtitle_delay_choicelist) config.subtitles.dvb_subtitles_backtrans = ConfigSelection(default = "0", choices = [ ("0", _("No transparency")), ("25", "10%"), ("50", "20%"), ("75", "30%"), ("100", "40%"), ("125", "50%"), ("150", "60%"), ("175", "70%"), ("200", "80%"), ("225", "90%"), ("255", _("Full transparency"))]) config.subtitles.pango_subtitle_colors = ConfigSelection(default = "1", choices = [ ("0", _("alternative")), ("1", _("white")), ("2", _("yellow")) ]) config.subtitles.pango_subtitle_fontswitch = ConfigYesNo(default = True) config.subtitles.pango_subtitles_delay = ConfigSelection(default = "0", choices = subtitle_delay_choicelist) config.subtitles.pango_subtitles_fps = ConfigSelection(default = "1", choices = [ ("1", _("Original")), ("23976", _("23.976")), ("24000", _("24")), ("25000", _("25")), ("29970", _("29.97")), ("30000", _("30"))]) config.subtitles.pango_autoturnon = ConfigYesNo(default = True) config.autolanguage = ConfigSubsection() audio_language_choices=[ ("", _("None")), ("orj dos ory org esl qaa und mis mul ORY ORJ Audio_ORJ", _("Original")), ("ara", _("Arabic")), ("eus baq", _("Basque")), ("bul", _("Bulgarian")), ("hrv", _("Croatian")), ("chn sgp", _("Chinese - Simplified")), ("twn hkn",_("Chinese - Traditional")), ("ces cze", _("Czech")), ("dan", _("Danish")), ("dut ndl nld", _("Dutch")), ("eng qaa", _("English")), ("est", _("Estonian")), ("fin", _("Finnish")), ("fra fre", _("French")), ("deu ger", _("German")), ("ell gre", _("Greek")), ("heb", _("Hebrew")), ("hun", _("Hungarian")), ("ind", _("Indonesian")), ("ita", _("Italian")), ("lav", _("Latvian")), ("lit", _("Lithuanian")), ("ltz", _("Luxembourgish")), ("nor", _("Norwegian")), ("fas per fa pes", _("Persian")), ("pol", _("Polish")), ("por dub Dub DUB ud1", _("Portuguese")), ("ron rum", _("Romanian")), ("rus", _("Russian")), ("srp", _("Serbian")), ("slk slo", _("Slovak")), ("slv", _("Slovenian")), ("spa", _("Spanish")), ("swe", _("Swedish")), ("tha", _("Thai")), ("tur Audio_TUR", _("Turkish")), ("ukr Ukr", _("Ukrainian"))] epg_language_choices = audio_language_choices[:1] + audio_language_choices [2:] def setEpgLanguage(configElement): eServiceEvent.setEPGLanguage(configElement.value) def setEpgLanguageAlternative(configElement): eServiceEvent.setEPGLanguageAlternative(configElement.value) def epglanguage(configElement): config.autolanguage.audio_epglanguage.setChoices([x for x in epg_language_choices if x[0] and x[0] != config.autolanguage.audio_epglanguage_alternative.value or not x[0] and not config.autolanguage.audio_epglanguage_alternative.value]) config.autolanguage.audio_epglanguage_alternative.setChoices([x for x in epg_language_choices if x[0] and x[0] != config.autolanguage.audio_epglanguage.value or not x[0]]) config.autolanguage.audio_epglanguage = ConfigSelection(epg_language_choices, default="") config.autolanguage.audio_epglanguage_alternative = ConfigSelection(epg_language_choices, default="") config.autolanguage.audio_epglanguage.addNotifier(setEpgLanguage) config.autolanguage.audio_epglanguage.addNotifier(epglanguage, initial_call=False) config.autolanguage.audio_epglanguage_alternative.addNotifier(setEpgLanguageAlternative) config.autolanguage.audio_epglanguage_alternative.addNotifier(epglanguage) def getselectedlanguages(range): return [eval("config.autolanguage.audio_autoselect%x.value" % x) for x in range] def autolanguage(configElement): config.autolanguage.audio_autoselect1.setChoices([x for x in audio_language_choices if x[0] and x[0] not in getselectedlanguages((2,3,4)) or not x[0] and not config.autolanguage.audio_autoselect2.value]) config.autolanguage.audio_autoselect2.setChoices([x for x in audio_language_choices if x[0] and x[0] not in getselectedlanguages((1,3,4)) or not x[0] and not config.autolanguage.audio_autoselect3.value]) config.autolanguage.audio_autoselect3.setChoices([x for x in audio_language_choices if x[0] and x[0] not in getselectedlanguages((1,2,4)) or not x[0] and not config.autolanguage.audio_autoselect4.value]) config.autolanguage.audio_autoselect4.setChoices([x for x in audio_language_choices if x[0] and x[0] not in getselectedlanguages((1,2,3)) or not x[0]]) config.autolanguage.audio_autoselect1 = ConfigSelection(choices=audio_language_choices, default="") config.autolanguage.audio_autoselect2 = ConfigSelection(choices=audio_language_choices, default="") config.autolanguage.audio_autoselect3 = ConfigSelection(choices=audio_language_choices, default="") config.autolanguage.audio_autoselect4 = ConfigSelection(choices=audio_language_choices, default="") config.autolanguage.audio_autoselect1.addNotifier(autolanguage, initial_call=False) config.autolanguage.audio_autoselect2.addNotifier(autolanguage, initial_call=False) config.autolanguage.audio_autoselect3.addNotifier(autolanguage, initial_call=False) config.autolanguage.audio_autoselect4.addNotifier(autolanguage) config.autolanguage.audio_defaultac3 = ConfigYesNo(default = True) config.autolanguage.audio_defaultddp = ConfigYesNo(default = False) config.autolanguage.audio_usecache = ConfigYesNo(default = True) subtitle_language_choices = audio_language_choices[:1] + audio_language_choices [2:] def getselectedsublanguages(range): return [eval("config.autolanguage.subtitle_autoselect%x.value" % x) for x in range] def autolanguagesub(configElement): config.autolanguage.subtitle_autoselect1.setChoices([x for x in subtitle_language_choices if x[0] and x[0] not in getselectedsublanguages((2,3,4)) or not x[0] and not config.autolanguage.subtitle_autoselect2.value]) config.autolanguage.subtitle_autoselect2.setChoices([x for x in subtitle_language_choices if x[0] and x[0] not in getselectedsublanguages((1,3,4)) or not x[0] and not config.autolanguage.subtitle_autoselect3.value]) config.autolanguage.subtitle_autoselect3.setChoices([x for x in subtitle_language_choices if x[0] and x[0] not in getselectedsublanguages((1,2,4)) or not x[0] and not config.autolanguage.subtitle_autoselect4.value]) config.autolanguage.subtitle_autoselect4.setChoices([x for x in subtitle_language_choices if x[0] and x[0] not in getselectedsublanguages((1,2,3)) or not x[0]]) choicelist = [('0', None)] for y in range(1, 15 if config.autolanguage.subtitle_autoselect4.value else (7 if config.autolanguage.subtitle_autoselect3.value else(4 if config.autolanguage.subtitle_autoselect2.value else (2 if config.autolanguage.subtitle_autoselect1.value else 0)))): choicelist.append((str(y), ", ".join([eval("config.autolanguage.subtitle_autoselect%x.getText()" % x) for x in (y & 1, y & 2, y & 4 and 3, y & 8 and 4) if x]))) if config.autolanguage.subtitle_autoselect3.value: choicelist.append((str(y+1), "All")) config.autolanguage.equal_languages.setChoices(choicelist, default="0") config.autolanguage.equal_languages = ConfigSelection(default = "0", choices = []) config.autolanguage.subtitle_autoselect1 = ConfigSelection(choices=subtitle_language_choices, default="") config.autolanguage.subtitle_autoselect2 = ConfigSelection(choices=subtitle_language_choices, default="") config.autolanguage.subtitle_autoselect3 = ConfigSelection(choices=subtitle_language_choices, default="") config.autolanguage.subtitle_autoselect4 = ConfigSelection(choices=subtitle_language_choices, default="") config.autolanguage.subtitle_autoselect1.addNotifier(autolanguagesub, initial_call=False) config.autolanguage.subtitle_autoselect2.addNotifier(autolanguagesub, initial_call=False) config.autolanguage.subtitle_autoselect3.addNotifier(autolanguagesub, initial_call=False) config.autolanguage.subtitle_autoselect4.addNotifier(autolanguagesub) config.autolanguage.subtitle_hearingimpaired = ConfigYesNo(default = False) config.autolanguage.subtitle_defaultimpaired = ConfigYesNo(default = False) config.autolanguage.subtitle_defaultdvb = ConfigYesNo(default = False) config.autolanguage.subtitle_usecache = ConfigYesNo(default = True) config.streaming = ConfigSubsection() config.streaming.stream_ecm = ConfigYesNo(default = False) config.streaming.descramble = ConfigYesNo(default = True) config.streaming.descramble_client = ConfigYesNo(default = False) config.streaming.stream_eit = ConfigYesNo(default = True) config.streaming.stream_ait = ConfigYesNo(default = True) config.streaming.authentication = ConfigYesNo(default = False) config.mediaplayer = ConfigSubsection() config.mediaplayer.useAlternateUserAgent = ConfigYesNo(default=False) config.mediaplayer.alternateUserAgent = ConfigText(default="") config.misc.softcam_setup = ConfigSubsection() config.misc.softcam_setup.extension_menu = ConfigYesNo(default = True)
def InitLcd(): if getBoxType() in ('gb800se', 'gb800solo','gb800seplus', 'tmsingle', 'vusolo', 'et4x00', 'et5x00', 'et6x00', 'mixosf7', 'mixoslumi'): detected = False else: detected = eDBoxLCD.getInstance().detected() SystemInfo["Display"] = detected config.lcd = ConfigSubsection(); if fileExists("/proc/stb/lcd/mode"): f = open("/proc/stb/lcd/mode", "r") can_lcdmodechecking = f.read().strip().split(" ") f.close() else: can_lcdmodechecking = False SystemInfo["LCDMiniTV"] = can_lcdmodechecking if detected: if can_lcdmodechecking: def setLCDModeMinitTV(configElement): try: f = open("/proc/stb/lcd/mode", "w") f.write(configElement.value) f.close() except: pass def setMiniTVFPS(configElement): try: f = open("/proc/stb/lcd/fps", "w") f.write("%d \n" % configElement.value) f.close() except: pass def setLCDModePiP(configElement): pass config.lcd.modepip = ConfigSelection(choices={ "0": _("off"), "5": _("PIP"), "7": _("PIP with OSD")}, default = "0") if config.misc.boxtype.value == 'gbquad' or config.misc.boxtype.value == 'gbquadplus': config.lcd.modepip.addNotifier(setLCDModePiP) else: config.lcd.modepip = ConfigNothing() config.lcd.modeminitv = ConfigSelection(choices={ "0": _("normal"), "1": _("MiniTV"), "2": _("OSD"), "3": _("MiniTV with OSD")}, default = "0") config.lcd.fpsminitv = ConfigSlider(default=30, limits=(0, 30)) config.lcd.modeminitv.addNotifier(setLCDModeMinitTV) config.lcd.fpsminitv.addNotifier(setMiniTVFPS) else: config.lcd.modeminitv = ConfigNothing() config.lcd.fpsminitv = ConfigNothing() config.lcd.scroll_speed = ConfigSelection(default = "300", choices = [ ("500", _("slow")), ("300", _("normal")), ("100", _("fast"))]) config.lcd.scroll_delay = ConfigSelection(default = "10000", choices = [ ("10000", "10 " + _("seconds")), ("20000", "20 " + _("seconds")), ("30000", "30 " + _("seconds")), ("60000", "1 " + _("minute")), ("300000", "5 " + _("minutes")), ("noscrolling", _("off"))]) def setLCDbright(configElement): ilcd.setBright(configElement.getValue()); def setLCDcontrast(configElement): ilcd.setContrast(configElement.getValue()); def setLCDinverted(configElement): ilcd.setInverted(configElement.getValue()); def setLCDflipped(configElement): ilcd.setFlipped(configElement.getValue()); def setLCDmode(configElement): ilcd.setMode(configElement.getValue()); def setLCDpower(configElement): ilcd.setPower(configElement.getValue()); def setLCDshowoutputresolution(configElement): ilcd.setShowoutputresolution(configElement.getValue()); def setLCDrepeat(configElement): ilcd.setRepeat(configElement.getValue()); def setLCDscrollspeed(configElement): ilcd.setScrollspeed(configElement.getValue()); if fileExists("/proc/stb/lcd/symbol_hdd"): f = open("/proc/stb/lcd/symbol_hdd", "w") f.write("0") f.close() if fileExists("/proc/stb/lcd/symbol_hddprogress"): f = open("/proc/stb/lcd/symbol_hddprogress", "w") f.write("0") f.close() def setLEDnormalstate(configElement): ilcd.setLEDNormalState(configElement.value); def setLEDdeepstandby(configElement): ilcd.setLEDDeepStandbyState(configElement.value); def setLEDblinkingtime(configElement): ilcd.setLEDBlinkingTime(configElement.value); standby_default = 0 ilcd = LCD() if not ilcd.isOled(): config.lcd.contrast = ConfigSlider(default=5, limits=(0, 20)) config.lcd.contrast.addNotifier(setLCDcontrast); else: config.lcd.contrast = ConfigNothing() standby_default = 1 if getBoxType() in ('mixosf5', 'mixosf5mini', 'gi9196m', 'gi9196lite'): config.lcd.standby = ConfigSlider(default=standby_default, limits=(0, 4)) config.lcd.bright = ConfigSlider(default=4, limits=(0, 4)) else: config.lcd.standby = ConfigSlider(default=standby_default, limits=(0, 10)) config.lcd.bright = ConfigSlider(default=5, limits=(0, 10)) config.lcd.standby.addNotifier(setLCDbright); config.lcd.standby.apply = lambda : setLCDbright(config.lcd.standby) config.lcd.bright.addNotifier(setLCDbright); config.lcd.bright.apply = lambda : setLCDbright(config.lcd.bright) config.lcd.bright.callNotifiersOnSaveAndCancel = True config.lcd.invert = ConfigYesNo(default=False) config.lcd.invert.addNotifier(setLCDinverted); config.lcd.flip = ConfigYesNo(default=False) config.lcd.flip.addNotifier(setLCDflipped); if getBoxType() in ('mixosf5', 'mixosf5mini', 'gi9196m', 'gi9196lite'): config.lcd.scrollspeed = ConfigSlider(default = 150, increment = 10, limits = (0, 500)) config.lcd.scrollspeed.addNotifier(setLCDscrollspeed); config.lcd.repeat = ConfigSelection([("0", _("None")), ("1", _("1X")), ("2", _("2X")), ("3", _("3X")), ("4", _("4X")), ("500", _("Continues"))], "3") config.lcd.repeat.addNotifier(setLCDrepeat); config.lcd.hdd = ConfigNothing() config.lcd.mode = ConfigNothing() elif fileExists("/proc/stb/lcd/scroll_delay") and not getBoxType() in ('ixussone', 'ixusszero'): config.lcd.hdd = ConfigSelection([("0", _("No")), ("1", _("Yes"))], "1") config.lcd.scrollspeed = ConfigSlider(default = 150, increment = 10, limits = (0, 500)) config.lcd.scrollspeed.addNotifier(setLCDscrollspeed); config.lcd.repeat = ConfigSelection([("0", _("None")), ("1", _("1X")), ("2", _("2X")), ("3", _("3X")), ("4", _("4X")), ("500", _("Continues"))], "3") config.lcd.repeat.addNotifier(setLCDrepeat); config.lcd.mode = ConfigSelection([("0", _("No")), ("1", _("Yes"))], "1") config.lcd.mode.addNotifier(setLCDmode); else: config.lcd.mode = ConfigNothing() config.lcd.repeat = ConfigNothing() config.lcd.scrollspeed = ConfigNothing() config.lcd.hdd = ConfigNothing() if fileExists("/proc/stb/power/vfd"): config.lcd.power = ConfigSelection([("0", _("No")), ("1", _("Yes"))], "1") config.lcd.power.addNotifier(setLCDpower); else: config.lcd.power = ConfigNothing() if fileExists("/proc/stb/lcd/show_outputresolution"): config.lcd.showoutputresolution = ConfigSelection([("0", _("No")), ("1", _("Yes"))], "1") config.lcd.showoutputresolution.addNotifier(setLCDshowoutputresolution); else: config.lcd.showoutputresolution = ConfigNothing() if getBoxType() == 'vuultimo': config.lcd.ledblinkingtime = ConfigSlider(default = 5, increment = 1, limits = (0,15)) config.lcd.ledblinkingtime.addNotifier(setLEDblinkingtime); config.lcd.ledbrightnessdeepstandby = ConfigSlider(default = 1, increment = 1, limits = (0,15)) config.lcd.ledbrightnessdeepstandby.addNotifier(setLEDnormalstate); config.lcd.ledbrightnessdeepstandby.addNotifier(setLEDdeepstandby); config.lcd.ledbrightnessdeepstandby.apply = lambda : setLEDdeepstandby(config.lcd.ledbrightnessdeepstandby) config.lcd.ledbrightnessstandby = ConfigSlider(default = 1, increment = 1, limits = (0,15)) config.lcd.ledbrightnessstandby.addNotifier(setLEDnormalstate); config.lcd.ledbrightnessstandby.apply = lambda : setLEDnormalstate(config.lcd.ledbrightnessstandby) config.lcd.ledbrightness = ConfigSlider(default = 3, increment = 1, limits = (0,15)) config.lcd.ledbrightness.addNotifier(setLEDnormalstate); config.lcd.ledbrightness.apply = lambda : setLEDnormalstate(config.lcd.ledbrightness) config.lcd.ledbrightness.callNotifiersOnSaveAndCancel = True else: def doNothing(): pass config.lcd.ledbrightness = ConfigNothing() config.lcd.ledbrightness.apply = lambda : doNothing() config.lcd.ledbrightnessstandby = ConfigNothing() config.lcd.ledbrightnessstandby.apply = lambda : doNothing() config.lcd.ledbrightnessdeepstandby = ConfigNothing() config.lcd.ledbrightnessdeepstandby.apply = lambda : doNothing() config.lcd.ledblinkingtime = ConfigNothing() else: def doNothing(): pass config.lcd.contrast = ConfigNothing() config.lcd.bright = ConfigNothing() config.lcd.standby = ConfigNothing() config.lcd.bright.apply = lambda : doNothing() config.lcd.standby.apply = lambda : doNothing() config.lcd.power = ConfigNothing() config.lcd.mode = ConfigNothing() config.lcd.repeat = ConfigNothing() config.lcd.scrollspeed = ConfigNothing() config.lcd.scroll_speed = ConfigSelection(choices = [("300", _("normal"))]) config.lcd.scroll_delay = ConfigSelection(choices = [("noscrolling", _("off"))]) config.lcd.showoutputresolution = ConfigNothing() config.lcd.ledbrightness = ConfigNothing() config.lcd.ledbrightness.apply = lambda : doNothing() config.lcd.ledbrightnessstandby = ConfigNothing() config.lcd.ledbrightnessstandby.apply = lambda : doNothing() config.lcd.ledbrightnessdeepstandby = ConfigNothing() config.lcd.ledbrightnessdeepstandby.apply = lambda : doNothing() config.lcd.ledblinkingtime = ConfigNothing() config.misc.standbyCounter.addNotifier(standbyCounterChanged, initial_call = False)
def InitUsageConfig(): config.usage = ConfigSubsection() config.usage.showdish = ConfigYesNo(default=True) config.misc.showrotorposition = ConfigSelection( default="no", choices=[("no", _("no")), ("yes", _("yes")), ("withtext", _("with text")), ("tunername", _("with tuner name"))]) config.usage.multibouquet = ConfigYesNo(default=True) config.usage.alternative_number_mode = ConfigYesNo(default=False) def alternativeNumberModeChange(configElement): eDVBDB.getInstance().setNumberingMode(configElement.value) refreshServiceList() config.usage.alternative_number_mode.addNotifier( alternativeNumberModeChange) config.usage.hide_number_markers = ConfigYesNo(default=True) config.usage.hide_number_markers.addNotifier(refreshServiceList) config.usage.servicetype_icon_mode = ConfigSelection( default="0", choices=[("0", _("None")), ("1", _("Left from servicename")), ("2", _("Right from servicename"))]) config.usage.servicetype_icon_mode.addNotifier(refreshServiceList) config.usage.crypto_icon_mode = ConfigSelection( default="0", choices=[("0", _("None")), ("1", _("Left from servicename")), ("2", _("Right from servicename"))]) config.usage.crypto_icon_mode.addNotifier(refreshServiceList) config.usage.record_indicator_mode = ConfigSelection( default="0", choices=[("0", _("None")), ("1", _("Left from servicename")), ("2", _("Right from servicename")), ("3", _("Red colored"))]) config.usage.record_indicator_mode.addNotifier(refreshServiceList) choicelist = [("-1", _("Disable"))] for i in range(0, 1300, 100): choicelist.append( (str(i), ngettext("%d pixel wide", "%d pixels wide", i) % i)) config.usage.servicelist_column = ConfigSelection(default="-1", choices=choicelist) config.usage.servicelist_column.addNotifier(refreshServiceList) config.usage.service_icon_enable = ConfigYesNo(default=False) config.usage.service_icon_enable.addNotifier(refreshServiceList) config.usage.servicelist_cursor_behavior = ConfigSelection( default="standard", choices=[("standard", _("Standard")), ("keep", _("Keep service")), ("reverseB", _("Reverse bouquet buttons")), ("keep reverseB", _("Keep service") + " + " + _("Reverse bouquet buttons"))]) config.usage.multiepg_ask_bouquet = ConfigYesNo(default=False) config.usage.quickzap_bouquet_change = ConfigYesNo(default=False) config.usage.e1like_radio_mode = ConfigYesNo(default=True) choicelist = [("0", _("No timeout"))] for i in range(1, 12): choicelist.append((str(i), ngettext("%d second", "%d seconds", i) % i)) config.usage.infobar_timeout = ConfigSelection(default="5", choices=choicelist) config.usage.show_infobar_on_zap = ConfigYesNo(default=True) config.usage.show_infobar_on_skip = ConfigYesNo(default=True) config.usage.show_infobar_on_event_change = ConfigYesNo(default=False) config.usage.show_second_infobar = ConfigSelection( default=None, choices=[(None, _("None"))] + choicelist + [("EPG", _("EPG"))]) config.usage.infobar_frontend_source = ConfigSelection( default="tuner", choices=[("settings", _("Settings")), ("tuner", _("Tuner"))]) config.usage.oldstyle_zap_controls = ConfigYesNo(default=False) config.usage.oldstyle_channel_select_controls = ConfigYesNo(default=False) config.usage.zap_with_ch_buttons = ConfigYesNo(default=False) config.usage.ok_is_channelselection = ConfigYesNo(default=False) config.usage.volume_instead_of_channelselection = ConfigYesNo( default=False) config.usage.channelselection_preview = ConfigYesNo(default=False) config.usage.show_spinner = ConfigYesNo(default=True) config.usage.enable_tt_caching = ConfigYesNo(default=True) choicelist = [] for i in (10, 30): choicelist.append((str(i), ngettext("%d second", "%d seconds", i) % i)) for i in (60, 120, 300, 600, 1200, 1800): m = i / 60 choicelist.append((str(i), ngettext("%d minute", "%d minutes", m) % m)) for i in (3600, 7200, 14400): h = i / 3600 choicelist.append((str(i), ngettext("%d hour", "%d hours", h) % h)) config.usage.hdd_standby = ConfigSelection( default="300", choices=[("0", _("No standby"))] + choicelist) config.usage.output_12V = ConfigSelection(default="do not change", choices=[("do not change", _("Do not change")), ("off", _("Off")), ("on", _("On"))]) config.usage.pip_zero_button = ConfigSelection( default="standard", choices=[("standard", _("Standard")), ("swap", _("Swap PiP and main picture")), ("swapstop", _("Move PiP to main picture")), ("stop", _("Stop PiP"))]) config.usage.pip_hideOnExit = ConfigSelection(default="without popup", choices=[("no", _("No")), ("popup", _("With popup")), ("without popup", _("Without popup")) ]) choicelist = [("-1", _("Disabled")), ("0", _("No timeout"))] for i in [60, 300, 600, 900, 1800, 2700, 3600]: m = i / 60 choicelist.append((str(i), ngettext("%d minute", "%d minutes", m) % m)) config.usage.pip_last_service_timeout = ConfigSelection(default="0", choices=choicelist) config.usage.default_path = ConfigText(default=resolveFilename(SCOPE_HDD)) config.usage.timer_path = ConfigText(default="<default>") config.usage.instantrec_path = ConfigText(default="<default>") config.usage.timeshift_path = ConfigText(default="/media/hdd/") config.usage.allowed_timeshift_paths = ConfigLocations( default=["/media/hdd/"]) config.usage.movielist_trashcan = ConfigYesNo(default=True) config.usage.movielist_trashcan_days = ConfigNumber(default=8) config.usage.movielist_trashcan_reserve = ConfigNumber(default=40) config.usage.on_movie_start = ConfigSelection( default="resume", choices=[ ("ask yes", _("Ask user") + " " + _("default") + " " + _("yes")), ("ask no", _("Ask user") + " " + _("default") + " " + _("no")), ("resume", _("Resume from last position")), ("beginning", _("Start from the beginning")) ]) config.usage.on_movie_stop = ConfigSelection( default="movielist", choices=[("ask", _("Ask user")), ("movielist", _("Return to movie list")), ("quit", _("Return to previous service"))]) config.usage.on_movie_eof = ConfigSelection( default="movielist", choices=[("ask", _("Ask user")), ("movielist", _("Return to movie list")), ("quit", _("Return to previous service")), ("pause", _("Pause movie at end")), ("playlist", _("Play next (return to movie list)")), ("playlistquit", _("Play next (return to previous service)")), ("loop", _("Continues play (loop)")), ("repeatcurrent", _("Repeat"))]) config.usage.next_movie_msg = ConfigYesNo(default=True) config.usage.last_movie_played = ConfigText() config.usage.leave_movieplayer_onExit = ConfigSelection( default="popup", choices=[("no", _("No")), ("popup", _("With popup")), ("without popup", _("Without popup")), ("movielist", _("Return to movie list"))]) config.usage.setup_level = ConfigSelection(default="expert", choices=[ ("simple", _("Simple")), ("intermediate", _("Intermediate")), ("expert", _("Expert")) ]) config.usage.startup_to_standby = ConfigSelection( default="no", choices=[("no", _("No")), ("yes", _("Yes")), ("except", _("No, except Wakeup timer"))]) config.usage.wakeup_menu = ConfigNothing() config.usage.wakeup_enabled = ConfigYesNo(default=False) config.usage.wakeup_day = ConfigSubDict() config.usage.wakeup_time = ConfigSubDict() for i in range(7): config.usage.wakeup_day[i] = ConfigEnableDisable(default=False) config.usage.wakeup_time[i] = ConfigClock(default=((6 * 60 + 0) * 60)) config.usage.on_long_powerpress = ConfigSelection( default="show_menu", choices=[("show_menu", _("Show shutdown menu")), ("shutdown", _("Immediate shutdown")), ("standby", _("Standby"))]) config.usage.on_short_powerpress = ConfigSelection( default="standby", choices=[("show_menu", _("Show shutdown menu")), ("shutdown", _("Immediate shutdown")), ("standby", _("Standby"))]) choicelist = [("0", _("Do nothing"))] for i in range(3600, 21601, 3600): h = abs(i / 3600) h = ngettext("%d hour", "%d hours", h) % h choicelist.append((str(i), _("Standby in ") + h)) config.usage.inactivity_timer = ConfigSelection(default="0", choices=choicelist) config.usage.inactivity_timer_blocktime = ConfigYesNo(default=True) config.usage.inactivity_timer_blocktime_begin = ConfigClock( default=time.mktime((0, 0, 0, 18, 0, 0, 0, 0, 0))) config.usage.inactivity_timer_blocktime_end = ConfigClock( default=time.mktime((0, 0, 0, 23, 0, 0, 0, 0, 0))) config.usage.inactivity_timer_blocktime_extra = ConfigYesNo(default=False) config.usage.inactivity_timer_blocktime_extra_begin = ConfigClock( default=time.mktime((0, 0, 0, 6, 0, 0, 0, 0, 0))) config.usage.inactivity_timer_blocktime_extra_end = ConfigClock( default=time.mktime((0, 0, 0, 9, 0, 0, 0, 0, 0))) choicelist = [("0", _("Disabled")), ("event_standby", _("Standby after current event"))] for i in range(900, 7201, 900): m = abs(i / 60) m = ngettext("%d minute", "%d minutes", m) % m choicelist.append((str(i), _("Standby in ") + m)) config.usage.sleep_timer = ConfigSelection(default="0", choices=choicelist) choicelist = [("0", _("Disabled"))] for i in [60, 300, 600] + range(900, 7201, 900): m = abs(i / 60) m = ngettext("%d minute", "%d minutes", m) % m choicelist.append((str(i), _("after ") + m)) config.usage.standby_to_shutdown_timer = ConfigSelection( default="0", choices=choicelist) config.usage.standby_to_shutdown_timer_blocktime = ConfigYesNo( default=True) config.usage.standby_to_shutdown_timer_blocktime_begin = ConfigClock( default=time.mktime((0, 0, 0, 6, 0, 0, 0, 0, 0))) config.usage.standby_to_shutdown_timer_blocktime_end = ConfigClock( default=time.mktime((0, 0, 0, 23, 0, 0, 0, 0, 0))) choicelist = [("0", _("Disabled"))] for m in (1, 5, 10, 15, 30, 60): choicelist.append( (str(m * 60), ngettext("%d minute", "%d minutes", m) % m)) config.usage.screen_saver = ConfigSelection(default="300", choices=choicelist) config.usage.check_timeshift = ConfigYesNo(default=True) choicelist = [("0", _("Disabled"))] for i in (2, 3, 4, 5, 10, 20, 30): choicelist.append((str(i), ngettext("%d second", "%d seconds", i) % i)) for i in (60, 120, 300): m = i / 60 choicelist.append((str(i), ngettext("%d minute", "%d minutes", m) % m)) config.usage.timeshift_start_delay = ConfigSelection(default="0", choices=choicelist) config.usage.alternatives_priority = ConfigSelection( default="0", choices=[("0", "DVB-S/-C/-T"), ("1", "DVB-S/-T/-C"), ("2", "DVB-C/-S/-T"), ("3", "DVB-C/-T/-S"), ("4", "DVB-T/-C/-S"), ("5", "DVB-T/-S/-C"), ("127", _("No priority"))]) config.usage.remote_fallback_enabled = ConfigYesNo(default=False) config.usage.remote_fallback = ConfigText(default="", fixed_size=False) config.usage.show_timer_conflict_warning = ConfigYesNo(default=True) dvbs_nims = [("-2", _("Disabled"))] dvbt_nims = [("-2", _("Disabled"))] dvbc_nims = [("-2", _("Disabled"))] nims = [("-1", _("auto"))] for x in nimmanager.nim_slots: if x.isCompatible("DVB-S"): dvbs_nims.append((str(x.slot), x.getSlotName())) elif x.isCompatible("DVB-T"): dvbt_nims.append((str(x.slot), x.getSlotName())) elif x.isCompatible("DVB-C"): dvbc_nims.append((str(x.slot), x.getSlotName())) nims.append((str(x.slot), x.getSlotName())) config.usage.frontend_priority = ConfigSelection(default="-1", choices=list(nims)) nims.insert(0, ("-2", _("Disabled"))) config.usage.recording_frontend_priority = ConfigSelection(default="-2", choices=nims) config.usage.frontend_priority_dvbs = ConfigSelection( default="-2", choices=list(dvbs_nims)) dvbs_nims.insert(1, ("-1", _("auto"))) config.usage.recording_frontend_priority_dvbs = ConfigSelection( default="-2", choices=dvbs_nims) config.usage.frontend_priority_dvbt = ConfigSelection( default="-2", choices=list(dvbt_nims)) dvbt_nims.insert(1, ("-1", _("auto"))) config.usage.recording_frontend_priority_dvbt = ConfigSelection( default="-2", choices=dvbt_nims) config.usage.frontend_priority_dvbc = ConfigSelection( default="-2", choices=list(dvbc_nims)) dvbc_nims.insert(1, ("-1", _("auto"))) config.usage.recording_frontend_priority_dvbc = ConfigSelection( default="-2", choices=dvbc_nims) SystemInfo["DVB-S_priority_tuner_available"] = len(dvbs_nims) > 3 and ( len(dvbt_nims) > 2 or len(dvbc_nims) > 2) SystemInfo["DVB-T_priority_tuner_available"] = len(dvbt_nims) > 3 and ( len(dvbs_nims) > 2 or len(dvbc_nims) > 2) SystemInfo["DVB-C_priority_tuner_available"] = len(dvbc_nims) > 3 and ( len(dvbs_nims) > 2 or len(dvbt_nims) > 2) config.misc.disable_background_scan = ConfigYesNo(default=False) config.usage.show_event_progress_in_servicelist = ConfigSelection( default='barright', choices=[('barleft', _("Progress bar left")), ('barright', _("Progress bar right")), ('percleft', _("Percentage left")), ('percright', _("Percentage right")), ('no', _("No"))]) config.usage.show_channel_numbers_in_servicelist = ConfigYesNo( default=True) config.usage.show_event_progress_in_servicelist.addNotifier( refreshServiceList) config.usage.show_channel_numbers_in_servicelist.addNotifier( refreshServiceList) config.usage.blinking_display_clock_during_recording = ConfigYesNo( default=False) config.usage.show_message_when_recording_starts = ConfigYesNo(default=True) config.usage.load_length_of_movies_in_moviellist = ConfigYesNo( default=True) config.usage.show_icons_in_movielist = ConfigSelection( default='i', choices=[ ('o', _("Off")), ('p', _("Progress")), ('s', _("Small progress")), ('i', _("Icons")), ]) config.usage.movielist_unseen = ConfigYesNo(default=False) config.usage.swap_snr_on_osd = ConfigYesNo(default=False) def SpinnerOnOffChanged(configElement): setSpinnerOnOff(int(configElement.value)) config.usage.show_spinner.addNotifier(SpinnerOnOffChanged) def EnableTtCachingChanged(configElement): setEnableTtCachingOnOff(int(configElement.value)) config.usage.enable_tt_caching.addNotifier(EnableTtCachingChanged) def TunerTypePriorityOrderChanged(configElement): setTunerTypePriorityOrder(int(configElement.value)) config.usage.alternatives_priority.addNotifier( TunerTypePriorityOrderChanged, immediate_feedback=False) def PreferredTunerChanged(configElement): setPreferredTuner(int(configElement.value)) config.usage.frontend_priority.addNotifier(PreferredTunerChanged) config.usage.hide_zap_errors = ConfigYesNo(default=False) config.usage.hide_ci_messages = ConfigYesNo(default=True) config.usage.show_cryptoinfo = ConfigYesNo(default=True) config.usage.show_eit_nownext = ConfigYesNo(default=True) config.usage.show_vcr_scart = ConfigYesNo(default=False) config.usage.show_update_disclaimer = ConfigYesNo(default=True) config.usage.pic_resolution = ConfigSelection( default=None, choices=[(None, _("Same resolution as skin")), ("(720, 576)", "720x576"), ("(1280, 720)", "1280x720"), ("(1920, 1080)", "1920x1080")]) if SystemInfo["Fan"]: choicelist = [('off', _("Off")), ('on', _("On")), ('auto', _("Auto"))] if os.path.exists("/proc/stb/fp/fan_choices"): choicelist = [ x for x in choicelist if x[0] in open( "/proc/stb/fp/fan_choices", "r").read().strip().split(" ") ] config.usage.fan = ConfigSelection(choicelist) def fanChanged(configElement): open(SystemInfo["Fan"], "w").write(configElement.value) config.usage.fan.addNotifier(fanChanged) if SystemInfo["FanPWM"]: def fanSpeedChanged(configElement): open(SystemInfo["FanPWM"], "w").write(hex(configElement.value)[2:]) config.usage.fanspeed = ConfigSlider(default=127, increment=8, limits=(0, 255)) config.usage.fanspeed.addNotifier(fanSpeedChanged) if SystemInfo["StandbyLED"]: def standbyLEDChanged(configElement): open(SystemInfo["StandbyLED"], "w").write(configElement.value and "on" or "off") config.usage.standbyLED = ConfigYesNo(default=True) config.usage.standbyLED.addNotifier(standbyLEDChanged) if SystemInfo["WakeOnLAN"]: def wakeOnLANChanged(configElement): if "fp" in SystemInfo["WakeOnLAN"]: open(SystemInfo["WakeOnLAN"], "w").write(configElement.value and "enable" or "disable") else: open(SystemInfo["WakeOnLAN"], "w").write(configElement.value and "on" or "off") config.usage.wakeOnLAN = ConfigYesNo(default=False) config.usage.wakeOnLAN.addNotifier(wakeOnLANChanged) config.epg = ConfigSubsection() config.epg.eit = ConfigYesNo(default=True) config.epg.mhw = ConfigYesNo(default=False) config.epg.freesat = ConfigYesNo(default=True) config.epg.viasat = ConfigYesNo(default=True) config.epg.netmed = ConfigYesNo(default=True) config.epg.virgin = ConfigYesNo(default=False) config.misc.showradiopic = ConfigYesNo(default=True) def EpgSettingsChanged(configElement): from enigma import eEPGCache mask = 0xffffffff if not config.epg.eit.value: mask &= ~(eEPGCache.NOWNEXT | eEPGCache.SCHEDULE | eEPGCache.SCHEDULE_OTHER) if not config.epg.mhw.value: mask &= ~eEPGCache.MHW if not config.epg.freesat.value: mask &= ~(eEPGCache.FREESAT_NOWNEXT | eEPGCache.FREESAT_SCHEDULE | eEPGCache.FREESAT_SCHEDULE_OTHER) if not config.epg.viasat.value: mask &= ~eEPGCache.VIASAT if not config.epg.netmed.value: mask &= ~(eEPGCache.NETMED_SCHEDULE | eEPGCache.NETMED_SCHEDULE_OTHER) if not config.epg.virgin.value: mask &= ~(eEPGCache.VIRGIN_NOWNEXT | eEPGCache.VIRGIN_SCHEDULE) eEPGCache.getInstance().setEpgSources(mask) config.epg.eit.addNotifier(EpgSettingsChanged) config.epg.mhw.addNotifier(EpgSettingsChanged) config.epg.freesat.addNotifier(EpgSettingsChanged) config.epg.viasat.addNotifier(EpgSettingsChanged) config.epg.netmed.addNotifier(EpgSettingsChanged) config.epg.virgin.addNotifier(EpgSettingsChanged) config.epg.histminutes = ConfigSelectionNumber(min=0, max=120, stepwidth=15, default=0, wraparound=True) def EpgHistorySecondsChanged(configElement): from enigma import eEPGCache eEPGCache.getInstance().setEpgHistorySeconds( config.epg.histminutes.getValue() * 60) config.epg.histminutes.addNotifier(EpgHistorySecondsChanged) def setHDDStandby(configElement): for hdd in harddiskmanager.HDDList(): hdd[1].setIdleTime(int(configElement.value)) config.usage.hdd_standby.addNotifier(setHDDStandby, immediate_feedback=False) if SystemInfo["12V_Output"]: def set12VOutput(configElement): Misc_Options.getInstance().set_12V_output( configElement.value == "on" and 1 or 0) config.usage.output_12V.addNotifier(set12VOutput, immediate_feedback=False) config.usage.keymap = ConfigText( default=eEnv.resolve("${datadir}/enigma2/keymap.xml")) config.usage.keytrans = ConfigText( default=eEnv.resolve("${datadir}/enigma2/keytranslation.xml")) config.seek = ConfigSubsection() config.seek.selfdefined_13 = ConfigNumber(default=15) config.seek.selfdefined_46 = ConfigNumber(default=60) config.seek.selfdefined_79 = ConfigNumber(default=300) config.seek.speeds_forward = ConfigSet( default=[2, 4, 8, 16, 32, 64, 128], choices=[2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128]) config.seek.speeds_backward = ConfigSet( default=[2, 4, 8, 16, 32, 64, 128], choices=[1, 2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128]) config.seek.speeds_slowmotion = ConfigSet(default=[2, 4, 8], choices=[2, 4, 6, 8, 12, 16, 25]) config.seek.enter_forward = ConfigSelection(default="2", choices=[ "2", "4", "6", "8", "12", "16", "24", "32", "48", "64", "96", "128" ]) config.seek.enter_backward = ConfigSelection(default="1", choices=[ "1", "2", "4", "6", "8", "12", "16", "24", "32", "48", "64", "96", "128" ]) config.seek.on_pause = ConfigSelection(default="play", choices=[("play", _("Play")), ("step", _("Single step (GOP)")), ("last", _("Last speed"))]) config.usage.timerlist_finished_timer_position = ConfigSelection( default="end", choices=[("beginning", _("At beginning")), ("end", _("At end"))]) def updateEnterForward(configElement): if not configElement.value: configElement.value = [2] updateChoices(config.seek.enter_forward, configElement.value) config.seek.speeds_forward.addNotifier(updateEnterForward, immediate_feedback=False) def updateEnterBackward(configElement): if not configElement.value: configElement.value = [2] updateChoices(config.seek.enter_backward, configElement.value) config.seek.speeds_backward.addNotifier(updateEnterBackward, immediate_feedback=False) def updateEraseSpeed(el): eBackgroundFileEraser.getInstance().setEraseSpeed(int(el.value)) def updateEraseFlags(el): eBackgroundFileEraser.getInstance().setEraseFlags(int(el.value)) config.misc.erase_speed = ConfigSelection(default="20", choices=[("10", "10 MB/s"), ("20", "20 MB/s"), ("50", "50 MB/s"), ("100", "100 MB/s")]) config.misc.erase_speed.addNotifier(updateEraseSpeed, immediate_feedback=False) config.misc.erase_flags = ConfigSelection(default="1", choices=[ ("0", _("Disable")), ("1", _("Internal hdd only")), ("3", _("Everywhere")) ]) config.misc.erase_flags.addNotifier(updateEraseFlags, immediate_feedback=False) if SystemInfo["ZapMode"]: def setZapmode(el): open(SystemInfo["ZapMode"], "w").write(el.value) config.misc.zapmode = ConfigSelection( default="mute", choices=[("mute", _("Black screen")), ("hold", _("Hold screen")), ("mutetilllock", _("Black screen till locked")), ("holdtilllock", _("Hold till locked"))]) config.misc.zapmode.addNotifier(setZapmode, immediate_feedback=False) if SystemInfo["VFD_scroll_repeats"]: def scroll_repeats(el): open(SystemInfo["VFD_scroll_repeats"], "w").write(el.value) choicelist = [] for i in range(1, 11, 1): choicelist.append((str(i))) config.usage.vfd_scroll_repeats = ConfigSelection(default="3", choices=choicelist) config.usage.vfd_scroll_repeats.addNotifier(scroll_repeats, immediate_feedback=False) if SystemInfo["VFD_scroll_delay"]: def scroll_delay(el): open(SystemInfo["VFD_scroll_delay"], "w").write(el.value) choicelist = [] for i in range(0, 1001, 50): choicelist.append((str(i))) config.usage.vfd_scroll_delay = ConfigSelection(default="150", choices=choicelist) config.usage.vfd_scroll_delay.addNotifier(scroll_delay, immediate_feedback=False) if SystemInfo["VFD_initial_scroll_delay"]: def initial_scroll_delay(el): open(SystemInfo["VFD_initial_scroll_delay"], "w").write(el.value) choicelist = [] for i in range(0, 20001, 500): choicelist.append((str(i))) config.usage.vfd_initial_scroll_delay = ConfigSelection( default="1000", choices=choicelist) config.usage.vfd_initial_scroll_delay.addNotifier( initial_scroll_delay, immediate_feedback=False) if SystemInfo["VFD_final_scroll_delay"]: def final_scroll_delay(el): open(SystemInfo["VFD_final_scroll_delay"], "w").write(el.value) choicelist = [] for i in range(0, 20001, 500): choicelist.append((str(i))) config.usage.vfd_final_scroll_delay = ConfigSelection( default="1000", choices=choicelist) config.usage.vfd_final_scroll_delay.addNotifier( final_scroll_delay, immediate_feedback=False) config.subtitles = ConfigSubsection() config.subtitles.ttx_subtitle_colors = ConfigSelection( default="1", choices=[("0", _("original")), ("1", _("white")), ("2", _("yellow"))]) config.subtitles.ttx_subtitle_original_position = ConfigYesNo( default=False) config.subtitles.subtitle_position = ConfigSelection(choices=[ "0", "10", "20", "30", "40", "50", "60", "70", "80", "90", "100", "150", "200", "250", "300", "350", "400", "450" ], default="50") config.subtitles.subtitle_alignment = ConfigSelection(choices=[ ("left", _("left")), ("center", _("center")), ("right", _("right")) ], default="center") config.subtitles.subtitle_rewrap = ConfigYesNo(default=False) config.subtitles.colourise_dialogs = ConfigYesNo(default=False) config.subtitles.subtitle_borderwidth = ConfigSelection( choices=["1", "2", "3", "4", "5"], default="3") config.subtitles.subtitle_fontsize = ConfigSelection( choices=["%d" % x for x in range(16, 101) if not x % 2], default="40") config.subtitles.showbackground = ConfigYesNo(default=False) subtitle_delay_choicelist = [] for i in range(-900000, 1845000, 45000): if i == 0: subtitle_delay_choicelist.append(("0", _("No delay"))) else: subtitle_delay_choicelist.append( (str(i), "%2.1f sec" % (i / 90000.))) config.subtitles.subtitle_noPTSrecordingdelay = ConfigSelection( default="315000", choices=subtitle_delay_choicelist) config.subtitles.dvb_subtitles_yellow = ConfigYesNo(default=False) config.subtitles.dvb_subtitles_original_position = ConfigSelection( default="0", choices=[("0", _("Original")), ("1", _("Fixed")), ("2", _("Relative"))]) config.subtitles.dvb_subtitles_centered = ConfigYesNo(default=True) config.subtitles.subtitle_bad_timing_delay = ConfigSelection( default="0", choices=subtitle_delay_choicelist) config.subtitles.dvb_subtitles_backtrans = ConfigSelection( default="0", choices=[("0", _("No transparency")), ("25", "10%"), ("50", "20%"), ("75", "30%"), ("100", "40%"), ("125", "50%"), ("150", "60%"), ("175", "70%"), ("200", "80%"), ("225", "90%"), ("255", _("Full transparency"))]) config.subtitles.pango_subtitle_colors = ConfigSelection( default="1", choices=[("0", _("alternative")), ("1", _("white")), ("2", _("yellow"))]) config.subtitles.pango_subtitle_fontswitch = ConfigYesNo(default=True) config.subtitles.pango_subtitles_delay = ConfigSelection( default="0", choices=subtitle_delay_choicelist) config.subtitles.pango_subtitles_fps = ConfigSelection( default="1", choices=[("1", _("Original")), ("23976", _("23.976")), ("24000", _("24")), ("25000", _("25")), ("29970", _("29.97")), ("30000", _("30"))]) config.subtitles.pango_autoturnon = ConfigYesNo(default=True) config.autolanguage = ConfigSubsection() audio_language_choices = [ ("---", _("None")), ("orj dos ory org esl qaa und mis mul ORY ORJ Audio_ORJ", _("Original")), ("ara", _("Arabic")), ("eus baq", _("Basque")), ("bul", _("Bulgarian")), ("hrv", _("Croatian")), ("ces cze", _("Czech")), ("dan", _("Danish")), ("dut ndl", _("Dutch")), ("eng qaa", _("English")), ("est", _("Estonian")), ("fin", _("Finnish")), ("fra fre", _("French")), ("deu ger", _("German")), ("ell gre", _("Greek")), ("heb", _("Hebrew")), ("hun", _("Hungarian")), ("ita", _("Italian")), ("lav", _("Latvian")), ("lit", _("Lithuanian")), ("ltz", _("Luxembourgish")), ("nor", _("Norwegian")), ("pol", _("Polish")), ("por dub DUB", _("Portuguese")), ("fas per", _("Persian")), ("ron rum", _("Romanian")), ("rus", _("Russian")), ("srp", _("Serbian")), ("slk slo", _("Slovak")), ("slv", _("Slovenian")), ("spa", _("Spanish")), ("swe", _("Swedish")), ("tha", _("Thai")), ("tur Audio_TUR", _("Turkish")), ("ukr Ukr", _("Ukrainian")) ] def setEpgLanguage(configElement): eServiceEvent.setEPGLanguage(configElement.value) config.autolanguage.audio_epglanguage = ConfigSelection( audio_language_choices[:1] + audio_language_choices[2:], default="---") config.autolanguage.audio_epglanguage.addNotifier(setEpgLanguage) def setEpgLanguageAlternative(configElement): eServiceEvent.setEPGLanguageAlternative(configElement.value) config.autolanguage.audio_epglanguage_alternative = ConfigSelection( audio_language_choices[:1] + audio_language_choices[2:], default="---") config.autolanguage.audio_epglanguage_alternative.addNotifier( setEpgLanguageAlternative) config.autolanguage.audio_autoselect1 = ConfigSelection( choices=audio_language_choices, default="---") config.autolanguage.audio_autoselect2 = ConfigSelection( choices=audio_language_choices, default="---") config.autolanguage.audio_autoselect3 = ConfigSelection( choices=audio_language_choices, default="---") config.autolanguage.audio_autoselect4 = ConfigSelection( choices=audio_language_choices, default="---") config.autolanguage.audio_defaultac3 = ConfigYesNo(default=False) config.autolanguage.audio_defaultddp = ConfigYesNo(default=False) config.autolanguage.audio_usecache = ConfigYesNo(default=True) subtitle_language_choices = audio_language_choices[: 1] + audio_language_choices[ 2:] config.autolanguage.subtitle_autoselect1 = ConfigSelection( choices=subtitle_language_choices, default="---") config.autolanguage.subtitle_autoselect2 = ConfigSelection( choices=subtitle_language_choices, default="---") config.autolanguage.subtitle_autoselect3 = ConfigSelection( choices=subtitle_language_choices, default="---") config.autolanguage.subtitle_autoselect4 = ConfigSelection( choices=subtitle_language_choices, default="---") config.autolanguage.subtitle_hearingimpaired = ConfigYesNo(default=False) config.autolanguage.subtitle_defaultimpaired = ConfigYesNo(default=False) config.autolanguage.subtitle_defaultdvb = ConfigYesNo(default=False) config.autolanguage.subtitle_usecache = ConfigYesNo(default=True) config.autolanguage.equal_languages = ConfigSelection(default="15", choices=[ ("0", _("None")), ("1", "1"), ("2", "2"), ("3", "1,2"), ("4", "3"), ("5", "1,3"), ("6", "2,3"), ("7", "1,2,3"), ("8", "4"), ("9", "1,4"), ("10", "2,4"), ("11", "1,2,4"), ("12", "3,4"), ("13", "1,3,4"), ("14", "2,3,4"), ("15", _("All")) ]) config.streaming = ConfigSubsection() config.streaming.stream_ecm = ConfigYesNo(default=False) config.streaming.descramble = ConfigYesNo(default=True) config.streaming.descramble_client = ConfigYesNo(default=False) config.streaming.stream_eit = ConfigYesNo(default=True) config.streaming.stream_ait = ConfigYesNo(default=True) config.streaming.authentication = ConfigYesNo(default=False)
def InitRecordingConfig(): config.recording = ConfigSubsection() config.recording.asktozap = ConfigYesNo(default=True) config.recording.margin_before = ConfigSelectionNumber(min=0, max=120, stepwidth=1, default=3, wraparound=True) config.recording.margin_after = ConfigSelectionNumber(min=0, max=120, stepwidth=1, default=5, wraparound=True) config.recording.ascii_filenames = ConfigYesNo(default=False) config.recording.keep_timers = ConfigSelectionNumber(min=1, max=120, stepwidth=1, default=7, wraparound=True) config.recording.filename_composition = ConfigSelection( default='standard', choices=[('standard', _('standard')), ('veryveryshort', _('Very very short filenames - Warning')), ('veryshort', _('Very short filenames')), ('shortwithtime', _('Short filenames with time')), ('short', _('Short filenames')), ('long', _('Long filenames'))]) config.recording.always_ecm = ConfigYesNo(default=False) config.recording.never_decrypt = ConfigYesNo(default=False) config.recording.offline_decode_delay = ConfigSelectionNumber( min=1, max=10000, stepwidth=10, default=1000, wraparound=True) config.recording.ecm_data = ConfigSelection(choices=[ ('normal', _('normal')), ('descrambled+ecm', _('descramble and record ecm')), ('scrambled+ecm', _("don't descramble, record ecm")) ], default='normal') config.recording.default_timertype = ConfigSelection(choices=[ ('zap', _('zap')), ('record', _('record')), ('zap+record', _('zap and record')) ], default='record') if SystemInfo['DeepstandbySupport']: shutdownString = _('go to deep standby') else: shutdownString = _('shut down') config.recording.default_afterevent = ConfigSelection(choices=[ ('0', _('do nothing')), ('1', _('go to standby')), ('2', shutdownString), ('3', _('auto')) ], default='3') config.recording.include_ait = ConfigYesNo(default=False) config.recording.show_rec_symbol_for_rec_types = ConfigSelection( choices=[('any', _('any recordings')), ('real', _('real recordings')), ('real_streaming', _('real recordings or streaming')), ('real_pseudo', _('real or pseudo recordings'))], default='real_streaming') config.recording.warn_box_restart_rec_types = ConfigSelection( choices=[('any', _('any recordings')), ('real', _('real recordings')), ('real_streaming', _('real recordings or streaming')), ('real_pseudo', _('real or pseudo recordings'))], default='real_streaming') config.recording.ask_to_abort_pseudo_rec = ConfigSelection( choices=[('ask', _('ask user')), ('abort_no_msg', _('just abort, no message')), ('abort_msg', _('just abort, show message')), ('never_abort', _('never abort'))], default='abort_msg') config.recording.ask_to_abort_streaming = ConfigSelection( choices=[('ask', _('ask user')), ('abort_no_msg', _('just abort, no message')), ('abort_msg', _('just abort, show message')), ('never_abort', _('never abort'))], default='abort_msg') config.recording.ask_to_abort_pip = ConfigSelection(choices=[ ('ask', _('ask user')), ('abort_no_msg', _('just abort, no message')), ('abort_msg', _('just abort, show message')), ('never_abort', _('never abort')) ], default='abort_msg') config.recording.prepare_time = ConfigSelectionNumber(min=20, max=120, stepwidth=10, default=20, wraparound=True)
def InitLcd(): if getBoxType() in ('nanoc', 'nano', 'amikomini', 'dynaspark', 'amiko8900', 'sognorevolution', 'arguspingulux', 'arguspinguluxmini', 'arguspinguluxplus', 'sparkreloaded', 'sabsolo', 'sparklx', 'gis8120', 'gb800se', 'gb800solo', 'gb800seplus', 'gbultrase', 'gbipbox', 'tmsingle', 'tmnano2super', 'iqonios300hd', 'iqonios300hdv2', 'optimussos1plus', 'optimussos1', 'vusolo', 'et4x00', 'et5x00', 'et6x00', 'et7000', 'et7x00mini', 'mixosf7', 'mixoslumi', 'gbx1', 'gbx3', 'xpeedlxcs2', 'xpeedlxcc', 'zgemmai55'): detected = False else: detected = eDBoxLCD.getInstance().detected() SystemInfo["Display"] = detected config.lcd = ConfigSubsection() if fileExists("/proc/stb/lcd/mode"): f = open("/proc/stb/lcd/mode", "r") can_lcdmodechecking = f.read().strip().split(" ") f.close() else: can_lcdmodechecking = False SystemInfo["LCDMiniTV"] = can_lcdmodechecking if detected: if can_lcdmodechecking: def setLCDModeMinitTV(configElement): try: f = open("/proc/stb/lcd/mode", "w") f.write(configElement.value) f.close() except: pass def setMiniTVFPS(configElement): try: f = open("/proc/stb/lcd/fps", "w") f.write("%d \n" % configElement.value) f.close() except: pass def setLCDModePiP(configElement): pass config.lcd.modepip = ConfigSelection(choices={ "0": _("off"), "5": _("PIP"), "7": _("PIP with OSD") }, default="0") if config.misc.boxtype.value == 'gbquad' or config.misc.boxtype.value == 'gbquadplus': config.lcd.modepip.addNotifier(setLCDModePiP) else: config.lcd.modepip = ConfigNothing() config.lcd.modeminitv = ConfigSelection(choices={ "0": _("normal"), "1": _("MiniTV"), "2": _("OSD"), "3": _("MiniTV with OSD") }, default="0") config.lcd.fpsminitv = ConfigSlider(default=30, limits=(0, 30)) config.lcd.modeminitv.addNotifier(setLCDModeMinitTV) config.lcd.fpsminitv.addNotifier(setMiniTVFPS) else: config.lcd.modeminitv = ConfigNothing() config.lcd.fpsminitv = ConfigNothing() config.lcd.scroll_speed = ConfigSelection(default="300", choices=[("500", _("slow")), ("300", _("normal")), ("100", _("fast"))]) config.lcd.scroll_delay = ConfigSelection( default="10000", choices=[("10000", "10 " + _("seconds")), ("20000", "20 " + _("seconds")), ("30000", "30 " + _("seconds")), ("60000", "1 " + _("minute")), ("300000", "5 " + _("minutes")), ("noscrolling", _("off"))]) def setLCDbright(configElement): ilcd.setBright(configElement.value) def setLCDcontrast(configElement): ilcd.setContrast(configElement.value) def setLCDinverted(configElement): ilcd.setInverted(configElement.value) def setLCDflipped(configElement): ilcd.setFlipped(configElement.value) def setLCDmode(configElement): ilcd.setMode(configElement.value) def setLCDpower(configElement): ilcd.setPower(configElement.value) def setLCD8500(configElement): ilcd.setEt8500(configElement.value) def setLCDrepeat(configElement): ilcd.setRepeat(configElement.value) def setLCDscrollspeed(configElement): ilcd.setScrollspeed(configElement.value) def setLEDnormalstate(configElement): ilcd.setLEDNormalState(configElement.value) def setLEDdeepstandby(configElement): ilcd.setLEDDeepStandbyState(configElement.value) def setLEDblinkingtime(configElement): ilcd.setLEDBlinkingTime(configElement.value) standby_default = 5 ilcd = LCD() if not ilcd.isOled(): config.lcd.contrast = ConfigSlider(default=5, limits=(0, 20)) config.lcd.contrast.addNotifier(setLCDcontrast) else: config.lcd.contrast = ConfigNothing() standby_default = 1 if getBoxType() in ('mixosf5', 'mixosf5mini', 'gi9196m', 'gi9196lite', 'marvel1', 'enfinity', 'zgemmass', 'zgemmas2s', 'zgemmash1', 'zgemmash2', 'spycat'): config.lcd.standby = ConfigSlider(default=standby_default, limits=(0, 4)) config.lcd.bright = ConfigSlider(default=4, limits=(0, 4)) elif getBoxType() in ('zgemmahs', 'zgemmah2s', 'zgemmah2h', 'zgemmaslc'): config.lcd.standby = ConfigSlider(default=2, limits=(0, 8)) config.lcd.bright = ConfigSlider(default=5, limits=(0, 8)) else: config.lcd.standby = ConfigSlider(default=standby_default, limits=(0, 10)) config.lcd.bright = ConfigSlider(default=5, limits=(0, 10)) config.lcd.standby.addNotifier(setLCDbright) config.lcd.standby.apply = lambda: setLCDbright(config.lcd.standby) config.lcd.bright.addNotifier(setLCDbright) config.lcd.bright.apply = lambda: setLCDbright(config.lcd.bright) config.lcd.bright.callNotifiersOnSaveAndCancel = True config.lcd.invert = ConfigYesNo(default=False) config.lcd.invert.addNotifier(setLCDinverted) config.lcd.flip = ConfigYesNo(default=False) config.lcd.flip.addNotifier(setLCDflipped) if getBoxType() in ('mixosf5', 'mixosf5mini', 'gi9196m', 'gi9196lite'): config.lcd.scrollspeed = ConfigSlider(default=150, increment=10, limits=(0, 500)) config.lcd.scrollspeed.addNotifier(setLCDscrollspeed) config.lcd.repeat = ConfigSelection([("0", _("None")), ("1", _("1X")), ("2", _("2X")), ("3", _("3X")), ("4", _("4X")), ("500", _("Continues"))], "3") config.lcd.repeat.addNotifier(setLCDrepeat) config.lcd.mode = ConfigNothing() elif fileExists("/proc/stb/lcd/scroll_delay") and getBoxType() not in ( 'ixussone', 'ixusszero', 'axodin', 'axodinc', 'marvel1', 'enfinity', 'vusolose', 'vuzero', 'zgemmass', 'zgemmas2s', 'zgemmash1', 'zgemmash2', 'zgemmahs', 'zgemmah2s', 'zgemmah2h'): config.lcd.scrollspeed = ConfigSlider(default=150, increment=10, limits=(0, 500)) config.lcd.scrollspeed.addNotifier(setLCDscrollspeed) config.lcd.repeat = ConfigSelection([("0", _("None")), ("1", _("1X")), ("2", _("2X")), ("3", _("3X")), ("4", _("4X")), ("500", _("Continues"))], "3") config.lcd.repeat.addNotifier(setLCDrepeat) config.lcd.mode = ConfigSelection([("0", _("No")), ("1", _("Yes"))], "1") config.lcd.mode.addNotifier(setLCDmode) else: config.lcd.mode = ConfigNothing() config.lcd.repeat = ConfigNothing() config.lcd.scrollspeed = ConfigNothing() if fileExists("/proc/stb/power/vfd") or fileExists( "/proc/stb/lcd/vfd"): config.lcd.power = ConfigSelection([("0", _("Off")), ("1", _("On"))], "1") config.lcd.power.addNotifier(setLCDpower) else: config.lcd.power = ConfigNothing() if fileExists("/proc/stb/fb/sd_detach"): config.lcd.et8500 = ConfigSelection([("1", _("No")), ("0", _("Yes"))], "0") config.lcd.et8500.addNotifier(setLCD8500) else: config.lcd.et8500 = ConfigNothing() if getBoxType() == 'vuultimo': config.lcd.ledblinkingtime = ConfigSlider(default=5, increment=1, limits=(0, 15)) config.lcd.ledblinkingtime.addNotifier(setLEDblinkingtime) config.lcd.ledbrightnessdeepstandby = ConfigSlider(default=1, increment=1, limits=(0, 15)) config.lcd.ledbrightnessdeepstandby.addNotifier(setLEDnormalstate) config.lcd.ledbrightnessdeepstandby.addNotifier(setLEDdeepstandby) config.lcd.ledbrightnessdeepstandby.apply = lambda: setLEDdeepstandby( config.lcd.ledbrightnessdeepstandby) config.lcd.ledbrightnessstandby = ConfigSlider(default=1, increment=1, limits=(0, 15)) config.lcd.ledbrightnessstandby.addNotifier(setLEDnormalstate) config.lcd.ledbrightnessstandby.apply = lambda: setLEDnormalstate( config.lcd.ledbrightnessstandby) config.lcd.ledbrightness = ConfigSlider(default=3, increment=1, limits=(0, 15)) config.lcd.ledbrightness.addNotifier(setLEDnormalstate) config.lcd.ledbrightness.apply = lambda: setLEDnormalstate( config.lcd.ledbrightness) config.lcd.ledbrightness.callNotifiersOnSaveAndCancel = True else: def doNothing(): pass config.lcd.ledbrightness = ConfigNothing() config.lcd.ledbrightness.apply = lambda: doNothing() config.lcd.ledbrightnessstandby = ConfigNothing() config.lcd.ledbrightnessstandby.apply = lambda: doNothing() config.lcd.ledbrightnessdeepstandby = ConfigNothing() config.lcd.ledbrightnessdeepstandby.apply = lambda: doNothing() config.lcd.ledblinkingtime = ConfigNothing() else: def doNothing(): pass config.lcd.contrast = ConfigNothing() config.lcd.bright = ConfigNothing() config.lcd.standby = ConfigNothing() config.lcd.bright.apply = lambda: doNothing() config.lcd.standby.apply = lambda: doNothing() config.lcd.mode = ConfigNothing() config.lcd.power = ConfigNothing() config.lcd.et8500 = ConfigNothing() config.lcd.repeat = ConfigNothing() config.lcd.scrollspeed = ConfigNothing() config.lcd.scroll_speed = ConfigSelection(default="300", choices=[("500", _("slow")), ("300", _("normal")), ("100", _("fast"))]) config.lcd.scroll_delay = ConfigSelection( default="10000", choices=[("10000", "10 " + _("seconds")), ("20000", "20 " + _("seconds")), ("30000", "30 " + _("seconds")), ("60000", "1 " + _("minute")), ("300000", "5 " + _("minutes")), ("noscrolling", _("off"))]) config.lcd.ledbrightness = ConfigNothing() config.lcd.ledbrightness.apply = lambda: doNothing() config.lcd.ledbrightnessstandby = ConfigNothing() config.lcd.ledbrightnessstandby.apply = lambda: doNothing() config.lcd.ledbrightnessdeepstandby = ConfigNothing() config.lcd.ledbrightnessdeepstandby.apply = lambda: doNothing() config.lcd.ledblinkingtime = ConfigNothing() config.misc.standbyCounter.addNotifier(standbyCounterChanged, initial_call=False)
def InitLcd(): if getBoxType() in ('et4000', 'et5000', 'et6000', 'et7000'): detected = False else: detected = eDBoxLCD.getInstance().detected() SystemInfo["Display"] = detected config.lcd = ConfigSubsection() if detected: config.lcd.scroll_speed = ConfigSelection(default="300", choices=[("500", _("slow")), ("300", _("normal")), ("100", _("fast"))]) config.lcd.scroll_delay = ConfigSelection( default="10000", choices=[("10000", "10 " + _("seconds")), ("20000", "20 " + _("seconds")), ("30000", "30 " + _("seconds")), ("60000", "1 " + _("minute")), ("300000", "5 " + _("minutes")), ("noscrolling", _("off"))]) def setLCDbright(configElement): ilcd.setBright(configElement.value) def setLCDcontrast(configElement): ilcd.setContrast(configElement.value) def setLCDinverted(configElement): ilcd.setInverted(configElement.value) def setLCDflipped(configElement): ilcd.setFlipped(configElement.value) def setLCDmode(configElement): ilcd.setMode(configElement.value) def setLCDpower(configElement): ilcd.setPower(configElement.value) def setLCD8500(configElement): ilcd.setEt8500(configElement.value) def setLCDrepeat(configElement): ilcd.setRepeat(configElement.value) def setLCDscrollspeed(configElement): ilcd.setScrollspeed(configElement.value) def setLEDnormalstate(configElement): ilcd.setLEDNormalState(configElement.value) def setLEDdeepstandby(configElement): ilcd.setLEDDeepStandbyState(configElement.value) def setLEDblinkingtime(configElement): ilcd.setLEDBlinkingTime(configElement.value) standby_default = 5 ilcd = LCD() if not ilcd.isOled(): config.lcd.contrast = ConfigSlider(default=5, limits=(0, 20)) config.lcd.contrast.addNotifier(setLCDcontrast) else: config.lcd.contrast = ConfigNothing() standby_default = 1 config.lcd.standby = ConfigSlider(default=standby_default, limits=(0, 10)) config.lcd.standby.addNotifier(setLCDbright) config.lcd.standby.apply = lambda: setLCDbright(config.lcd.standby) config.lcd.bright = ConfigSlider(default=5, limits=(0, 10)) config.lcd.bright.addNotifier(setLCDbright) config.lcd.bright.apply = lambda: setLCDbright(config.lcd.bright) config.lcd.bright.callNotifiersOnSaveAndCancel = True config.lcd.invert = ConfigYesNo(default=False) config.lcd.invert.addNotifier(setLCDinverted) config.lcd.flip = ConfigYesNo(default=False) config.lcd.flip.addNotifier(setLCDflipped) if fileExists("/proc/stb/lcd/scroll_delay"): config.lcd.scrollspeed = ConfigSlider(default=150, increment=10, limits=(0, 500)) config.lcd.scrollspeed.addNotifier(setLCDscrollspeed) config.lcd.repeat = ConfigSelection([("0", _("None")), ("1", _("1X")), ("2", _("2X")), ("3", _("3X")), ("4", _("4X")), ("500", _("Continues"))], "3") config.lcd.repeat.addNotifier(setLCDrepeat) config.lcd.mode = ConfigSelection([("0", _("No")), ("1", _("Yes"))], "1") config.lcd.mode.addNotifier(setLCDmode) else: config.lcd.mode = ConfigNothing() config.lcd.repeat = ConfigNothing() config.lcd.scrollspeed = ConfigNothing() if fileExists("/proc/stb/power/vfd"): config.lcd.power = ConfigSelection([("0", _("Off")), ("1", _("On"))], "1") config.lcd.power.addNotifier(setLCDpower) else: config.lcd.power = ConfigNothing() if fileExists("/proc/stb/fb/sd_detach"): config.lcd.et8500 = ConfigSelection([("1", _("No")), ("0", _("Yes"))], "0") config.lcd.et8500.addNotifier(setLCD8500) else: config.lcd.et8500 = ConfigNothing() if getBoxType() == 'vuultimo': config.lcd.ledblinkingtime = ConfigSlider(default=5, increment=1, limits=(0, 15)) config.lcd.ledblinkingtime.addNotifier(setLEDblinkingtime) config.lcd.ledbrightnessdeepstandby = ConfigSlider(default=1, increment=1, limits=(0, 15)) config.lcd.ledbrightnessdeepstandby.addNotifier(setLEDnormalstate) config.lcd.ledbrightnessdeepstandby.addNotifier(setLEDdeepstandby) config.lcd.ledbrightnessdeepstandby.apply = lambda: setLEDdeepstandby( config.lcd.ledbrightnessdeepstandby) config.lcd.ledbrightnessstandby = ConfigSlider(default=1, increment=1, limits=(0, 15)) config.lcd.ledbrightnessstandby.addNotifier(setLEDnormalstate) config.lcd.ledbrightnessstandby.apply = lambda: setLEDnormalstate( config.lcd.ledbrightnessstandby) config.lcd.ledbrightness = ConfigSlider(default=3, increment=1, limits=(0, 15)) config.lcd.ledbrightness.addNotifier(setLEDnormalstate) config.lcd.ledbrightness.apply = lambda: setLEDnormalstate( config.lcd.ledbrightness) config.lcd.ledbrightness.callNotifiersOnSaveAndCancel = True else: def doNothing(): pass config.lcd.ledbrightness = ConfigNothing() config.lcd.ledbrightness.apply = lambda: doNothing() config.lcd.ledbrightnessstandby = ConfigNothing() config.lcd.ledbrightnessstandby.apply = lambda: doNothing() config.lcd.ledbrightnessdeepstandby = ConfigNothing() config.lcd.ledbrightnessdeepstandby.apply = lambda: doNothing() config.lcd.ledblinkingtime = ConfigNothing() else: def doNothing(): pass config.lcd.contrast = ConfigNothing() config.lcd.bright = ConfigNothing() config.lcd.standby = ConfigNothing() config.lcd.bright.apply = lambda: doNothing() config.lcd.standby.apply = lambda: doNothing() config.lcd.mode = ConfigNothing() config.lcd.power = ConfigNothing() config.lcd.et8500 = ConfigNothing() config.lcd.repeat = ConfigNothing() config.lcd.scrollspeed = ConfigNothing() config.lcd.ledbrightness = ConfigNothing() config.lcd.ledbrightness.apply = lambda: doNothing() config.lcd.ledbrightnessstandby = ConfigNothing() config.lcd.ledbrightnessstandby.apply = lambda: doNothing() config.lcd.ledbrightnessdeepstandby = ConfigNothing() config.lcd.ledbrightnessdeepstandby.apply = lambda: doNothing() config.lcd.ledblinkingtime = ConfigNothing() config.misc.standbyCounter.addNotifier(standbyCounterChanged, initial_call=False)
def InitLcd(): detected = eDBoxLCD.getInstance() and eDBoxLCD.getInstance().detected() SystemInfo["Display"] = detected config.lcd = ConfigSubsection(); if detected: def setLCDbright(configElement): ilcd.setBright(configElement.value); def setLCDcontrast(configElement): ilcd.setContrast(configElement.value); def setLCDinverted(configElement): ilcd.setInverted(configElement.value); def setLCDflipped(configElement): ilcd.setFlipped(configElement.value); standby_default = 0 ilcd = LCD() if not ilcd.isOled(): config.lcd.contrast = ConfigSlider(default=5, limits=(0, 20)) config.lcd.contrast.addNotifier(setLCDcontrast); else: config.lcd.contrast = ConfigNothing() standby_default = 1 config.lcd.standby = ConfigSlider(default=standby_default, limits=(0, 10)) config.lcd.standby.addNotifier(setLCDbright); config.lcd.standby.apply = lambda : setLCDbright(config.lcd.standby) config.lcd.bright = ConfigSlider(default=5, limits=(0, 10)) config.lcd.bright.addNotifier(setLCDbright); config.lcd.bright.apply = lambda : setLCDbright(config.lcd.bright) config.lcd.bright.callNotifiersOnSaveAndCancel = True config.lcd.invert = ConfigYesNo(default=False) config.lcd.invert.addNotifier(setLCDinverted); config.lcd.flip = ConfigYesNo(default=False) config.lcd.flip.addNotifier(setLCDflipped); if SystemInfo["LcdLiveTV"]: def lcdLiveTvChanged(configElement): setLCDLiveTv(configElement.value) configElement.save() config.lcd.showTv = ConfigYesNo(default = False) config.lcd.showTv.addNotifier(lcdLiveTvChanged) if "live_enable" in SystemInfo["LcdLiveTV"]: config.misc.standbyCounter.addNotifier(standbyCounterChangedLCDLiveTV, initial_call = False) else: def doNothing(): pass config.lcd.contrast = ConfigNothing() config.lcd.bright = ConfigNothing() config.lcd.standby = ConfigNothing() config.lcd.bright.apply = lambda : doNothing() config.lcd.standby.apply = lambda : doNothing() config.misc.standbyCounter.addNotifier(standbyCounterChanged, initial_call = False)
0x86: "<Set Stream Path>", 0x87: "<Device Vendor ID>", 0x89: "<Vendor Command>", 0x8c: "<Give Device Vendor ID>", 0x8d: "<Menu Request>", 0x8e: "<Menu Status>", 0x8f: "<Give Device Power Status>", 0x90: "<Report Power Status>", 0x91: "<Get menu language>", 0x9e: "<CEC Version>", 0x9d: "<Inactive Source>", 0x9e: "<CEC Version>", 0x9f: "<Get CEC Version>", } config.hdmicec = ConfigSubsection() config.hdmicec.enabled = ConfigYesNo(default=True) config.hdmicec.control_tv_standby = ConfigYesNo(default=True) config.hdmicec.control_tv_wakeup = ConfigYesNo(default=True) config.hdmicec.report_active_source = ConfigYesNo(default=True) config.hdmicec.report_active_menu = ConfigYesNo(default=True) config.hdmicec.handle_tv_standby = ConfigYesNo(default=True) config.hdmicec.handle_tv_wakeup = ConfigYesNo(default=True) config.hdmicec.tv_wakeup_detection = ConfigSelection(choices={ "wakeup": _("Wakeup"), "requestphysicaladdress": _("Request for physical address report"), "tvreportphysicaladdress": _("TV physical address report"), "sourcerequest":
def InitRecordingConfig(): config.recording = ConfigSubsection() # actually this is "recordings always have priority". "Yes" does mean: don't ask. The RecordTimer will ask when value is 0. config.recording.asktozap = ConfigYesNo(default=True) config.recording.margin_before = ConfigSelectionNumber(min=0, max=120, stepwidth=1, default=3, wraparound=True) config.recording.margin_after = ConfigSelectionNumber(min=0, max=120, stepwidth=1, default=5, wraparound=True) config.recording.ascii_filenames = ConfigYesNo(default=False) config.recording.keep_timers = ConfigSelectionNumber(min=1, max=120, stepwidth=1, default=7, wraparound=True) config.recording.filename_composition = ConfigSelection( default="standard", choices=[("standard", _("standard")), ("event", _("Event name first")), ("short", _("Short filenames")), ("veryshort", _("Very short filenames")), ("veryveryshort", _("Very very short filenames")), ("long", _("Long filenames"))]) config.recording.always_ecm = ConfigYesNo(default=False) config.recording.never_decrypt = ConfigYesNo(default=False) config.recording.offline_decode_delay = ConfigSelectionNumber( min=1, max=10000, stepwidth=10, default=1000, wraparound=True) config.recording.ecm_data = ConfigSelection(choices=[ ("normal", _("normal")), ("descrambled+ecm", _("descramble and record ecm")), ("scrambled+ecm", _("don't descramble, record ecm")) ], default="normal") config.recording.default_timertype = ConfigSelection(choices=[ ("zap", _("zap")), ("record", _("record")), ("zap+record", _("zap and record")) ], default="record") if SystemInfo["DeepstandbySupport"]: shutdownString = _("go to deep standby") else: shutdownString = _("shut down") config.recording.default_afterevent = ConfigSelection(choices=[ ("0", _("do nothing")), ("1", _("go to standby")), ("2", shutdownString), ("3", _("auto")) ], default="3") config.recording.include_ait = ConfigYesNo(default=True) config.recording.show_rec_symbol_for_rec_types = ConfigSelection( choices=[("any", _("any recordings")), ("real", _("real recordings")), ("real_streaming", _("real recordings or streaming")), ("real_pseudo", _("real or pseudo recordings"))], default="real_streaming") config.recording.warn_box_restart_rec_types = ConfigSelection( choices=[("any", _("any recordings")), ("real", _("real recordings")), ("real_streaming", _("real recordings or streaming")), ("real_pseudo", _("real or pseudo recordings"))], default="real_streaming") config.recording.ask_to_abort_pseudo_rec = ConfigSelection( choices=[("ask", _("ask user")), ("abort_no_msg", _("just abort, no message")), ("abort_msg", _("just abort, show message")), ("never_abort", _("never abort"))], default="abort_msg") config.recording.ask_to_abort_streaming = ConfigSelection( choices=[("ask", _("ask user")), ("abort_no_msg", _("just abort, no message")), ("abort_msg", _("just abort, show message")), ("never_abort", _("never abort"))], default="abort_msg") config.recording.ask_to_abort_pip = ConfigSelection(choices=[ ("ask", _("ask user")), ("abort_no_msg", _("just abort, no message")), ("abort_msg", _("just abort, show message")), ("never_abort", _("never abort")) ], default="abort_msg") config.recording.prepare_time = ConfigSelectionNumber(min=20, max=120, stepwidth=10, default=20, wraparound=True)