summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-04-20 02:12:29 +0000
committerDavid Robillard <d@drobilla.net>2012-04-20 02:12:29 +0000
commitffe5a6c5c2c46df6cc8723219529970ff17d84a9 (patch)
tree92f22a69cbdef84f1db22eaf70b6d6b8ed23b664 /libs/ardour
parent8439514ffae374b01989fd6b4d3b61790665e3fa (diff)
Add "Description" pane to generic plugin UI for LV2 plugins with documentation (rdfs:comment property).
A Gtk::Entry might be better here, making Gtk::Label wrap based on size is tedious... git-svn-id: svn://localhost/ardour2/branches/3.0@12043 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/ardour/lv2_plugin.h1
-rw-r--r--libs/ardour/ardour/plugin.h1
-rw-r--r--libs/ardour/lv2_plugin.cc13
3 files changed, 15 insertions, 0 deletions
diff --git a/libs/ardour/ardour/lv2_plugin.h b/libs/ardour/ardour/lv2_plugin.h
index b72b7d605b..a4de7c4ae1 100644
--- a/libs/ardour/ardour/lv2_plugin.h
+++ b/libs/ardour/ardour/lv2_plugin.h
@@ -56,6 +56,7 @@ class LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
framecnt_t signal_latency () const;
void set_parameter (uint32_t port, float val);
float get_parameter (uint32_t port) const;
+ std::string get_docs() const;
std::string get_parameter_docs(uint32_t which) const;
int get_parameter_descriptor (uint32_t which, ParameterDescriptor&) const;
uint32_t nth_parameter (uint32_t port, bool& ok) const;
diff --git a/libs/ardour/ardour/plugin.h b/libs/ardour/ardour/plugin.h
index bade84341b..069a579ff7 100644
--- a/libs/ardour/ardour/plugin.h
+++ b/libs/ardour/ardour/plugin.h
@@ -118,6 +118,7 @@ class Plugin : public PBD::StatefulDestructible, public Latent
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 ""; }
virtual int get_parameter_descriptor (uint32_t which, ParameterDescriptor&) const = 0;
diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc
index bd628e46bd..c6509f0203 100644
--- a/libs/ardour/lv2_plugin.cc
+++ b/libs/ardour/lv2_plugin.cc
@@ -585,6 +585,19 @@ LV2Plugin::get_parameter(uint32_t which) const
}
std::string
+LV2Plugin::get_docs() const
+{
+ LilvNodes* comments = lilv_plugin_get_value(_impl->plugin, _world.rdfs_comment);
+ if (comments) {
+ const std::string docs(lilv_node_as_string(lilv_nodes_get_first(comments)));
+ lilv_nodes_free(comments);
+ return docs;
+ }
+
+ return "";
+}
+
+std::string
LV2Plugin::get_parameter_docs(uint32_t which) const
{
LilvNodes* comments = lilv_port_get_value(