To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.
The primary repository for this project is hosted at https://github.com/sonic-visualiser/sv-dependency-builds .
This repository is a read-only copy which is updated automatically every hour.
root / src / portaudio_20161030_catalina_patch / bindings / cpp / include / portaudiocpp / Device.hxx @ 162:d43aab368df9
History | View | Annotate | Download (2.65 KB)
| 1 |
#ifndef INCLUDED_PORTAUDIO_DEVICE_HXX |
|---|---|
| 2 |
#define INCLUDED_PORTAUDIO_DEVICE_HXX |
| 3 |
|
| 4 |
// --------------------------------------------------------------------------------------- |
| 5 |
|
| 6 |
#include <iterator> |
| 7 |
|
| 8 |
#include "portaudio.h" |
| 9 |
|
| 10 |
#include "portaudiocpp/SampleDataFormat.hxx" |
| 11 |
|
| 12 |
// --------------------------------------------------------------------------------------- |
| 13 |
|
| 14 |
// Forward declaration(s): |
| 15 |
namespace portaudio |
| 16 |
{
|
| 17 |
class System; |
| 18 |
class HostApi; |
| 19 |
} |
| 20 |
|
| 21 |
// --------------------------------------------------------------------------------------- |
| 22 |
|
| 23 |
// Declaration(s): |
| 24 |
namespace portaudio |
| 25 |
{
|
| 26 |
|
| 27 |
////// |
| 28 |
/// @brief Class which represents a PortAudio device in the System. |
| 29 |
/// |
| 30 |
/// A single physical device in the system may have multiple PortAudio |
| 31 |
/// Device representations using different HostApi 's though. A Device |
| 32 |
/// can be half-duplex or full-duplex. A half-duplex Device can be used |
| 33 |
/// to create a half-duplex Stream. A full-duplex Device can be used to |
| 34 |
/// create a full-duplex Stream. If supported by the HostApi, two |
| 35 |
/// half-duplex Devices can even be used to create a full-duplex Stream. |
| 36 |
/// |
| 37 |
/// Note that Device objects are very light-weight and can be passed around |
| 38 |
/// by-value. |
| 39 |
////// |
| 40 |
class Device |
| 41 |
{
|
| 42 |
public: |
| 43 |
// query info: name, max in channels, max out channels, |
| 44 |
// default low/hight input/output latency, default sample rate |
| 45 |
PaDeviceIndex index() const; |
| 46 |
const char *name() const; |
| 47 |
int maxInputChannels() const; |
| 48 |
int maxOutputChannels() const; |
| 49 |
PaTime defaultLowInputLatency() const; |
| 50 |
PaTime defaultHighInputLatency() const; |
| 51 |
PaTime defaultLowOutputLatency() const; |
| 52 |
PaTime defaultHighOutputLatency() const; |
| 53 |
double defaultSampleRate() const; |
| 54 |
|
| 55 |
bool isInputOnlyDevice() const; // extended |
| 56 |
bool isOutputOnlyDevice() const; // extended |
| 57 |
bool isFullDuplexDevice() const; // extended |
| 58 |
bool isSystemDefaultInputDevice() const; // extended |
| 59 |
bool isSystemDefaultOutputDevice() const; // extended |
| 60 |
bool isHostApiDefaultInputDevice() const; // extended |
| 61 |
bool isHostApiDefaultOutputDevice() const; // extended |
| 62 |
|
| 63 |
bool operator==(const Device &rhs) const; |
| 64 |
bool operator!=(const Device &rhs) const; |
| 65 |
|
| 66 |
// host api reference |
| 67 |
HostApi &hostApi(); |
| 68 |
const HostApi &hostApi() const; |
| 69 |
|
| 70 |
private: |
| 71 |
PaDeviceIndex index_; |
| 72 |
const PaDeviceInfo *info_; |
| 73 |
|
| 74 |
private: |
| 75 |
friend class System; |
| 76 |
|
| 77 |
explicit Device(PaDeviceIndex index); |
| 78 |
~Device(); |
| 79 |
|
| 80 |
Device(const Device &); // non-copyable |
| 81 |
Device &operator=(const Device &); // non-copyable |
| 82 |
}; |
| 83 |
|
| 84 |
// ----------------------------------------------------------------------------------- |
| 85 |
|
| 86 |
} // namespace portaudio |
| 87 |
|
| 88 |
// --------------------------------------------------------------------------------------- |
| 89 |
|
| 90 |
#endif // INCLUDED_PORTAUDIO_DEVICE_HXX |
| 91 |
|