diff options
author | David Robillard <d@drobilla.net> | 2012-04-20 02:12:29 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2012-04-20 02:12:29 +0000 |
commit | ffe5a6c5c2c46df6cc8723219529970ff17d84a9 (patch) | |
tree | 92f22a69cbdef84f1db22eaf70b6d6b8ed23b664 /libs/ardour | |
parent | 8439514ffae374b01989fd6b4d3b61790665e3fa (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.h | 1 | ||||
-rw-r--r-- | libs/ardour/ardour/plugin.h | 1 | ||||
-rw-r--r-- | libs/ardour/lv2_plugin.cc | 13 |
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( |