On Sat, Mar 29, 2025 at 07:50:40PM -0500, Matthew Martin wrote:
> On occasion I restart sndiod which causes i3status to stop reporting the
> volume level. The below patch resets initialized after a disconnect so
> on the next poll i3status will attempt to reconnect to the new sndiod.
> I opted against resetting initialized in cleanup so a failure in init
> won't be retried.

I'm no i3status user, but this works as advertised.
ok jca@ with a REVISION bump.

> diff --git patches/patch-src_sndio_c patches/patch-src_sndio_c
> index 1918558bf36..dd4e81598a0 100644
> --- patches/patch-src_sndio_c
> +++ patches/patch-src_sndio_c
> @@ -3,7 +3,7 @@ Add sndio volume backend.
>  Index: src/sndio.c
>  --- src/sndio.c.orig
>  +++ src/sndio.c
> -@@ -0,0 +1,201 @@
> +@@ -0,0 +1,202 @@
>  +#include <poll.h>
>  +#include <sndio.h>
>  +#include <stdio.h>
> @@ -183,6 +183,7 @@ Index: src/sndio.c
>  +            if (sioctl_revents(hdl, pfds) & POLLHUP) {
>  +                fprintf(stderr, "sndio: disconnected\n");
>  +                cleanup();
> ++                initialized = 0;
>  +                return -1;
>  +            }
>  +        }
> 

-- 
jca

Reply via email to