Mercurial > hg > sv-dependency-builds
view src/portaudio_20140130/bindings/cpp/include/portaudiocpp/Device.hxx @ 83:ae30d91d2ffe
Replace these with versions built using an older toolset (so as to avoid ABI compatibilities when linking on Ubuntu 14.04 for packaging purposes)
author | Chris Cannam |
---|---|
date | Fri, 07 Feb 2020 11:51:13 +0000 |
parents | 7ddb4fc30dac |
children |
line wrap: on
line source
#ifndef INCLUDED_PORTAUDIO_DEVICE_HXX #define INCLUDED_PORTAUDIO_DEVICE_HXX // --------------------------------------------------------------------------------------- #include <iterator> #include "portaudio.h" #include "portaudiocpp/SampleDataFormat.hxx" // --------------------------------------------------------------------------------------- // 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/hight 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); bool operator!=(const Device &rhs); // 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 // --------------------------------------------------------------------------------------- #endif // INCLUDED_PORTAUDIO_DEVICE_HXX