76 lines
		
	
	
		
			2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			76 lines
		
	
	
		
			2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
|   | #ifndef INCLUDED_PORTAUDIO_HOSTAPI_HXX
 | ||
|  | #define INCLUDED_PORTAUDIO_HOSTAPI_HXX
 | ||
|  | 
 | ||
|  | // ---------------------------------------------------------------------------------------
 | ||
|  | 
 | ||
|  | #include "portaudio.h"
 | ||
|  | 
 | ||
|  | #include "portaudiocpp/System.hxx"
 | ||
|  | 
 | ||
|  | // ---------------------------------------------------------------------------------------
 | ||
|  | 
 | ||
|  | // Forward declaration(s):
 | ||
|  | namespace portaudio | ||
|  | { | ||
|  |     class Device; | ||
|  | } | ||
|  | 
 | ||
|  | // ---------------------------------------------------------------------------------------
 | ||
|  | 
 | ||
|  | // Declaration(s):
 | ||
|  | namespace portaudio | ||
|  | { | ||
|  | 
 | ||
|  | 
 | ||
|  |     //////
 | ||
|  |     /// @brief HostApi represents a host API (usually type of driver) in the System.
 | ||
|  |     ///
 | ||
|  |     /// A single System can support multiple HostApi's each one typically having
 | ||
|  |     /// a set of Devices using that HostApi (usually driver type). All Devices in
 | ||
|  |     /// the HostApi can be enumerated and the default input/output Device for this
 | ||
|  |     /// HostApi can be retrieved.
 | ||
|  |     //////
 | ||
|  |     class HostApi | ||
|  |     { | ||
|  |     public: | ||
|  |         typedef System::DeviceIterator DeviceIterator; | ||
|  | 
 | ||
|  |         // query info: id, name, numDevices
 | ||
|  |         PaHostApiTypeId typeId() const; | ||
|  |         PaHostApiIndex index() const; | ||
|  |         const char *name() const; | ||
|  |         int deviceCount() const; | ||
|  | 
 | ||
|  |         // iterate devices
 | ||
|  |         DeviceIterator devicesBegin(); | ||
|  |         DeviceIterator devicesEnd(); | ||
|  | 
 | ||
|  |         // default devices
 | ||
|  |         Device &defaultInputDevice() const; | ||
|  |         Device &defaultOutputDevice() const; | ||
|  | 
 | ||
|  |         // comparison operators
 | ||
|  |         bool operator==(const HostApi &rhs) const; | ||
|  |         bool operator!=(const HostApi &rhs) const; | ||
|  | 
 | ||
|  |     private: | ||
|  |         const PaHostApiInfo *info_; | ||
|  |         Device **devices_; | ||
|  | 
 | ||
|  |     private: | ||
|  |         friend class System; | ||
|  | 
 | ||
|  |         explicit HostApi(PaHostApiIndex index); | ||
|  |         ~HostApi(); | ||
|  | 
 | ||
|  |         HostApi(const HostApi &); // non-copyable
 | ||
|  |         HostApi &operator=(const HostApi &); // non-copyable
 | ||
|  |     }; | ||
|  | 
 | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | // ---------------------------------------------------------------------------------------
 | ||
|  | 
 | ||
|  | #endif // INCLUDED_PORTAUDIO_HOSTAPI_HXX
 |