X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fplugin_insert.h;h=4b5f38964a3f528ad4dd2e09edeac9c359e7caa1;hb=b4d4cb805e5506879f1463fffdd4ea5fc3750bd5;hp=c8f0a84222e391f5f2536a4a4dc1db5c798490c1;hpb=424cacfbc83516d9e935bd93135e58b34dcfc002;p=ardour.git diff --git a/libs/ardour/ardour/plugin_insert.h b/libs/ardour/ardour/plugin_insert.h index c8f0a84222..4b5f38964a 100644 --- a/libs/ardour/ardour/plugin_insert.h +++ b/libs/ardour/ardour/plugin_insert.h @@ -32,6 +32,7 @@ #include "ardour/io.h" #include "ardour/types.h" #include "ardour/parameter_descriptor.h" +#include "ardour/plugin.h" #include "ardour/processor.h" #include "ardour/sidechain.h" #include "ardour/automation_control.h" @@ -92,10 +93,13 @@ class LIBARDOUR_API PluginInsert : public Processor return _thru_map; } + bool pre_seed (const ChanCount&, const ChanCount&, const ChanMapping&, const ChanMapping&, const ChanMapping&); + ChanMapping input_map () const; ///< combined (all instances) input map ChanMapping output_map () const; ///< combined (all instances) output map bool has_midi_bypass () const; bool has_midi_thru () const; + bool inplace () const { return ! _no_inplace; } #ifdef MIXBUS bool is_channelstrip () const; @@ -142,6 +146,7 @@ class LIBARDOUR_API PluginInsert : public Processor // only the owning route may call these (with process lock held) // route is not a friend class, it owns us bool set_count (uint32_t num); + void set_sinks (const ChanCount&); // reconfigurable I/O ONLY void set_outputs (const ChanCount&); void set_strict_io (bool b); void set_custom_cfg (bool b); @@ -161,11 +166,17 @@ class LIBARDOUR_API PluginInsert : public Processor bool has_no_inputs() const; bool has_no_audio_inputs() const; bool needs_midi_input() const; + bool has_output_presets ( + ChanCount in = ChanCount (DataType::MIDI, 1), + ChanCount out = ChanCount (DataType::AUDIO, 2) + ); void realtime_handle_transport_stopped (); void realtime_locate (); void monitoring_changed (); + bool load_preset (Plugin::PresetRecord); + /** A control that manipulates a plugin parameter (control port). */ struct PluginControl : public AutomationControl { @@ -308,6 +319,7 @@ class LIBARDOUR_API PluginInsert : public Processor ChanCount _configured_internal; // with side-chain ChanCount _configured_out; ChanCount _custom_out; + ChanCount _custom_sinks; ChanCount _preset_out; ChanCount _cached_sidechain_pins; ChanCount _required_buffers; @@ -333,6 +345,8 @@ class LIBARDOUR_API PluginInsert : public Processor void automation_run (BufferSet& bufs, framepos_t start, pframes_t nframes); void connect_and_run (BufferSet& bufs, pframes_t nframes, framecnt_t offset, bool with_auto, framepos_t now = 0); + void bypass (BufferSet& bufs, pframes_t nframes); + void inplace_silence_unconnected (BufferSet&, const PinMappings&, framecnt_t nframes, framecnt_t offset) const; void create_automatable_parameters (); void control_list_automation_state_changed (Evoral::Parameter, AutoState);