1 from Screens.Screen import Screen
2 from Screens.MessageBox import MessageBox
3 from Plugins.Plugin import PluginDescriptor
4 from Components.ActionMap import ActionMap,NumberActionMap
5 from Components.config import config
6 from Components.config import config, getConfigListEntry, ConfigInteger, ConfigSubsection, ConfigSelection
7 from Components.ConfigList import ConfigListScreen
8 from Components.ActionMap import ActionMap
9 from Components.Sources.StaticText import StaticText
12 config.plugins.fancontrols = ConfigSubsection()
13 config.plugins.fancontrols.standbymode = ConfigSelection(default = "off", choices = [
14 ("off", _("off")), ("on", _("on"))])
15 config.plugins.fancontrols.usetimer = ConfigSelection(default = "off", choices = [
16 ("off", _("no")), ("on", _("yes"))])
17 config.plugins.fancontrols.fanontime = ConfigInteger(default = 1, limits = (1, 100))
18 config.plugins.fancontrols.fanofftime = ConfigInteger(default = 1, limits = (1, 100))
20 class FancontrolConfiguration(Screen, ConfigListScreen):
22 <screen name="FancontrolConfiguration" position="center,center" size="560,300" title="Fancontrol settings" >
23 <ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" alphatest="on" />
24 <ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" alphatest="on" />
25 <widget source="key_red" render="Label" position="0,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" foregroundColor="#ececec" backgroundColor="#9f1313" transparent="1" />
26 <widget source="key_green" render="Label" position="140,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" foregroundColor="#ececec" backgroundColor="#1f771f" transparent="1" />
27 <widget name="config" zPosition="2" position="5,50" size="550,200" scrollbarMode="showOnDemand" transparent="1" />
29 def __init__(self, session):
30 Screen.__init__(self, session)
31 self.session = session
32 self.standbyEntry = None
33 self.usetimerEntry = None
34 self.fanontimeEntry = None
35 self.fanofftimeEntry = None
37 self["shortcuts"] = ActionMap(["ShortcutActions", "SetupActions" ],
40 "cancel": self.keyCancel,
41 "red": self.keyCancel,
42 "green": self.keySave,
46 ConfigListScreen.__init__(self, self.list,session = self.session)
50 self["key_red"] = StaticText(_("Close"))
51 self["key_green"] = StaticText(_("Save"))
54 ConfigListScreen.keyLeft(self)
58 ConfigListScreen.keyRight(self)
63 fd=open('/proc/stb/system/standby_fan_off','r')
65 config.plugins.fancontrols.standbymode.value="off"
67 config.plugins.fancontrols.standbymode.value="on"
69 fd=open('/proc/stb/system/use_fan_timer','r')
71 config.plugins.fancontrols.usetimer.value = "off"
73 config.plugins.fancontrols.usetimer.value = "on"
75 fd=open('/proc/stb/system/fan_on_time','r')
77 if time > 0 and time < 101:
78 config.plugins.fancontrols.fanontime.value = time
80 config.plugins.fancontrols.fanontime.value = 1
82 fd=open('/proc/stb/system/fan_off_time','r')
84 if time > 0 and time < 101:
85 config.plugins.fancontrols.fanofftime.value = time
87 config.plugins.fancontrols.fanofftime.value = 1
89 # print config.plugins.fancontrols.standbymode.value, config.plugins.fancontrols.usetimer.value
90 # print config.plugins.fancontrols.fanontime.value,config.plugins.fancontrols.fanofftime.value
92 print 'Error read proc of fan'
95 def createSetup(self):
97 self.standbyEntry = getConfigListEntry(_("Standbymode Fan control"), config.plugins.fancontrols.standbymode)
98 self.usetimerEntry = getConfigListEntry(_("Use Fan timer"), config.plugins.fancontrols.usetimer)
99 self.fanontimeEntry = getConfigListEntry(_("Fan on time"), config.plugins.fancontrols.fanontime)
100 self.fanofftimeEntry = getConfigListEntry(_("Fan off time"), config.plugins.fancontrols.fanofftime)
102 self.list.append( self.standbyEntry )
103 self.list.append( self.usetimerEntry )
104 if config.plugins.fancontrols.usetimer.value is not "off":
105 self.list.append( self.fanontimeEntry )
106 self.list.append( self.fanofftimeEntry )
108 self["config"].list = self.list
109 self["config"].l.setList(self.list)
110 if not self.selectionChanged in self["config"].onSelectionChanged:
111 self["config"].onSelectionChanged.append(self.selectionChanged)
114 if self["config"].getCurrent() == self.usetimerEntry:
117 def selectionChanged(self):
118 current = self["config"].getCurrent()
121 def cancelConfirm(self, result):
124 for x in self["config"].list:
131 if self["config"].isChanged():
132 self.session.openWithCallback(self.cancelConfirm, MessageBox, _("Really close without saving settings?"))
137 if self["config"].isChanged():
138 ConfigListScreen.keySave(self)
140 fd=open('/proc/stb/system/standby_fan_off','w')
141 if config.plugins.fancontrols.standbymode.value is not "off":
146 fd=open('/proc/stb/system/use_fan_timer','w')
147 if config.plugins.fancontrols.usetimer.value is not "off":
150 fd=open('/proc/stb/system/fan_on_time','w')
151 fd.write('%s'%config.plugins.fancontrols.fanontime.value)
153 fd=open('/proc/stb/system/fan_off_time','w')
154 fd.write('%s'%config.plugins.fancontrols.fanofftime.value)
160 print 'Error write proc of fan'
165 def openconfig(session, **kwargs):
166 session.open(FancontrolConfiguration)
168 def selSetup(menuid, **kwargs):
169 if menuid != "system":
172 return [(_("Fan Control") + "...", openconfig, "fancontrol_config", 70)]
174 def Plugins(**kwargs):
175 return PluginDescriptor(name=_("Fan control"), description="Fan Control", where = PluginDescriptor.WHERE_MENU, fnc=selSetup)