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 currentPWM = self.getPWM()
35 NavigationInstance.instance.record_event.append(self.getRecordEvent_onFanOFF)
36 recordings = NavigationInstance.instance.getRecordings()
37 print "<SimpleFancontrol> initConfig : recordings : ", recordings
38 if recordings and currentPWM != self.default_pwm_value_onRecordings:
39 self.setPWM(self.default_pwm_value_onRecordings)
40 elif not recordings and currentPWM > 0:
43 print "<SimpleFancontrol> initConfig : setPWM pass"
44 elif self.getPWM() != config.plugins.simplefancontrols.pwmvalue.value:
45 self.setPWM(config.plugins.simplefancontrols.pwmvalue.value)
47 def standbyBegin(self, configElement):
48 print "<SimpleFancontrol> standbyBegin : config.plugins.fancontrols.standbymode.value : ", config.plugins.simplefancontrols.standbymode.value
49 print "<SimpleFancontrol> standbyBegin : self.fanoffmode : ", self.fanoffmode
50 if config.plugins.simplefancontrols.standbymode.value == "yes" and config.plugins.simplefancontrols.pwmvalue > 0:
51 from Screens.Standby import inStandby
52 inStandby.onClose.append(self.StandbyEnd)
53 NavigationInstance.instance.record_event.append(self.getRecordEvent)
54 recordings = NavigationInstance.instance.getRecordings()
59 print "<SimpleFancontrol> Standby End"
60 NavigationInstance.instance.record_event.remove(self.getRecordEvent)
61 if self.getPWM() == 0:
62 self.setPWM(config.plugins.simplefancontrols.pwmvalue.value)
64 def getRecordEvent(self, recservice, event):
65 recordings = len(NavigationInstance.instance.getRecordings())
66 print "<SimpleFancontrol> recordings : %d , event : %d" % (recordings,event)
67 if event == iRecordableService.evEnd:
68 print "<SimpleFancontrol> getRecordEvent : evEnd"
71 elif event == iRecordableService.evStart:
72 print "<SimpleFancontrol> getRecordEvent : evStart"
73 if self.getPWM() == 0:
74 self.setPWM(config.plugins.simplefancontrols.pwmvalue.value)
77 f = open("/proc/stb/fp/fan_pwm", "r")
78 value = int(f.readline().strip(), 16)
80 print "<SimpleFancontrol> getPWM : %d "%value
83 def setPWM(self, value):
84 print "<SimpleFancontrol> setPWM to : %d"%value
85 f = open("/proc/stb/fp/fan_pwm", "w")
89 def appendRecordEventCallback(self):
90 print "<SimpleFancontrol> appendRecordEventCallback "
91 NavigationInstance.instance.record_event.append(self.getRecordEvent_onFanOFF)
92 recordings = NavigationInstance.instance.getRecordings()
94 instandbyon.setPWM(self.default_pwm_value_onRecordings)
96 def removeRecordEventCallback(self):
97 print "<SimpleFancontrol> removeRecordEventCallback "
98 NavigationInstance.instance.record_event.remove(self.getRecordEvent_onFanOFF)
100 def getRecordEvent_onFanOFF(self, recservice, event):
101 recordings = len(NavigationInstance.instance.getRecordings())
102 print "<SimpleFancontrol_> recordings : %d , event : %d" % (recordings,event)
103 if event == iRecordableService.evEnd:
104 print "<SimpleFancontrol_> getRecordEvent : evEnd"
107 elif event == iRecordableService.evStart:
108 print "<SimpleFancontrol_> getRecordEvent : evStart"
109 if self.getPWM() == 0:
110 self.setPWM(self.default_pwm_value_onRecordings)
112 instandbyon = instandbyOn()