mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-14 12:30:00 +02:00
Handle connection point proxy from GUI thread
FabFilter plugins will exchange messages that have to be handled from the GUI thread, or they'll get stuck waiting on a synchronisation object. This probably hurts GUI performance significantly but luckily it only affects Ardour.
This commit is contained in:
@@ -52,7 +52,11 @@ Vst3ConnectionPointProxyImpl::disconnect(IConnectionPoint* /*other*/) {
|
||||
tresult PLUGIN_API
|
||||
Vst3ConnectionPointProxyImpl::notify(Steinberg::Vst::IMessage* message) {
|
||||
if (message) {
|
||||
return bridge.send_message(
|
||||
// FabFilter plugins require this to be done from the GUI thread so we
|
||||
// need to use our mutual recursion mechanism. Luckily only Ardour uses
|
||||
// connection proxies, so if this ends up breaking something it will
|
||||
// only affect Ardour.
|
||||
return bridge.send_mutually_recursive_message(
|
||||
YaConnectionPoint::Notify{.instance_id = owner_instance_id(),
|
||||
.message_ptr = YaMessagePtr(*message)});
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user