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 */;