annotate src/portaudio_20140130/bindings/cpp/include/portaudiocpp/HostApi.hxx @ 83:ae30d91d2ffe

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