mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-09 20:29:10 +02:00
Fix disconnecting VST3 connection points in Ardour
We bypassed the proxies on `IConnectionPoint::connect()`, so we should of course be doing the same thing on `IConnectionPoint::disconnect()`.Z
This commit is contained in:
@@ -468,12 +468,14 @@ tresult PLUGIN_API Vst3PluginProxyImpl::connect(IConnectionPoint* other) {
|
|||||||
Vst3ConnectionPointProxy::ConstructArgs(other, instance_id())});
|
Vst3ConnectionPointProxy::ConstructArgs(other, instance_id())});
|
||||||
}
|
}
|
||||||
|
|
||||||
tresult PLUGIN_API Vst3PluginProxyImpl::disconnect(IConnectionPoint* other) {
|
tresult PLUGIN_API
|
||||||
// See `Vst3PluginProxyImpl::connect()`
|
Vst3PluginProxyImpl::disconnect(IConnectionPoint* /*other*/) {
|
||||||
if (auto other_proxy = dynamic_cast<Vst3PluginProxy*>(other)) {
|
// See `Vst3PluginProxyImpl::connect()`, if we directly connected two
|
||||||
|
// instances we'll also disconnect them again
|
||||||
|
if (connected_instance_id) {
|
||||||
return bridge.send_message(YaConnectionPoint::Disconnect{
|
return bridge.send_message(YaConnectionPoint::Disconnect{
|
||||||
.instance_id = instance_id(),
|
.instance_id = instance_id(),
|
||||||
.other_instance_id = other_proxy->instance_id()});
|
.other_instance_id = *connected_instance_id});
|
||||||
} else {
|
} else {
|
||||||
const tresult result = bridge.send_message(
|
const tresult result = bridge.send_message(
|
||||||
YaConnectionPoint::Disconnect{.instance_id = instance_id(),
|
YaConnectionPoint::Disconnect{.instance_id = instance_id(),
|
||||||
|
|||||||
Reference in New Issue
Block a user