summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Klausner <tk@giga.or.at>2020-02-29 09:56:10 +0100
committerMax Kellermann <max@musicpd.org>2020-02-29 10:05:29 +0100
commit7a68b1e71fd2f29478b95a5116ab0792f218f9ff (patch)
treedd91eb9f5d1d6ad8ba4dcde43106c3c47e157dcb
parentd5468dfe89acb85885d2f8017a66bdecdfcbb758 (diff)
Adapt SolarisOutputPlugin.cxx to be usable on NetBSD.
-rw-r--r--NEWS2
-rw-r--r--src/output/plugins/SolarisOutputPlugin.cxx11
2 files changed, 10 insertions, 3 deletions
diff --git a/NEWS b/NEWS
index 4648d09a0..741938b37 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,8 @@
ver 0.21.21 (not yet released)
* decoder
- gme: ignore empty tags
+* output
+ - solaris: port to NetBSD
ver 0.21.20 (2020/02/16)
* decoder
diff --git a/src/output/plugins/SolarisOutputPlugin.cxx b/src/output/plugins/SolarisOutputPlugin.cxx
index d6323d5aa..5176f7ac4 100644
--- a/src/output/plugins/SolarisOutputPlugin.cxx
+++ b/src/output/plugins/SolarisOutputPlugin.cxx
@@ -22,22 +22,23 @@
#include "system/FileDescriptor.hxx"
#include "system/Error.hxx"
+#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
-#ifdef __sun
+#if defined(__sun)
#include <sys/audio.h>
#include <sys/stropts.h>
+#elif defined(__NetBSD__)
+#include <sys/audioio.h>
#else
/* some fake declarations that allow build this plugin on systems
other than Solaris, just to see if it compiles */
-#include <sys/ioctl.h>
-
#ifndef I_FLUSH
#define I_FLUSH 0
#endif
@@ -147,7 +148,11 @@ SolarisOutput::Play(const void *chunk, size_t size)
void
SolarisOutput::Cancel() noexcept
{
+#if defined(AUDIO_FLUSH)
+ ioctl(fd.Get(), AUDIO_FLUSH);
+#elif defined(I_FLUSH)
ioctl(fd.Get(), I_FLUSH);
+#endif
}
const struct AudioOutputPlugin solaris_output_plugin = {