From 2dbeaaffa6c08da9cb0ddc86128f71f4967424ec Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 26 Aug 2019 23:30:21 +0200 Subject: Add sample-rate as float option parameter for LV2 plugins and UIs --- libs/ardour/lv2_plugin.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'libs/ardour/lv2_plugin.cc') 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); -- cgit v1.2.3