1 from Screens.Screen import Screen
2 from Components.ConfigList import ConfigListScreen
3 from Components.config import config, getConfigListEntry, ConfigSubsection, ConfigSlider
4 from Components.ActionMap import ActionMap
5 from Components.Sources.StaticText import StaticText
6 from Components.Label import Label
7 from Plugins.Plugin import PluginDescriptor
8 from Screens.MessageBox import MessageBox
9 from Tools.Directories import fileExists
10 from enigma import eTimer
13 config.plugins.brightnesssetup = ConfigSubsection()
14 config.plugins.brightnesssetup.brightness = ConfigSlider(default = 1, increment = 1, limits = (0,15))
15 config.plugins.brightnesssetup.brightnessdeepstandby = ConfigSlider(default = 5, increment = 1, limits = (0,15))
16 config.plugins.brightnesssetup.blinkingtime = ConfigSlider(default = 5, increment = 1, limits = (0,15))
24 LED_IOCTL_BRIGHTNESS_NORMAL = 0X10
25 LED_IOCTL_BRIGHTNESS_DEEPSTANDBY = 0X11
26 LED_IOCTL_BLINKING_TIME = 0X12
27 LED_IOCTL_SET_DEFAULT = 0X13
30 self.led_fd = open("/dev/dbox/oled0",'rw')
33 def initLEDSetup(self):
34 brightness = int(config.plugins.brightnesssetup.brightness.value)
35 brightnessstandby = int(config.plugins.brightnesssetup.brightnessdeepstandby.value)
36 blinkingtime = int(config.plugins.brightnesssetup.blinkingtime.value)
37 self.setLEDDefault(brightness, brightnessstandby, blinkingtime)
39 def setLEDDefault(self, brightness = 1, brightnessstandby = 5, blinkingtime = 5):
40 default_value = (blinkingtime<<16) + (brightnessstandby<<8) + brightness
41 fcntl.ioctl(self.led_fd , self.LED_IOCTL_SET_DEFAULT, default_value)
43 def setLED(self, value, option):
44 if option == LEDOption.BRIGHTNESS:
45 cmd = self.LED_IOCTL_BRIGHTNESS_NORMAL
46 elif option == LEDOption.DEEPSTANDBY:
47 cmd = self.LED_IOCTL_BRIGHTNESS_DEEPSTANDBY
48 elif option == LEDOption.BLINKINGTIME:
49 cmd = self.LED_IOCTL_BLINKING_TIME
52 fcntl.ioctl(self.led_fd, cmd, value)
59 class LEDBrightnessSetup(Screen,ConfigListScreen):
61 <screen name="LEDBrightnessSetup" position="center,center" size="560,300" title="LED Brightness Setup">
62 <ePixmap pixmap="Vu_HD/buttons/red.png" position="10,10" size="25,25" alphatest="on" />
63 <ePixmap pixmap="Vu_HD/buttons/green.png" position="195,10" size="25,25" alphatest="on" />
64 <ePixmap pixmap="Vu_HD/buttons/yellow.png" position="380,10" size="25,25" alphatest="on" />
65 <widget source="key_red" render="Label" position="30,10" zPosition="1" size="140,25" font="Regular;20" halign="center" valign="center" transparent="1" />
66 <widget source="key_green" render="Label" position="215,10" zPosition="1" size="140,25" font="Regular;20" halign="center" valign="center" transparent="1" />
67 <widget source="key_yellow" render="Label" position="400,10" zPosition="1" size="140,25" font="Regular;20" halign="center" valign="center" transparent="1" />
68 <widget name="config" zPosition="2" position="5,50" size="550,200" scrollbarMode="showOnDemand" transparent="1"/>
69 <widget name="current_entry" position="130,240" size="300,30" font="Regular;18" halign="center" valign="center"/>
72 def __init__(self,session):
73 Screen.__init__(self,session)
74 self.session = session
75 self["shortcuts"] = ActionMap(["ShortcutActions", "SetupActions" ],
78 "cancel": self.keyCancel,
79 "red": self.keyCancel,
80 "green": self.keySave,
81 "yellow": self.keyDefault,
84 ConfigListScreen.__init__(self, self.list,session = self.session)
85 self["key_red"] = StaticText(_("Cancel"))
86 self["key_green"] = StaticText(_("Ok"))
87 self["key_yellow"] = StaticText(_("Defalut"))
88 self["current_entry"]=Label("")
90 self.onLayoutFinish.append(self.checkModel)
91 self.checkModelTimer = eTimer()
92 self.checkModelTimer.callback.append(self.invalidmodel)
93 if not self.displayText in self["config"].onSelectionChanged:
94 self["config"].onSelectionChanged.append(self.displayText)
96 def displayText(self):
97 if self["config"].getCurrent() == self.brightness:
98 self["current_entry"].setText("Touch LED Brightness at Normal state")
99 elif self["config"].getCurrent() == self.brightness_deepstandby:
100 self["current_entry"].setText("Touch LED Brightness at Deep Standby")
101 elif self["config"].getCurrent() == self.blinkingtime:
102 self["current_entry"].setText("Touch LED Blinking time")
103 self.setCurrentValue()
106 if fileExists("/proc/stb/info/vumodel"):
107 vumodel = open("/proc/stb/info/vumodel")
108 info=vumodel.read().strip()
117 def checkModel(self):
118 if not self.getModel():
119 self.checkModelTimer.start(100,True)
121 def invalidmodel(self):
122 self.session.openWithCallback(self.close, MessageBox, _("This Plugin only support for ULTIMO"), MessageBox.TYPE_ERROR, timeout = 30)
124 def createSetup(self):
126 self.brightness = getConfigListEntry(_("Normal state"), config.plugins.brightnesssetup.brightness)
127 self.brightness_deepstandby = getConfigListEntry(_("Deep Standby"), config.plugins.brightnesssetup.brightnessdeepstandby)
128 self.blinkingtime = getConfigListEntry(_("Blinking time"), config.plugins.brightnesssetup.blinkingtime)
129 self.list.append( self.brightness )
130 self.list.append( self.brightness_deepstandby )
131 self.list.append( self.blinkingtime )
132 self["config"].list = self.list
133 self["config"].l.setList(self.list)
135 def setCurrentValue(self):
136 if self["config"].getCurrent() == self.blinkingtime:
137 ledsetup.setLED(1 ,LEDOption.BRIGHTNESS)
138 ledsetup.setLED(self["config"].getCurrent()[1].value ,LEDOption.BLINKINGTIME)
140 ledsetup.setLED(self["config"].getCurrent()[1].value ,LEDOption.BRIGHTNESS)
143 ConfigListScreen.keyLeft(self)
144 self.setCurrentValue()
147 ConfigListScreen.keyRight(self)
148 self.setCurrentValue()
150 def saveLEDSetup(self):
151 brightness = config.plugins.brightnesssetup.brightness.value
152 brightnessstandby = config.plugins.brightnesssetup.brightnessdeepstandby.value
153 blinkingtime = config.plugins.brightnesssetup.blinkingtime.value
154 ledsetup.setLED(brightness ,LEDOption.BRIGHTNESS)
155 ledsetup.setLED(brightnessstandby ,LEDOption.DEEPSTANDBY)
156 ledsetup.setLED(blinkingtime ,LEDOption.BLINKINGTIME)
159 if self["config"].isChanged():
161 ConfigListScreen.keySave(self)
163 def keyDefault(self):
164 config.plugins.brightnesssetup.brightness.setValue(1)
165 config.plugins.brightnesssetup.brightnessdeepstandby.setValue(5)
166 config.plugins.brightnesssetup.blinkingtime.setValue(5)
167 for entry in self["config"].getList():
168 self["config"].l.invalidateEntry(self["config"].getList().index(entry))
170 if self["config"].getCurrent() == self.blinkingtime:
171 self.setCurrentValue()
173 ledsetup.setLED(5 ,LEDOption.BLINKINGTIME)
174 ledsetup.setLED(self["config"].getCurrent()[1].value ,LEDOption.BRIGHTNESS)
176 def cancelConfirm(self, result):
179 for x in self["config"].list:
184 def main(session, **kwargs):
185 session.open(LEDBrightnessSetup)
187 def Plugins(**kwargs):
188 return [PluginDescriptor(name=_("LED Brightness Setup"), description="Setup LED brightness and blink interval", where = PluginDescriptor.WHERE_PLUGINMENU, needsRestart = False, fnc=main)]