 165b814f5d
			
		
	
	
		165b814f5d
		
	
	
	
	
		
			
			this is necessary in order to get Furnace to build using CMake 4.0. you should do: git submodule deinit extern/portaudio
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef INCLUDED_PORTAUDIO_STREAMPARAMETERS_HXX
 | |
| #define INCLUDED_PORTAUDIO_STREAMPARAMETERS_HXX
 | |
| 
 | |
| // ---------------------------------------------------------------------------------------
 | |
| 
 | |
| #include "portaudio.h"
 | |
| 
 | |
| #include "portaudiocpp/DirectionSpecificStreamParameters.hxx"
 | |
| 
 | |
| // ---------------------------------------------------------------------------------------
 | |
| 
 | |
| // Declaration(s):
 | |
| namespace portaudio
 | |
| {
 | |
| 
 | |
|     //////
 | |
|     /// @brief The entire set of parameters needed to configure and open
 | |
|     /// a Stream.
 | |
|     ///
 | |
|     /// It contains parameters of input, output and shared parameters.
 | |
|     /// Using the isSupported() method, the StreamParameters can be
 | |
|     /// checked if opening a Stream using this StreamParameters would
 | |
|     /// succeed or not. Accessors are provided to higher-level parameters
 | |
|     /// aswell as the lower-level parameters which are mainly intended for
 | |
|     /// internal use.
 | |
|     //////
 | |
|     class StreamParameters
 | |
|     {
 | |
|     public:
 | |
|         StreamParameters();
 | |
|         StreamParameters(const DirectionSpecificStreamParameters &inputParameters,
 | |
|             const DirectionSpecificStreamParameters &outputParameters, double sampleRate,
 | |
|             unsigned long framesPerBuffer, PaStreamFlags flags);
 | |
| 
 | |
|         // Set up for direction-specific:
 | |
|         void setInputParameters(const DirectionSpecificStreamParameters ¶meters);
 | |
|         void setOutputParameters(const DirectionSpecificStreamParameters ¶meters);
 | |
| 
 | |
|         // Set up for common parameters:
 | |
|         void setSampleRate(double sampleRate);
 | |
|         void setFramesPerBuffer(unsigned long framesPerBuffer);
 | |
|         void setFlag(PaStreamFlags flag);
 | |
|         void unsetFlag(PaStreamFlags flag);
 | |
|         void clearFlags();
 | |
| 
 | |
|         // Validation:
 | |
|         bool isSupported() const;
 | |
| 
 | |
|         // Accessors (direction-specific):
 | |
|         DirectionSpecificStreamParameters &inputParameters();
 | |
|         const DirectionSpecificStreamParameters &inputParameters() const;
 | |
|         DirectionSpecificStreamParameters &outputParameters();
 | |
|         const DirectionSpecificStreamParameters &outputParameters() const;
 | |
| 
 | |
|         // Accessors (common):
 | |
|         double sampleRate() const;
 | |
|         unsigned long framesPerBuffer() const;
 | |
|         PaStreamFlags flags() const;
 | |
|         bool isFlagSet(PaStreamFlags flag) const;
 | |
| 
 | |
|     private:
 | |
|         // Half-duplex specific parameters:
 | |
|         DirectionSpecificStreamParameters inputParameters_;
 | |
|         DirectionSpecificStreamParameters outputParameters_;
 | |
| 
 | |
|         // Common parameters:
 | |
|         double sampleRate_;
 | |
|         unsigned long framesPerBuffer_;
 | |
|         PaStreamFlags flags_;
 | |
|     };
 | |
| 
 | |
| 
 | |
| } // namespace portaudio
 | |
| 
 | |
| // ---------------------------------------------------------------------------------------
 | |
| 
 | |
| #endif // INCLUDED_PORTAUDIO_STREAMPARAMETERS_HXX
 |