Mercurial > hg > sv-dependency-builds
view src/portaudio_20140130/bindings/cpp/include/portaudiocpp/CppFunCallbackStream.hxx @ 83:ae30d91d2ffe
Replace these with versions built using an older toolset (so as to avoid ABI compatibilities when linking on Ubuntu 14.04 for packaging purposes)
author | Chris Cannam |
---|---|
date | Fri, 07 Feb 2020 11:51:13 +0000 |
parents | 7ddb4fc30dac |
children |
line wrap: on
line source
#ifndef INCLUDED_PORTAUDIO_CPPFUNCALLBACKSTREAM_HXX #define INCLUDED_PORTAUDIO_CPPFUNCALLBACKSTREAM_HXX // --------------------------------------------------------------------------------------- #include "portaudio.h" #include "portaudiocpp/CallbackStream.hxx" // --------------------------------------------------------------------------------------- // Forward declaration(s): namespace portaudio { class StreamParameters; } // --------------------------------------------------------------------------------------- // Declaration(s): namespace portaudio { namespace impl { extern "C" { int cppCallbackToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames, const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags, void *userData); } // extern "C" } // ----------------------------------------------------------------------------------- ////// /// @brief Callback stream using a C++ function (either a free function or a static function) /// callback. ////// class FunCallbackStream : public CallbackStream { public: typedef int (*CallbackFunPtr)(const void *inputBuffer, void *outputBuffer, unsigned long numFrames, const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags, void *userData); // ------------------------------------------------------------------------------- ////// /// @brief Simple structure containing a function pointer to the C++ callback function and a /// (void) pointer to the user supplied data. ////// struct CppToCCallbackData { CppToCCallbackData(); CppToCCallbackData(CallbackFunPtr funPtr, void *userData); void init(CallbackFunPtr funPtr, void *userData); CallbackFunPtr funPtr; void *userData; }; // ------------------------------------------------------------------------------- FunCallbackStream(); FunCallbackStream(const StreamParameters ¶meters, CallbackFunPtr funPtr, void *userData); ~FunCallbackStream(); void open(const StreamParameters ¶meters, CallbackFunPtr funPtr, void *userData); private: FunCallbackStream(const FunCallbackStream &); // non-copyable FunCallbackStream &operator=(const FunCallbackStream &); // non-copyable CppToCCallbackData adapterData_; void open(const StreamParameters ¶meters); }; } // portaudio // --------------------------------------------------------------------------------------- #endif // INCLUDED_PORTAUDIO_CPPFUNCALLBACKSTREAM_HXX