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