summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Guthrie <colin@mageia.org>2011-08-10 10:39:57 +0200
committerColin Guthrie <colin@mageia.org>2011-08-11 10:36:11 +0200
commit6b1d9b8d6ae3634caa31c20397ce8510a028dd55 (patch)
tree1fd2a08537199b87a4d7e85837186230b9a75e04
parent0b5a181e1bebdbe6221ae324f98b22ab5a136590 (diff)
alsa: Ensure that volumes are written to the h/w at startup.
If the device support SYNC_VOLUMES then we need to do an additional push to get the actual change on to the h/w.
-rw-r--r--src/modules/alsa/alsa-sink.c3
-rw-r--r--src/modules/alsa/alsa-source.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c
index c1655d49..00eb33ae 100644
--- a/src/modules/alsa/alsa-sink.c
+++ b/src/modules/alsa/alsa-sink.c
@@ -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)
diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c
index 6b6f513c..6438c338 100644
--- a/src/modules/alsa/alsa-source.c
+++ b/src/modules/alsa/alsa-source.c
@@ -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)