*** obuffer.cc.orig	Thu Jun 23 21:14:36 1994
--- obuffer.cc	Thu Dec  9 05:10:51 1999
***************
*** 217,226 ****
  int SparcObuffer::audio_fd = -1;
  
  #ifdef ULAW
! SparcObuffer::SparcObuffer (Header *header, bool use_speaker, bool use_headphone, bool use_line_out)
  #else
  SparcObuffer::SparcObuffer (uint32 number_of_channels, Header *header,
! 			    bool use_speaker, bool use_headphone, bool use_line_out)
  #endif
  {
  #ifndef ULAW
--- 217,226 ----
  int SparcObuffer::audio_fd = -1;
  
  #ifdef ULAW
! SparcObuffer::SparcObuffer (Header *header, boolean use_speaker, boolean use_headphone, boolean use_line_out)
  #else
  SparcObuffer::SparcObuffer (uint32 number_of_channels, Header *header,
! 			    boolean use_speaker, boolean use_headphone, boolean use_line_out)
  #endif
  {
  #ifndef ULAW
***************
*** 406,414 ****
  
  
  #ifdef ULAW
! bool SparcObuffer::class_suitable (uint32 number_of_channels, bool force_amd)
  #else
! bool SparcObuffer::class_suitable (void)
  #endif
  {
  #ifdef ULAW
--- 406,414 ----
  
  
  #ifdef ULAW
! boolean SparcObuffer::class_suitable (uint32 number_of_channels, boolean force_amd)
  #else
! boolean SparcObuffer::class_suitable (void)
  #endif
  {
  #ifdef ULAW
***************
*** 537,542 ****
--- 537,543 ----
      }
  
    // turn NDELAY mode off:
+ #ifndef __FreeBSD__	/* Our /dev/audio doesn't like non-blocking I/O */
    int flags;
    if ((flags = fcntl (fd, F_GETFL, 0)) < 0)
    {
***************
*** 549,554 ****
--- 550,556 ----
      perror ("fcntl F_SETFL on /dev/audio failed");
      exit (1);
    }
+ #endif
    return fd;
  }
  
***************
*** 629,635 ****
  }
  
  
! bool LinuxObuffer::class_suitable (uint32 number_of_channels)
  {
    // open the dsp audio device:
    audio_fd = open_audio_device ();
--- 631,637 ----
  }
  
  
! boolean LinuxObuffer::class_suitable (uint32 number_of_channels)
  {
    // open the dsp audio device:
    audio_fd = open_audio_device ();
