ardour
|
#include <plugin.h>
Classes | |
struct | PresetRecord |
Public Types | |
typedef std::map< uint32_t, ParameterDescriptor > | PropertyDescriptors |
Public Member Functions | |
Plugin (ARDOUR::AudioEngine &, ARDOUR::Session &) | |
Plugin (const Plugin &) | |
virtual | ~Plugin () |
XMLNode & | get_state () |
virtual int | set_state (const XMLNode &, int version) |
virtual void | set_insert_id (PBD::ID id) |
virtual std::string | unique_id () const =0 |
virtual const char * | label () const =0 |
virtual const char * | name () const =0 |
virtual const char * | maker () const =0 |
virtual uint32_t | parameter_count () const =0 |
virtual float | default_value (uint32_t port)=0 |
virtual float | get_parameter (uint32_t which) const =0 |
virtual std::string | get_docs () const |
virtual std::string | get_parameter_docs (uint32_t) const |
virtual int | get_parameter_descriptor (uint32_t which, ParameterDescriptor &) const =0 |
virtual uint32_t | nth_parameter (uint32_t which, bool &ok) const =0 |
virtual void | activate ()=0 |
virtual void | deactivate ()=0 |
virtual void | flush () |
virtual int | set_block_size (pframes_t nframes)=0 |
virtual int | connect_and_run (BufferSet &bufs, ChanMapping in, ChanMapping out, pframes_t nframes, framecnt_t offset) |
virtual std::set < Evoral::Parameter > | automatable () const =0 |
virtual std::string | describe_parameter (Evoral::Parameter)=0 |
virtual std::string | state_node_name () const =0 |
virtual void | print_parameter (uint32_t, char *, uint32_t len) const =0 |
virtual bool | parameter_is_audio (uint32_t) const =0 |
virtual bool | parameter_is_control (uint32_t) const =0 |
virtual bool | parameter_is_input (uint32_t) const =0 |
virtual bool | parameter_is_output (uint32_t) const =0 |
virtual boost::shared_ptr < ScalePoints > | get_scale_points (uint32_t) const |
void | realtime_handle_transport_stopped () |
void | realtime_locate () |
void | monitoring_changed () |
PresetRecord | save_preset (std::string) |
void | remove_preset (std::string) |
virtual bool | load_preset (PresetRecord) |
void | clear_preset () |
const PresetRecord * | preset_by_label (const std::string &) |
const PresetRecord * | preset_by_uri (const std::string &) |
std::vector< PresetRecord > | get_presets () |
virtual bool | presets_are_MIDI_programs () const |
virtual bool | current_preset_uses_general_midi () const |
PresetRecord | last_preset () const |
bool | parameter_changed_since_last_preset () const |
virtual int | first_user_preset_index () const |
virtual bool | has_editor () const =0 |
virtual bool | configure_io (ChanCount, ChanCount) |
virtual bool | can_support_io_configuration (const ChanCount &, ChanCount &) |
virtual ChanCount | output_streams () const |
virtual ChanCount | input_streams () const |
PluginInfoPtr | get_info () const |
virtual void | set_info (const PluginInfoPtr inf) |
ARDOUR::AudioEngine & | engine () const |
ARDOUR::Session & | session () const |
void | set_cycles (uint32_t c) |
cycles_t | cycles () const |
virtual const PropertyDescriptors & | get_supported_properties () const |
virtual const ParameterDescriptor & | get_property_descriptor (uint32_t id) const |
virtual void | set_property (uint32_t key, const Variant &value) |
virtual void | announce_property_values () |
Public Member Functions inherited from PBD::Stateful | |
Stateful () | |
virtual | ~Stateful () |
virtual bool | apply_changes (PropertyBase const &) |
PropertyChange | apply_changes (PropertyList const &) |
const OwnedPropertyList & | properties () const |
void | add_property (PropertyBase &s) |
void | add_extra_xml (XMLNode &) |
XMLNode * | extra_xml (const std::string &str, bool add_if_missing=false) |
void | save_extra_xml (const XMLNode &) |
const PBD::ID & | id () const |
bool | set_id (const XMLNode &) |
void | set_id (const std::string &) |
void | reset_id () |
void | clear_changes () |
virtual void | clear_owned_changes () |
PropertyList * | get_changes_as_properties (Command *) const |
virtual void | rdiff (std::vector< Command * > &) const |
bool | changed () const |
virtual PropertyList * | property_factory (const XMLNode &) const |
virtual void | suspend_property_changes () |
virtual void | resume_property_changes () |
bool | property_changes_suspended () const |
Public Member Functions inherited from PBD::Destructible | |
Destructible () | |
virtual | ~Destructible () |
void | drop_references () |
Public Member Functions inherited from ARDOUR::Latent | |
Latent () | |
virtual | ~Latent () |
virtual framecnt_t | signal_latency () const =0 |
framecnt_t | user_latency () const |
framecnt_t | effective_latency () const |
virtual void | set_user_latency (framecnt_t val) |
Public Attributes | |
PBD::Signal0< void > | PresetAdded |
PBD::Signal0< void > | PresetRemoved |
PBD::Signal0< void > | PresetLoaded |
PBD::Signal2< void, uint32_t, float > | ParameterChanged |
PBD::Signal2< void, uint32_t, Variant > | PropertyChanged |
PBD::Signal1< void, uint32_t > | StartTouch |
PBD::Signal1< void, uint32_t > | EndTouch |
Public Attributes inherited from PBD::Stateful | |
PBD::Signal1< void, const PropertyChange & > | PropertyChanged |
Public Attributes inherited from PBD::Destructible | |
PBD::Signal0< void > | Destroyed |
PBD::Signal0< void > | DropReferences |
Protected Member Functions | |
virtual void | set_parameter (uint32_t which, float val) |
virtual std::string | do_save_preset (std::string)=0 |
virtual void | do_remove_preset (std::string)=0 |
Protected Member Functions inherited from PBD::Stateful | |
void | add_instant_xml (XMLNode &, const std::string &directory_path) |
XMLNode * | instant_xml (const std::string &str, const std::string &directory_path) |
void | add_properties (XMLNode &) |
PropertyChange | set_values (XMLNode const &) |
virtual void | post_set (const PropertyChange &) |
virtual void | send_change (const PropertyChange &) |
virtual void | mid_thaw (const PropertyChange &) |
Protected Attributes | |
ARDOUR::AudioEngine & | _engine |
ARDOUR::Session & | _session |
PluginInfoPtr | _info |
uint32_t | _cycles |
std::map< std::string, PresetRecord > | _presets |
Protected Attributes inherited from PBD::Stateful | |
XMLNode * | _extra_xml |
XMLNode * | _instant_xml |
PBD::PropertyChange | _pending_changed |
Glib::Threads::Mutex | _lock |
std::string | _xml_node_name |
name of node to use for this object in XML More... | |
OwnedPropertyList * | _properties |
Protected Attributes inherited from ARDOUR::Latent | |
framecnt_t | _user_latency |
Private Member Functions | |
virtual void | find_presets ()=0 |
virtual void | add_state (XMLNode *) const =0 |
void | resolve_midi () |
Private Attributes | |
bool | _have_presets |
MidiStateTracker | _tracker |
BufferSet | _pending_stop_events |
bool | _have_pending_stop_events |
PresetRecord | _last_preset |
bool | _parameter_changed_since_last_preset |
Friends | |
class | PluginInsert |
Additional Inherited Members | |
Static Public Attributes inherited from PBD::Stateful | |
static int | current_state_version = 0 |
static int | loading_state_version = 0 |
typedef std::map<uint32_t, ParameterDescriptor> ARDOUR::Plugin::PropertyDescriptors |
Plugin::Plugin | ( | ARDOUR::AudioEngine & | e, |
ARDOUR::Session & | s | ||
) |
|
pure virtual |
Implemented in ARDOUR::LV2Plugin, ARDOUR::AUPlugin, ARDOUR::LadspaPlugin, and ARDOUR::VSTPlugin.
|
privatepure virtual |
Add state to an existing XMLNode
Implemented in ARDOUR::LV2Plugin, ARDOUR::AUPlugin, ARDOUR::LadspaPlugin, and ARDOUR::VSTPlugin.
|
inlinevirtual |
Emit PropertyChanged for all current property values.
Reimplemented in ARDOUR::LV2Plugin.
|
pure virtual |
Implemented in ARDOUR::LV2Plugin, ARDOUR::AUPlugin, ARDOUR::LadspaPlugin, and ARDOUR::VSTPlugin.
|
inlinevirtual |
Reimplemented in ARDOUR::AUPlugin.
Reimplemented in ARDOUR::AUPlugin.
|
virtual |
Reimplemented in ARDOUR::LV2Plugin, ARDOUR::LadspaPlugin, ARDOUR::AUPlugin, and ARDOUR::VSTPlugin.
|
inlinevirtual |
|
pure virtual |
Implemented in ARDOUR::LV2Plugin, ARDOUR::AUPlugin, ARDOUR::LadspaPlugin, and ARDOUR::VSTPlugin.
|
pure virtual |
Implemented in ARDOUR::AUPlugin, ARDOUR::LV2Plugin, ARDOUR::LadspaPlugin, and ARDOUR::VSTPlugin.
|
pure virtual |
Implemented in ARDOUR::LV2Plugin, ARDOUR::LadspaPlugin, ARDOUR::AUPlugin, and ARDOUR::VSTPlugin.
|
protectedpure virtual |
Do the actual removal of a preset of the provided name
Implemented in ARDOUR::LV2Plugin, ARDOUR::AUPlugin, ARDOUR::LadspaPlugin, and ARDOUR::VSTPlugin.
|
protectedpure virtual |
Do the actual saving of the current plugin settings to a preset of the provided name. Should return a URI on success, or an empty string on failure.
Implemented in ARDOUR::LV2Plugin, ARDOUR::AUPlugin, ARDOUR::LadspaPlugin, and ARDOUR::VSTPlugin.
|
inline |
|
privatepure virtual |
Fill _presets with our presets
Implemented in ARDOUR::LV2Plugin, ARDOUR::AUPlugin, ARDOUR::LadspaPlugin, and ARDOUR::VSTPlugin.
|
inlinevirtual |
Reimplemented in ARDOUR::VSTPlugin.
|
inlinevirtual |
Reimplemented in ARDOUR::AUPlugin.
|
inlinevirtual |
Reimplemented in ARDOUR::LV2Plugin.
|
inline |
|
pure virtual |
Implemented in ARDOUR::AUPlugin, ARDOUR::LV2Plugin, ARDOUR::LadspaPlugin, and ARDOUR::VSTPlugin.
|
pure virtual |
Implemented in ARDOUR::AUPlugin, ARDOUR::LV2Plugin, ARDOUR::LadspaPlugin, and ARDOUR::VSTPlugin.
|
inlinevirtual |
Reimplemented in ARDOUR::LV2Plugin.
vector< Plugin::PresetRecord > Plugin::get_presets | ( | ) |
|
inlinevirtual |
Reimplemented in ARDOUR::LV2Plugin.
|
inlinevirtual |
Reimplemented in ARDOUR::LV2Plugin, and ARDOUR::LadspaPlugin.
|
virtual |
Implements PBD::Stateful.
|
inlinevirtual |
Get a descrption of all properties supported by this plugin.
Properties are distinct from parameters in that they are potentially dynamic, referred to by key, and do not correspond 1:1 with ports.
For LV2 plugins, properties are implemented by sending/receiving set/get messages to/from the plugin via event ports.
Reimplemented in ARDOUR::LV2Plugin.
|
pure virtual |
Implemented in ARDOUR::LV2Plugin, ARDOUR::LadspaPlugin, ARDOUR::AUPlugin, and ARDOUR::VSTPlugin.
|
virtual |
Reimplemented in ARDOUR::AUPlugin.
|
pure virtual |
Implemented in ARDOUR::AUPlugin, ARDOUR::VSTPlugin, ARDOUR::LV2Plugin, and ARDOUR::LadspaPlugin.
|
inline |
|
virtual |
Set parameters using a preset
Reimplemented in ARDOUR::LV2Plugin, ARDOUR::LadspaPlugin, ARDOUR::AUPlugin, and ARDOUR::VSTPlugin.
|
pure virtual |
Implemented in ARDOUR::AUPlugin, ARDOUR::VSTPlugin, ARDOUR::LV2Plugin, and ARDOUR::LadspaPlugin.
|
pure virtual |
Implemented in ARDOUR::AUPlugin, ARDOUR::VSTPlugin, ARDOUR::LV2Plugin, and ARDOUR::LadspaPlugin.
|
pure virtual |
Implemented in ARDOUR::AUPlugin, ARDOUR::LV2Plugin, ARDOUR::LadspaPlugin, and ARDOUR::VSTPlugin.
|
virtual |
Reimplemented in ARDOUR::AUPlugin.
|
inline |
|
pure virtual |
Implemented in ARDOUR::AUPlugin, ARDOUR::VSTPlugin, ARDOUR::LV2Plugin, and ARDOUR::LadspaPlugin.
|
pure virtual |
Implemented in ARDOUR::LV2Plugin, ARDOUR::LadspaPlugin, ARDOUR::AUPlugin, and ARDOUR::VSTPlugin.
|
pure virtual |
Implemented in ARDOUR::LV2Plugin, ARDOUR::LadspaPlugin, ARDOUR::AUPlugin, and ARDOUR::VSTPlugin.
|
pure virtual |
Implemented in ARDOUR::LV2Plugin, ARDOUR::LadspaPlugin, ARDOUR::AUPlugin, and ARDOUR::VSTPlugin.
|
pure virtual |
Implemented in ARDOUR::LV2Plugin, ARDOUR::LadspaPlugin, ARDOUR::AUPlugin, and ARDOUR::VSTPlugin.
const Plugin::PresetRecord * Plugin::preset_by_label | ( | const std::string & | ) |
const Plugin::PresetRecord * Plugin::preset_by_uri | ( | const std::string & | ) |
|
inlinevirtual |
This is hard to return a correct value for because most plugin APIs do not specify plugin behaviour. However, if you want to force the display of plugin built-in preset names rather than MIDI program numbers, return true. If you want a generic description, return false.
|
pure virtual |
Implemented in ARDOUR::LV2Plugin, ARDOUR::LadspaPlugin, ARDOUR::AUPlugin, and ARDOUR::VSTPlugin.
Plugin::PresetRecord Plugin::save_preset | ( | std::string | ) |
|
inline |
|
pure virtual |
Implemented in ARDOUR::LV2Plugin, ARDOUR::LadspaPlugin, ARDOUR::AUPlugin, and ARDOUR::VSTPlugin.
|
virtual |
Reimplemented in ARDOUR::AUPlugin.
|
inlinevirtual |
Reimplemented in ARDOUR::LV2Plugin.
|
protectedvirtual |
val | `plugin' value |
Reimplemented in ARDOUR::AUPlugin, ARDOUR::LV2Plugin, ARDOUR::LadspaPlugin, and ARDOUR::VSTPlugin.
|
inlinevirtual |
Set a property from the UI.
This is not UI-specific, but may only be used by one thread. If the Ardour UI is present, that is the UI thread, but otherwise, any thread except the audio thread may call this function as long as it is not called concurrently.
Reimplemented in ARDOUR::LV2Plugin.
|
virtual |
Implements PBD::Stateful.
Reimplemented in ARDOUR::LV2Plugin, ARDOUR::LadspaPlugin, ARDOUR::AUPlugin, and ARDOUR::VSTPlugin.
|
pure virtual |
Implemented in ARDOUR::LV2Plugin, ARDOUR::LadspaPlugin, ARDOUR::AUPlugin, ARDOUR::LXVSTPlugin, and ARDOUR::WindowsVSTPlugin.
|
pure virtual |
Implemented in ARDOUR::AUPlugin, ARDOUR::VSTPlugin, ARDOUR::LV2Plugin, and ARDOUR::LadspaPlugin.
|
friend |
|
protected |
|
protected |
|
private |
|
private |
|
protected |
|
protected |
|
private |
PBD::Signal2<void, uint32_t, float> ARDOUR::Plugin::ParameterChanged |
PBD::Signal0<void> ARDOUR::Plugin::PresetAdded |
PBD::Signal0<void> ARDOUR::Plugin::PresetLoaded |
PBD::Signal2<void, uint32_t, Variant> ARDOUR::Plugin::PropertyChanged |