20 #ifndef __ardour_plugin_insert_h__
21 #define __ardour_plugin_insert_h__
26 #include <boost/weak_ptr.hpp>
55 int set_state(
const XMLNode&,
int version);
64 bool reset_parameters_to_default ();
65 bool can_reset_all_parameters ();
74 bool set_count (uint32_t num);
75 uint32_t
get_count ()
const {
return _plugins.size(); }
80 bool has_no_inputs()
const;
81 bool has_no_audio_inputs()
const;
82 bool is_midi_instrument()
const;
84 void realtime_handle_transport_stopped ();
85 void realtime_locate ();
86 void monitoring_changed ();
96 void set_value (
double val);
100 double internal_to_interface (
double)
const;
101 double interface_to_internal (
double)
const;
115 void set_value (
const Variant& val);
116 void set_value (
double val);
126 if (num < _plugins.size()) {
127 return _plugins[num];
141 void collect_signal_for_analysis (
framecnt_t nframes);
144 return _match.method == Split;
167 void parameter_changed (uint32_t,
float);
174 typedef std::vector<boost::shared_ptr<Plugin> >
Plugins;
189 Match () : method (Impossible), plugins (0) {}
205 void create_automatable_parameters ();
207 void set_parameter_state_2X (
const XMLNode& node,
int version);
208 void set_control_ids (
const XMLNode&,
int version);
213 void start_touch (uint32_t param_id);
214 void end_touch (uint32_t param_id);
framecnt_t _signal_analysis_collected_nframes
ChanCount hide
number of channels to hide
we copy one of our insert's inputs to multiple plugin inputs
PBD::Signal0< void > PluginIoReConfigure
BufferSet _signal_analysis_inputs
MatchingMethod method
method to employ
we `hide' some of the plugin's inputs by feeding them silence
our insert's inputs are the same as the plugin's
boost::shared_ptr< Plugin > plugin(uint32_t num=0) const
LIBARDOUR_API PBD::PropertyDescriptor< framepos_t > start
uint32_t get_count() const
we are delegating to the plugin, and it can handle it
framecnt_t _signal_analysis_collect_nframes_max
std::vector< boost::shared_ptr< Plugin > > Plugins
static const std::string port_automation_node_name
Match(MatchingMethod m, int32_t p, ChanCount h=ChanCount())
PBD::Signal2< void, BufferSet *, BufferSet * > AnalysisDataGathered
we have multiple instances of the plugin
boost::weak_ptr< Plugin > _impulseAnalysisPlugin
static LilvNode * get_value(LilvWorld *world, const LilvNode *subject, const LilvNode *predicate)
BufferSet _signal_analysis_outputs
plugin has no inputs, so anything goes
int32_t plugins
number of copies of the plugin that we need