$NetBSD: patch-aa,v 1.4 2012/08/24 06:35:20 marino Exp $

--- src/drivers/fluid_oss.c.orig	2012-08-16 04:01:13.000000000 +0000
+++ src/drivers/fluid_oss.c
@@ -42,10 +42,16 @@
 #include <errno.h>
 #include <sys/poll.h>
 
+#ifdef __NetBSD__
+#define DEVOSSMIDI "/dev/rmidi0"
+#else
+#define DEVOSSMIDI "/dev/midi"
+#endif
+
 #define BUFFER_LENGTH 512
 
 // Build issue on some systems (OSS 4.0)?
-#ifdef SNDCTL_DSP_CHANNELS
+#if defined (SNDCTL_DSP_CHANNELS) && !defined (SOUND_PCM_WRITE_CHANNELS)
   #define SOUND_PCM_WRITE_CHANNELS        SNDCTL_DSP_CHANNELS
 #endif
 
@@ -101,7 +107,7 @@ static void fluid_oss_midi_run(void* d);
 void
 fluid_oss_audio_driver_settings(fluid_settings_t* settings)
 {
-  fluid_settings_register_str(settings, "audio.oss.device", "/dev/dsp", 0, NULL, NULL);
+  fluid_settings_register_str(settings, "audio.oss.device", DEVOSSAUDIO, 0, NULL, NULL);
 }
 
 /*
@@ -164,7 +170,7 @@ new_fluid_oss_audio_driver(fluid_setting
   }
 
   if (!fluid_settings_dupstr(settings, "audio.oss.device", &devname) || !devname) {         /* ++ alloc device name */
-    devname = FLUID_STRDUP ("/dev/dsp");
+    devname = FLUID_STRDUP (DEVOSSAUDIO);
 
     if (devname == NULL) {
       FLUID_LOG(FLUID_ERR, "Out of memory");
@@ -278,7 +284,7 @@ new_fluid_oss_audio_driver2(fluid_settin
 
 
   if (!fluid_settings_dupstr(settings, "audio.oss.device", &devname) || !devname) {
-    devname = FLUID_STRDUP ("/dev/dsp");
+    devname = FLUID_STRDUP (DEVOSSAUDIO);
 
     if (!devname)
     {
@@ -503,7 +509,7 @@ fluid_oss_audio_run2(void* d)
 
 void fluid_oss_midi_driver_settings(fluid_settings_t* settings)
 {
-  fluid_settings_register_str(settings, "midi.oss.device", "/dev/midi", 0, NULL, NULL);
+  fluid_settings_register_str(settings, "midi.oss.device", DEVOSSMIDI, 0, NULL, NULL);
 }
 
 /*
@@ -546,7 +552,7 @@ new_fluid_oss_midi_driver(fluid_settings
   fluid_settings_dupstr(settings, "midi.oss.device", &device);  /* ++ alloc device name */
 
   if (device == NULL) {
-    device = FLUID_STRDUP ("/dev/midi");
+    device = FLUID_STRDUP (DEVOSSMIDI);
 
     if (!device)
     {
