]> code.delx.au - pulseaudio/commitdiff
Fix deferred volume not being applied if sink is closed
authorDavid Henningsson <david.henningsson@canonical.com>
Thu, 13 Oct 2011 15:30:39 +0000 (17:30 +0200)
committerArun Raghavan <arun.raghavan@collabora.co.uk>
Mon, 17 Oct 2011 04:20:16 +0000 (09:50 +0530)
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
src/modules/alsa/alsa-sink.c
src/modules/alsa/alsa-source.c

index c8684531be9a8210c116a537914aefc54543b665..3a952517a1b5e359d915477bdb32fee0c64727fa 100644 (file)
@@ -1751,8 +1751,12 @@ static void thread_func(void *userdata) {
         if (u->sink->flags & PA_SINK_DEFERRED_VOLUME) {
             pa_usec_t volume_sleep;
             pa_sink_volume_change_apply(u->sink, &volume_sleep);
-            if (volume_sleep > 0)
-                rtpoll_sleep = PA_MIN(volume_sleep, rtpoll_sleep);
+            if (volume_sleep > 0) {
+                if (rtpoll_sleep > 0)
+                    rtpoll_sleep = PA_MIN(volume_sleep, rtpoll_sleep);
+                else
+                    rtpoll_sleep = volume_sleep;
+            }
         }
 
         if (rtpoll_sleep > 0)
index d5448280865a458cdda69f263d05f79a02089677..46b89a7bd80b5758e88000758be84f4a15dcd875 100644 (file)
@@ -1452,8 +1452,12 @@ static void thread_func(void *userdata) {
         if (u->source->flags & PA_SOURCE_DEFERRED_VOLUME) {
             pa_usec_t volume_sleep;
             pa_source_volume_change_apply(u->source, &volume_sleep);
-            if (volume_sleep > 0)
-                rtpoll_sleep = PA_MIN(volume_sleep, rtpoll_sleep);
+            if (volume_sleep > 0) {
+                if (rtpoll_sleep > 0)
+                    rtpoll_sleep = PA_MIN(volume_sleep, rtpoll_sleep);
+                else
+                    rtpoll_sleep = volume_sleep;
+            }
         }
 
         if (rtpoll_sleep > 0)