60af03cb6b03bcc102bcb62d4afbec252f7cdb74
[vuplus_dvbapp] / lib / python / Plugins / SystemPlugins / TempFanControl / plugin.py
1 from Components.ActionMap import ActionMap
2 from Components.Sensors import sensors
3 from Components.Sources.Sensor import SensorSource
4 from Components.ConfigList import ConfigListScreen
5 from Components.config import getConfigListEntry
6
7 from Screens.Screen import Screen
8
9 from Plugins.Plugin import PluginDescriptor
10 from Components.FanControl import fancontrol
11
12 class TempFanControl(Screen, ConfigListScreen):
13         skin = """
14                 <screen position="100,100" size="550,400" title="Fan Control" >
15                         <!--widget name="text" position="0,0" size="550,400" font="Regular;15" /-->
16                         <widget source="SensorTemp" render="Label" position="380,300" zPosition="1" size="150,20" font="Regular;19" halign="right">
17                                 <convert type="SensorToText"></convert>
18                         </widget>
19                         <widget source="SensorFan" render="Label" position="380,325" zPosition="1" size="150,20" font="Regular;19" halign="right">
20                                 <convert type="SensorToText"></convert>
21                         </widget>
22                         <widget name="config" position="10,10" size="500,225" scrollbarMode="showOnDemand" />
23                 </screen>"""
24         
25         def __init__(self, session, args = None):
26                 Screen.__init__(self, session)
27                 
28                 id = sensors.getSensorsList(sensors.TYPE_TEMPERATURE)[0]                
29                 self["SensorTemp"] = SensorSource(sensorid = id)
30                 id = sensors.getSensorsList(sensors.TYPE_FAN_RPM)[0]            
31                 self["SensorFan"] = SensorSource(sensorid = id, update_interval = 100)
32                 
33                 self.list = []
34                 if fancontrol.getFanCount() > 0:
35                         self.list.append(getConfigListEntry(_("Fan Voltage"), fancontrol.getConfig(0).vlt))
36                         self.list.append(getConfigListEntry(_("Fan PWM"), fancontrol.getConfig(0).pwm))
37                 ConfigListScreen.__init__(self, self.list, session = self.session)
38                 #self["config"].list = self.list
39                 #self["config"].setList(self.list)
40                 
41                 self["actions"] = ActionMap(["OkCancelActions"], 
42                 {
43                         "ok": self.save,
44                         "cancel": self.revert
45                 }, -1)
46                 
47         def save(self):
48                 fancontrol.getConfig(0).vlt.save()
49                 fancontrol.getConfig(0).pwm.save()
50                 self.close()
51                 
52         def revert(self):
53                 fancontrol.getConfig(0).vlt.load()
54                 fancontrol.getConfig(0).pwm.load()
55                 self.close()
56
57 def main(session, **kwargs):
58         session.open(TempFanControl)
59
60 def Plugins(**kwargs):
61         return PluginDescriptor(name = "Temperature and Fan control", description = _("Temperature and Fan control"), where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc = main)
62