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