--- server/dda/voxware/auvoxware.c.orig	Sat Oct 23 08:44:47 2004
+++ server/dda/voxware/auvoxware.c	Mon Nov 15 21:13:49 2004
@@ -133,7 +133,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#ifndef SVR4
+#if !defined(SVR4) && !defined(__FreeBSD__)
 #include <getopt.h>
 #endif
 #include <sys/types.h>
@@ -177,7 +177,9 @@
 # else
 #  include <machine/soundcard.h>
 # endif
+/* PC Speaker functions seems to be unused here
 # include <machine/pcaudioio.h>
+*/
 #else
 # ifdef __NetBSD__
 #  include <sys/ioctl.h>
@@ -670,7 +672,11 @@
   if(sndStatOut.fd == -1)
     {
       while ((sndStatOut.fd = open(sndStatOut.device, 
+#if defined(__FreeBSD__)
+                                   sndStatOut.howToOpen|extramode, 
+#else
                                    sndStatOut.howToOpen|O_SYNC|extramode, 
+#endif
                                    0666)) == -1 && wait)
         {
           osLogMsg("openDevice: waiting on output device\n");
@@ -1330,6 +1334,11 @@
 /*
  * Setup soundcard at maximum audio quality.
  */
+
+#if defined(__FreeBSD__)
+#define NO_16_BIT_SAMPLING
+#endif
+
 static void setupSoundcard(sndStatPtr)
 SndStat* sndStatPtr;
 {
@@ -1571,7 +1580,11 @@
 		   sndStatOut.device, sndStatOut.howToOpen);
 	
 	if ((fd = open(sndStatOut.device, 
+#if defined(__FreeBSD__)
+		       sndStatOut.howToOpen|extramode, 0)) == -1)
+#else
 		       sndStatOut.howToOpen|O_SYNC|extramode, 0)) == -1)
+#endif
 	  {
 	    UNIDENTMSG;
             osLogMsg("Output open(%s) failed: %s\n",
