]> code.delx.au - pulseaudio/commitdiff
passthrough: Fix setting volume to unamplified again
authorArun Raghavan <arun.raghavan@collabora.co.uk>
Fri, 26 Aug 2011 04:21:07 +0000 (09:51 +0530)
committerArun Raghavan <arun.raghavan@collabora.co.uk>
Mon, 29 Aug 2011 09:02:27 +0000 (14:32 +0530)
Thanks to Tanu for pointing out the (possibly pathological?) case that
base_volume might be >0dB.

src/pulsecore/sink.c
src/pulsecore/source.c

index b0c360d66b21651d02ddbbd6f403d3620df2b962..041295c40f56d12eac405ffd9a8f23e7989f59ff 100644 (file)
@@ -1406,7 +1406,7 @@ void pa_sink_enter_passthrough(pa_sink *s) {
     s->saved_volume = *pa_sink_get_volume(s, TRUE);
     s->saved_save_volume = s->save_volume;
 
-    pa_cvolume_set(&volume, s->sample_spec.channels, s->base_volume);
+    pa_cvolume_set(&volume, s->sample_spec.channels, PA_MIN(s->base_volume, PA_VOLUME_NORM));
     pa_sink_set_volume(s, &volume, TRUE, FALSE);
 }
 
index d79dbb15f94f792c1dca0522e374429587819aff..bc951af8729b74f4ca2d5ba63096b68a9333b2a2 100644 (file)
@@ -986,7 +986,7 @@ void pa_source_enter_passthrough(pa_source *s) {
     s->saved_volume = *pa_source_get_volume(s, TRUE);
     s->saved_save_volume = s->save_volume;
 
-    pa_cvolume_set(&volume, s->sample_spec.channels, s->base_volume);
+    pa_cvolume_set(&volume, s->sample_spec.channels, PA_MIN(s->base_volume, PA_VOLUME_NORM));
     pa_source_set_volume(s, &volume, TRUE, FALSE);
 }