43 class ReadOnlyControl;
69 return _plugins.size ();
73 std::shared_ptr<Plugin>
plugin (uint32_t num = 0)
const
75 if (num < _plugins.size ()) {
78 return std::shared_ptr<Plugin>();
108 if (num < _in_map.size()) {
109 return _in_map.find (num)->second;
116 if (num < _out_map.size()) {
117 return _out_map.find (num)->second;
146 return _configured_in;
150 return _configured_out;
154 return _required_buffers;
181 typedef std::vector<std::shared_ptr<Plugin>>
Plugins;
188 std::map <uint32_t, ARDOUR::ChanMapping>
_in_map;
196 typedef std::map<uint32_t, std::shared_ptr<ReadOnlyControl>>
CtrlOutMap;
Glib::Threads::Mutex _process_lock
void start_touch(uint32_t param_id)
std::map< uint32_t, ARDOUR::ChanMapping > _out_map
ChanCount input_streams() const
int set_block_size(pframes_t nframes)
std::shared_ptr< ReadOnlyControl > control_output(uint32_t) const
bool load_preset(Plugin::PresetRecord)
int set_state(const XMLNode &, int version)
void set_window_proxy(Gtkmm2ext::WindowProxy *wp)
void plugin_removed(std::weak_ptr< Plugin >)
samplecnt_t _plugin_signal_tailtime
void truncate_automation_start(timecnt_t)
void automatables(PBD::ControllableSet &) const
ChanCount required_buffers() const
ChanCount output_streams() const
bool configure_io(ChanCount in, ChanCount out)
RegionFxPlugin(Session &, Temporal::TimeDomain const, std::shared_ptr< Plugin >=std::shared_ptr< Plugin >())
Gtkmm2ext::WindowProxy * window_proxy() const
void automation_run(samplepos_t start, pframes_t nframes)
CtrlOutMap _control_outputs
bool get_stats(PBD::microseconds_t &, PBD::microseconds_t &, double &, double &) const
void truncate_automation_end(timepos_t)
std::map< uint32_t, ARDOUR::ChanMapping > _in_map
void set_default_automation(timepos_t)
std::atomic< int > _flush
bool can_reset_all_parameters()
void parameter_changed_externally(uint32_t, float)
ChanMapping input_map(uint32_t num) const
bool write_immediate_event(Evoral::EventType event_type, size_t size, const uint8_t *buf)
uint32_t get_count() const
std::string describe_parameter(Evoral::Parameter param)
Gtkmm2ext::WindowProxy * _window_proxy
XMLNode & get_state(void) const
bool set_count(uint32_t num)
Match private_can_support_io_configuration(ChanCount const &, ChanCount &) const
ChanCount _required_buffers
bool find_next_event(timepos_t const &start, timepos_t const &end, Evoral::ControlEvent &next_event) const
bool can_support_io_configuration(const ChanCount &in, ChanCount &out)
samplecnt_t signal_tailtime() const
bool connect_and_run(BufferSet &, samplepos_t start, samplepos_t end, samplepos_t region_pos, pframes_t nframes, sampleoffset_t buf_off, sampleoffset_t cycle_off)
UIElements ui_elements() const
ChanMapping output_map(uint32_t num) const
void maybe_emit_changed_signals() const
RegionFxPlugin(RegionFxPlugin const &)
samplecnt_t _plugin_signal_latency
samplecnt_t signal_latency() const
std::shared_ptr< Evoral::Control > control_factory(const Evoral::Parameter &id)
bool reset_parameters_to_default()
std::vector< std::shared_ptr< Plugin > > Plugins
std::shared_ptr< Plugin > plugin(uint32_t num=0) const
void end_touch(uint32_t param_id)
std::map< uint32_t, std::shared_ptr< ReadOnlyControl > > CtrlOutMap
ChanCount _configured_out
void add_plugin(std::shared_ptr< Plugin >)
bool run(BufferSet &, samplepos_t start, samplepos_t end, samplepos_t region_pos, pframes_t nframes, sampleoffset_t off)
bool provides_stats() const
PBD::PropertyDescriptor< timepos_t > start
Temporal::samplecnt_t samplecnt_t
Temporal::sampleoffset_t sampleoffset_t
Temporal::samplepos_t samplepos_t
std::set< std::shared_ptr< Controllable > > ControllableSet