raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=2747af8e07ad1b65a6f9ba7aff359ef94d6d8cc2

commit 2747af8e07ad1b65a6f9ba7aff359ef94d6d8cc2
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Fri Sep 20 13:48:31 2019 +0100

    mixer - try not to create notifications for no change in volume
---
 src/modules/mixer/gadget/backend.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/modules/mixer/gadget/backend.c 
b/src/modules/mixer/gadget/backend.c
index 52e44e0ca..66ebb2652 100644
--- a/src/modules/mixer/gadget/backend.c
+++ b/src/modules/mixer/gadget/backend.c
@@ -351,10 +351,8 @@ _sink_event(int type, void *info)
         if (sink == _sink_default)
           {
              l = emix_sinks_get();
-             if (l)
-               _sink_default = l->data;
-             else
-               _sink_default = NULL;
+             if (l) _sink_default = l->data;
+             else _sink_default = NULL;
              if (emix_config_save_get()) e_config_save_queue();
              _backend_changed();
           }
@@ -363,15 +361,17 @@ _sink_event(int type, void *info)
      {
         if (_sink_default == sink)
           {
+             static int prev_vol = -1;
              int vol;
 
              _backend_changed();
-             if (sink->mute || !sink->volume.channel_count)
-               vol = 0;
-             else
-               vol = sink->volume.volumes[0];
-
-             _notify(vol);
+             if (sink->mute || !sink->volume.channel_count) vol = 0;
+             else vol = sink->volume.volumes[0];
+             if (vol != prev_vol)
+               {
+                  _notify(vol);
+                  prev_vol = vol;
+               }
           }
      }
    else

-- 


Reply via email to