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