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