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