from Components.ActionMap import ActionMap from Components.Sensors import sensors from Components.Sources.Sensor import SensorSource from Components.Sources.StaticText import StaticText from Components.ConfigList import ConfigListScreen from Components.config import getConfigListEntry from Screens.Screen import Screen from Plugins.Plugin import PluginDescriptor from Components.FanControl import fancontrol class TempFanControl(Screen, ConfigListScreen): skin = """ """ def __init__(self, session, args = None): Screen.__init__(self, session) templist = sensors.getSensorsList(sensors.TYPE_TEMPERATURE) tempcount = len(templist) fanlist = sensors.getSensorsList(sensors.TYPE_FAN_RPM) fancount = len(fanlist) self["red"] = StaticText(_("Cancel")) self["green"] = StaticText(_("OK")) self["yellow"] = StaticText("") self["blue"] = StaticText("") for count in range(8): if count < tempcount: id = templist[count] self["SensorTempText%d" % count] = StaticText(sensors.getSensorName(id)) self["SensorTemp%d" % count] = SensorSource(sensorid = id) else: self["SensorTempText%d" % count] = StaticText("") self["SensorTemp%d" % count] = SensorSource() if count < fancount: id = fanlist[count] self["SensorFanText%d" % count] = StaticText(sensors.getSensorName(id)) self["SensorFan%d" % count] = SensorSource(sensorid = id) else: self["SensorFanText%d" % count] = StaticText("") self["SensorFan%d" % count] = SensorSource() self.list = [] for count in range(fancontrol.getFanCount()): self.list.append(getConfigListEntry(_("Fan %d Voltage") % (count + 1), fancontrol.getConfig(count).vlt)) self.list.append(getConfigListEntry(_("Fan %d PWM") % (count + 1), fancontrol.getConfig(count).pwm)) ConfigListScreen.__init__(self, self.list, session = self.session) #self["config"].list = self.list #self["config"].setList(self.list) self["actions"] = ActionMap(["OkCancelActions", "ColorActions"], { "ok": self.save, "cancel": self.revert, "red": self.revert, "green": self.save }, -1) def save(self): fancontrol.getConfig(0).vlt.save() fancontrol.getConfig(0).pwm.save() self.close() def revert(self): fancontrol.getConfig(0).vlt.load() fancontrol.getConfig(0).pwm.load() self.close() def main(session, **kwargs): session.open(TempFanControl) def Plugins(**kwargs): return PluginDescriptor(name = "Temperature and Fan control", description = _("Temperature and Fan control"), where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc = main)