summaryrefslogtreecommitdiff
path: root/libs/ardour/lv2_plugin.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-01-19 21:07:22 +0100
committerRobin Gareus <robin@gareus.org>2017-01-19 21:35:22 +0100
commit761747760921b5c6b3f4899ca1c40e9aa27bc4a0 (patch)
tree62aba50c8fc3ca5ee269488e6ab0fd85f3f847a0 /libs/ardour/lv2_plugin.cc
parent5d7b6fdd627af94906aaf2fd5405bb33312f96f8 (diff)
Scale default Atom Ringbuffer size with samplerate
This increases the safe-margin for plugins producing more messages sent to the plugin GUI (usually fixed ~25Hz updates)
Diffstat (limited to 'libs/ardour/lv2_plugin.cc')
-rw-r--r--libs/ardour/lv2_plugin.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc
index 24fa22dcfd..a1a7ce860a 100644
--- a/libs/ardour/lv2_plugin.cc
+++ b/libs/ardour/lv2_plugin.cc
@@ -1647,7 +1647,8 @@ LV2Plugin::write_from_ui(uint32_t index,
if (_atom_ev_buffers && _atom_ev_buffers[0]) {
bufsiz = lv2_evbuf_get_capacity(_atom_ev_buffers[0]);
}
- rbs = max((size_t) bufsiz * 8, rbs);
+ int fact = ceilf(_session.frame_rate () / 3000.f);
+ rbs = max((size_t) bufsiz * std::max (8, fact), rbs);
_from_ui = new RingBuffer<uint8_t>(rbs);
}