A single audio device of a driver API.
More...
#include <audio.hpp>
|
virtual | ~Device () |
|
virtual std::string | getName () |
|
virtual int | getNumInputs () |
|
virtual int | getNumOutputs () |
|
virtual std::set< float > | getSampleRates () |
| Returns a list of all valid (user-selectable) sample rates.
|
|
virtual float | getSampleRate () |
| Returns the current sample rate.
|
|
virtual void | setSampleRate (float sampleRate) |
| Sets the sample rate of the device, re-opening it if needed.
|
|
virtual std::set< int > | getBlockSizes () |
| Returns a list of all valid (user-selectable) block sizes.
|
|
virtual int | getBlockSize () |
| Returns the current block size.
|
|
virtual void | setBlockSize (int blockSize) |
| Sets the block size of the device, re-opening it if needed.
|
|
virtual void | subscribe (Port *port) |
| Adds Port to set of subscribed Ports.
|
|
virtual void | unsubscribe (Port *port) |
| Removes Port from set of subscribed Ports.
|
|
void | processBuffer (const float *input, int inputStride, float *output, int outputStride, int frames) |
| Processes audio for each subscribed Port.
|
|
void | onStartStream () |
| Called by driver code when stream starts.
|
|
void | onStopStream () |
| Called by driver code when stream stops.
|
|
A single audio device of a driver API.
Modules and the UI should not interact with this API directly. Use Port instead.
Methods throw rack::Exception
if the driver API has an exception.
◆ ~Device()
virtual rack::audio::Device::~Device |
( |
| ) |
|
|
inlinevirtual |
◆ getName()
virtual std::string rack::audio::Device::getName |
( |
| ) |
|
|
inlinevirtual |
◆ getNumInputs()
virtual int rack::audio::Device::getNumInputs |
( |
| ) |
|
|
inlinevirtual |
◆ getNumOutputs()
virtual int rack::audio::Device::getNumOutputs |
( |
| ) |
|
|
inlinevirtual |
◆ getSampleRates()
virtual std::set< float > rack::audio::Device::getSampleRates |
( |
| ) |
|
|
inlinevirtual |
Returns a list of all valid (user-selectable) sample rates.
The device may accept sample rates not in this list, but it must accept sample rates in the list.
◆ getSampleRate()
virtual float rack::audio::Device::getSampleRate |
( |
| ) |
|
|
inlinevirtual |
Returns the current sample rate.
◆ setSampleRate()
virtual void rack::audio::Device::setSampleRate |
( |
float | sampleRate | ) |
|
|
inlinevirtual |
Sets the sample rate of the device, re-opening it if needed.
◆ getBlockSizes()
virtual std::set< int > rack::audio::Device::getBlockSizes |
( |
| ) |
|
|
inlinevirtual |
Returns a list of all valid (user-selectable) block sizes.
The device may accept block sizes not in this list, but it must accept block sizes in the list.
◆ getBlockSize()
virtual int rack::audio::Device::getBlockSize |
( |
| ) |
|
|
inlinevirtual |
Returns the current block size.
◆ setBlockSize()
virtual void rack::audio::Device::setBlockSize |
( |
int | blockSize | ) |
|
|
inlinevirtual |
Sets the block size of the device, re-opening it if needed.
◆ subscribe()
virtual void rack::audio::Device::subscribe |
( |
Port * | port | ) |
|
|
virtual |
◆ unsubscribe()
virtual void rack::audio::Device::unsubscribe |
( |
Port * | port | ) |
|
|
virtual |
◆ processBuffer()
void rack::audio::Device::processBuffer |
( |
const float * | input, |
|
|
int | inputStride, |
|
|
float * | output, |
|
|
int | outputStride, |
|
|
int | frames ) |
Processes audio for each subscribed Port.
Called by driver code. input
and output
must be non-overlapping. Overwrites all output
, so it is unnecessary to initialize.
◆ onStartStream()
void rack::audio::Device::onStartStream |
( |
| ) |
|
Called by driver code when stream starts.
◆ onStopStream()
void rack::audio::Device::onStopStream |
( |
| ) |
|
Called by driver code when stream stops.
◆ subscribed
std::set<Port*> rack::audio::Device::subscribed |
◆ processMutex
std::mutex rack::audio::Device::processMutex |
Ensures that ports do not subscribe/unsubscribe while processBuffer() is called.
The documentation for this struct was generated from the following file:
- /home/vortico/src/vcv/Rack2/include/audio.hpp