-from config import config #global config instance
-from config import ConfigSlider
-from config import configSelection
-from config import ConfigSubsection
-from config import configElement
-
-from enigma import *
+from config import config, ConfigSubsection, ConfigSlider, ConfigYesNo, ConfigNothing
+from enigma import eDBoxLCD
+from Components.SystemInfo import SystemInfo
class LCD:
def __init__(self):
pass
def setBright(self, value):
- eDBoxLCD.getInstance().setLCDBrightness(value * 20)
- pass
+ value *= 255
+ value /= 10
+ if value > 255:
+ value = 255
+ eDBoxLCD.getInstance().setLCDBrightness(value)
def setContrast(self, value):
+ value *= 63
+ value /= 20
+ if value > 63:
+ value = 63
eDBoxLCD.getInstance().setLCDContrast(value)
- pass
def setInverted(self, value):
if value:
value = 255
eDBoxLCD.getInstance().setInverted(value)
+ def isOled(self):
+ return eDBoxLCD.getInstance().isOled()
+
+def leaveStandby():
+ config.lcd.bright.apply()
+
+def standbyCounterChanged(configElement):
+ from Screens.Standby import inStandby
+ inStandby.onClose.append(leaveStandby)
+ config.lcd.standby.apply()
+
def InitLcd():
+ detected = eDBoxLCD.getInstance().detected()
+ SystemInfo["Display"] = detected
config.lcd = ConfigSubsection();
- config.lcd.bright = configElement("config.lcd.bright", ConfigSlider, 10, "")
- config.lcd.contrast = configElement("config.lcd.contrast", ConfigSlider, 10, "")
- config.lcd.standby = configElement("config.lcd.standby", ConfigSlider, 0, "")
- config.lcd.invert = configElement("config.lcd.invert", configSelection, 0, (("enable", _("Enable")), ("disable", _("Disable"))))
+ if detected:
+ def setLCDbright(configElement):
+ ilcd.setBright(configElement.value);
+
+ def setLCDcontrast(configElement):
+ ilcd.setContrast(configElement.value);
+
+ def setLCDinverted(configElement):
+ ilcd.setInverted(configElement.value);
+
+ standby_default = 0
+
+ ilcd = LCD()
- 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
- def setLCDbright(configElement):
- ilcd.setBright(configElement.value);
+ config.lcd.standby = ConfigSlider(default=standby_default, limits=(0, 10))
+ config.lcd.standby.addNotifier(setLCDbright);
+ config.lcd.standby.apply = lambda : setLCDbright(config.lcd.standby)
- def setLCDcontrast(configElement):
- ilcd.setContrast(configElement.value);
+ 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
- def setLCDinverted(configElement):
- ilcd.setInverted(configElement.value);
+ config.lcd.invert = ConfigYesNo(default=False)
+ config.lcd.invert.addNotifier(setLCDinverted);
+ 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.bright.addNotifier(setLCDbright);
- config.lcd.contrast.addNotifier(setLCDcontrast);
- config.lcd.invert.addNotifier(setLCDinverted);
-
+ config.misc.standbyCounter.addNotifier(standbyCounterChanged, initial_call = False)
-
\ No newline at end of file