[PATCH] Fix deferred volume not being applied if sink is closed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2011/10/13 David Henningsson <david.henningsson at canonical.com>:
> Signed-off-by: David Henningsson <david.henningsson at canonical.com>
> ---
> ?src/modules/alsa/alsa-sink.c ? | ? ?8 ++++++--
> ?src/modules/alsa/alsa-source.c | ? ?8 ++++++--
> ?2 files changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c
> index c868453..3a95251 100644
> --- a/src/modules/alsa/alsa-sink.c
> +++ b/src/modules/alsa/alsa-sink.c
> @@ -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;
> + ? ? ? ? ? ?}

Why not simply:
  if (volume_sleep > 0) {
    if (rtpoll_sleep <= 0 || rtpoll_sleep > volume_sleep)
      rtpoll_sleep = volume_sleep;
  }

Or even:
  if (0 < volume_sleep && (rtpoll_sleep < 0 || volume_sleep < rtpoll_sleep))
    rtpoll_sleep = volume_sleep;

Maarten

> ? ? ? ? }
>
> ? ? ? ? if (rtpoll_sleep > 0)
> diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c
> index d544828..46b89a7 100644
> --- a/src/modules/alsa/alsa-source.c
> +++ b/src/modules/alsa/alsa-source.c
> @@ -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)
> --
> 1.7.5.4
>
> _______________________________________________
> pulseaudio-discuss mailing list
> pulseaudio-discuss at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
>


[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux