LED Brightness Setup : setLED is moved in eDBoxLCD, fix integer to slider.
[vuplus_dvbapp] / lib / python / Plugins / SystemPlugins / LEDBrightnessSetup / plugin.py
index 8221d80..a679237 100755 (executable)
@@ -1,19 +1,21 @@
 from Screens.Screen import Screen
 from Components.ConfigList import ConfigListScreen
-from Components.config import config, getConfigListEntry, ConfigSubsection, ConfigInteger
+from Components.config import config, getConfigListEntry, ConfigSubsection, ConfigSlider
 from Components.ActionMap import ActionMap
 from Components.Sources.StaticText import StaticText
+from Components.Label import Label
 from Plugins.Plugin import PluginDescriptor
 from Screens.MessageBox import MessageBox
 from Tools.Directories import fileExists
 from enigma import eTimer
+from enigma import eDBoxLCD
 from ledsetup import LEDUpdate
 
 config.plugins.brightnesssetup = ConfigSubsection()
-config.plugins.brightnesssetup.brightness = ConfigInteger(default = 1, limits = (1,15))
-config.plugins.brightnesssetup.brightnessstandby = ConfigInteger(default = 5, limits = (1,15))
-config.plugins.brightnesssetup.brightnessdeepstandby = ConfigInteger(default = 5, limits = (1,15))
-config.plugins.brightnesssetup.blinkingtime = ConfigInteger(default = 5, limits = (1,15))
+config.plugins.brightnesssetup.brightness = ConfigSlider(default = 1, increment = 1, limits = (0,15))
+config.plugins.brightnesssetup.brightnessstandby = ConfigSlider(default = 1, increment = 1, limits = (0,15))
+config.plugins.brightnesssetup.brightnessdeepstandby = ConfigSlider(default = 5, increment = 1, limits = (0,15))
+config.plugins.brightnesssetup.blinkingtime = ConfigSlider(default = 5, increment = 1, limits = (0,15))
 
 class LEDOption:
        BRIGHTNESS = 0
@@ -29,34 +31,31 @@ class LEDBrightnessSetupStandby:
                from Screens.Standby import inStandby
                inStandby.onClose.append(self.StandbyEnd)
                brightness = int(config.plugins.brightnesssetup.brightnessstandby.value)
-               LEDUpdate(brightness ,LEDOption.BRIGHTNESS)
+               eDBoxLCD.getInstance().setLED(brightness ,LEDOption.BRIGHTNESS)
 
        def StandbyEnd(self):
                brightness = int(config.plugins.brightnesssetup.brightness.value)
-               LEDUpdate(brightness ,LEDOption.BRIGHTNESS)
+               eDBoxLCD.getInstance().setLED(brightness ,LEDOption.BRIGHTNESS)
 
        def initLEDSetup(self):
                brightness = int(config.plugins.brightnesssetup.brightness.value)
                brightnessstandby = int(config.plugins.brightnesssetup.brightnessdeepstandby.value)
                blinkingtime = int(config.plugins.brightnesssetup.blinkingtime.value)
