refs bug #429
[enigma2.git] / lib / python / Components / RFmod.py
index 6c7214b..a8f7c9f 100644 (file)
@@ -1,16 +1,21 @@
-from config import *
-from enigma import *
+from config import config, ConfigSelection, ConfigSubsection, ConfigOnOff, ConfigSlider
+from enigma import eRFmod
+from Components.SystemInfo import SystemInfo
+
+# CHECK ME.
+RFMOD_CHANNEL_MIN = 21
+RFMOD_CHANNEL_MAX = 69 + 1
 
 class RFmod:
        def __init__(self):
                pass
 
        def setFunction(self, value):
-               eRFmod.getInstance().setFunction(value)
+               eRFmod.getInstance().setFunction(not value)
        def setTestmode(self, value):
                eRFmod.getInstance().setTestmode(value)
        def setSoundFunction(self, value):
-               eRFmod.getInstance().setSoundFunction(value)
+               eRFmod.getInstance().setSoundFunction(not value)
        def setSoundCarrier(self, value):
                eRFmod.getInstance().setSoundCarrier(value)
        def setChannel(self, value):
@@ -19,34 +24,36 @@ class RFmod:
                eRFmod.getInstance().setFinetune(value)
 
 def InitRFmod():
+       detected = eRFmod.getInstance().detected()
+       SystemInfo["RfModulator"] = detected
+       if detected:
+               config.rfmod = ConfigSubsection()
+               config.rfmod.enable = ConfigOnOff(default=False)
+               config.rfmod.test = ConfigOnOff(default=False)
+               config.rfmod.sound = ConfigOnOff(default=True)
+               config.rfmod.soundcarrier = ConfigSelection(choices=[("4500","4.5 MHz"), ("5500", "5.5 MHz"), ("6000", "6.0 MHz"), ("6500", "6.5 MHz")], default="5500")
+               config.rfmod.channel = ConfigSelection(default = "36", choices = ["%d" % x for x in range(RFMOD_CHANNEL_MIN, RFMOD_CHANNEL_MAX)])
+               config.rfmod.finetune = ConfigSlider(default=5, limits=(1, 10))
 
-       config.rfmod = ConfigSubsection();
-       config.rfmod.enable = configElement("config.rfmod.enable", configSelection, 1, (("enable", _("Enable")), ("disable", _("Disable"))) );
-       config.rfmod.test = configElement("config.rfmod.test", configSelection, 0, (("disable", _("Disable")), ("enable", _("Enable"))) );
-       config.rfmod.sound = configElement("config.rfmod.sound", configSelection, 0, (("enable", _("Enable")), ("disable", _("Disable"))) );
-       config.rfmod.soundcarrier = configElement("config.rfmod.soundcarrier", configSelection, 1, ("4.5 MHz", "5.5 MHz", "6.0 MHz", "6.5 MHz") );
-       config.rfmod.channel = configElement("config.rfmod.channel", configSelection, 6, ("30", "31", "32", "33", "34", "35", "36", "37", "38", "39") );
-       config.rfmod.finetune = configElement("config.rfmod.finetune", configSlider, 5, (1, 10));
-
-       iRFmod = RFmod()
+               iRFmod = RFmod()
 
-       def setFunction(configElement):
-               iRFmod.setFunction(configElement.value);
-       def setTestmode(configElement):
-               iRFmod.setTestmode(configElement.value);
-       def setSoundFunction(configElement):
-               iRFmod.setSoundFunction(configElement.value);
-       def setSoundCarrier(configElement):
-               iRFmod.setSoundCarrier(configElement.value);
-       def setChannel(configElement):
-               iRFmod.setChannel(configElement.value +  30);
-       def setFinetune(configElement):
-               iRFmod.setFinetune(configElement.value - 5);
+               def setFunction(configElement):
+                       iRFmod.setFunction(configElement.value);
+               def setTestmode(configElement):
+                       iRFmod.setTestmode(configElement.value);
+               def setSoundFunction(configElement):
+                       iRFmod.setSoundFunction(configElement.value);
+               def setSoundCarrier(configElement):
+                       iRFmod.setSoundCarrier(configElement.index);
+               def setChannel(configElement):
+                       iRFmod.setChannel(int(configElement.value));
+               def setFinetune(configElement):
+                       iRFmod.setFinetune(configElement.value - 5);
 
-       # this will call the "setup-val" initial
-       config.rfmod.enable.addNotifier(setFunction);
-       config.rfmod.test.addNotifier(setTestmode);
-       config.rfmod.sound.addNotifier(setSoundFunction);
-       config.rfmod.soundcarrier.addNotifier(setSoundCarrier);
-       config.rfmod.channel.addNotifier(setChannel);
-       config.rfmod.finetune.addNotifier(setFinetune);
+               # this will call the "setup-val" initial
+               config.rfmod.enable.addNotifier(setFunction);
+               config.rfmod.test.addNotifier(setTestmode);
+               config.rfmod.sound.addNotifier(setSoundFunction);
+               config.rfmod.soundcarrier.addNotifier(setSoundCarrier);
+               config.rfmod.channel.addNotifier(setChannel);
+               config.rfmod.finetune.addNotifier(setFinetune);