Browse Source

Merge pull request #20 from cuu/master

fix alsaaudio set_volume problem
clockworkpi 6 years ago
parent
commit
858500a027
2 changed files with 27 additions and 23 deletions
  1. 7 4
      sys.py/UI/above_all_patch.py
  2. 20 19
      sys.py/run.py

+ 7 - 4
sys.py/UI/above_all_patch.py

@@ -78,17 +78,20 @@ class SoundPatch(AboveAllPatch):
     def VolumeUp(self):
         m = alsaaudio.Mixer()
         vol = m.getvolume()[0]
-        
+
+ #       print("VolumeUp vol %d " % vol)
         for i,v in enumerate(self.snd_segs):
             if  vol >= v[0] and vol <= v[1]:
                 self._Needle = i
                 break
-        
+          
         self._Needle += 1
+        
         if self._Needle > len(self.snd_segs) -1:
             self._Needle = len(self.snd_segs) -1
-        
-        m.setvolume( self.snd_segs[self._Needle][1] ) ## prefer bigger one  
+
+#        print("Set volume %d" % self.snd_segs[self._Needle][1] )
+        m.setvolume( self.snd_segs[self._Needle][0] +  (self.snd_segs[self._Needle][1] - self.snd_segs[self._Needle][0])/2   ) ## prefer bigger one  
 
         self._Value = self.snd_segs[self._Needle][1]
 

+ 20 - 19
sys.py/run.py

@@ -202,27 +202,28 @@ def event_process(event,main_screen):
                 exit()
 
             if event.key == pygame.K_KP_PLUS:
-                
-                main_screen.Draw()
-                sound_patch.VolumeUp()
-                sound_patch.Draw()
-                
-                main_screen.SwapAndShow()
-                #pygame.time.delay(200)
-                #main_screen.Draw()
-                #main_screen.SwapAndShow()
+                if main_screen._CurrentPage._Name != "Sound volume": ## name from Menu/GameShell/10_Settings/Sound/pages.py
+                    main_screen.Draw()
+                    sound_patch.VolumeUp()
+                    sound_patch.Draw()
+                    
+                    main_screen.SwapAndShow()
+                    #pygame.time.delay(200)
+                    #main_screen.Draw()
+                    #main_screen.SwapAndShow()
                 
             if event.key == pygame.K_KP_MINUS:
-                main_screen.Draw()
-                
-                sound_patch.VolumeDown()
-                sound_patch.Draw()
-                
-                main_screen.SwapAndShow()
-                #pygame.time.delay(200)
-                #main_screen.Draw()
-                #main_screen.SwapAndShow()
-                
+                if main_screen._CurrentPage._Name != "Sound volume":
+                    main_screen.Draw()
+                    
+                    sound_patch.VolumeDown()
+                    sound_patch.Draw()
+                    
+                    main_screen.SwapAndShow()
+                    #pygame.time.delay(200)
+                    #main_screen.Draw()
+                    #main_screen.SwapAndShow()
+                    
             
             ###########################################################
             if event.key == pygame.K_ESCAPE: