Index: src/host/RtAudio/RtAudio.h
--- src/host/RtAudio/RtAudio.h.orig
+++ src/host/RtAudio/RtAudio.h
@@ -255,6 +255,7 @@ class RTAUDIO_DLL_PUBLIC RtAudio
     LINUX_ALSA,     /*!< The Advanced Linux Sound Architecture API. */
     LINUX_PULSE,    /*!< The Linux PulseAudio API. */
     LINUX_OSS,      /*!< The Linux Open Sound System API. */
+    OPENBSD_SNDIO,  /*!< The OpenBSD sndio API. */
     UNIX_JACK,      /*!< The Jack Low-Latency Audio Server API. */
     MACOSX_CORE,    /*!< Macintosh OS-X Core Audio API. */
     WINDOWS_WASAPI, /*!< The Microsoft WASAPI API. */
@@ -1144,6 +1145,38 @@ class RtApiOss: public RtApi (public)
   private:
 
   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
+                        unsigned int firstChannel, unsigned int sampleRate,
+                        RtAudioFormat format, unsigned int *bufferSize,
+                        RtAudio::StreamOptions *options ) /* override */;
+};
+
+#endif
+
+#if defined(__OPENBSD_SNDIO__)
+
+class RtApiSndio: public RtApi
+{
+public:
+
+  RtApiSndio();
+  ~RtApiSndio();
+  RtAudio::Api getCurrentApi() /* override */ { return RtAudio::OPENBSD_SNDIO; }
+  unsigned int getDeviceCount( void ) /* override */;
+  RtAudio::DeviceInfo getDeviceInfo( unsigned int device ) /* override */;
+  void closeStream( void ) /* override */;
+  RtAudioErrorType startStream( void ) /* override */;
+  RtAudioErrorType stopStream( void ) /* override */;
+  RtAudioErrorType abortStream( void ) /* override */;
+
+  // This function is intended for internal use only.  It must be
+  // public because it is called by the internal callback handler,
+  // which is not a member of RtAudio.  External use of this function
+  // will most likely produce highly undesirable results!
+  void callbackEvent( void );
+
+  private:
+
+  bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels,
                         unsigned int firstChannel, unsigned int sampleRate,
                         RtAudioFormat format, unsigned int *bufferSize,
                         RtAudio::StreamOptions *options ) /* override */;
