annotate src/portaudio/bindings/cpp/include/portaudiocpp/HostApi.hxx @ 105:c83a7e2af39c

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