78 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			78 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
|   | #ifndef INCLUDED_PORTAUDIO_SINGLEDIRECTIONSTREAMPARAMETERS_HXX
 | ||
|  | #define INCLUDED_PORTAUDIO_SINGLEDIRECTIONSTREAMPARAMETERS_HXX
 | ||
|  | 
 | ||
|  | // ---------------------------------------------------------------------------------------
 | ||
|  | 
 | ||
|  | #include <cstddef>
 | ||
|  | 
 | ||
|  | #include "portaudio.h"
 | ||
|  | 
 | ||
|  | #include "portaudiocpp/System.hxx"
 | ||
|  | #include "portaudiocpp/SampleDataFormat.hxx"
 | ||
|  | 
 | ||
|  | // ---------------------------------------------------------------------------------------
 | ||
|  | 
 | ||
|  | // Forward declaration(s):
 | ||
|  | namespace portaudio | ||
|  | { | ||
|  |     class Device; | ||
|  | } | ||
|  | 
 | ||
|  | // ---------------------------------------------------------------------------------------
 | ||
|  | 
 | ||
|  | // Declaration(s):
 | ||
|  | namespace portaudio | ||
|  | { | ||
|  | 
 | ||
|  |     //////
 | ||
|  |     /// @brief All parameters for one direction (either in or out) of a Stream. Together with
 | ||
|  |     /// parameters common to both directions, two DirectionSpecificStreamParameters can make up
 | ||
|  |     /// a StreamParameters object which contains all parameters for a Stream.
 | ||
|  |     //////
 | ||
|  |     class DirectionSpecificStreamParameters | ||
|  |     { | ||
|  |     public: | ||
|  |         static DirectionSpecificStreamParameters null(); | ||
|  | 
 | ||
|  |         DirectionSpecificStreamParameters(); | ||
|  |         DirectionSpecificStreamParameters(const Device &device, int numChannels, SampleDataFormat format, | ||
|  |             bool interleaved, PaTime suggestedLatency, void *hostApiSpecificStreamInfo); | ||
|  | 
 | ||
|  |         // Set up methods:
 | ||
|  |         void setDevice(const Device &device); | ||
|  |         void setNumChannels(int numChannels); | ||
|  | 
 | ||
|  |         void setSampleFormat(SampleDataFormat format, bool interleaved = true); | ||
|  |         void setHostApiSpecificSampleFormat(PaSampleFormat format, bool interleaved = true); | ||
|  | 
 | ||
|  |         void setSuggestedLatency(PaTime latency); | ||
|  | 
 | ||
|  |         void setHostApiSpecificStreamInfo(void *streamInfo); | ||
|  | 
 | ||
|  |         // Accessor methods:
 | ||
|  |         PaStreamParameters *paStreamParameters(); | ||
|  |         const PaStreamParameters *paStreamParameters() const; | ||
|  | 
 | ||
|  |         Device &device() const; | ||
|  |         int numChannels() const; | ||
|  | 
 | ||
|  |         SampleDataFormat sampleFormat() const; | ||
|  |         bool isSampleFormatInterleaved() const; | ||
|  |         bool isSampleFormatHostApiSpecific() const; | ||
|  |         PaSampleFormat hostApiSpecificSampleFormat() const; | ||
|  | 
 | ||
|  |         PaTime suggestedLatency() const; | ||
|  | 
 | ||
|  |         void *hostApiSpecificStreamInfo() const; | ||
|  | 
 | ||
|  |     private: | ||
|  |         PaStreamParameters paStreamParameters_; | ||
|  |     }; | ||
|  | 
 | ||
|  | 
 | ||
|  | } // namespace portaudio
 | ||
|  | 
 | ||
|  | // ---------------------------------------------------------------------------------------
 | ||
|  | 
 | ||
|  | #endif // INCLUDED_PORTAUDIO_SINGLEDIRECTIONSTREAMPARAMETERS_HXX
 |