Merge branch 'master' of fraxinas@git.opendreambox.org:/git/enigma2
authorFraxinas <andreas.frisch@multimedia-labs.de>
Fri, 20 Feb 2009 10:39:29 +0000 (11:39 +0100)
committerFraxinas <andreas.frisch@multimedia-labs.de>
Fri, 20 Feb 2009 10:39:29 +0000 (11:39 +0100)
lib/dvb/dvbtime.cpp
lib/dvb/sec.cpp
lib/dvb/sec.h
lib/gui/elistboxcontent.cpp
lib/python/Components/NimManager.py
lib/python/Components/config.py
lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/plugin.py

index d879cfa..89650f2 100644 (file)
@@ -145,7 +145,7 @@ eDVBLocalTimeHandler *eDVBLocalTimeHandler::instance;
 DEFINE_REF(eDVBLocalTimeHandler);
 
 eDVBLocalTimeHandler::eDVBLocalTimeHandler()
-       :m_time_ready(false), m_updateNonTunedTimer(eTimer::create(eApp))
+       :m_updateNonTunedTimer(eTimer::create(eApp)), m_time_ready(false)
 {
        if ( !instance )
                instance=this;
index ac1a202..8aa0631 100644 (file)
@@ -563,7 +563,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
                                                compare.tone = iDVBFrontend::toneOff;
                                                sec_sequence.push_back( eSecCommand(eSecCommand::IF_TONE_GOTO, compare) );
                                                sec_sequence.push_back( eSecCommand(eSecCommand::SET_TONE, iDVBFrontend::toneOff) );
-                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_CONT_TONE]) );
+                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_CONT_TONE_DISABLE_BEFORE_DISEQC]) );
 
                                                if (diseqc13V)
                                                        vlt = iDVBFrontend::voltage13;
@@ -705,7 +705,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
                                                        compare.tone = iDVBFrontend::toneOff;
                                                        sec_sequence.push_back( eSecCommand(eSecCommand::IF_TONE_GOTO, compare) );
                                                        sec_sequence.push_back( eSecCommand(eSecCommand::SET_TONE, iDVBFrontend::toneOff) );
-                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_CONT_TONE]) );
+                                                       sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_CONT_TONE_DISABLE_BEFORE_DISEQC]) );
 
                                                        compare.voltage = iDVBFrontend::voltageOff;
                                                        compare.steps = +4;
@@ -839,7 +839,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
                                                                compare.tone = tone;
                                                                sec_sequence.push_back( eSecCommand(eSecCommand::IF_TONE_GOTO, compare) );
                                                                sec_sequence.push_back( eSecCommand(eSecCommand::SET_TONE, tone) );
-                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_CONT_TONE]) );
+                                                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_FINAL_CONT_TONE_CHANGE]) );
                                                                sec_sequence.push_back( eSecCommand(eSecCommand::SET_FRONTEND) );
        
                                                                cmd.direction=1;  // check for running rotor
@@ -884,7 +884,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
                                compare.tone = tone;
                                sec_sequence.push_back( eSecCommand(eSecCommand::IF_TONE_GOTO, compare) );
                                sec_sequence.push_back( eSecCommand(eSecCommand::SET_TONE, tone) );
-                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_CONT_TONE]) );
+                               sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_FINAL_CONT_TONE_CHANGE]) );
                        }
 
                        sec_sequence.push_back( eSecCommand(eSecCommand::UPDATE_CURRENT_SWITCHPARMS) );