-               cmdList = []
-               cmdList.append( (brightness,LEDOption.BRIGHTNESS) )
-               cmdList.append( (brightnessstandby,LEDOption.DEEPSTANDBY) )
-               cmdList.append( (blinkingtime,LEDOption.BLINKINGTIME) )
-               for ( value, option ) in cmdList:
-                       ret = LEDUpdate(value ,option)
-                       if ret != 0:
-                               print "DEVICE OPEN ERROR"
-                               break;
+               eDBoxLCD.getInstance().setLED(brightness ,LEDOption.BRIGHTNESS)
+               eDBoxLCD.getInstance().setLED(brightnessstandby ,LEDOption.DEEPSTANDBY)
+               eDBoxLCD.getInstance().setLED(blinkingtime ,LEDOption.BLINKINGTIME)
 
 class LEDBrightnessSetup(Screen,ConfigListScreen):
        skin = """
-                       <screen name="LEDBrightnessSetup" position="center,center" size="560,250" title="LED Brightness Setup" >
+                       <screen name="LEDBrightnessSetup" position="center,center" size="560,300" title="LED Brightness Setup">
                        <ePixmap pixmap="Vu_HD/buttons/red.png" position="10,10" size="25,25" alphatest="on" />
-                       <ePixmap pixmap="Vu_HD/buttons/green.png" position="290,10" size="25,25" alphatest="on" />
-                       <widget source="key_red" render="Label" position="40,10" zPosition="1" size="140,25" font="Regular;20" halign="center" valign="center" transparent="1" />
-                       <widget source="key_green" render="Label" position="320,10" zPosition="1" size="140,25" font="Regular;20" halign="center" valign="center" transparent="1" />
-                       <widget name="config" zPosition="2" position="5,50" size="550,200" scrollbarMode="showOnDemand" transparent="1" />
+                       <ePixmap pixmap="Vu_HD/buttons/green.png" position="195,10" size="25,25" alphatest="on" />
+                       <ePixmap pixmap="Vu_HD/buttons/yellow.png" position="380,10" size="25,25" alphatest="on" />
+                       <widget source="key_red" render="Label" position="30,10" zPosition="1" size="140,25" font="Regular;20" halign="center" valign="center" transparent="1" />
+                       <widget source="key_green" render="Label" position="215,10" zPosition="1" size="140,25" font="Regular;20" halign="center" valign="center" transparent="1" />
+                       <widget source="key_yellow" render="Label" position="400,10" zPosition="1" size="140,25" font="Regular;20" halign="center" valign="center" transparent="1" />
+                       <widget name="config" zPosition="2" position="5,50" size="550,200" scrollbarMode="showOnDemand" transparent="1"/>
+                       <widget name="current_entry" position="130,240" size="300,30" font="Regular;18" halign="center" valign="center"/>
                        </screen>"""
 
        def __init__(self,session):
@@ -68,15 +67,31 @@ class LEDBrightnessSetup(Screen,ConfigListScreen):
                        "cancel": self.keyCancel,
                        "red": self.keyCancel,
                        "green": self.keySave,
+                       "yellow": self.keyDefault,
                }, -2)
                self.list = []
                ConfigListScreen.__init__(self, self.list,session = self.session)
                self["key_red"] = StaticText(_("Cancel"))
                self["key_green"] = StaticText(_("Ok"))
+               self["key_yellow"] = StaticText(_("Defalut"))
+               self["current_entry"]=Label("")
                self.createSetup()
                self.onLayoutFinish.append(self.checkModel)
                self.checkModelTimer = eTimer()
                self.checkModelTimer.callback.append(self.invalidmodel)
+               if not self.displayText in self["config"].onSelectionChanged:
+                       self["config"].onSelectionChanged.append(self.displayText)
+
+       def displayText(self):
+               if self["config"].getCurrent() == self.brightness:
+                       self["current_entry"].setText("Touch LED Brightness at Normal state")
+               elif self["config"].getCurrent() == self.brightness_standby:
+                       self["current_entry"].setText("Touch LED Brightness at Standby")
+               elif self["config"].getCurrent() == self.brightness_deepstandby:
+                       self["current_entry"].setText("Touch LED Brightness at Deep Standby")
+               elif self["config"].getCurrent() == self.blinkingtime:
+                       self["current_entry"].setText("Touch LED Blinking time")
+               self.setCurrentValue()
 
        def getModel(self):
                if fileExists("/proc/stb/info/vumodel"):
@@ -97,13 +112,12 @@ class LEDBrightnessSetup(Screen,ConfigListScreen):
        def invalidmodel(self):
                        self.session.openWithCallback(self.close, MessageBox, _("This Plugin only support for ULTIMO"), MessageBox.TYPE_ERROR, timeout = 30)
 
-
        def createSetup(self):
                self.list = []
