mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-08 01:56:10 -05:00
39f88b793d
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/trunk@249 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
78 lines
2.5 KiB
C++
78 lines
2.5 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
|