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