Mercurial > hg > sv-dependency-builds
comparison src/portaudio/bindings/cpp/include/portaudiocpp/System.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_SYSTEM_HXX | |
2 #define INCLUDED_PORTAUDIO_SYSTEM_HXX | |
3 | |
4 // --------------------------------------------------------------------------------------- | |
5 | |
6 #include "portaudio.h" | |
7 | |
8 // --------------------------------------------------------------------------------------- | |
9 | |
10 // Forward declaration(s): | |
11 namespace portaudio | |
12 { | |
13 class Device; | |
14 class Stream; | |
15 class HostApi; | |
16 } | |
17 | |
18 // --------------------------------------------------------------------------------------- | |
19 | |
20 // Declaration(s): | |
21 namespace portaudio | |
22 { | |
23 | |
24 | |
25 ////// | |
26 /// @brief System singleton which represents the PortAudio system. | |
27 /// | |
28 /// The System is used to initialize/terminate PortAudio and provide | |
29 /// a single acccess point to the PortAudio System (instance()). | |
30 /// It can be used to iterate through all HostApi 's in the System as | |
31 /// well as all devices in the System. It also provides some utility | |
32 /// functionality of PortAudio. | |
33 /// | |
34 /// Terminating the System will also abort and close the open streams. | |
35 /// The Stream objects will need to be deallocated by the client though | |
36 /// (it's usually a good idea to have them cleaned up automatically). | |
37 ////// | |
38 class System | |
39 { | |
40 public: | |
41 class HostApiIterator; // forward declaration | |
42 class DeviceIterator; // forward declaration | |
43 | |
44 // ------------------------------------------------------------------------------- | |
45 | |
46 static int version(); | |
47 static const char *versionText(); | |
48 | |
49 static void initialize(); | |
50 static void terminate(); | |
51 | |
52 static System &instance(); | |
53 static bool exists(); | |
54 | |
55 // ------------------------------------------------------------------------------- | |
56 | |
57 // host apis: | |
58 HostApiIterator hostApisBegin(); | |
59 HostApiIterator hostApisEnd(); | |
60 | |
61 HostApi &defaultHostApi(); | |
62 | |
63 HostApi &hostApiByTypeId(PaHostApiTypeId type); | |
64 HostApi &hostApiByIndex(PaHostApiIndex index); | |
65 | |
66 int hostApiCount(); | |
67 | |
68 // ------------------------------------------------------------------------------- | |
69 | |
70 // devices: | |
71 DeviceIterator devicesBegin(); | |
72 DeviceIterator devicesEnd(); | |
73 | |
74 Device &defaultInputDevice(); | |
75 Device &defaultOutputDevice(); | |
76 | |
77 Device &deviceByIndex(PaDeviceIndex index); | |
78 | |
79 int deviceCount(); | |
80 | |
81 static Device &nullDevice(); | |
82 | |
83 // ------------------------------------------------------------------------------- | |
84 | |
85 // misc: | |
86 void sleep(long msec); | |
87 int sizeOfSample(PaSampleFormat format); | |
88 | |
89 private: | |
90 System(); | |
91 ~System(); | |
92 | |
93 static System *instance_; | |
94 static int initCount_; | |
95 | |
96 static HostApi **hostApis_; | |
97 static Device **devices_; | |
98 | |
99 static Device *nullDevice_; | |
100 }; | |
101 | |
102 | |
103 } // namespace portaudio | |
104 | |
105 | |
106 #endif // INCLUDED_PORTAUDIO_SYSTEM_HXX | |
107 |