summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/portaudio/bindings/cpp/include/portaudiocpp/BlockingStream.hxx
blob: c1bcac7d9ced9dd177f832fb58c38b4a772a4651 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#ifndef INCLUDED_PORTAUDIO_BLOCKINGSTREAM_HXX
#define INCLUDED_PORTAUDIO_BLOCKINGSTREAM_HXX

// ---------------------------------------------------------------------------------------

#include "portaudiocpp/Stream.hxx"

// ---------------------------------------------------------------------------------------

namespace portaudio
{



    //////
    /// @brief Stream class for blocking read/write-style input and output.
    //////
    class BlockingStream : public Stream
    {
    public:
        BlockingStream();
        BlockingStream(const StreamParameters &parameters);
        ~BlockingStream();

        void open(const StreamParameters &parameters);

        void read(void *buffer, unsigned long numFrames);
        void write(const void *buffer, unsigned long numFrames);

        signed long availableReadSize() const;
        signed long availableWriteSize() const;

    private:
        BlockingStream(const BlockingStream &); // non-copyable
        BlockingStream &operator=(const BlockingStream &); // non-copyable
    };



} // portaudio

// ---------------------------------------------------------------------------------------

#endif // INCLUDED_PORTAUDIO_BLOCKINGSTREAM_HXX