Add sample-rate as float option parameter for LV2 plugins and UIs
This commit is contained in:
parent
5e46108e95
commit
2dbeaaffa6
@ -194,6 +194,7 @@ class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
|
|||||||
Worker* _worker;
|
Worker* _worker;
|
||||||
Worker* _state_worker;
|
Worker* _state_worker;
|
||||||
samplecnt_t _sample_rate;
|
samplecnt_t _sample_rate;
|
||||||
|
float _fsample_rate;
|
||||||
float* _control_data;
|
float* _control_data;
|
||||||
float* _shadow_data;
|
float* _shadow_data;
|
||||||
float* _defaults;
|
float* _defaults;
|
||||||
|
@ -439,6 +439,9 @@ LV2Plugin::init(const void* c_plugin, samplecnt_t rate)
|
|||||||
_current_latency = 0;
|
_current_latency = 0;
|
||||||
_impl->block_length = _session.get_block_size();
|
_impl->block_length = _session.get_block_size();
|
||||||
|
|
||||||
|
_sample_rate = rate;
|
||||||
|
_fsample_rate = rate;
|
||||||
|
|
||||||
_instance_access_feature.URI = "http://lv2plug.in/ns/ext/instance-access";
|
_instance_access_feature.URI = "http://lv2plug.in/ns/ext/instance-access";
|
||||||
_data_access_feature.URI = "http://lv2plug.in/ns/ext/data-access";
|
_data_access_feature.URI = "http://lv2plug.in/ns/ext/data-access";
|
||||||
_make_path_feature.URI = LV2_STATE__makePath;
|
_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 },
|
sizeof(int32_t), atom_Int, &_max_block_length },
|
||||||
{ LV2_OPTIONS_INSTANCE, 0, _uri_map.uri_to_id(LV2_BUF_SIZE__sequenceSize),
|
{ LV2_OPTIONS_INSTANCE, 0, _uri_map.uri_to_id(LV2_BUF_SIZE__sequenceSize),
|
||||||
sizeof(int32_t), atom_Int, &_seq_size },
|
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"),
|
{ 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 },
|
sizeof(int32_t), atom_Int, &_impl->block_length },
|
||||||
{ LV2_OPTIONS_INSTANCE, 0, _uri_map.uri_to_id("http://ardour.org/lv2/threads/#schedPolicy"),
|
{ 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);
|
lilv_state_free(state);
|
||||||
|
|
||||||
_sample_rate = rate;
|
|
||||||
|
|
||||||
const uint32_t num_ports = this->num_ports();
|
const uint32_t num_ports = this->num_ports();
|
||||||
for (uint32_t i = 0; i < num_ports; ++i) {
|
for (uint32_t i = 0; i < num_ports; ++i) {
|
||||||
const LilvPort* port = lilv_plugin_get_port_by_index(_impl->plugin, i);
|
const LilvPort* port = lilv_plugin_get_port_by_index(_impl->plugin, i);
|
||||||
|
Loading…
Reference in New Issue
Block a user