1 #ifndef INCLUDED_PORTAUDIO_CFUNCALLBACKSTREAM_HXX 2 #define INCLUDED_PORTAUDIO_CFUNCALLBACKSTREAM_HXX 3 4 // --------------------------------------------------------------------------------------- 5 6 #include "portaudio.h" 7 8 #include "portaudiocpp/CallbackStream.hxx" 9 10 // --------------------------------------------------------------------------------------- 11 12 // Forward declaration(s) 13 namespace portaudio 14 { 15 class StreamParameters; 16 } 17 18 // --------------------------------------------------------------------------------------- 19 20 // Declaration(s): 21 namespace portaudio 22 { 23 // ----------------------------------------------------------------------------------- 24 25 ////// 26 /// @brief Callback stream using a free function with C linkage. It's important that the function 27 /// the passed function pointer points to is declared ``extern "C"''. 28 ////// 29 class CFunCallbackStream : public CallbackStream 30 { 31 public: 32 CFunCallbackStream(); 33 CFunCallbackStream(const StreamParameters ¶meters, PaStreamCallback *funPtr, void *userData); 34 ~CFunCallbackStream(); 35 36 void open(const StreamParameters ¶meters, PaStreamCallback *funPtr, void *userData); 37 38 private: 39 CFunCallbackStream(const CFunCallbackStream &); // non-copyable 40 CFunCallbackStream &operator=(const CFunCallbackStream &); // non-copyable 41 }; 42 43 // ----------------------------------------------------------------------------------- 44 } // portaudio 45 46 // --------------------------------------------------------------------------------------- 47 48 #endif // INCLUDED_PORTAUDIO_MEMFUNCALLBACKSTREAM_HXX 49 50