20 #ifndef __ardour_plugin_h__
21 #define __ardour_plugin_h__
23 #include <boost/shared_ptr.hpp>
69 virtual PluginPtr load (
Session& session) = 0;
70 virtual bool is_instrument()
const;
100 virtual int set_state (
const XMLNode &,
int version);
104 virtual std::string unique_id()
const = 0;
105 virtual const char * label()
const = 0;
106 virtual const char *
name()
const = 0;
107 virtual const char * maker()
const = 0;
108 virtual uint32_t parameter_count ()
const = 0;
109 virtual float default_value (uint32_t port) = 0;
110 virtual float get_parameter(uint32_t which)
const = 0;
111 virtual std::string
get_docs ()
const {
return ""; }
115 virtual uint32_t nth_parameter (uint32_t which,
bool& ok)
const = 0;
116 virtual void activate () = 0;
117 virtual void deactivate () = 0;
118 virtual void flush () { deactivate(); activate(); }
120 virtual int set_block_size (
pframes_t nframes) = 0;
122 virtual int connect_and_run (
BufferSet& bufs,
126 virtual std::set<Evoral::Parameter> automatable()
const = 0;
129 virtual void print_parameter (uint32_t,
char*, uint32_t len)
const = 0;
131 virtual bool parameter_is_audio(uint32_t)
const = 0;
132 virtual bool parameter_is_control(uint32_t)
const = 0;
133 virtual bool parameter_is_input(uint32_t)
const = 0;
134 virtual bool parameter_is_output(uint32_t)
const = 0;
140 void realtime_handle_transport_stopped ();
141 void realtime_locate ();
142 void monitoring_changed ();
146 PresetRecord (
const std::string& u,
const std::string& l,
int n = -1,
bool s =
true) : uri (u), label (l), number (n), user (s) {}
159 void remove_preset (std::string);
162 void clear_preset ();
164 const PresetRecord * preset_by_label (
const std::string &);
165 const PresetRecord * preset_by_uri (
const std::string &);
167 std::vector<PresetRecord> get_presets ();
197 return _parameter_changed_since_last_preset;
211 virtual bool has_editor ()
const = 0;
222 virtual ChanCount output_streams()
const;
226 virtual void set_info (
const PluginInfoPtr inf);
245 static const PropertyDescriptors nothing;
276 virtual void set_parameter (uint32_t which,
float val);
281 virtual std::string do_save_preset (std::string) = 0;
283 virtual void do_remove_preset (std::string) = 0;
294 virtual void find_presets () = 0;
297 virtual void add_state (
XMLNode *)
const = 0;
306 void resolve_midi ();
virtual std::string get_parameter_docs(uint32_t) const
virtual boost::shared_ptr< ScalePoints > get_scale_points(uint32_t) const
virtual void announce_property_values()
PresetRecord(const std::string &u, const std::string &l, int n=-1, bool s=true)
bool operator!=(shared_ptr< T > const &a, shared_ptr< U > const &b)
PresetRecord _last_preset
virtual bool can_support_io_configuration(const ChanCount &, ChanCount &)
PBD::Signal1< void, uint32_t > EndTouch
ARDOUR::AudioEngine & _engine
BufferSet _pending_stop_events
virtual bool current_preset_uses_general_midi() const
virtual bool reconfigurable_io() const
PBD::Signal2< void, uint32_t, float > ParameterChanged
virtual const PropertyDescriptors & get_supported_properties() const
static const char * state_node_name
boost::shared_ptr< Plugin > PluginPtr
LIBARDOUR_API uint64_t PluginManager
ARDOUR::AudioEngine & engine() const
PBD::Signal0< void > PresetLoaded
virtual const ParameterDescriptor & get_property_descriptor(uint32_t id) const
std::map< uint32_t, ParameterDescriptor > PropertyDescriptors
virtual bool presets_are_MIDI_programs() const
std::map< std::string, PresetRecord > _presets
MidiStateTracker _tracker
PBD::Signal0< void > PresetAdded
bool _have_pending_stop_events
bool _parameter_changed_since_last_preset
bool parameter_changed_since_last_preset() const
PluginInfoPtr get_info() const
PBD::Signal2< void, uint32_t, Variant > PropertyChanged
virtual bool configure_io(ChanCount, ChanCount)
virtual void set_insert_id(PBD::ID id)
PluginPtr find_plugin(ARDOUR::Session &, std::string unique_id, ARDOUR::PluginType)
ARDOUR::Session & _session
PBD::Signal1< void, uint32_t > StartTouch
virtual void set_property(uint32_t key, const Variant &value)
LIBARDOUR_API uint64_t AudioEngine
std::list< PluginInfoPtr > PluginInfoList
void set_cycles(uint32_t c)
boost::shared_ptr< PluginInfo > PluginInfoPtr
virtual std::string get_docs() const
PBD::Signal0< void > PresetRemoved
ARDOUR::Session & session() const
PresetRecord last_preset() const
virtual int first_user_preset_index() const