Parcourir la source

Merge pull request #24 from cuu/master

fix sound and brightness
clockworkpi il y a 6 ans
Parent
commit
6289a73e20

+ 15 - 16
Menu/GameShell/10_Settings/Brightness/brightness_page.py

@@ -62,18 +62,18 @@ class BSlider(Slider):
         
     def Further(self):
         self._Value+=1
-        if self._Value < 9 :
-            if self.OnChangeCB != None:
-                if callable(self.OnChangeCB):
-                    self.OnChangeCB(self._Value)
-        else:
-            self._Value = 8
+        if self._Value > 9:
+            self._Value = 9
+            
+        if self.OnChangeCB != None:
+            if callable(self.OnChangeCB):
+                self.OnChangeCB(self._Value)
                     
     def StepBack(self):
         self._Value-=1
 
-        if self._Value < 0:
-            self._Value = 0
+        if self._Value < 1:
+            self._Value = 1
 
         if self.OnChangeCB != None:
             if callable(self.OnChangeCB):
@@ -86,7 +86,10 @@ class BSlider(Slider):
 
         self._Icons["scale"].NewCoord(self._Width/2,self._Height/2 )
 
-        self._Icons["scale"]._IconIndex = self._Value
+        icon_idx = self._Value - 1
+        if icon_idx < 0:
+            icon_idx = 0
+        self._Icons["scale"]._IconIndex = icon_idx
         self._Icons["scale"].Draw()
         """
         pygame.draw.line(self._CanvasHWND,(255,0,0), (posx,self._PosY),(self._Width,self._PosY),3) ## range line
@@ -103,8 +106,6 @@ class BrightnessPage(Page):
     _MySlider = None
     _FootMsg = ["Nav","","","Back","Enter"]
 
-    _Max = 8
-    _Min = 0
     
     def Init(self):
         self._CanvasHWND = self._Screen._CanvasHWND
@@ -141,23 +142,21 @@ class BrightnessPage(Page):
 
     def OnLoadCb(self):
          brt  = self.ReadBackLight()
+         
          self._MySlider.SetValue( brt)
          
     def SetBackLight(self,newbrt):
         try:
             f = open(BackLight,'w')
         except IOError:
-            print("Open write %s failed %d" % (BackLight,newbrt+1))
+            print("Open write %s failed %d" % (BackLight,newbrt))
             return False
         else:
             with f:
-                f.write(str(newbrt+1))
+                f.write(str(newbrt))
                 return True
         
     def WhenSliderDrag(self,value): ##value 
-        if value < self._Min or value > self._Max:
-            return
-        
         self.SetBackLight(value)
         
     def KeyDown(self,event):

+ 19 - 13
Menu/GameShell/10_Settings/Sound/sound_page.py

@@ -32,8 +32,9 @@ class SoundSlider(Slider):
     _NeedleSurf = None
     _Scale      = None
     _Parent     = None
-    _Segs       = [0,15,29, 45,55,65, 75,90,100]
+    
     snd_segs = [ [0,20],[21,40],[41,50],[51,60],[61,70],[71,85],[86,90],[91,95],[96,100] ]
+
     
     def __init__(self):
         Slider.__init__(self)
@@ -58,20 +59,23 @@ class SoundSlider(Slider):
         self._Scale._IconHeight = 63
         self._Scale.Adjust(0,0,82,63,0)
         
-    def SetValue(self,pct):#pct 0-100
-
+    def SetValue(self,vol):#pct 0-100
         for i,v in enumerate(self.snd_segs):
-            if pct  >= v[0] and pct <= v[1]:
-                self._Value = i
+            if vol  >= v[0] and vol <= v[1]:
+                self._Value = i # self._Value :  0 - 8
+                break
         
     def Further(self):
         self._Value+=1
-        if self._Value < len(self._Segs):
-            if self.OnChangeCB != None:
-                if callable(self.OnChangeCB):
-                    self.OnChangeCB( self._Segs[ self._Value ] )
-        else:
-            self._Value = len(self._Segs)-1
+
+        if self._Value > len(self.snd_segs)-1:
+            self._Value = len(self.snd_segs) -1
+
+        vol = self.snd_segs[self._Value][0] + (self.snd_segs[self._Value][1] - self.snd_segs[self._Value][0])/2 
+        
+        if self.OnChangeCB != None:
+            if callable(self.OnChangeCB):
+                self.OnChangeCB( vol )
         
     def StepBack(self):
         self._Value-=1
@@ -79,9 +83,11 @@ class SoundSlider(Slider):
         if self._Value < 0:
             self._Value = 0
 
+        vol =  self.snd_segs[self._Value][0]
+        
         if self.OnChangeCB != None:
             if callable(self.OnChangeCB):
-                self.OnChangeCB(self._Segs[self._Value] )
+                self.OnChangeCB( vol )
     
     def Draw(self):
         
@@ -89,7 +95,7 @@ class SoundSlider(Slider):
         self._BGpng.Draw()
 
         self._Scale.NewCoord(self._Width/2,self._Height/2)
-        
+
         self._Scale._IconIndex = self._Value
         
         self._Scale.Draw()