42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
|   | #include "portaudiocpp/CFunCallbackStream.hxx"
 | ||
|  | 
 | ||
|  | #include "portaudiocpp/StreamParameters.hxx"
 | ||
|  | #include "portaudiocpp/Exception.hxx"
 | ||
|  | 
 | ||
|  | namespace portaudio | ||
|  | { | ||
|  |     CFunCallbackStream::CFunCallbackStream() | ||
|  |     { | ||
|  |     } | ||
|  | 
 | ||
|  |     CFunCallbackStream::CFunCallbackStream(const StreamParameters ¶meters, PaStreamCallback *funPtr, void *userData) | ||
|  |     { | ||
|  |         open(parameters, funPtr, userData); | ||
|  |     } | ||
|  | 
 | ||
|  |     CFunCallbackStream::~CFunCallbackStream() | ||
|  |     { | ||
|  |         try | ||
|  |         { | ||
|  |             close(); | ||
|  |         } | ||
|  |         catch (...) | ||
|  |         { | ||
|  |             // ignore all errors
 | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     // ---------------------------------------------------------------------------------==
 | ||
|  | 
 | ||
|  |     void CFunCallbackStream::open(const StreamParameters ¶meters, PaStreamCallback *funPtr, void *userData) | ||
|  |     { | ||
|  |         PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(), | ||
|  |             parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), funPtr, userData); | ||
|  | 
 | ||
|  |         if (err != paNoError) | ||
|  |         { | ||
|  |             throw PaException(err); | ||
|  |         } | ||
|  |     } | ||
|  | } |