]> code.delx.au - pulseaudio/commitdiff
alsa: Ensure that volumes are written to the h/w at startup.
authorColin Guthrie <colin@mageia.org>
Wed, 10 Aug 2011 08:39:57 +0000 (10:39 +0200)
committerColin Guthrie <colin@mageia.org>
Thu, 11 Aug 2011 08:36:11 +0000 (10:36 +0200)
If the device support SYNC_VOLUMES then we need to do an additional push
to get the actual change on to the h/w.

src/modules/alsa/alsa-sink.c
src/modules/alsa/alsa-source.c

index c1655d49a1c52c227a3d20e9a11dc48fc46cb049..00eb33aea9b8a8735c51f214db1dc5aadacac8d2 100644 (file)
@@ -2176,6 +2176,9 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
             u->sink->get_mute(u->sink);
     }
 
+    if ((data.volume_is_set || data.muted_is_set) && u->sink->write_volume)
+        u->sink->write_volume(u->sink);
+
     pa_sink_put(u->sink);
 
     if (profile_set)
index 6b6f513ca05432f0ff6865bec620970e23207791..6438c33885ceced551630872337b9628a1e44c9b 100644 (file)
@@ -1935,6 +1935,9 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
             u->source->get_mute(u->source);
     }
 
+    if ((data.volume_is_set || data.muted_is_set) && u->source->write_volume)
+        u->source->write_volume(u->source);
+
     pa_source_put(u->source);
 
     if (profile_set)