1 from Components.config import config, ConfigSubList, ConfigSubsection
2 import NavigationInstance
3 from enigma import iRecordableService
4 from Components.ConfigList import ConfigListScreen
5 from Components.config import config, ConfigSubsection, ConfigSelection, ConfigSlider
6 from enigma import eTimer
8 config.plugins.simplefancontrols = ConfigSubsection()
9 config.plugins.simplefancontrols.standbymode = ConfigSelection(default = "yes", choices = [
10 ("no", _("no")), ("yes", _("yes"))])
11 config.plugins.simplefancontrols.pwmvalue = ConfigSlider(default = 10, increment = 5, limits = (0, 255))
15 self.fanoffmode = 'OFF'
16 self.default_pwm_value_onRecordings = 5
17 config.misc.standbyCounter.addNotifier(self.standbyBegin, initial_call = False)
18 if config.plugins.simplefancontrols.pwmvalue.value == 0:
19 self.fanoffmode = 'ON'
20 self.InitTimer = eTimer()
21 if self.initConfig not in self.InitTimer.callback:
22 self.InitTimer.callback.append(self.initConfig)
23 print "<SimpleFancontrol> init : Timer loop start!!"
24 self.InitTimer.startLongTimer(3)
25 print "<SimpleFancontrol> init : self.fanoffmode : ", self.fanoffmode
26 print "<SimpleFancontrol> init : config.plugins.simplefancontrols.pwmvalue.value : ", config.plugins.simplefancontrols.pwmvalue.value
29 print "<SimpleFancontrol>Try initConfig..."
30 if NavigationInstance.instance is None:
31 self.InitTimer.startLongTimer(1)
33 if config.plugins.simplefancontrols.pwmvalue.value == 0:
34 NavigationInstance.instance.record_event.append(self.getRecordEvent_onFanOFF)
35 recordings = NavigationInstance.instance.getRecordings()
36 print "<SimpleFancontrol> initConfig : recordings : ", recordings
38 self.setPWM(self.default_pwm_value_onRecordings)
42 self.setPWM(config.plugins.simplefancontrols.pwmvalue.value)
44 def standbyBegin(self, configElement):
45 print "<SimpleFancontrol> standbyBegin : config.plugins.fancontrols.standbymode.value : ", config.plugins.simplefancontrols.standbymode.value
46 print "<SimpleFancontrol> standbyBegin : self.fanoffmode : ", self.fanoffmode
47 if config.plugins.simplefancontrols.standbymode.value == "yes" and config.plugins.simplefancontrols.pwmvalue > 0:
48 from Screens.Standby import inStandby
49 inStandby.onClose.append(self.StandbyEnd)
50 NavigationInstance.instance.record_event.append(self.getRecordEvent)
51 recordings = NavigationInstance.instance.getRecordings()
56 print "<SimpleFancontrol> Standby End"
57 NavigationInstance.instance.record_event.remove(self.getRecordEvent)
58 if self.getPWM() == 0:
59 self.setPWM(config.plugins.simplefancontrols.pwmvalue.value)
61 def getRecordEvent(self, recservice, event):
62 recordings = len(NavigationInstance.instance.getRecordings())
63 print "<SimpleFancontrol> recordings : %d , event : %d" % (recordings,event)
64 if event == iRecordableService.evEnd:
65 print "<SimpleFancontrol> getRecordEvent : evEnd"
68 elif event == iRecordableService.evStart:
69 print "<SimpleFancontrol> getRecordEvent : evStart"
70 if self.getPWM() == 0:
71 self.setPWM(config.plugins.simplefancontrols.pwmvalue.value)
74 f = open("/proc/stb/fp/fan_pwm", "r")
75 value = int(f.readline().strip(), 16)
77 print "<SimpleFancontrol> getPWM : %d "%value
80 def setPWM(self, value):
81 print "<SimpleFancontrol> setPWM to : %d"%value
82 f = open("/proc/stb/fp/fan_pwm", "w")
86 def appendRecordEventCallback(self):
87 print "<SimpleFancontrol> appendRecordEventCallback "
88 NavigationInstance.instance.record_event.append(self.getRecordEvent_onFanOFF)
89 recordings = NavigationInstance.instance.getRecordings()
91 instandbyon.setPWM(self.default_pwm_value_onRecordings)
93 def removeRecordEventCallback(self):
94 print "<SimpleFancontrol> removeRecordEventCallback "
95 NavigationInstance.instance.record_event.remove(self.getRecordEvent_onFanOFF)
97 def getRecordEvent_onFanOFF(self, recservice, event):
98 recordings = len(NavigationInstance.instance.getRecordings())
99 print "<SimpleFancontrol_> recordings : %d , event : %d" % (recordings,event)
100 if event == iRecordableService.evEnd:
101 print "<SimpleFancontrol_> getRecordEvent : evEnd"
104 elif event == iRecordableService.evStart:
105 print "<SimpleFancontrol_> getRecordEvent : evStart"
106 if self.getPWM() == 0:
107 self.setPWM(self.default_pwm_value_onRecordings)
109 instandbyon = instandbyOn()