Mercurial > hg > sv-dependency-builds
comparison src/portaudio/bindings/cpp/include/portaudiocpp/Stream.hxx @ 4:e13257ea84a4
Add bzip2, zlib, liblo, portaudio sources
author | Chris Cannam |
---|---|
date | Wed, 20 Mar 2013 13:59:52 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
3:6c505a35919a | 4:e13257ea84a4 |
---|---|
1 #ifndef INCLUDED_PORTAUDIO_STREAM_HXX | |
2 #define INCLUDED_PORTAUDIO_STREAM_HXX | |
3 | |
4 #include "portaudio.h" | |
5 | |
6 // --------------------------------------------------------------------------------------- | |
7 | |
8 // Forward declaration(s): | |
9 namespace portaudio | |
10 { | |
11 class StreamParameters; | |
12 } | |
13 | |
14 // --------------------------------------------------------------------------------------- | |
15 | |
16 // Declaration(s): | |
17 namespace portaudio | |
18 { | |
19 | |
20 | |
21 ////// | |
22 /// @brief A Stream represents an active or inactive input and/or output data | |
23 /// stream in the System. | |
24 /// | |
25 /// Concrete Stream classes should ensure themselves being in a closed state at | |
26 /// destruction (i.e. by calling their own close() method in their deconstructor). | |
27 /// Following good C++ programming practices, care must be taken to ensure no | |
28 /// exceptions are thrown by the deconstructor of these classes. As a consequence, | |
29 /// clients need to explicitly call close() to ensure the stream closed successfully. | |
30 /// | |
31 /// The Stream object can be used to manipulate the Stream's state. Also, time-constant | |
32 /// and time-varying information about the Stream can be retreived. | |
33 ////// | |
34 class Stream | |
35 { | |
36 public: | |
37 // Opening/closing: | |
38 virtual ~Stream(); | |
39 | |
40 virtual void close(); | |
41 bool isOpen() const; | |
42 | |
43 // Additional set up: | |
44 void setStreamFinishedCallback(PaStreamFinishedCallback *callback); | |
45 | |
46 // State management: | |
47 void start(); | |
48 void stop(); | |
49 void abort(); | |
50 | |
51 bool isStopped() const; | |
52 bool isActive() const; | |
53 | |
54 // Stream info (time-constant, but might become time-variant soon): | |
55 PaTime inputLatency() const; | |
56 PaTime outputLatency() const; | |
57 double sampleRate() const; | |
58 | |
59 // Stream info (time-varying): | |
60 PaTime time() const; | |
61 | |
62 // Accessors for PortAudio PaStream, useful for interfacing | |
63 // with PortAudio add-ons (such as PortMixer) for instance: | |
64 const PaStream *paStream() const; | |
65 PaStream *paStream(); | |
66 | |
67 protected: | |
68 Stream(); // abstract class | |
69 | |
70 PaStream *stream_; | |
71 | |
72 private: | |
73 Stream(const Stream &); // non-copyable | |
74 Stream &operator=(const Stream &); // non-copyable | |
75 }; | |
76 | |
77 | |
78 } // namespace portaudio | |
79 | |
80 | |
81 #endif // INCLUDED_PORTAUDIO_STREAM_HXX | |
82 |