X-Git-Url: https://git.xinqibao.xyz/slstatus.git/blobdiff_plain/7246dc4381c6c95454672a5c1aff65a02d6d3747..2b82bf02488147a3e69a715267934f015fe29a43:/components/volume.c diff --git a/components/volume.c b/components/volume.c index f5aa18d..41a112d 100644 --- a/components/volume.c +++ b/components/volume.c @@ -1,7 +1,11 @@ /* See LICENSE file for copyright and license details. */ -#include <err.h> +#include <errno.h> #include <fcntl.h> -#include <sys/soundcard.h> +#if defined(__OpenBSD__) +# include <soundcard.h> +#else +# include <sys/soundcard.h> +#endif #include <sys/ioctl.h> #include <stdio.h> #include <string.h> @@ -18,19 +22,19 @@ vol_perc(const char *card) afd = open(card, O_RDONLY | O_NONBLOCK); if (afd == -1) { - warn("Cannot open %s", card); + fprintf(stderr, "open '%s': %s\n", card, strerror(errno)); return NULL; } - if (ioctl(afd, SOUND_MIXER_READ_DEVMASK, &devmask) == -1) { - warn("Cannot get volume for %s", card); + if (ioctl(afd, (int)SOUND_MIXER_READ_DEVMASK, &devmask) == -1) { + fprintf(stderr, "ioctl 'SOUND_MIXER_READ_DEVMASK': %s\n", strerror(errno)); close(afd); return NULL; } for (i = 0; i < LEN(vnames); i++) { if (devmask & (1 << i) && !strcmp("vol", vnames[i])) { if (ioctl(afd, MIXER_READ(i), &v) == -1) { - warn("vol_perc: ioctl"); + fprintf(stderr, "ioctl 'MIXER_READ(%d)': %s\n", i, strerror(errno)); close(afd); return NULL; }