annotate src/portaudio_20161030/bindings/cpp/include/portaudiocpp/HostApi.hxx @ 81:7029a4916348

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