summaryrefslogtreecommitdiff
path: root/libs/ardour/lv2_plugin.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-08-26 23:30:21 +0200
committerRobin Gareus <robin@gareus.org>2019-08-26 23:30:21 +0200
commit2dbeaaffa6c08da9cb0ddc86128f71f4967424ec (patch)
tree43113e6e2bdd8ee764ce102e17941b8a9fd1b80d /libs/ardour/lv2_plugin.cc
parent5e46108e9557d9d8fe8442c807906d5b3e20c6d1 (diff)
Add sample-rate as float option parameter for LV2 plugins and UIs
Diffstat (limited to 'libs/ardour/lv2_plugin.cc')
-rw-r--r--libs/ardour/lv2_plugin.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc
index f221514e77..9c75eef4a9 100644
--- a/libs/ardour/lv2_plugin.cc
+++ b/libs/ardour/lv2_plugin.cc
@@ -439,6 +439,9 @@ LV2Plugin::init(const void* c_plugin, samplecnt_t rate)
_current_latency = 0;
_impl->block_length = _session.get_block_size();
+ _sample_rate = rate;
+ _fsample_rate = rate;
+
_instance_access_feature.URI = "http://lv2plug.in/ns/ext/instance-access";
_data_access_feature.URI = "http://lv2plug.in/ns/ext/data-access";
_make_path_feature.URI = LV2_STATE__makePath;
@@ -525,6 +528,8 @@ LV2Plugin::init(const void* c_plugin, samplecnt_t rate)
sizeof(int32_t), atom_Int, &_max_block_length },
{ LV2_OPTIONS_INSTANCE, 0, _uri_map.uri_to_id(LV2_BUF_SIZE__sequenceSize),
sizeof(int32_t), atom_Int, &_seq_size },
+ { LV2_OPTIONS_INSTANCE, 0, _uri_map.uri_to_id(LV2_PARAMETERS__sampleRate),
+ sizeof(float), atom_Float, &_fsample_rate },
{ LV2_OPTIONS_INSTANCE, 0, _uri_map.uri_to_id("http://lv2plug.in/ns/ext/buf-size#nominalBlockLength"),
sizeof(int32_t), atom_Int, &_impl->block_length },
{ LV2_OPTIONS_INSTANCE, 0, _uri_map.uri_to_id("http://ardour.org/lv2/threads/#schedPolicy"),
@@ -669,8 +674,6 @@ LV2Plugin::init(const void* c_plugin, samplecnt_t rate)
}
lilv_state_free(state);
- _sample_rate = rate;
-
const uint32_t num_ports = this->num_ports();
for (uint32_t i = 0; i < num_ports; ++i) {
const LilvPort* port = lilv_plugin_get_port_by_index(_impl->plugin, i);