cannam@124
|
1 #ifndef INCLUDED_PORTAUDIO_BLOCKINGSTREAM_HXX
|
cannam@124
|
2 #define INCLUDED_PORTAUDIO_BLOCKINGSTREAM_HXX
|
cannam@124
|
3
|
cannam@124
|
4 // ---------------------------------------------------------------------------------------
|
cannam@124
|
5
|
cannam@124
|
6 #include "portaudiocpp/Stream.hxx"
|
cannam@124
|
7
|
cannam@124
|
8 // ---------------------------------------------------------------------------------------
|
cannam@124
|
9
|
cannam@124
|
10 namespace portaudio
|
cannam@124
|
11 {
|
cannam@124
|
12
|
cannam@124
|
13
|
cannam@124
|
14
|
cannam@124
|
15 //////
|
cannam@124
|
16 /// @brief Stream class for blocking read/write-style input and output.
|
cannam@124
|
17 //////
|
cannam@124
|
18 class BlockingStream : public Stream
|
cannam@124
|
19 {
|
cannam@124
|
20 public:
|
cannam@124
|
21 BlockingStream();
|
cannam@124
|
22 BlockingStream(const StreamParameters ¶meters);
|
cannam@124
|
23 ~BlockingStream();
|
cannam@124
|
24
|
cannam@124
|
25 void open(const StreamParameters ¶meters);
|
cannam@124
|
26
|
cannam@124
|
27 void read(void *buffer, unsigned long numFrames);
|
cannam@124
|
28 void write(const void *buffer, unsigned long numFrames);
|
cannam@124
|
29
|
cannam@124
|
30 signed long availableReadSize() const;
|
cannam@124
|
31 signed long availableWriteSize() const;
|
cannam@124
|
32
|
cannam@124
|
33 private:
|
cannam@124
|
34 BlockingStream(const BlockingStream &); // non-copyable
|
cannam@124
|
35 BlockingStream &operator=(const BlockingStream &); // non-copyable
|
cannam@124
|
36 };
|
cannam@124
|
37
|
cannam@124
|
38
|
cannam@124
|
39
|
cannam@124
|
40 } // portaudio
|
cannam@124
|
41
|
cannam@124
|
42 // ---------------------------------------------------------------------------------------
|
cannam@124
|
43
|
cannam@124
|
44 #endif // INCLUDED_PORTAUDIO_BLOCKINGSTREAM_HXX
|
cannam@124
|
45
|