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