index 5bff6bf..5d96932 100644 (file)
@@ -271,7 +271,8 @@ class eDVBSatelliteEquipmentControl: public iDVBSatelliteEquipmentControl
        DECLARE_REF(eDVBSatelliteEquipmentControl);
 public:
        enum {
-               DELAY_AFTER_CONT_TONE=0,  // delay after continuous tone change
+               DELAY_AFTER_CONT_TONE_DISABLE_BEFORE_DISEQC=0,  // delay after continuous tone disable before diseqc command
+               DELAY_AFTER_FINAL_CONT_TONE_CHANGE, // delay after continuous tone change before tune
                DELAY_AFTER_FINAL_VOLTAGE_CHANGE, // delay after voltage change at end of complete sequence
                DELAY_BETWEEN_DISEQC_REPEATS, // delay between repeated diseqc commands
                DELAY_AFTER_LAST_DISEQC_CMD, // delay after last diseqc command
index 44973af..bf183f9 100644 (file)
@@ -779,6 +779,10 @@ void eListboxPythonMultiContent::paint(gPainter &painter, eWindowStyle &style, c
                                if (PyInt_Check(pstring) && data) /* if the string is in fact a number, it refers to the 'data' list. */
                                        pstring = PyTuple_GetItem(data, PyInt_AsLong(pstring));
 
+                                                       /* don't do anything if we have 'None' as string */
+                               if (pstring == Py_None)
+                                       continue;
+
                                const char *string = (PyString_Check(pstring)) ? PyString_AsString(pstring) : "<not-a-string>";
                                int x = PyInt_AsLong(px) + offset.x();
                                int y = PyInt_AsLong(py) + offset.y();
@@ -945,6 +949,10 @@ void eListboxPythonMultiContent::paint(gPainter &painter, eWindowStyle &style, c
                                if (PyInt_Check(ppixmap) && data) /* if the pixemap is in fact a number, it refers to the 'data' list. */
                                        ppixmap = PyTuple_GetItem(data, PyInt_AsLong(ppixmap));
 
+                                                       /* don't do anything if we have 'None' as pixmap */
+                               if (ppixmap == Py_None)
+                                       continue;
+
                                int x = PyInt_AsLong(px) + offset.x();
                                int y = PyInt_AsLong(py) + offset.y();
                                int width = PyInt_AsLong(pwidth);
index 6dc49dc..75ad377 100644 (file)
@@ -835,9 +835,13 @@ class NimManager:
 def InitSecParams():
        config.sec = ConfigSubsection()
 
-       x = ConfigInteger(default=15, limits = (0, 9999))
-       x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_AFTER_CONT_TONE, configElement.value))
-       config.sec.delay_after_continuous_tone_change = x
+       x = ConfigInteger(default=25, limits = (0, 9999))
+       x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_AFTER_CONT_TONE_DISABLE_BEFORE_DISEQC, configElement.value))
+       config.sec.delay_after_continuous_tone_disable_before_diseqc = x
+
+       x = ConfigInteger(default=10, limits = (0, 9999))
+       x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_AFTER_FINAL_CONT_TONE_CHANGE, configElement.value))
+       config.sec.delay_after_final_continuous_tone_change = x
 
        x = ConfigInteger(default=10, limits = (0, 9999))
        x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_AFTER_FINAL_VOLTAGE_CHANGE, configElement.value))
index a6d3415..e3a29b5 100755 (executable)
@@ -279,6 +279,7 @@ class ConfigSelection(ConfigElement):
                if default is None:
                        default = self.choices.default()
 
+               self._descr = None
                self.default = self._value = self.last_value = default
                self.changed()
 
@@ -296,6 +297,7 @@ class ConfigSelection(ConfigElement):
                        self._value = value
                else:
                        self._value = self.default
+               self._descr = None
                self.changed()
 
        def tostring(self, val):
@@ -307,7 +309,7 @@ class ConfigSelection(ConfigElement):
        def setCurrentText(self, text):
                i = self.choices.index(self.value)
                self.choices[i] = text
-               self.description[text] = text
+               self._descr = self.description[text] = text
                self._value = text
 
        value = property(getValue, setValue)
@@ -336,13 +338,18 @@ class ConfigSelection(ConfigElement):
                self.value = self.choices[(i + 1) % nchoices]
 
        def getText(self):
-               descr = self.description[self.value]
+               if self._descr is not None:
+                       return self._descr
+               descr = self._descr = self.description[self.value]
                if descr:
                        return _(descr)
                return descr
 
        def getMulti(self, selected):
-               descr = self.description[self.value]
+               if self._descr is not None:
+                       descr = self._descr
+               else:
+                       descr = self._descr = self.description[self.value]
                if descr:
                        return ("text", _(descr))
                return ("text", descr)
index ec223d3..ec472e7 100644 (file)
@@ -25,7 +25,8 @@ class SecParameterSetup(Screen, ConfigListScreen):
                list = [
                        ("Delay after diseqc reset command", config.sec.delay_after_diseqc_reset_cmd),
                        ("Delay after diseqc peripherial poweron command", config.sec.delay_after_diseqc_peripherial_poweron_cmd),
-                       ("Delay after continuous tone change", config.sec.delay_after_continuous_tone_change),
+                       ("Delay after continuous tone disable before diseqc", config.sec.delay_after_continuous_tone_disable_before_diseqc),
+                       ("Delay after final continuous tone change", config.sec.delay_after_final_continuous_tone_change),
                        ("Delay after last voltage change", config.sec.delay_after_final_voltage_change),
                        ("Delay between diseqc commands", config.sec.delay_between_diseqc_repeats),
                        ("Delay after last diseqc command", config.sec.delay_after_last_diseqc_command),