mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-27 06:38:44 -05:00
39f88b793d
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/trunk@249 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
77 lines
1.9 KiB
C++
77 lines
1.9 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 retreived.
|
|
//////
|
|
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
|
|
|