cannam@124: #ifndef INCLUDED_PORTAUDIO_CALLBACKINTERFACE_HXX cannam@124: #define INCLUDED_PORTAUDIO_CALLBACKINTERFACE_HXX cannam@124: cannam@124: // --------------------------------------------------------------------------------------- cannam@124: cannam@124: #include "portaudio.h" cannam@124: cannam@124: // --------------------------------------------------------------------------------------- cannam@124: cannam@124: namespace portaudio cannam@124: { cannam@124: // ----------------------------------------------------------------------------------- cannam@124: cannam@124: ////// cannam@124: /// @brief Interface for an object that's callable as a PortAudioCpp callback object (ie that implements the cannam@124: /// paCallbackFun method). cannam@124: ////// cannam@124: class CallbackInterface cannam@124: { cannam@124: public: cannam@124: virtual ~CallbackInterface() {} cannam@124: cannam@124: virtual int paCallbackFun(const void *inputBuffer, void *outputBuffer, unsigned long numFrames, cannam@124: const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags) = 0; cannam@124: }; cannam@124: cannam@124: // ----------------------------------------------------------------------------------- cannam@124: cannam@124: namespace impl cannam@124: { cannam@124: extern "C" cannam@124: { cannam@124: int callbackInterfaceToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames, cannam@124: const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags, cannam@124: void *userData); cannam@124: } // extern "C" cannam@124: } cannam@124: cannam@124: // ----------------------------------------------------------------------------------- cannam@124: cannam@124: } // namespace portaudio cannam@124: cannam@124: // --------------------------------------------------------------------------------------- cannam@124: cannam@124: #endif // INCLUDED_PORTAUDIO_CALLBACKINTERFACE_HXX