Merge branch '219_negative_ac3_pcm_delay'
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Wed, 4 Nov 2009 15:20:13 +0000 (16:20 +0100)
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Wed, 4 Nov 2009 15:20:13 +0000 (16:20 +0100)
1  2 
data/setup.xml
lib/python/Components/config.py

diff --combined data/setup.xml
@@@ -13,8 -13,8 +13,8 @@@
                        <item level="0" text="TV System">config.av.tvsystem</item>
                        <item level="1" text="WSS on 4:3">config.av.wss</item>
                        <item level="1" text="AC3 default">config.av.defaultac3</item>
-                       <item level="1" text="General AC3 delay">config.av.generalAC3delay</item>
-                       <item level="1" text="General PCM delay">config.av.generalPCMdelay</item>
+                       <item level="1" text="General AC3 delay (ms)">config.av.generalAC3delay</item>
+                       <item level="1" text="General PCM delay (ms)">config.av.generalPCMdelay</item>
                        <item level="1" text="AC3 downmix" requires="CanDownmixAC3">config.av.downmix_ac3</item>
                        <item level="1" text="Auto scart switching" requires="ScartSwitch">config.av.vcrswitch</item>
                </setup>
                        <item level="0" text="Brightness">config.lcd.bright</item>
                        <item level="0" text="Contrast">config.lcd.contrast</item>
                        <item level="0" text="Standby">config.lcd.standby</item>
 -                      <item level="2" text="Invert display">config.lcd.invert</item>
                </setup>
                <setup key="satconfig" title="Sat / Dish Setup">
                        <item text="Tuner Slot">config.sat.tunerslot</item>
@@@ -1017,6 -1017,42 +1017,42 @@@ class ConfigPassword(ConfigText)
                ConfigText.onDeselect(self, session)
                self.hidden = True
  
+ # lets the user select between [min, min+stepwidth, min+(stepwidth*2)..., maxval] with maxval <= max depending
+ # on the stepwidth
+ # min, max, stepwidth, default are int values
+ # wraparound: pressing RIGHT key at max value brings you to min value and vice versa if set to True
+ class ConfigSelectionNumber(ConfigSelection):
+       def __init__(self, min, max, stepwidth, default = None, wraparound = False):
+               self.wraparound = wraparound
+               if default is None:
+                       default = min
+               default = str(default)
+               choices = []
+               step = min
+               while step <= max:
+                       choices.append(str(step))
+                       step += stepwidth
+               
+               ConfigSelection.__init__(self, choices, default)
+               
+       def getValue(self):
+               return int(self.text)
+       def setValue(self, val):
+               self.text = str(val)
+               
+       def handleKey(self, key):
+               if not self.wraparound:
+                       if key == KEY_RIGHT:
+                               if len(self.choices) == (self.choices.index(self.value) + 1):
+                                       return
+                       if key == KEY_LEFT:
+                               if self.choices.index(self.value) == 0:
+                                       return
+               ConfigSelection.handleKey(self, key)
+                               
+                               
  class ConfigNumber(ConfigText):
        def __init__(self, default = 0):
                ConfigText.__init__(self, str(default), fixed_size = False)
@@@ -1148,10 -1184,7 +1184,10 @@@ class ConfigSatlist(ConfigSelection)
        def __init__(self, list, default = None):
                if default is not None:
                        default = str(default)
 -              ConfigSelection.__init__(self, choices = [(str(orbpos), desc) for (orbpos, desc, flags) in list], default = default)
 +              choices = [(str(orbpos), desc) for (orbpos, desc, flags) in list]
 +              choices.sort(key = lambda x: int(x[0]))
 +              
 +              ConfigSelection.__init__(self, choices = choices, default = default)
  
        def getOrbitalPosition(self):
                if self.value == "":