DISTRHO Plugin Framework
|
#include <DistrhoPlugin.hpp>
Public Member Functions | |
Plugin (uint32_t parameterCount, uint32_t programCount, uint32_t stateCount) | |
virtual | ~Plugin () |
uint32_t | getBufferSize () const noexcept |
double | getSampleRate () const noexcept |
const TimePosition & | getTimePosition () const noexcept |
void | setLatency (uint32_t frames) noexcept |
bool | writeMidiEvent (const MidiEvent &midiEvent) noexcept |
Plugin (uint32_t parameterCount, uint32_t programCount, uint32_t stateCount) | |
virtual | ~Plugin () |
uint32_t | getBufferSize () const noexcept |
double | getSampleRate () const noexcept |
const TimePosition & | getTimePosition () const noexcept |
void | setLatency (uint32_t frames) noexcept |
bool | writeMidiEvent (const MidiEvent &midiEvent) noexcept |
Protected Member Functions | |
virtual const char * | getName () const |
virtual const char * | getLabel () const =0 |
virtual const char * | getDescription () const |
virtual const char * | getMaker () const =0 |
virtual const char * | getHomePage () const |
virtual const char * | getLicense () const =0 |
virtual uint32_t | getVersion () const =0 |
virtual int64_t | getUniqueId () const =0 |
virtual void | initAudioPort (bool input, uint32_t index, AudioPort &port) |
virtual void | initParameter (uint32_t index, Parameter ¶meter)=0 |
virtual void | initPortGroup (uint32_t groupId, PortGroup &portGroup) |
virtual void | initProgramName (uint32_t index, String &programName)=0 |
virtual void | initState (uint32_t index, String &stateKey, String &defaultStateValue)=0 |
virtual float | getParameterValue (uint32_t index) const =0 |
virtual void | setParameterValue (uint32_t index, float value)=0 |
virtual void | loadProgram (uint32_t index)=0 |
virtual String | getState (const char *key) const =0 |
virtual void | setState (const char *key, const char *value)=0 |
virtual void | activate () |
virtual void | deactivate () |
virtual void | run (const float **inputs, float **outputs, uint32_t frames, const MidiEvent *midiEvents, uint32_t midiEventCount)=0 |
virtual void | bufferSizeChanged (uint32_t newBufferSize) |
virtual void | sampleRateChanged (double newSampleRate) |
virtual const char * | getName () const |
virtual const char * | getLabel () const =0 |
virtual const char * | getDescription () const |
virtual const char * | getMaker () const =0 |
virtual const char * | getHomePage () const |
virtual const char * | getLicense () const =0 |
virtual uint32_t | getVersion () const =0 |
virtual int64_t | getUniqueId () const =0 |
virtual void | initAudioPort (bool input, uint32_t index, AudioPort &port) |
virtual void | initParameter (uint32_t index, Parameter ¶meter)=0 |
virtual void | initProgramName (uint32_t index, String &programName)=0 |
virtual void | initState (uint32_t index, String &stateKey, String &defaultStateValue)=0 |
virtual float | getParameterValue (uint32_t index) const =0 |
virtual void | setParameterValue (uint32_t index, float value)=0 |
virtual void | loadProgram (uint32_t index)=0 |
virtual String | getState (const char *key) const =0 |
virtual void | setState (const char *key, const char *value)=0 |
virtual void | activate () |
virtual void | deactivate () |
virtual void | run (const float **inputs, float **outputs, uint32_t frames, const MidiEvent *midiEvents, uint32_t midiEventCount)=0 |
virtual void | bufferSizeChanged (uint32_t newBufferSize) |
virtual void | sampleRateChanged (double newSampleRate) |
Friends | |
class | PluginExporter |
DPF Plugin class from where plugin instances are created.
The public methods (Host state) are called from the plugin to get or set host information.
They can be called from a plugin instance at anytime unless stated otherwise.
All other methods are to be implemented by the plugin and will be called by the host.
Shortly after a plugin instance is created, the various init* functions will be called by the host.
Host will call activate() before run(), and deactivate() before the plugin instance is destroyed.
The host may call deactivate right after activate and vice-versa, but never activate/deactivate consecutively.
There is no limit on how many times run() is called, only that activate/deactivate will be called in between.
The buffer size and sample rate values will remain constant between activate and deactivate.
Buffer size is only a hint though, the host might call run() with a higher or lower number of frames.
Some of this class functions are only available according to some macros.
DISTRHO_PLUGIN_WANT_PROGRAMS activates program related features.
When enabled you need to implement initProgramName() and loadProgram().
DISTRHO_PLUGIN_WANT_STATE activates internal state features.
When enabled you need to implement initStateKey() and setState().
The process function run() changes wherever DISTRHO_PLUGIN_WANT_MIDI_INPUT is enabled or not.
When enabled it provides midi input events.
Plugin::Plugin | ( | uint32_t | parameterCount, |
uint32_t | programCount, | ||
uint32_t | stateCount | ||
) |
Plugin class constructor.
You must set all parameter values to their defaults, matching ParameterRanges::def.
|
virtual |
Destructor.
Plugin::Plugin | ( | uint32_t | parameterCount, |
uint32_t | programCount, | ||
uint32_t | stateCount | ||
) |
Plugin class constructor.
You must set all parameter values to their defaults, matching ParameterRanges::def.
|
virtual |
Destructor.
|
noexcept |
Get the current buffer size that will probably be used during processing, in frames.
This value will remain constant between activate and deactivate.
|
noexcept |
Get the current sample rate that will be used during processing.
This value will remain constant between activate and deactivate.
|
noexcept |
Get the current host transport time position.
This function should only be called during run().
You can call this during other times, but the returned position is not guaranteed to be in sync.
|
noexcept |
Change the plugin audio output latency to frames.
This function should only be called in the constructor, activate() and run().
|
noexcept |
|
inlineprotectedvirtual |
Get the plugin name.
Returns DISTRHO_PLUGIN_NAME by default.
|
protectedpure virtual |
Get the plugin label.
This label is a short restricted name consisting of only _, a-z, A-Z and 0-9 characters.
|
inlineprotectedvirtual |
Get an extensive comment/description about the plugin.
Optional, returns nothing by default.
|
protectedpure virtual |
Get the plugin author/maker.
|
inlineprotectedvirtual |
Get the plugin homepage.
Optional, returns nothing by default.
|
protectedpure virtual |
Get the plugin license (a single line of text or a URL).
For commercial plugins this should return some short copyright information.
|
protectedpure virtual |
Get the plugin version, in hexadecimal.
|
protectedpure virtual |
Get the plugin unique Id.
This value is used by LADSPA, DSSI and VST plugin formats.
|
protectedvirtual |
Initialize the audio port index.
This function will be called once, shortly after the plugin is created.
|
protectedpure virtual |
Initialize the parameter index.
This function will be called once, shortly after the plugin is created.
|
protectedvirtual |
Initialize the port group groupId.
This function will be called once, shortly after the plugin is created and all audio ports and parameters have been enumerated.
|
protectedpure virtual |
Set the name of the program index.
This function will be called once, shortly after the plugin is created.
Must be implemented by your plugin class only if DISTRHO_PLUGIN_WANT_PROGRAMS is enabled.
|
protectedpure virtual |
Set the state key and default value of index.
This function will be called once, shortly after the plugin is created.
Must be implemented by your plugin class only if DISTRHO_PLUGIN_WANT_STATE is enabled.
|
protectedpure virtual |
Get the current value of a parameter.
The host may call this function from any context, including realtime processing.
|
protectedpure virtual |
Change a parameter value.
The host may call this function from any context, including realtime processing.
When a parameter is marked as automable, you must ensure no non-realtime operations are performed.
|
protectedpure virtual |
Load a program.
The host may call this function from any context, including realtime processing.
Must be implemented by your plugin class only if DISTRHO_PLUGIN_WANT_PROGRAMS is enabled.
|
protectedpure virtual |
Get the value of an internal state.
The host may call this function from any non-realtime context.
Must be implemented by your plugin class if DISTRHO_PLUGIN_WANT_FULL_STATE is enabled.
|
protectedpure virtual |
Change an internal state key to value.
Must be implemented by your plugin class only if DISTRHO_PLUGIN_WANT_STATE is enabled.
|
inlineprotectedvirtual |
Activate this plugin.
|
inlineprotectedvirtual |
Deactivate this plugin.
|
protectedpure virtual |
Run/process function for plugins with MIDI input.
|
protectedvirtual |
Optional callback to inform the plugin about a buffer size change.
This function will only be called when the plugin is deactivated.
|
protectedvirtual |
Optional callback to inform the plugin about a sample rate change.
This function will only be called when the plugin is deactivated.
|
noexcept |
Get the current buffer size that will probably be used during processing, in frames.
This value will remain constant between activate and deactivate.
|
noexcept |
Get the current sample rate that will be used during processing.
This value will remain constant between activate and deactivate.
|
noexcept |
Get the current host transport time position.
This function should only be called during run().
You can call this during other times, but the returned position is not guaranteed to be in sync.
|
noexcept |
Change the plugin audio output latency to frames.
This function should only be called in the constructor, activate() and run().
|
noexcept |
|
inlineprotectedvirtual |
Get the plugin name.
Returns DISTRHO_PLUGIN_NAME by default.
|
protectedpure virtual |
Get the plugin label.
This label is a short restricted name consisting of only _, a-z, A-Z and 0-9 characters.
|
inlineprotectedvirtual |
Get an extensive comment/description about the plugin.
Optional, returns nothing by default.
|
protectedpure virtual |
Get the plugin author/maker.
|
inlineprotectedvirtual |
Get the plugin homepage.
Optional, returns nothing by default.
|
protectedpure virtual |
Get the plugin license (a single line of text or a URL).
For commercial plugins this should return some short copyright information.
|
protectedpure virtual |
Get the plugin version, in hexadecimal.
|
protectedpure virtual |
Get the plugin unique Id.
This value is used by LADSPA, DSSI and VST plugin formats.
|
protectedvirtual |
Initialize the audio port index.
This function will be called once, shortly after the plugin is created.
|
protectedpure virtual |
Initialize the parameter index.
This function will be called once, shortly after the plugin is created.
|
protectedpure virtual |
Set the name of the program index.
This function will be called once, shortly after the plugin is created.
Must be implemented by your plugin class only if DISTRHO_PLUGIN_WANT_PROGRAMS is enabled.
|
protectedpure virtual |
Set the state key and default value of index.
This function will be called once, shortly after the plugin is created.
Must be implemented by your plugin class only if DISTRHO_PLUGIN_WANT_STATE is enabled.
|
protectedpure virtual |
Get the current value of a parameter.
The host may call this function from any context, including realtime processing.
|
protectedpure virtual |
Change a parameter value.
The host may call this function from any context, including realtime processing.
When a parameter is marked as automable, you must ensure no non-realtime operations are performed.
|
protectedpure virtual |
Load a program.
The host may call this function from any context, including realtime processing.
Must be implemented by your plugin class only if DISTRHO_PLUGIN_WANT_PROGRAMS is enabled.
|
protectedpure virtual |
Get the value of an internal state.
The host may call this function from any non-realtime context.
Must be implemented by your plugin class if DISTRHO_PLUGIN_WANT_FULL_STATE is enabled.
|
protectedpure virtual |
Change an internal state key to value.
Must be implemented by your plugin class only if DISTRHO_PLUGIN_WANT_STATE is enabled.
|
inlineprotectedvirtual |
Activate this plugin.
|
inlineprotectedvirtual |
Deactivate this plugin.
|
protectedpure virtual |
Run/process function for plugins with MIDI input.
|
protectedvirtual |
Optional callback to inform the plugin about a buffer size change.
This function will only be called when the plugin is deactivated.
|
protectedvirtual |
Optional callback to inform the plugin about a sample rate change.
This function will only be called when the plugin is deactivated.