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