annotate src/portaudio/bindings/cpp/include/portaudiocpp/HostApi.hxx @ 4:e13257ea84a4

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