61 class AutomationControl;
99 virtual const char*
label ()
const = 0;
100 virtual const char*
name ()
const = 0;
101 virtual const char*
maker ()
const = 0;
106 virtual std::string
get_docs ()
const {
return ""; }
136 IOPortDescription (
const std::string& n,
bool sc =
false, std::string gn =
"", uint32_t gc = 0, uint32_t bn = 0)
139 , group_name (gn.empty () ? n : gn)
146 , is_sidechain (other.is_sidechain)
147 , group_name (other.group_name)
148 , group_channel (other.group_channel)
149 , bus_number (other.bus_number)
167 return std::shared_ptr<ScalePoints> ();
172 return plugin_latency ();
177 return plugin_tailtime ();
203 virtual void add_slave (std::shared_ptr<Plugin>,
bool realtime) {}
225 virtual uint32_t
bank_patch (uint8_t chn) {
return UINT32_MAX; }
231 PresetRecord (
const std::string& u,
const std::string& l,
bool s =
true,
const std::string& d =
"")
241 return uri != a.
uri || label != a.
label;
246 if (label == a.
label) {
249 return label < a.
label;
286 return _parameter_changed_since_last_preset;
334 _for_impulse_analysis =
true;
489 : multichannel_name_ambiguity (false)
490 , plugintype_name_ambiguity (false)
521 virtual std::vector<Plugin::PresetRecord>
get_presets (
bool user_only)
const = 0;
virtual bool is_utility() const
virtual std::vector< Plugin::PresetRecord > get_presets(bool user_only) const =0
virtual bool is_internal() const
virtual bool is_effect() const
virtual bool needs_midi_input() const
virtual bool is_instrument() const
virtual bool is_analyzer() const
bool plugintype_name_ambiguity
virtual bool reconfigurable_io() const
virtual uint32_t max_configurable_outputs() const
bool multichannel_name_ambiguity
virtual PluginPtr load(Session &session)=0
void set_cycles(uint32_t c)
virtual std::string state_node_name() const =0
virtual Display_Image_Surface * render_inline_display(uint32_t, uint32_t)
virtual bool match_variable_io(ChanCount &, ChanCount &, ChanCount &)
ARDOUR::Session & session() const
virtual void set_owner(SessionObject *o)
virtual void announce_property_values()
virtual bool connect_all_audio_outputs() const
PBD::Signal< void()> PresetLoaded
virtual void add_slave(std::shared_ptr< Plugin >, bool realtime)
virtual std::string parameter_label(uint32_t which) const
virtual bool has_midnam()
void realtime_handle_transport_stopped()
ARDOUR::AudioEngine & engine() const
virtual void activate()=0
std::atomic< bool > _resolve_midi
virtual void find_presets()=0
virtual ChanCount input_streams() const
virtual samplecnt_t plugin_tailtime() const
bool write_immediate_event(Evoral::EventType event_type, size_t size, const uint8_t *buf)
virtual void add_state(XMLNode *) const =0
virtual bool parameter_is_control(uint32_t) const =0
bool _have_pending_stop_events
virtual int first_user_preset_index() const
virtual void set_info(const PluginInfoPtr info)
PresetRecord last_preset() const
virtual void set_parameter(uint32_t which, float val, sampleoffset_t when)
const PresetRecord * preset_by_uri(const std::string &)
virtual std::set< Evoral::Parameter > automatable() const =0
PBD::Signal< void()> PresetRemoved
PBD::Signal< void()> UpdateMidnam
PBD::Signal< void()> QueueDraw
virtual float default_value(uint32_t port)=0
bool _parameter_changed_since_last_preset
virtual bool reconfigure_io(ChanCount, ChanCount, ChanCount)
Plugin(ARDOUR::AudioEngine &, ARDOUR::Session &)
virtual bool read_midnam()
void monitoring_changed()
virtual bool has_inline_display()
bool parameter_changed_since_last_preset() const
ARDOUR::Session & _session
virtual void deactivate()=0
virtual std::string get_docs() const
PBD::Signal< void(uint8_t)> BankPatchChange
virtual std::string describe_parameter(Evoral::Parameter)=0
BufferSet _pending_stop_events
virtual bool requires_fixed_sized_buffers() const
virtual bool parameter_is_output(uint32_t) const =0
virtual IOPortDescription describe_io_port(DataType dt, bool input, uint32_t id) const
void realtime_locate(bool)
virtual void remove_slave(std::shared_ptr< Plugin >)
virtual uint32_t designated_bypass_port()
PBD::Signal< void()> UpdatedMidnam
uint32_t plugin_number() const
void set_insert(PlugInsertBase *pib, uint32_t num)
virtual int get_parameter_descriptor(uint32_t which, ParameterDescriptor &) const =0
PBD::Signal< void(uint32_t, Variant)> PropertyChanged
virtual uint32_t bank_patch(uint8_t chn)
SessionObject * owner() const
virtual bool has_editor() const =0
PlugInsertBase * plugin_insert() const
samplecnt_t signal_latency() const
PBD::ScopedConnection _preset_connection
virtual bool parameter_is_input(uint32_t) const =0
PBD::Signal< void(uint32_t)> EndTouch
virtual void parameter_changed_externally(uint32_t which, float val)
virtual std::vector< PresetRecord > get_presets()
virtual bool knows_bank_patch()
virtual bool parameter_is_audio(uint32_t) const =0
void use_for_impulse_analysis()
virtual void set_property(uint32_t key, const Variant &value)
MidiRingBuffer< samplepos_t > _immediate_events
virtual uint32_t parameter_count() const =0
virtual uint32_t nth_parameter(uint32_t which, bool &ok) const =0
virtual void set_non_realtime(bool)
virtual bool load_preset(PresetRecord)
virtual PluginOutputConfiguration possible_output() const
virtual bool inplace_broken() const
virtual int connect_and_run(BufferSet &bufs, samplepos_t start, samplepos_t end, double speed, ChanMapping const &in, ChanMapping const &out, pframes_t nframes, samplecnt_t offset)
bool _for_impulse_analysis
virtual void set_automation_control(uint32_t, std::shared_ptr< ARDOUR::AutomationControl >)
std::map< std::string, PresetRecord > _presets
static PBD::Signal< void(std::string, Plugin *, bool)> PresetsChanged
virtual const char * name() const =0
const PresetRecord * preset_by_label(const std::string &)
virtual bool print_parameter(uint32_t, std::string &) const
PluginInfoPtr get_info() const
void remove_preset(std::string)
virtual const char * maker() const =0
void invalidate_preset_cache(std::string const &, Plugin *, bool)
virtual std::shared_ptr< ScalePoints > get_scale_points(uint32_t) const
samplecnt_t signal_tailtime() const
virtual void do_remove_preset(std::string)=0
virtual const ParameterDescriptor & get_property_descriptor(uint32_t id) const
virtual float get_parameter(uint32_t which) const =0
virtual Variant get_property_value(uint32_t) const
ARDOUR::AudioEngine & _engine
PresetRecord _last_preset
virtual ChanCount output_streams() const
virtual void set_state_dir(const std::string &d="")
virtual int set_block_size(pframes_t nframes)=0
virtual bool inline_display_in_gui()
virtual const char * label() const =0
PBD::Signal< void(uint32_t, float)> PresetPortSetValue
PresetRecord save_preset(std::string name)
virtual std::string unique_id() const =0
virtual std::string do_save_preset(std::string)=0
virtual samplecnt_t max_latency() const
PBD::Signal< void()> PresetDirty
virtual void set_insert_id(PBD::ID id)
virtual std::string get_parameter_docs(uint32_t) const
virtual const PropertyDescriptors & get_supported_properties() const
PBD::Signal< void(uint32_t)> StartTouch
XMLNode & get_state() const
PBD::Signal< void(uint32_t, float)> ParameterChangedExternally
virtual samplecnt_t plugin_latency() const =0
virtual int set_state(const XMLNode &, int version)
PBD::Signal< void()> PresetAdded
std::map< uint32_t, ParameterDescriptor > PropertyDescriptors
virtual std::string midnam_model()
GtkImageIconNameData name
void session(lua_State *L)
PBD::PropertyDescriptor< timepos_t > start
std::list< PluginInfoPtr > PluginInfoList
std::shared_ptr< Plugin > PluginPtr
std::shared_ptr< PluginPreset > PluginPresetPtr
Temporal::samplecnt_t samplecnt_t
PluginPtr find_plugin(ARDOUR::Session &, std::string unique_id, ARDOUR::PluginType)
std::list< PluginPresetPtr > PluginPresetList
Temporal::sampleoffset_t sampleoffset_t
Temporal::samplepos_t samplepos_t
std::shared_ptr< PluginInfo > PluginInfoPtr
std::set< uint32_t > PluginOutputConfiguration
PluginPreset(PluginInfoPtr pip, const Plugin::PresetRecord *preset=NULL)
Plugin::PresetRecord _preset
IOPortDescription(const std::string &n, bool sc=false, std::string gn="", uint32_t gc=0, uint32_t bn=0)
IOPortDescription(const IOPortDescription &other)
PresetRecord(const std::string &u, const std::string &l, bool s=true, const std::string &d="")
link region and track false waveform clip max inline grid follows internal