cannam@140: #ifndef INCLUDED_PORTAUDIO_CFUNCALLBACKSTREAM_HXX cannam@140: #define INCLUDED_PORTAUDIO_CFUNCALLBACKSTREAM_HXX cannam@140: cannam@140: // --------------------------------------------------------------------------------------- cannam@140: cannam@140: #include "portaudio.h" cannam@140: cannam@140: #include "portaudiocpp/CallbackStream.hxx" cannam@140: cannam@140: // --------------------------------------------------------------------------------------- cannam@140: cannam@140: // Forward declaration(s) cannam@140: namespace portaudio cannam@140: { cannam@140: class StreamParameters; cannam@140: } cannam@140: cannam@140: // --------------------------------------------------------------------------------------- cannam@140: cannam@140: // Declaration(s): cannam@140: namespace portaudio cannam@140: { cannam@140: // ----------------------------------------------------------------------------------- cannam@140: cannam@140: ////// cannam@140: /// @brief Callback stream using a free function with C linkage. It's important that the function cannam@140: /// the passed function pointer points to is declared ``extern "C"''. cannam@140: ////// cannam@140: class CFunCallbackStream : public CallbackStream cannam@140: { cannam@140: public: cannam@140: CFunCallbackStream(); cannam@140: CFunCallbackStream(const StreamParameters ¶meters, PaStreamCallback *funPtr, void *userData); cannam@140: ~CFunCallbackStream(); cannam@140: cannam@140: void open(const StreamParameters ¶meters, PaStreamCallback *funPtr, void *userData); cannam@140: cannam@140: private: cannam@140: CFunCallbackStream(const CFunCallbackStream &); // non-copyable cannam@140: CFunCallbackStream &operator=(const CFunCallbackStream &); // non-copyable cannam@140: }; cannam@140: cannam@140: // ----------------------------------------------------------------------------------- cannam@140: } // portaudio cannam@140: cannam@140: // --------------------------------------------------------------------------------------- cannam@140: cannam@140: #endif // INCLUDED_PORTAUDIO_MEMFUNCALLBACKSTREAM_HXX cannam@140: