annotate src/portaudio_20140130/bindings/cpp/include/portaudiocpp/HostApi.hxx @ 39:7ddb4fc30dac

Current stable PortAudio source
author Chris Cannam
date Tue, 18 Oct 2016 13:11:05 +0100
parents
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