diff options
author | Robin Gareus <robin@gareus.org> | 2019-10-15 12:22:08 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2019-10-15 12:26:14 +0200 |
commit | 7e5120e7c9f0f30f72f56b168aeb33b389e17a47 (patch) | |
tree | a8ed6a9ba7da808a635efa4fd0e51705e9fa36f6 /libs | |
parent | 7fb259ece262866f7654c6965a1dbbf11acc20cd (diff) |
NO-OP: indent, comments and consistency
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/ardour/plugin.h | 342 | ||||
-rw-r--r-- | libs/ardour/plugin.cc | 6 |
2 files changed, 179 insertions, 169 deletions
diff --git a/libs/ardour/ardour/plugin.h b/libs/ardour/ardour/plugin.h index 8433bf4447..47278b9cff 100644 --- a/libs/ardour/ardour/plugin.h +++ b/libs/ardour/ardour/plugin.h @@ -24,11 +24,11 @@ #define __ardour_plugin_h__ #include <boost/shared_ptr.hpp> -#include <string> #include <set> +#include <string> -#include "pbd/statefuldestructible.h" #include "pbd/controllable.h" +#include "pbd/statefuldestructible.h" #include "ardour/buffer_set.h" #include "ardour/chan_count.h" @@ -42,12 +42,12 @@ #include "ardour/types.h" #include "ardour/variant.h" -#include <vector> -#include <set> #include <map> +#include <set> +#include <vector> -namespace ARDOUR { - +namespace ARDOUR +{ class AudioEngine; class Session; class BufferSet; @@ -57,10 +57,10 @@ class PluginInfo; class AutomationControl; class SessionObject; -typedef boost::shared_ptr<Plugin> PluginPtr; +typedef boost::shared_ptr<Plugin> PluginPtr; typedef boost::shared_ptr<PluginInfo> PluginInfoPtr; -typedef std::list<PluginInfoPtr> PluginInfoList; -typedef std::set<uint32_t> PluginOutputConfiguration; +typedef std::list<PluginInfoPtr> PluginInfoList; +typedef std::set<uint32_t> PluginOutputConfiguration; /** A plugin is an external module (usually 3rd party provided) loaded into Ardour * for the purpose of digital signal processing. @@ -72,110 +72,127 @@ typedef std::set<uint32_t> PluginOutputConfiguration; */ class LIBARDOUR_API Plugin : public PBD::StatefulDestructible, public HasLatency { - public: +public: Plugin (ARDOUR::AudioEngine&, ARDOUR::Session&); Plugin (const Plugin&); virtual ~Plugin (); - XMLNode& get_state (); - virtual int set_state (const XMLNode &, int version); + XMLNode& get_state (); + virtual int set_state (const XMLNode&, int version); virtual void set_insert_id (PBD::ID id) {} virtual void set_state_dir (const std::string& d = "") {} - virtual std::string unique_id() const = 0; - virtual const char * label() const = 0; - virtual const char * name() const = 0; - virtual const char * maker() const = 0; - virtual uint32_t parameter_count () const = 0; - virtual float default_value (uint32_t port) = 0; - virtual float get_parameter(uint32_t which) const = 0; + virtual std::string unique_id () const = 0; + virtual const char* label () const = 0; + virtual const char* name () const = 0; + virtual const char* maker () const = 0; + virtual uint32_t parameter_count () const = 0; + virtual float default_value (uint32_t port) = 0; + virtual float get_parameter (uint32_t which) const = 0; + virtual std::string get_docs () const { return ""; } virtual std::string get_parameter_docs (uint32_t /*which*/) const { return ""; } - struct UILayoutHint { - UILayoutHint () - : x0(-1), x1(-1), y0(-1), y1(-1), knob(false) {} - int x0; - int x1; - int y0; - int y1; - bool knob; - }; - - virtual bool get_layout (uint32_t which, UILayoutHint&) const { return false; } - - virtual int get_parameter_descriptor (uint32_t which, ParameterDescriptor&) const = 0; - virtual uint32_t nth_parameter (uint32_t which, bool& ok) const = 0; + virtual int get_parameter_descriptor (uint32_t which, ParameterDescriptor&) const = 0; + virtual uint32_t nth_parameter (uint32_t which, bool& ok) const = 0; virtual std::string parameter_label (uint32_t which) const; - virtual void activate () = 0; - virtual void deactivate () = 0; - virtual void flush () { deactivate(); activate(); } - - virtual int set_block_size (pframes_t nframes) = 0; - virtual bool requires_fixed_sized_buffers() const { return false; } - virtual bool inplace_broken() const { return false; } - virtual bool connect_all_audio_outputs () const { return false; } + virtual void activate () = 0; + virtual void deactivate () = 0; + virtual void flush () + { + deactivate (); + activate (); + } - 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); + virtual std::set<Evoral::Parameter> automatable () const = 0; + virtual std::string describe_parameter (Evoral::Parameter) = 0; + virtual std::string state_node_name () const = 0; - virtual std::set<Evoral::Parameter> automatable() const = 0; - virtual std::string describe_parameter (Evoral::Parameter) = 0; - virtual std::string state_node_name() const = 0; virtual bool print_parameter (uint32_t, char*, uint32_t len) const { return false; } - virtual bool parameter_is_audio(uint32_t) const = 0; - virtual bool parameter_is_control(uint32_t) const = 0; - virtual bool parameter_is_input(uint32_t) const = 0; - virtual bool parameter_is_output(uint32_t) const = 0; + virtual bool parameter_is_audio (uint32_t) const = 0; + virtual bool parameter_is_control (uint32_t) const = 0; + virtual bool parameter_is_input (uint32_t) const = 0; + virtual bool parameter_is_output (uint32_t) const = 0; virtual uint32_t designated_bypass_port () { return UINT32_MAX; } struct LIBARDOUR_API IOPortDescription { - public: + public: IOPortDescription (const std::string& n) - : name (n) - , is_sidechain (false) - , group_name (n) - , group_channel (0) - {} - IOPortDescription (const IOPortDescription &other) - : name (other.name) - , is_sidechain (other.is_sidechain) - , group_name (other.group_name) - , group_channel (other.group_channel) - {} + : name (n) + , is_sidechain (false) + , group_name (n) + , group_channel (0) + { } + + IOPortDescription (const IOPortDescription& other) + : name (other.name) + , is_sidechain (other.is_sidechain) + , group_name (other.group_name) + , group_channel (other.group_channel) + { } + std::string name; - bool is_sidechain; + bool is_sidechain; std::string group_name; - uint32_t group_channel; + uint32_t group_channel; }; - virtual IOPortDescription describe_io_port (DataType dt, bool input, uint32_t id) const; + virtual IOPortDescription describe_io_port (DataType dt, bool input, uint32_t id) const; virtual PluginOutputConfiguration possible_output () const; - virtual void set_automation_control (uint32_t /*port_index*/, boost::shared_ptr<ARDOUR::AutomationControl>) { } + virtual void set_automation_control (uint32_t /*port_index*/, boost::shared_ptr<ARDOUR::AutomationControl>) {} - virtual boost::shared_ptr<ScalePoints> get_scale_points(uint32_t /*port_index*/) const { - return boost::shared_ptr<ScalePoints>(); + virtual boost::shared_ptr<ScalePoints> get_scale_points (uint32_t /*port_index*/) const + { + return boost::shared_ptr<ScalePoints> (); } + samplecnt_t signal_latency () const + { + return plugin_latency (); + } + + /** the max possible latency a plugin will have */ + virtual samplecnt_t max_latency () const { return 0; } + + virtual int set_block_size (pframes_t nframes) = 0; + virtual bool requires_fixed_sized_buffers () const { return false; } + virtual bool inplace_broken () const { return false; } + virtual bool connect_all_audio_outputs () const { return false; } + + 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 write_immediate_event (size_t size, const uint8_t* buf); void realtime_handle_transport_stopped (); void realtime_locate (); void monitoring_changed (); + struct UILayoutHint { + UILayoutHint () : x0 (-1), x1 (-1), y0 (-1), y1 (-1), knob (false) { } + int x0; + int x1; + int y0; + int y1; + bool knob; + }; + + virtual bool get_layout (uint32_t which, UILayoutHint&) const { return false; } + typedef struct { - unsigned char *data; - int width; - int height; - int stride; + unsigned char* data; + int width; + int height; + int stride; } Display_Image_Surface; virtual bool has_inline_display () { return false; } @@ -194,19 +211,26 @@ class LIBARDOUR_API Plugin : public PBD::StatefulDestructible, public HasLatency PBD::Signal1<void, uint8_t> BankPatchChange; struct PresetRecord { - PresetRecord () : valid (false) {} - PresetRecord (const std::string& u, const std::string& l, bool s = true, const std::string& d = "") - : uri (u), label (l), description (d), user (s), valid (true) {} - - bool operator!= (PresetRecord const & a) const { - return uri != a.uri || label != a.label; - } - - std::string uri; - std::string label; - std::string description; - bool user; - bool valid; + PresetRecord () : valid (false) { } + + PresetRecord (const std::string& u, const std::string& l, bool s = true, const std::string& d = "") + : uri (u) + , label (l) + , description (d) + , user (s) + , valid (true) + { } + + bool operator!= (PresetRecord const& a) const + { + return uri != a.uri || label != a.label; + } + + std::string uri; + std::string label; + std::string description; + bool user; + bool valid; }; /** Create a new plugin-preset from the current state @@ -215,14 +239,14 @@ class LIBARDOUR_API Plugin : public PBD::StatefulDestructible, public HasLatency * @return PresetRecord with empty URI on failure */ PresetRecord save_preset (std::string name); - void remove_preset (std::string); + void remove_preset (std::string); /** Set parameters using a preset */ virtual bool load_preset (PresetRecord); - void clear_preset (); + void clear_preset (); - const PresetRecord * preset_by_label (const std::string &); - const PresetRecord * preset_by_uri (const std::string &); + const PresetRecord* preset_by_label (const std::string&); + const PresetRecord* preset_by_uri (const std::string&); std::vector<PresetRecord> get_presets (); @@ -235,7 +259,7 @@ class LIBARDOUR_API Plugin : public PBD::StatefulDestructible, public HasLatency * numbers, return true. If you want a generic description, return * false. */ - virtual bool presets_are_MIDI_programs() const { return false; } + virtual bool presets_are_MIDI_programs () const { return false; } /** @return true if this plugin is General MIDI compliant, false * otherwise. @@ -244,25 +268,22 @@ class LIBARDOUR_API Plugin : public PBD::StatefulDestructible, public HasLatency * (e.g. Ardour) to determine this for just about any plugin API * known as of June 2012 */ - virtual bool current_preset_uses_general_midi() const { return false; } + virtual bool current_preset_uses_general_midi () const { return false; } /** @return Last preset to be requested; the settings may have * been changed since; find out with parameter_changed_since_last_preset. */ - PresetRecord last_preset () const { + PresetRecord last_preset () const + { return _last_preset; } - bool parameter_changed_since_last_preset () const { + bool parameter_changed_since_last_preset () const + { return _parameter_changed_since_last_preset; } - virtual int first_user_preset_index () const { - return 0; - } - - /** the max possible latency a plugin will have */ - virtual samplecnt_t max_latency () const { return 0; } // TODO = 0, require implementation + virtual int first_user_preset_index () const { return 0; } /** Emitted when a preset is added or removed, respectively */ PBD::Signal0<void> PresetAdded; @@ -282,6 +303,8 @@ class LIBARDOUR_API Plugin : public PBD::StatefulDestructible, public HasLatency /** Emitted for preset-load to set a control-port */ PBD::Signal2<void, uint32_t, float> PresetPortSetValue; + + /** @return true if plugin has a custom plugin GUI */ virtual bool has_editor () const = 0; /** Emitted when a parameter is altered by something outside of our @@ -290,27 +313,27 @@ class LIBARDOUR_API Plugin : public PBD::StatefulDestructible, public HasLatency PBD::Signal2<void, uint32_t, float> ParameterChangedExternally; virtual bool configure_io (ChanCount /*in*/, ChanCount /*out*/) { return true; } - - /* specific types of plugins can overload this. As of September 2008, only - AUPlugin does this. - */ virtual bool can_support_io_configuration (const ChanCount& /*in*/, ChanCount& /*out*/, ChanCount* imprecise = 0) { return false; } - virtual ChanCount output_streams() const; - virtual ChanCount input_streams() const; - PluginInfoPtr get_info() const { return _info; } - virtual void set_info (const PluginInfoPtr inf); + virtual ChanCount output_streams () const; + virtual ChanCount input_streams () const; + + virtual void set_info (const PluginInfoPtr info) { _info = info; } + PluginInfoPtr get_info () const { return _info; } virtual void set_owner (SessionObject* o) { _owner = o; } - SessionObject* owner() const { return _owner; } + SessionObject* owner () const { return _owner; } - void use_for_impulse_analysis () { _for_impulse_analysis = true; } + void set_cycles (uint32_t c) { _cycles = c; } + cycles_t cycles () const { return _cycles; } - ARDOUR::AudioEngine& engine() const { return _engine; } - ARDOUR::Session& session() const { return _session; } + void use_for_impulse_analysis () + { + _for_impulse_analysis = true; + } - void set_cycles (uint32_t c) { _cycles = c; } - cycles_t cycles() const { return _cycles; } + ARDOUR::AudioEngine& engine () const { return _engine; } + ARDOUR::Session& session () const { return _session; } typedef std::map<uint32_t, ParameterDescriptor> PropertyDescriptors; @@ -322,12 +345,14 @@ class LIBARDOUR_API Plugin : public PBD::StatefulDestructible, public HasLatency * For LV2 plugins, properties are implemented by sending/receiving set/get * messages to/from the plugin via event ports. */ - virtual const PropertyDescriptors& get_supported_properties() const { + virtual const PropertyDescriptors& get_supported_properties () const + { static const PropertyDescriptors nothing; return nothing; } - virtual const ParameterDescriptor& get_property_descriptor(uint32_t id) const { + virtual const ParameterDescriptor& get_property_descriptor (uint32_t id) const + { static const ParameterDescriptor nothing; return nothing; } @@ -339,23 +364,18 @@ class LIBARDOUR_API Plugin : public PBD::StatefulDestructible, public HasLatency * except the audio thread may call this function as long as it is not * called concurrently. */ - virtual void set_property(uint32_t key, const Variant& value) {} + virtual void set_property (uint32_t key, const Variant& value) {} /** Emit PropertyChanged for all current property values. */ - virtual void announce_property_values() {} + virtual void announce_property_values () {} /** Emitted when a property is changed in the plugin. */ PBD::Signal2<void, uint32_t, Variant> PropertyChanged; - PBD::Signal1<void,uint32_t> StartTouch; - PBD::Signal1<void,uint32_t> EndTouch; - - samplecnt_t signal_latency () const { - return plugin_latency (); - } + PBD::Signal1<void, uint32_t> StartTouch; + PBD::Signal1<void, uint32_t> EndTouch; protected: - friend class PluginInsert; friend class Session; @@ -387,21 +407,20 @@ protected: std::map<std::string, PresetRecord> _presets; private: - virtual samplecnt_t plugin_latency () const = 0; /** Fill _presets with our presets */ virtual void find_presets () = 0; /** Add state to an existing XMLNode */ - virtual void add_state (XMLNode *) const = 0; + virtual void add_state (XMLNode*) const = 0; - bool _have_presets; + bool _have_presets; MidiStateTracker _tracker; - BufferSet _pending_stop_events; - bool _have_pending_stop_events; - PresetRecord _last_preset; - bool _parameter_changed_since_last_preset; + BufferSet _pending_stop_events; + bool _have_pending_stop_events; + PresetRecord _last_preset; + bool _parameter_changed_since_last_preset; PBD::ScopedConnection _preset_connection; @@ -411,11 +430,11 @@ private: }; struct PluginPreset { - PluginInfoPtr _pip; + PluginInfoPtr _pip; Plugin::PresetRecord _preset; - PluginPreset (PluginInfoPtr pip, const Plugin::PresetRecord *preset = NULL) - : _pip (pip) + PluginPreset (PluginInfoPtr pip, const Plugin::PresetRecord* preset = NULL) + : _pip (pip) { if (preset) { _preset.uri = preset->uri; @@ -428,21 +447,23 @@ struct PluginPreset { }; typedef boost::shared_ptr<PluginPreset> PluginPresetPtr; -typedef std::list<PluginPresetPtr> PluginPresetList; - -PluginPtr find_plugin(ARDOUR::Session&, std::string unique_id, ARDOUR::PluginType); +typedef std::list<PluginPresetPtr> PluginPresetList; -class LIBARDOUR_API PluginInfo { - public: - PluginInfo () { } - virtual ~PluginInfo () { } +PluginPtr +find_plugin (ARDOUR::Session&, std::string unique_id, ARDOUR::PluginType); - std::string name; - std::string category; - std::string creator; - std::string path; - ChanCount n_inputs; - ChanCount n_outputs; +class LIBARDOUR_API PluginInfo +{ +public: + PluginInfo () {} + virtual ~PluginInfo () {} + + std::string name; + std::string category; + std::string creator; + std::string path; + ChanCount n_inputs; + ChanCount n_outputs; ARDOUR::PluginType type; std::string unique_id; @@ -450,30 +471,25 @@ class LIBARDOUR_API PluginInfo { virtual PluginPtr load (Session& session) = 0; /* NOTE: it is possible for a plugin to be an effect AND an instrument. - * override these funcs as necessary to support that. - */ + * override these funcs as necessary to support that. */ virtual bool is_effect () const; virtual bool is_instrument () const; - virtual bool is_utility () const; //this includes things like "generators" and "midi filters" + virtual bool is_utility () const; // this includes things like "generators" and "midi filters" virtual bool is_analyzer () const; - virtual bool needs_midi_input() const; + virtual bool needs_midi_input () const; virtual std::vector<Plugin::PresetRecord> get_presets (bool user_only) const = 0; /* NOTE: this block of virtual methods looks like the interface - to a Processor, but Plugin does not inherit from Processor. - It is therefore not required that these precisely match - the interface, but it is likely that they will evolve together. - */ + * to a Processor, but Plugin does not inherit from Processor. + * It is therefore not required that these precisely match + * the interface, but it is likely that they will evolve together. */ - /* this returns true if the plugin can change its inputs or outputs on demand. - LADSPA, LV2 and VST plugins cannot do this. AudioUnits can. - */ + /* @return true if the plugin can change its inputs or outputs on demand. */ + virtual bool reconfigurable_io () const { return false; } - virtual bool reconfigurable_io() const { return false; } - - protected: +protected: friend class PluginManager; uint32_t index; }; diff --git a/libs/ardour/plugin.cc b/libs/ardour/plugin.cc index bd3b2546ac..c2a7be2774 100644 --- a/libs/ardour/plugin.cc +++ b/libs/ardour/plugin.cc @@ -501,12 +501,6 @@ Plugin::get_state () return *root; } -void -Plugin::set_info (PluginInfoPtr info) -{ - _info = info; -} - std::string Plugin::parameter_label (uint32_t which) const { |