diff options
author | Ingo Bürk <admin@airblader.de> | 2020-03-15 12:49:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-15 12:49:31 +0100 |
commit | 77a330f53a0613e11cda43a3dcd5c53d4086cafa (patch) | |
tree | a720d095a762b5a6d1f42318b80d1cb76964c0f6 | |
parent | b7c130719462d814e0a1c1cad702c364546af974 (diff) | |
parent | 9b8403ac84fb638bd317e1d3cf0d807f375de7dc (diff) |
Merge pull request #391 from niacat/master
print_volume: Native NetBSD audio API support
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | src/print_volume.c | 26 |
2 files changed, 14 insertions, 13 deletions
diff --git a/configure.ac b/configure.ac index c6750e3..11caa33 100644 --- a/configure.ac +++ b/configure.ac @@ -101,7 +101,6 @@ case $host_os in ;; netbsd*) AC_SEARCH_LIBS([prop_string_create], [prop]) - AC_SEARCH_LIBS([_oss_ioctl], [ossaudio]) ;; esac diff --git a/src/print_volume.c b/src/print_volume.c index 575024a..89955a8 100644 --- a/src/print_volume.c +++ b/src/print_volume.c @@ -15,13 +15,13 @@ #include <math.h> #endif -#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) +#if defined(__FreeBSD__) || defined(__DragonFly__) #include <fcntl.h> #include <unistd.h> #include <sys/soundcard.h> #endif -#if defined(__OpenBSD__) +#if defined(__NetBSD__) || defined(__OpenBSD__) #include <fcntl.h> #include <unistd.h> #include <sys/audioio.h> @@ -261,7 +261,7 @@ void print_volume(yajl_gen json_gen, char *buffer, const char *fmt, const char * mixerpath = defaultmixer; if ((mixfd = open(mixerpath, O_RDWR)) < 0) { -#if defined(__OpenBSD__) +#if defined(__NetBSD__) || defined(__OpenBSD__) warn("audioio: Cannot open mixer"); #else warn("OSS: Cannot open mixer"); @@ -272,7 +272,7 @@ void print_volume(yajl_gen json_gen, char *buffer, const char *fmt, const char * if (mixer_idx > 0) free(mixerpath); -#if defined(__OpenBSD__) +#if defined(__NetBSD__) || defined(__OpenBSD__) int oclass_idx = -1, master_idx = -1, master_mute_idx = -1; int master_next = AUDIO_MIXER_LAST; mixer_devinfo_t devinfo, devinfo2; @@ -327,15 +327,17 @@ void print_volume(yajl_gen json_gen, char *buffer, const char *fmt, const char * vol = (int)vinfo.un.value.level[AUDIO_MIXER_LEVEL_MONO]; } - vinfo.dev = master_mute_idx; - vinfo.type = AUDIO_MIXER_ENUM; - if (ioctl(mixfd, AUDIO_MIXER_READ, &vinfo) == -1) - goto out; + if (master_mute_idx != -1) { + vinfo.dev = master_mute_idx; + vinfo.type = AUDIO_MIXER_ENUM; + if (ioctl(mixfd, AUDIO_MIXER_READ, &vinfo) == -1) + goto out; - if (master_mute_idx != -1 && vinfo.un.ord) { - START_COLOR("color_degraded"); - fmt = fmt_muted; - pbval = 0; + if (vinfo.un.ord) { + START_COLOR("color_degraded"); + fmt = fmt_muted; + pbval = 0; + } } #else |