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