X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fplugin.h;h=9f4ec85746f6e01b5fc8f035f80707322821aab6;hb=8a84caf4a449bde38624b5d27598011fcb73648e;hp=0351f5d751c9f1c35f2c909c73ce83a9653772d3;hpb=d7351459691c8cac990ec409139e94f42a89b465;p=ardour.git diff --git a/libs/ardour/ardour/plugin.h b/libs/ardour/ardour/plugin.h index 0351f5d751..9f4ec85746 100644 --- a/libs/ardour/ardour/plugin.h +++ b/libs/ardour/ardour/plugin.h @@ -48,45 +48,9 @@ class Session; class BufferSet; class PluginInsert; class Plugin; +class PluginInfo; typedef boost::shared_ptr PluginPtr; - -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; - - virtual PluginPtr load (Session& session) = 0; - virtual bool is_instrument() const; - virtual bool in_category (const std::string &) const { return false; } - - /* 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. - */ - - /* this returns true if the plugin can change its inputs or outputs on demand. - LADSPA, LV2 and VST plugins cannot do this. AudioUnits can. - */ - - virtual bool reconfigurable_io() const { return false; } - - protected: - friend class PluginManager; - uint32_t index; -}; - typedef boost::shared_ptr PluginInfoPtr; typedef std::list PluginInfoList; @@ -353,6 +317,42 @@ typedef std::list PluginPresetList; PluginPtr find_plugin(ARDOUR::Session&, std::string unique_id, ARDOUR::PluginType); +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; + + virtual PluginPtr load (Session& session) = 0; + virtual bool is_instrument() const; + virtual bool in_category (const std::string &) const { return false; } + + /* 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. + */ + + /* this returns true if the plugin can change its inputs or outputs on demand. + LADSPA, LV2 and VST plugins cannot do this. AudioUnits can. + */ + + virtual bool reconfigurable_io() const { return false; } + + protected: + friend class PluginManager; + uint32_t index; +}; + } // namespace ARDOUR #endif /* __ardour_plugin_h__ */