-from config import config, ConfigSubsection, ConfigSlider, ConfigYesNo
-
+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 InitLcd():
+ detected = eDBoxLCD.getInstance().detected()
+ SystemInfo["Display"] = detected
config.lcd = ConfigSubsection();
- config.lcd.bright = ConfigSlider(default=10, limits=(1, 10))
- config.lcd.contrast = ConfigSlider(default=10, limits=(1, 10))
- config.lcd.standby = ConfigSlider(default=0, limits=(1,10))
- config.lcd.invert = ConfigYesNo(default=False)
+ if detected:
+ def setLCDbright(configElement):
+ ilcd.setBright(configElement.value);
+
+ def setLCDcontrast(configElement):
+ ilcd.setContrast(configElement.value);
+
+ def setLCDinverted(configElement):
+ ilcd.setInverted(configElement.value);
- ilcd = LCD()
+ ilcd = LCD()
- def setLCDbright(configElement):
- ilcd.setBright(configElement.value);
+ config.lcd.standby = ConfigSlider(default=0, 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);
+ if not ilcd.isOled():
+ config.lcd.contrast = ConfigSlider(default=5, limits=(0, 20))
+ config.lcd.contrast.addNotifier(setLCDcontrast);
+ else:
+ config.lcd.contrast = ConfigNothing()
- config.lcd.bright.addNotifier(setLCDbright);
- config.lcd.contrast.addNotifier(setLCDcontrast);
- config.lcd.invert.addNotifier(setLCDinverted);
+ 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()