From 4c42f488a12663090df186a29cbfbc828cabfcf0 Mon Sep 17 00:00:00 2001 From: "Chang.H.S" Date: Tue, 5 Jul 2011 17:50:17 +0900 Subject: [PATCH] ManualFancontrol : ADD ManualFancontrol Plugin --- configure.ac | 2 + lib/python/Plugins/SystemPlugins/Makefile.am | 2 +- .../SystemPlugins/ManualFancontrol/InstandbyOn.py | 60 +++++++++++++++ .../SystemPlugins/ManualFancontrol/Makefile.am | 8 ++ .../SystemPlugins/ManualFancontrol/__init__.py | 0 .../ManualFancontrol/meta/Makefile.am | 3 + .../meta/plugin_manualfancontrol.xml | 17 +++++ .../SystemPlugins/ManualFancontrol/plugin.py | 87 ++++++++++++++++++++++ 8 files changed, 178 insertions(+), 1 deletion(-) create mode 100755 lib/python/Plugins/SystemPlugins/ManualFancontrol/InstandbyOn.py create mode 100644 lib/python/Plugins/SystemPlugins/ManualFancontrol/Makefile.am create mode 100755 lib/python/Plugins/SystemPlugins/ManualFancontrol/__init__.py create mode 100755 lib/python/Plugins/SystemPlugins/ManualFancontrol/meta/Makefile.am create mode 100755 lib/python/Plugins/SystemPlugins/ManualFancontrol/meta/plugin_manualfancontrol.xml create mode 100755 lib/python/Plugins/SystemPlugins/ManualFancontrol/plugin.py diff --git a/configure.ac b/configure.ac index ccb1e00..480da58 100644 --- a/configure.ac +++ b/configure.ac @@ -207,6 +207,8 @@ lib/python/Plugins/SystemPlugins/FPGAUpgrade/Makefile lib/python/Plugins/SystemPlugins/FPGAUpgrade/meta/Makefile lib/python/Plugins/SystemPlugins/WirelessLanSetup/Makefile lib/python/Plugins/SystemPlugins/WirelessLanSetup/meta/Makefile +lib/python/Plugins/SystemPlugins/ManualFancontrol/Makefile +lib/python/Plugins/SystemPlugins/ManualFancontrol/meta/Makefile lib/python/Tools/Makefile lib/service/Makefile lib/components/Makefile diff --git a/lib/python/Plugins/SystemPlugins/Makefile.am b/lib/python/Plugins/SystemPlugins/Makefile.am index 3594da2..98e3600 100755 --- a/lib/python/Plugins/SystemPlugins/Makefile.am +++ b/lib/python/Plugins/SystemPlugins/Makefile.am @@ -4,7 +4,7 @@ SUBDIRS = SoftwareManager FrontprocessorUpgrade PositionerSetup Satfinder \ SkinSelector SatelliteEquipmentControl Videomode VideoTune Hotplug \ DefaultServicesScanner NFIFlash DiseqcTester CommonInterfaceAssignment \ CrashlogAutoSubmit CleanupWizard VideoEnhancement WirelessLan NetworkWizard \ - TempFanControl FactoryTest Fancontrol FPGAUpgrade WirelessLanSetup + TempFanControl FactoryTest Fancontrol FPGAUpgrade WirelessLanSetup ManualFancontrol install_PYTHON = \ __init__.py diff --git a/lib/python/Plugins/SystemPlugins/ManualFancontrol/InstandbyOn.py b/lib/python/Plugins/SystemPlugins/ManualFancontrol/InstandbyOn.py new file mode 100755 index 0000000..b7eb5ae --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/ManualFancontrol/InstandbyOn.py @@ -0,0 +1,60 @@ +from Components.config import config, ConfigSubList, ConfigSubsection +import NavigationInstance +from enigma import iRecordableService +from Components.ConfigList import ConfigListScreen +from Components.config import config, getConfigListEntry, ConfigSubsection, ConfigSelection, ConfigInteger, ConfigSlider + +config.plugins.simplefancontrols = ConfigSubsection() +config.plugins.simplefancontrols.standbymode = ConfigSelection(default = "on", choices = [ + ("off", _("off")), ("on", _("on"))]) +config.plugins.simplefancontrols.recordingmode = ConfigSelection(default = "on", choices = [ + ("off", _("no")), ("on", _("yes"))]) +config.plugins.simplefancontrols.pwmvalue = ConfigSlider(default = 100, increment = 5, limits = (5, 255)) + +class instandbyOn: + def __init__(self): + config.misc.standbyCounter.addNotifier(self.standbyBegin, initial_call = False) + + def standbyBegin(self, configElement): + print " config.plugins.fancontrols.standbymode.value : ", config.plugins.simplefancontrols.standbymode.value + if config.plugins.simplefancontrols.standbymode.value == "on": + from Screens.Standby import inStandby + inStandby.onClose.append(self.StandbyEnd) + NavigationInstance.instance.record_event.append(self.getRecordEvent) + recordings = NavigationInstance.instance.getRecordings() + if not recordings: + self.setPWM(0) + + def StandbyEnd(self): + print " Standby End" + NavigationInstance.instance.record_event.remove(self.getRecordEvent) + if self.getPWM() == 0: + self.setPWM(config.plugins.simplefancontrols.pwmvalue.value) + + def getRecordEvent(self, recservice, event): + recordings = len(NavigationInstance.instance.getRecordings()) + print " recordings : %d , event : %d" % (recordings,event) + if event == iRecordableService.evEnd: + print " getRecordEvent : evEnd" + if recordings == 0: + self.setPWM(0) + elif event == iRecordableService.evStart: + print " getRecordEvent : evStart" + if self.getPWM() == 0: + self.setPWM(config.plugins.simplefancontrols.pwmvalue.value) + + def getPWM(self): + f = open("/proc/stb/fp/fan_pwm", "r") + value = int(f.readline().strip(), 16) + f.close() + print " getPWM : %d "%value + return value + + def setPWM(self, value): + print " setPWM to : %d"%value + f = open("/proc/stb/fp/fan_pwm", "w") + f.write("%x" % value) + f.close() + +instandbyon = instandbyOn() + diff --git a/lib/python/Plugins/SystemPlugins/ManualFancontrol/Makefile.am b/lib/python/Plugins/SystemPlugins/ManualFancontrol/Makefile.am new file mode 100644 index 0000000..39b1ce6 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/ManualFancontrol/Makefile.am @@ -0,0 +1,8 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/ManualFancontrol + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py \ + plugin.py \ + InstandbyOn.py diff --git a/lib/python/Plugins/SystemPlugins/ManualFancontrol/__init__.py b/lib/python/Plugins/SystemPlugins/ManualFancontrol/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/ManualFancontrol/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/ManualFancontrol/meta/Makefile.am new file mode 100755 index 0000000..f9b1ebc --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/ManualFancontrol/meta/Makefile.am @@ -0,0 +1,3 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_manualfancontrol.xml diff --git a/lib/python/Plugins/SystemPlugins/ManualFancontrol/meta/plugin_manualfancontrol.xml b/lib/python/Plugins/SystemPlugins/ManualFancontrol/meta/plugin_manualfancontrol.xml new file mode 100755 index 0000000..c4e814e --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/ManualFancontrol/meta/plugin_manualfancontrol.xml @@ -0,0 +1,17 @@ + + + + + + hschang + ManualFancontrol + enigma2-plugin-systemplugins-manualfancontrol + Fancontrol Settings inStandby Mode + Fancontrol Settings inStandby Mode + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/ManualFancontrol/plugin.py b/lib/python/Plugins/SystemPlugins/ManualFancontrol/plugin.py new file mode 100755 index 0000000..4574e0f --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/ManualFancontrol/plugin.py @@ -0,0 +1,87 @@ +from Screens.Screen import Screen +from Components.ConfigList import ConfigListScreen +from Components.config import config, getConfigListEntry, ConfigSubsection, ConfigSelection, ConfigInteger +from Components.ActionMap import ActionMap,NumberActionMap +from Screens.MessageBox import MessageBox +from Components.Sources.StaticText import StaticText +from Plugins.Plugin import PluginDescriptor +from Plugins.SystemPlugins.ManualFancontrol.InstandbyOn import instandbyon + +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" ], + { + "ok": self.keySave, + "cancel": self.keyCancel, + "red": self.keyCancel, + "green": self.keySave, + }, -2) + self.list = [] + ConfigListScreen.__init__(self, self.list,session = self.session) + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("Save")) + self["current"] = StaticText(_(" ")) + self.createSetup() + + def displayCurrentValue(self): + cur = self["config"].getCurrent()[0] + val = self["config"].getCurrent()[1].value + currrent_val = cur+" : "+str(val) + 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): + ConfigListScreen.keyLeft(self) + self.newConfig() + self.selectionChanged() + + def keyRight(self): + ConfigListScreen.keyRight(self) + self.newConfig() + 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 ) + self.list.append( self.pwmEntry ) + self["config"].list = self.list + self["config"].l.setList(self.list) + 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() + + def keySave(self): + ConfigListScreen.keySave(self) + + def keyCancel(self): + ConfigListScreen.keyCancel(self) + +def main(session, **kwargs): + session.open(ManualFancontrol) + +def Plugins(**kwargs): + return [PluginDescriptor(name=_("Manual Fan control"), description="setup Fancontol inStandby mode", where = PluginDescriptor.WHERE_PLUGINMENU, needsRestart = True, fnc=main)] -- 2.7.4