Hi Antoine,

xstatbar hangs on startup eating cycles with cmpci(4). I'm not sure if
this is a fault of the driver or what is going on exactly.

Anyway, if devinfo.type != AUDIO_MIXER_CLASS is true, xstatbar will never
make progress and loop forever. Fix it by trying the next device.

This patch does not make the mixer appear on cmpci(4), but xstatbar works
fine otherwise.

Unrelated: ${HOMEPAGE} seems to be down, temporary?

Index: Makefile
===================================================================
RCS file: /home/vcs/cvs/openbsd/ports/sysutils/xstatbar/Makefile,v
retrieving revision 1.8
diff -u -p -r1.8 Makefile
--- Makefile    18 Jan 2011 19:04:22 -0000      1.8
+++ Makefile    1 Aug 2011 11:41:25 -0000
@@ -5,6 +5,7 @@ ONLY_FOR_ARCHS= ${APM_ARCHS}
 COMMENT=       simple system monitor bar
 
 DISTNAME=      xstatbar-0.5
+REVISION=      0
 
 CATEGORIES=    sysutils x11
 
Index: patches/patch-stats_c
===================================================================
RCS file: patches/patch-stats_c
diff -N patches/patch-stats_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-stats_c       1 Aug 2011 11:41:25 -0000
@@ -0,0 +1,15 @@
+$OpenBSD$
+--- stats.c.orig       Mon Aug  1 09:48:58 2011
++++ stats.c    Mon Aug  1 09:50:09 2011
+@@ -101,8 +101,10 @@ volume_init()
+    devinfo.index = 0;
+    while (ioctl(volume.dev_fd, AUDIO_MIXER_DEVINFO, &devinfo) >= 0) {
+ 
+-      if (devinfo.type != AUDIO_MIXER_CLASS)
++      if (devinfo.type != AUDIO_MIXER_CLASS) {
++         devinfo.index++;
+          continue;
++      }
+ 
+       if (strncmp(devinfo.label.name, AudioCoutputs, MAX_AUDIO_DEV_LEN) == 0)
+          oclass_idx = devinfo.index;

Reply via email to