8221d80bf719809593ed0e26180dba03ece74237
[vuplus_dvbapp] / lib / python / Plugins / SystemPlugins / LEDBrightnessSetup / plugin.py
1 from Screens.Screen import Screen
2 from Components.ConfigList import ConfigListScreen
3 from Components.config import config, getConfigListEntry, ConfigSubsection, ConfigInteger
4 from Components.ActionMap import ActionMap
5 from Components.Sources.StaticText import StaticText
6 from Plugins.Plugin import PluginDescriptor
7 from Screens.MessageBox import MessageBox
8 from Tools.Directories import fileExists
9 from enigma import eTimer
10 from ledsetup import LEDUpdate
11
12 config.plugins.brightnesssetup = ConfigSubsection()
13 config.plugins.brightnesssetup.brightness = ConfigInteger(default = 1, limits = (1,15))
14 config.plugins.brightnesssetup.brightnessstandby = ConfigInteger(default = 5, limits = (1,15))
15 config.plugins.brightnesssetup.brightnessdeepstandby = ConfigInteger(default = 5, limits = (1,15))
16 config.plugins.brightnesssetup.blinkingtime = ConfigInteger(default = 5, limits = (1,15))
17
18 class LEDOption:
19         BRIGHTNESS = 0
20         DEEPSTANDBY = 1
21         BLINKINGTIME = 2
22
23 class LEDBrightnessSetupStandby:
24         def __init__(self):
25                 self.initLEDSetup()
26                 config.misc.standbyCounter.addNotifier(self.standbyBegin, initial_call = False)
27
28         def standbyBegin(self, configElement):
29                 from Screens.Standby import inStandby
30                 inStandby.onClose.append(self.StandbyEnd)
31                 brightness = int(config.plugins.brightnesssetup.brightnessstandby.value)
32                 LEDUpdate(brightness ,LEDOption.BRIGHTNESS)
33
34         def StandbyEnd(self):
35                 brightness = int(config.plugins.brightnesssetup.brightness.value)
36                 LEDUpdate(brightness ,LEDOption.BRIGHTNESS)
37
38         def initLEDSetup(self):
39                 brightness = int(config.plugins.brightnesssetup.brightness.value)
40                 brightnessstandby = int(config.plugins.brightnesssetup.brightnessdeepstandby.value)
41                 blinkingtime = int(config.plugins.brightnesssetup.blinkingtime.value)
42                 cmdList = []
43                 cmdList.append( (brightness,LEDOption.BRIGHTNESS) )
44                 cmdList.append( (brightnessstandby,LEDOption.DEEPSTANDBY) )
45                 cmdList.append( (blinkingtime,LEDOption.BLINKINGTIME) )
46                 for ( value, option ) in cmdList:
47                         ret = LEDUpdate(value ,option)
48                         if ret != 0:
49                                 print "DEVICE OPEN ERROR"
50                                 break;
51
52 class LEDBrightnessSetup(Screen,ConfigListScreen):
53         skin = """
54                         <screen name="LEDBrightnessSetup" position="center,center" size="560,250" title="LED Brightness Setup" >
55                         <ePixmap pixmap="Vu_HD/buttons/red.png" position="10,10" size="25,25" alphatest="on" />
56                         <ePixmap pixmap="Vu_HD/buttons/green.png" position="290,10" size="25,25" alphatest="on" />
57                         <widget source="key_red" render="Label" position="40,10" zPosition="1" size="140,25" font="Regular;20" halign="center" valign="center" transparent="1" />
58                         <widget source="key_green" render="Label" position="320,10" zPosition="1" size="140,25" font="Regular;20" halign="center" valign="center" transparent="1" />
59                         <widget name="config" zPosition="2" position="5,50" size="550,200" scrollbarMode="showOnDemand" transparent="1" />
60                         </screen>"""
61
62         def __init__(self,session):
63                 Screen.__init__(self,session)
64                 self.session = session
65                 self["shortcuts"] = ActionMap(["ShortcutActions", "SetupActions" ],
66                 {
67                         "ok": self.keySave,
68                         "cancel": self.keyCancel,
69                         "red": self.keyCancel,
70                         "green": self.keySave,
71                 }, -2)
72                 self.list = []
73                 ConfigListScreen.__init__(self, self.list,session = self.session)
74                 self["key_red"] = StaticText(_("Cancel"))
75                 self["key_green"] = StaticText(_("Ok"))
76                 self.createSetup()
77                 self.onLayoutFinish.append(self.checkModel)
78                 self.checkModelTimer = eTimer()
79                 self.checkModelTimer.callback.append(self.invalidmodel)
80
81         def getModel(self):
82                 if fileExists("/proc/stb/info/vumodel"):
83                         vumodel = open("/proc/stb/info/vumodel")
84                         info=vumodel.read().strip()
85                         vumodel.close()
86                         if info == "ultimo":
87                                 return True
88                         else:
89                                 return False
90                 else:
91                         return False
92
93         def checkModel(self):
94                 if not self.getModel():
95                         self.checkModelTimer.start(100,True)
96
97         def invalidmodel(self):
98                         self.session.openWithCallback(self.close, MessageBox, _("This Plugin only support for ULTIMO"), MessageBox.TYPE_ERROR, timeout = 30)
99
100
101         def createSetup(self):
102                 self.list = []
103                 self.brightness = getConfigListEntry(_("Touch LED brightness at normal state"), config.plugins.brightnesssetup.brightness)
104                 self.brightness_standby = getConfigListEntry(_("Touch LED brightness at Standby"), config.plugins.brightnesssetup.brightnessstandby)
105                 self.brightness_deepstandby = getConfigListEntry(_("Touch LED brightness at Deep Standby"), config.plugins.brightnesssetup.brightnessdeepstandby)
106                 self.blinkingtime = getConfigListEntry(_("Touch LED blinking time"), config.plugins.brightnesssetup.blinkingtime)
107                 self.list.append( self.brightness )
108                 self.list.append( self.brightness_standby )
109                 self.list.append( self.brightness_deepstandby )
110                 self.list.append( self.blinkingtime )
111                 self["config"].list = self.list
112                 self["config"].l.setList(self.list)
113
114         def saveLEDSetup(self):
115                 brightness = int(config.plugins.brightnesssetup.brightness.value)
116                 brightnessstandby = int(config.plugins.brightnesssetup.brightnessdeepstandby.value)
117                 blinkingtime = int(config.plugins.brightnesssetup.blinkingtime.value)
118                 cmdList = []
119                 cmdList.append( (brightness,LEDOption.BRIGHTNESS) )
120                 cmdList.append( (brightnessstandby,LEDOption.DEEPSTANDBY) )
121                 cmdList.append( (blinkingtime,LEDOption.BLINKINGTIME) )
122                 for ( value, option ) in cmdList:
123                         ret = LEDUpdate(value ,option)
124                         if ret != 0:
125                                 self.session.open(MessageBox, "DEVICE OPEN ERROR", type = MessageBox.TYPE_ERROR, timeout = 30)
126                                 break;
127
128         def keySave(self):
129                 self.saveLEDSetup()
130                 ConfigListScreen.keySave(self)
131
132 def main(session, **kwargs):
133         session.open(LEDBrightnessSetup)
134
135 def Plugins(**kwargs):
136         return [PluginDescriptor(name=_("LED Brightness Setup"), description="Setup LED brightness and blink interval", where = PluginDescriptor.WHERE_PLUGINMENU, needsRestart = False, fnc=main)]
137
138 ledbrightnesssetupstandby = LEDBrightnessSetupStandby()