from Components.Sources.StaticText import StaticText
from Plugins.Plugin import PluginDescriptor
from Plugins.SystemPlugins.ManualFancontrol.InstandbyOn import instandbyon
+import NavigationInstance
class ManualFancontrol(Screen,ConfigListScreen):
skin = """
def __init__(self,session):
Screen.__init__(self,session)
- print "init"
- self.setup_title="TestSetupTitle"
self.session = session
self["shortcuts"] = ActionMap(["ShortcutActions", "SetupActions" ],
{
self["key_red"] = StaticText(_("Cancel"))
self["key_green"] = StaticText(_("Save"))
self["current"] = StaticText(_(" "))
- self.createSetup()
+ self.configSetup()
+ self.oldfanoffmode = instandbyon.fanoffmode
+ if instandbyon.fanoffmode is 'ON' :
+ instandbyon.checkStatusLoopStop()
def displayCurrentValue(self):
- cur = self["config"].getCurrent()[0]
- val = self["config"].getCurrent()[1].value
- currrent_val = cur+" : "+str(val)
+ currrent_val = self["config"].getCurrent()[0]+" : "+str(self["config"].getCurrent()[1].value)
self["current"].setText(_(currrent_val))
print currrent_val
def selectionChanged(self):
- self.displayCurrentValue()
if self["config"].getCurrent() == self.pwmEntry:
instandbyon.setPWM(self["config"].getCurrent()[1].value)
def keyLeft(self):
+ oldpwmvalue=config.plugins.manualfancontrols.pwmvalue.value
ConfigListScreen.keyLeft(self)
- self.newConfig()
+ if self["config"].getCurrent() == self.pwmEntry and oldpwmvalue == 5:
+ self.createSetup()
+ else:
+ self.displayCurrentValue()
self.selectionChanged()
def keyRight(self):
+ oldpwmvalue=config.plugins.manualfancontrols.pwmvalue.value
ConfigListScreen.keyRight(self)
- self.newConfig()
+ if self["config"].getCurrent() == self.pwmEntry and oldpwmvalue == 0:
+ self.createSetup()
+ while self["config"].getCurrent() != self.pwmEntry:
+ self["config"].setCurrentIndex(self["config"].getCurrentIndex()+1)
+ else:
+ self.displayCurrentValue()
self.selectionChanged()
def createSetup(self):
self.list = []
- self.standbyEntry = getConfigListEntry(_("FanOFF InStanby"), config.plugins.simplefancontrols.standbymode)
- self.pwmEntry = getConfigListEntry(_("PWM value"), config.plugins.simplefancontrols.pwmvalue)
- self.list.append( self.standbyEntry )
+ if config.plugins.manualfancontrols.pwmvalue.value > 0:
+ self.list.append( self.standbyEntry )
self.list.append( self.pwmEntry )
+ self.list.append( self.periodEntry )
self["config"].list = self.list
self["config"].l.setList(self.list)
+
+ def configSetup(self):
+ self.standbyEntry = getConfigListEntry(_("FanOFF InStanby"), config.plugins.manualfancontrols.standbymode)
+ self.pwmEntry = getConfigListEntry(_("PWM value"), config.plugins.manualfancontrols.pwmvalue)
+ self.periodEntry = getConfigListEntry(_("Status Check Period"), config.plugins.manualfancontrols.checkperiod)
if not self.displayCurrentValue in self["config"].onSelectionChanged:
self["config"].onSelectionChanged.append(self.displayCurrentValue)
-
- def newConfig(self):
- if self["config"].getCurrent() == self.standbyEntry:
- self.createSetup()
+ self.createSetup()
def keySave(self):
+ if instandbyon.fanoffmode is 'OFF' and config.plugins.manualfancontrols.pwmvalue.value == 0:
+ print "<SimpleFancontrol> instandbyon.fanoffmode 'OFF' -> 'ON'"
+ instandbyon.fanoffmode = 'ON'
+ instandbyon.addRecordEventCB()
+ instandbyon.checkStatusLoopStart()
+ elif instandbyon.fanoffmode is 'ON' and config.plugins.manualfancontrols.pwmvalue.value != 0:
+ print "<SimpleFancontrol> instandbyon.fanoffmode 'ON' -> 'OFF'"
+ instandbyon.fanoffmode = 'OFF'
+ instandbyon.removeRecordEventCB()
+# instandbyon.checkStatusLoopStop() # stoped at init
+ elif self.oldfanoffmode is 'ON' :
+ instandbyon.checkStatusLoopStart()
+ instandbyon.checkStstus()
ConfigListScreen.keySave(self)
+ def cancelConfirm(self, result):
+ if not result:
+ return
+ for x in self["config"].list:
+ x[1].cancel()
+ instandbyon.checkStstus()
+ self.oldfanoffmode = instandbyon.fanoffmode
+ if self.oldfanoffmode is 'ON' :
+ instandbyon.checkStatusLoopStart()
+ self.close()
+
def keyCancel(self):
- ConfigListScreen.keyCancel(self)
+ if self["config"].isChanged():
+ self.session.openWithCallback(self.cancelConfirm, MessageBox, _("Really close without saving settings?"))
+ else:
+ instandbyon.checkStstus()
+ if self.oldfanoffmode is 'ON' :
+ instandbyon.checkStatusLoopStart()
+ self.close()
def main(session, **kwargs):
session.open(ManualFancontrol)