X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fplugin.h;h=65cb1f6c367ff1b16bfa265f4e8b309e694e0c52;hb=d73df3d99007854152fe2e7ff9539dcadf31e15a;hp=de7637ef2fbbd4fa11d88bf31c69775597ea98c8;hpb=d5dbdc9ea5c3d1a34b2b1809e28931a864f55c3e;p=ardour.git diff --git a/libs/ardour/ardour/plugin.h b/libs/ardour/ardour/plugin.h index de7637ef2f..65cb1f6c36 100644 --- a/libs/ardour/ardour/plugin.h +++ b/libs/ardour/ardour/plugin.h @@ -49,6 +49,7 @@ class BufferSet; class PluginInsert; class Plugin; class PluginInfo; +class AutomationControl; typedef boost::shared_ptr PluginPtr; typedef boost::shared_ptr PluginInfoPtr; @@ -84,6 +85,8 @@ class LIBARDOUR_API Plugin : public PBD::StatefulDestructible, public Latent 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 int connect_and_run (BufferSet& bufs, ChanMapping in, ChanMapping out, @@ -99,6 +102,8 @@ class LIBARDOUR_API Plugin : public PBD::StatefulDestructible, public Latent virtual bool parameter_is_input(uint32_t) const = 0; virtual bool parameter_is_output(uint32_t) const = 0; + virtual void set_automation_control (uint32_t /*port_index*/, boost::shared_ptr) { } + virtual boost::shared_ptr get_scale_points(uint32_t /*port_index*/) const { return boost::shared_ptr(); } @@ -107,6 +112,17 @@ class LIBARDOUR_API Plugin : public PBD::StatefulDestructible, public Latent void realtime_locate (); void monitoring_changed (); + typedef struct { + unsigned char *data; + int width; + int height; + int stride; + } Display_Image_Surface; + + virtual bool has_inline_display () { return false; } + virtual Display_Image_Surface* render_inline_display (uint32_t, uint32_t) { return NULL; } + PBD::Signal0 QueueDraw; + struct PresetRecord { PresetRecord () : valid (false) {} PresetRecord (const std::string& u, const std::string& l, bool s = true) : uri (u), label (l), user (s), valid (true) {} @@ -194,7 +210,7 @@ class LIBARDOUR_API Plugin : public PBD::StatefulDestructible, public Latent /* 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*/) { return false; } + 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; @@ -336,7 +352,7 @@ class LIBARDOUR_API PluginInfo { virtual bool is_instrument() const; virtual bool in_category (const std::string &) const { return false; } - virtual std::vector get_presets(Session& session); + virtual std::vector 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.