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