-               self.brightness = getConfigListEntry(_("Touch LED brightness at normal state"), config.plugins.brightnesssetup.brightness)
-               self.brightness_standby = getConfigListEntry(_("Touch LED brightness at Standby"), config.plugins.brightnesssetup.brightnessstandby)
-               self.brightness_deepstandby = getConfigListEntry(_("Touch LED brightness at Deep Standby"), config.plugins.brightnesssetup.brightnessdeepstandby)
-               self.blinkingtime = getConfigListEntry(_("Touch LED blinking time"), config.plugins.brightnesssetup.blinkingtime)
+               self.brightness = getConfigListEntry(_("Normal state"), config.plugins.brightnesssetup.brightness)
+               self.brightness_standby = getConfigListEntry(_("Standby"), config.plugins.brightnesssetup.brightnessstandby)
+               self.brightness_deepstandby = getConfigListEntry(_("Deep Standby"), config.plugins.brightnesssetup.brightnessdeepstandby)
+               self.blinkingtime = getConfigListEntry(_("Blinking time"), config.plugins.brightnesssetup.blinkingtime)
                self.list.append( self.brightness )
                self.list.append( self.brightness_standby )
                self.list.append( self.brightness_deepstandby )
@@ -111,24 +125,50 @@ class LEDBrightnessSetup(Screen,ConfigListScreen):
                self["config"].list = self.list
                self["config"].l.setList(self.list)
 
+       def setCurrentValue(self):
+               if self["config"].getCurrent() == self.blinkingtime:
+                       eDBoxLCD.getInstance().setLED(1 ,LEDOption.BRIGHTNESS)
+                       eDBoxLCD.getInstance().setLED(self["config"].getCurrent()[1].value ,LEDOption.BLINKINGTIME)
+               else:
+                       eDBoxLCD.getInstance().setLED(self["config"].getCurrent()[1].value ,LEDOption.BRIGHTNESS)
+
+       def keyLeft(self):
+               ConfigListScreen.keyLeft(self)
+               self.setCurrentValue()
+
+       def keyRight(self):
+               ConfigListScreen.keyRight(self)
+               self.setCurrentValue()
+
        def saveLEDSetup(self):
-               brightness = int(config.plugins.brightnesssetup.brightness.value)
-               brightnessstandby = int(config.plugins.brightnesssetup.brightnessdeepstandby.value)
-               blinkingtime = int(config.plugins.brightnesssetup.blinkingtime.value)
-               cmdList = []
-               cmdList.append( (brightness,LEDOption.BRIGHTNESS) )
-               cmdList.append( (brightnessstandby,LEDOption.DEEPSTANDBY) )
-               cmdList.append( (blinkingtime,LEDOption.BLINKINGTIME) )
-               for ( value, option ) in cmdList:
-                       ret = LEDUpdate(value ,option)
-                       if ret != 0:
-                               self.session.open(MessageBox, "DEVICE OPEN ERROR", type = MessageBox.TYPE_ERROR, timeout = 30)
-                               break;
+               brightness = config.plugins.brightnesssetup.brightness.value
+               brightnessstandby = config.plugins.brightnesssetup.brightnessdeepstandby.value
+               blinkingtime = config.plugins.brightnesssetup.blinkingtime.value
+               eDBoxLCD.getInstance().setLED(brightness ,LEDOption.BRIGHTNESS)
+               eDBoxLCD.getInstance().setLED(brightnessstandby ,LEDOption.DEEPSTANDBY)
+               eDBoxLCD.getInstance().setLED(blinkingtime ,LEDOption.BLINKINGTIME)
 
        def keySave(self):
-               self.saveLEDSetup()
+               if self["config"].isChanged():
+                       self.saveLEDSetup()
                ConfigListScreen.keySave(self)
 
+       def keyDefault(self):
+               config.plugins.brightnesssetup.brightness.setValue(1)
+               config.plugins.brightnesssetup.brightnessstandby.setValue(1)
+               config.plugins.brightnesssetup.brightnessdeepstandby.setValue(5)
+               config.plugins.brightnesssetup.blinkingtime.setValue(5)
+               for entry in self["config"].getList():
+                       self["config"].l.invalidateEntry(self["config"].getList().index(entry))
+
+       def cancelConfirm(self, result):
+               if not result:
+                       return
+               for x in self["config"].list:
+                       x[1].cancel()
+               self.saveLEDSetup()
+               self.close()
+
 def main(session, **kwargs):
        session.open(LEDBrightnessSetup)