Mercurial > hg > sv-dependency-builds
annotate src/portaudio_20161030/bindings/cpp/include/portaudiocpp/HostApi.hxx @ 140:59a8758c56b1
Add source for PortAudio stable v190600_20161030
author | Chris Cannam <cannam@all-day-breakfast.com> |
---|---|
date | Tue, 03 Jan 2017 13:44:07 +0000 |
parents | |
children |
rev | line source |
---|---|
cannam@140 | 1 #ifndef INCLUDED_PORTAUDIO_HOSTAPI_HXX |
cannam@140 | 2 #define INCLUDED_PORTAUDIO_HOSTAPI_HXX |
cannam@140 | 3 |
cannam@140 | 4 // --------------------------------------------------------------------------------------- |
cannam@140 | 5 |
cannam@140 | 6 #include "portaudio.h" |
cannam@140 | 7 |
cannam@140 | 8 #include "portaudiocpp/System.hxx" |
cannam@140 | 9 |
cannam@140 | 10 // --------------------------------------------------------------------------------------- |
cannam@140 | 11 |
cannam@140 | 12 // Forward declaration(s): |
cannam@140 | 13 namespace portaudio |
cannam@140 | 14 { |
cannam@140 | 15 class Device; |
cannam@140 | 16 } |
cannam@140 | 17 |
cannam@140 | 18 // --------------------------------------------------------------------------------------- |
cannam@140 | 19 |
cannam@140 | 20 // Declaration(s): |
cannam@140 | 21 namespace portaudio |
cannam@140 | 22 { |
cannam@140 | 23 |
cannam@140 | 24 |
cannam@140 | 25 ////// |
cannam@140 | 26 /// @brief HostApi represents a host API (usually type of driver) in the System. |
cannam@140 | 27 /// |
cannam@140 | 28 /// A single System can support multiple HostApi's each one typically having |
cannam@140 | 29 /// a set of Devices using that HostApi (usually driver type). All Devices in |
cannam@140 | 30 /// the HostApi can be enumerated and the default input/output Device for this |
cannam@140 | 31 /// HostApi can be retreived. |
cannam@140 | 32 ////// |
cannam@140 | 33 class HostApi |
cannam@140 | 34 { |
cannam@140 | 35 public: |
cannam@140 | 36 typedef System::DeviceIterator DeviceIterator; |
cannam@140 | 37 |
cannam@140 | 38 // query info: id, name, numDevices |
cannam@140 | 39 PaHostApiTypeId typeId() const; |
cannam@140 | 40 PaHostApiIndex index() const; |
cannam@140 | 41 const char *name() const; |
cannam@140 | 42 int deviceCount() const; |
cannam@140 | 43 |
cannam@140 | 44 // iterate devices |
cannam@140 | 45 DeviceIterator devicesBegin(); |
cannam@140 | 46 DeviceIterator devicesEnd(); |
cannam@140 | 47 |
cannam@140 | 48 // default devices |
cannam@140 | 49 Device &defaultInputDevice() const; |
cannam@140 | 50 Device &defaultOutputDevice() const; |
cannam@140 | 51 |
cannam@140 | 52 // comparison operators |
cannam@140 | 53 bool operator==(const HostApi &rhs) const; |
cannam@140 | 54 bool operator!=(const HostApi &rhs) const; |
cannam@140 | 55 |
cannam@140 | 56 private: |
cannam@140 | 57 const PaHostApiInfo *info_; |
cannam@140 | 58 Device **devices_; |
cannam@140 | 59 |
cannam@140 | 60 private: |
cannam@140 | 61 friend class System; |
cannam@140 | 62 |
cannam@140 | 63 explicit HostApi(PaHostApiIndex index); |
cannam@140 | 64 ~HostApi(); |
cannam@140 | 65 |
cannam@140 | 66 HostApi(const HostApi &); // non-copyable |
cannam@140 | 67 HostApi &operator=(const HostApi &); // non-copyable |
cannam@140 | 68 }; |
cannam@140 | 69 |
cannam@140 | 70 |
cannam@140 | 71 } |
cannam@140 | 72 |
cannam@140 | 73 // --------------------------------------------------------------------------------------- |
cannam@140 | 74 |
cannam@140 | 75 #endif // INCLUDED_PORTAUDIO_HOSTAPI_HXX |
cannam@140 | 76 |