cannam@140: #ifndef INCLUDED_PORTAUDIO_BLOCKINGSTREAM_HXX cannam@140: #define INCLUDED_PORTAUDIO_BLOCKINGSTREAM_HXX cannam@140: cannam@140: // --------------------------------------------------------------------------------------- cannam@140: cannam@140: #include "portaudiocpp/Stream.hxx" cannam@140: cannam@140: // --------------------------------------------------------------------------------------- cannam@140: cannam@140: namespace portaudio cannam@140: { cannam@140: cannam@140: cannam@140: cannam@140: ////// cannam@140: /// @brief Stream class for blocking read/write-style input and output. cannam@140: ////// cannam@140: class BlockingStream : public Stream cannam@140: { cannam@140: public: cannam@140: BlockingStream(); cannam@140: BlockingStream(const StreamParameters ¶meters); cannam@140: ~BlockingStream(); cannam@140: cannam@140: void open(const StreamParameters ¶meters); cannam@140: cannam@140: void read(void *buffer, unsigned long numFrames); cannam@140: void write(const void *buffer, unsigned long numFrames); cannam@140: cannam@140: signed long availableReadSize() const; cannam@140: signed long availableWriteSize() const; cannam@140: cannam@140: private: cannam@140: BlockingStream(const BlockingStream &); // non-copyable cannam@140: BlockingStream &operator=(const BlockingStream &); // non-copyable cannam@140: }; cannam@140: cannam@140: cannam@140: cannam@140: } // portaudio cannam@140: cannam@140: // --------------------------------------------------------------------------------------- cannam@140: cannam@140: #endif // INCLUDED_PORTAUDIO_BLOCKINGSTREAM_HXX cannam@140: