summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.in2
-rw-r--r--pcsound/pcsound.c12
-rw-r--r--pcsound/pcsound_bsd.c17
3 files changed, 26 insertions, 5 deletions
diff --git a/configure.in b/configure.in
index 322c4957..6fa7f1f6 100644
--- a/configure.in
+++ b/configure.in
@@ -24,7 +24,7 @@ then
CFLAGS="-O$OPT_LEVEL -g -Wall $orig_CFLAGS"
fi
-AC_CHECK_HEADERS([linux/kd.h dev/isa/spkrio.h])
+AC_CHECK_HEADERS([linux/kd.h dev/isa/spkrio.h dev/speaker/speaker.h])
AM_PATH_SDL(1.1.3)
diff --git a/pcsound/pcsound.c b/pcsound/pcsound.c
index aeba5148..0746e24e 100644
--- a/pcsound/pcsound.c
+++ b/pcsound/pcsound.c
@@ -31,11 +31,19 @@
#include "pcsound.h"
#include "pcsound_internal.h"
+
+#ifdef HAVE_DEV_ISA_SPKRIO_H
+#define HAVE_BSD_SPEAKER
+#endif
+#ifdef HAVE_DEV_SPEAKER_SPEAKER_H
+#define HAVE_BSD_SPEAKER
+#endif
+
#ifdef _WIN32
extern pcsound_driver_t pcsound_win32_driver;
#endif
-#ifdef HAVE_DEV_ISA_SPKRIO_H
+#ifdef HAVE_BSD_SPEAKER
extern pcsound_driver_t pcsound_bsd_driver;
#endif
@@ -50,7 +58,7 @@ static pcsound_driver_t *drivers[] =
#ifdef HAVE_LINUX_KD_H
&pcsound_linux_driver,
#endif
-#ifdef HAVE_DEV_ISA_SPKRIO_H
+#ifdef HAVE_BSD_SPEAKER
&pcsound_bsd_driver,
#endif
#ifdef _WIN32
diff --git a/pcsound/pcsound_bsd.c b/pcsound/pcsound_bsd.c
index 68884e0e..6ba73037 100644
--- a/pcsound/pcsound_bsd.c
+++ b/pcsound/pcsound_bsd.c
@@ -26,14 +26,27 @@
#include "config.h"
+// OpenBSD/NetBSD:
+
#ifdef HAVE_DEV_ISA_SPKRIO_H
+#define HAVE_BSD_SPEAKER
+#include <dev/isa/spkrio.h>
+#endif
+
+// FreeBSD
+
+#ifdef HAVE_DEV_SPEAKER_SPEAKER_H
+#define HAVE_BSD_SPEAKER
+#include <dev/speaker/speaker.h>
+#endif
+
+#ifdef HAVE_BSD_SPEAKER
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <signal.h>
-#include <dev/isa/spkrio.h>
#include <sys/ioctl.h>
#include <sys/signal.h>
#include <sys/socket.h>
@@ -310,5 +323,5 @@ pcsound_driver_t pcsound_bsd_driver =
PCSound_BSD_Shutdown,
};
-#endif /* #ifdef HAVE_DEV_ISA_SPKRIO_H */
+#endif /* #ifdef HAVE_BSD_SPEAKER */