00001 #ifndef INCLUDED_PORTAUDIO_BLOCKINGSTREAM_HXX 00002 #define INCLUDED_PORTAUDIO_BLOCKINGSTREAM_HXX 00003 00004 // --------------------------------------------------------------------------------------- 00005 00006 #include "portaudiocpp/Stream.hxx" 00007 00008 // --------------------------------------------------------------------------------------- 00009 00010 namespace portaudio 00011 { 00012 00013 00014 00018 class BlockingStream : public Stream 00019 { 00020 public: 00021 BlockingStream(); 00022 BlockingStream(const StreamParameters ¶meters); 00023 ~BlockingStream(); 00024 00025 void open(const StreamParameters ¶meters); 00026 00027 void read(void *buffer, unsigned long numFrames); 00028 void write(const void *buffer, unsigned long numFrames); 00029 00030 signed long availableReadSize() const; 00031 signed long availableWriteSize() const; 00032 00033 private: 00034 BlockingStream(const BlockingStream &); // non-copyable 00035 BlockingStream &operator=(const BlockingStream &); // non-copyable 00036 }; 00037 00038 00039 00040 } // portaudio 00041 00042 // --------------------------------------------------------------------------------------- 00043 00044 #endif // INCLUDED_PORTAUDIO_BLOCKINGSTREAM_HXX 00045