1 #ifndef INCLUDED_PORTAUDIO_INTERFACECALLBACKSTREAM_HXX
2 #define INCLUDED_PORTAUDIO_INTERFACECALLBACKSTREAM_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 	class CallbackInterface;
17 }
18 
19 // ---------------------------------------------------------------------------------------
20 
21 // Declaration(s):
22 namespace portaudio
23 {
24 
25 
26 	//////
27 	/// @brief Callback stream using an instance of an object that's derived from the CallbackInterface
28 	/// interface.
29 	//////
30 	class InterfaceCallbackStream : public CallbackStream
31 	{
32 	public:
33 		InterfaceCallbackStream();
34 		InterfaceCallbackStream(const StreamParameters &parameters, CallbackInterface &instance);
35 		~InterfaceCallbackStream();
36 
37 		void open(const StreamParameters &parameters, CallbackInterface &instance);
38 
39 	private:
40 		InterfaceCallbackStream(const InterfaceCallbackStream &); // non-copyable
41 		InterfaceCallbackStream &operator=(const InterfaceCallbackStream &); // non-copyable
42 	};
43 
44 
45 } // portaudio
46 
47 // ---------------------------------------------------------------------------------------
48 
49 #endif // INCLUDED_PORTAUDIO_INTERFACECALLBACKSTREAM_HXX
50