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 &parameters, PaStreamCallback *funPtr, void *userData);
34 		~CFunCallbackStream();
35 
36 		void open(const StreamParameters &parameters, 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