mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-06-16 08:23:55 +02:00
Separate mutual recursion on GUI and other threads
I wasn't able to get this to clash, but this way we can be 100% sure that there aren't any weird issues.
This commit is contained in:
@@ -61,7 +61,7 @@ Vst3ComponentHandlerProxyImpl::endEdit(Steinberg::Vst::ParamID id) {
|
||||
|
||||
tresult PLUGIN_API
|
||||
Vst3ComponentHandlerProxyImpl::restartComponent(int32 flags) {
|
||||
return bridge.send_mutually_recursive_message(
|
||||
return bridge.send_mutually_recursive_message<false>(
|
||||
YaComponentHandler::RestartComponent{
|
||||
.owner_instance_id = owner_instance_id(), .flags = flags});
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ Vst3ConnectionPointProxyImpl::notify(Steinberg::Vst::IMessage* message) {
|
||||
// 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(
|
||||
return bridge.send_mutually_recursive_message<true>(
|
||||
YaConnectionPoint::Notify{.instance_id = owner_instance_id(),
|
||||
.message_ptr = YaMessagePtr(*message)});
|
||||
} else {
|
||||
|
||||
@@ -46,8 +46,9 @@ Vst3PlugFrameProxyImpl::resizeView(Steinberg::IPlugView* /*view*/,
|
||||
// We have to use this special sending function here so we can handle
|
||||
// calls to `IPlugView::onSize()` from this same thread (the UI thread).
|
||||
// See the docstring for more information.
|
||||
return bridge.send_mutually_recursive_message(YaPlugFrame::ResizeView{
|
||||
.owner_instance_id = owner_instance_id(), .new_size = *newSize});
|
||||
return bridge.send_mutually_recursive_message<true>(
|
||||
YaPlugFrame::ResizeView{.owner_instance_id = owner_instance_id(),
|
||||
.new_size = *newSize});
|
||||
} else {
|
||||
std::cerr
|
||||
<< "WARNING: Null pointer passed to 'IPlugFrame::resizeView()'"
|
||||
|
||||
Reference in New Issue
Block a user