X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Flv2_plugin.h;h=329af1151fbef3449a48f8fdf27bb6273439d432;hb=ba0458cf1f6c69366e89631d8fff916ad183d768;hp=7daf4ed2b16654c7c3e958415eb5cae0261b08ea;hpb=ca10cc82a4374a5b413c06ead6cc89c53f8881ee;p=ardour.git diff --git a/libs/ardour/ardour/lv2_plugin.h b/libs/ardour/ardour/lv2_plugin.h index 7daf4ed2b1..329af1151f 100644 --- a/libs/ardour/ardour/lv2_plugin.h +++ b/libs/ardour/ardour/lv2_plugin.h @@ -26,9 +26,8 @@ #include #include -#include -#include "pbd/stateful.h" +#include "pbd/stateful.h" #include #include @@ -48,7 +47,7 @@ class LV2Plugin : public ARDOUR::Plugin ~LV2Plugin (); /* Plugin interface */ - + std::string unique_id() const; const char* label() const { return slv2_value_as_string(_name); } const char* name() const { return slv2_value_as_string(_name); } @@ -65,15 +64,16 @@ class LV2Plugin : public ARDOUR::Plugin SLV2Plugin slv2_plugin() { return _plugin; } SLV2UI slv2_ui() { return _ui; } + bool is_external_ui() const; SLV2Port slv2_port(uint32_t i) { return slv2_plugin_get_port_by_index(_plugin, i); } const char* port_symbol(uint32_t port); - + const LV2_Feature* const* features() { return _features; } std::set automatable() const; - void activate () { + void activate () { if (!_was_activated) { slv2_instance_activate(_instance); _was_activated = true; @@ -94,8 +94,8 @@ class LV2Plugin : public ARDOUR::Plugin _instance = NULL; } - void set_block_size (nframes_t nframes) {} - + int set_block_size (nframes_t /*nframes*/) { return 0; } + int connect_and_run (BufferSet& bufs, ChanMapping in, ChanMapping out, nframes_t nframes, nframes_t offset); @@ -114,9 +114,9 @@ class LV2Plugin : public ARDOUR::Plugin static uint32_t midi_event_type() { return _midi_event_type; } XMLNode& get_state(); - int set_state(const XMLNode& node); + int set_state(const XMLNode& node, int version); bool save_preset(std::string uri); - bool load_preset(const string uri); + bool load_preset(const std::string& uri); virtual std::vector get_presets(); bool has_editor() const; @@ -136,8 +136,8 @@ class LV2Plugin : public ARDOUR::Plugin float* _defaults; float* _latency_control_port; bool _was_activated; - vector _port_is_input; - map _port_indices; + std::vector _port_is_input; + std::map _port_indices; typedef struct { const void* (*extension_data)(const char* uri); } LV2_DataAccess; LV2_DataAccess _data_access_extension_data; @@ -174,14 +174,16 @@ struct LV2World { SLV2Value toggled; SLV2Value srate; SLV2Value gtk_gui; + SLV2Value external_gui; + SLV2Value logarithmic; }; class LV2PluginInfo : public PluginInfo { -public: +public: LV2PluginInfo (void* slv2_world, void* slv2_plugin);; ~LV2PluginInfo ();; - static PluginInfoList discover (void* slv2_world); + static PluginInfoList* discover (void* slv2_world); PluginPtr load (Session& session);