Spaces:
Runtime error
Runtime error
// --------------------------------------------------------------------------------------- | |
// --------------------------------------------------------------------------------------- | |
// Forward declaration(s): | |
namespace portaudio | |
{ | |
class System; | |
class HostApi; | |
} | |
// --------------------------------------------------------------------------------------- | |
// Declaration(s): | |
namespace portaudio | |
{ | |
////// | |
/// @brief Class which represents a PortAudio device in the System. | |
/// | |
/// A single physical device in the system may have multiple PortAudio | |
/// Device representations using different HostApi 's though. A Device | |
/// can be half-duplex or full-duplex. A half-duplex Device can be used | |
/// to create a half-duplex Stream. A full-duplex Device can be used to | |
/// create a full-duplex Stream. If supported by the HostApi, two | |
/// half-duplex Devices can even be used to create a full-duplex Stream. | |
/// | |
/// Note that Device objects are very light-weight and can be passed around | |
/// by-value. | |
////// | |
class Device | |
{ | |
public: | |
// query info: name, max in channels, max out channels, | |
// default low/high input/output latency, default sample rate | |
PaDeviceIndex index() const; | |
const char *name() const; | |
int maxInputChannels() const; | |
int maxOutputChannels() const; | |
PaTime defaultLowInputLatency() const; | |
PaTime defaultHighInputLatency() const; | |
PaTime defaultLowOutputLatency() const; | |
PaTime defaultHighOutputLatency() const; | |
double defaultSampleRate() const; | |
bool isInputOnlyDevice() const; // extended | |
bool isOutputOnlyDevice() const; // extended | |
bool isFullDuplexDevice() const; // extended | |
bool isSystemDefaultInputDevice() const; // extended | |
bool isSystemDefaultOutputDevice() const; // extended | |
bool isHostApiDefaultInputDevice() const; // extended | |
bool isHostApiDefaultOutputDevice() const; // extended | |
bool operator==(const Device &rhs) const; | |
bool operator!=(const Device &rhs) const; | |
// host api reference | |
HostApi &hostApi(); | |
const HostApi &hostApi() const; | |
private: | |
PaDeviceIndex index_; | |
const PaDeviceInfo *info_; | |
private: | |
friend class System; | |
explicit Device(PaDeviceIndex index); | |
~Device(); | |
Device(const Device &); // non-copyable | |
Device &operator=(const Device &); // non-copyable | |
}; | |
// ----------------------------------------------------------------------------------- | |
} // namespace portaudio | |
// --------------------------------------------------------------------------------------- | |