mixer: update internal volume and call the changed event
authorMarcel Hollerbach <marcel-hollerbach@t-online.de>
Mon, 10 Aug 2015 17:16:49 +0000 (19:16 +0200)
committerMarcel Hollerbach <marcel-hollerbach@t-online.de>
Mon, 10 Aug 2015 17:17:43 +0000 (19:17 +0200)
src/modules/mixer/lib/backends/alsa/alsa.c

index f2452dc0bcd2194757163eb43dc60c522cbe750b..11eafd32f46f636106e230825de16980efbf346c 100644 (file)
@@ -420,7 +420,11 @@ _alsa_sources_volume_set(Emix_Source *source, Emix_Volume v)
      {
         elem = eina_list_nth(s->channels, i);
         _alsa_channel_volume_set(elem, v.volumes[i], EINA_FALSE);
+        s->source.volume.volumes[i] = v.volumes[i];
      }
+   if (ctx->cb)
+     ctx->cb((void *)ctx->userdata, EMIX_SOURCE_CHANGED_EVENT,
+                  (Emix_Source *)s);
 }
 
 
@@ -488,7 +492,11 @@ _alsa_sink_volume_set(Emix_Sink *sink, Emix_Volume v)
      {
         elem = eina_list_nth(s->channels, i);
         _alsa_channel_volume_set(elem, v.volumes[i], EINA_FALSE);
+        s->sink.volume.volumes[i] = v.volumes[i];
      }
+   if (ctx->cb)
+     ctx->cb((void *)ctx->userdata, EMIX_SINK_CHANGED_EVENT,
+                  (Emix_Sink *)s);
 }
 
 static Emix_Backend