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