Also warn on version mismatch for VST2 plugins

This commit is contained in:
Robbert van der Helm
2021-07-13 22:24:02 +02:00
parent 5fc7acccd1
commit 591b2b9ceb
2 changed files with 13 additions and 3 deletions
+4
View File
@@ -175,8 +175,12 @@ Vst2PluginBridge::Vst2PluginBridge(audioMasterCallback host_callback)
// calls `audioMasterIOChanged()` and after the host calls `effOpen()`.
const auto initialization_data =
sockets.host_vst_control.receive_single<Vst2EventResult>();
const auto initialized_plugin =
std::get<AEffect>(initialization_data.payload);
const auto host_version =
std::get<std::string>(*initialization_data.value_payload);
warn_on_version_mismatch(host_version);
// After receiving the `AEffect` values we'll want to send the configuration
// back to complete the startup process
+9 -3
View File
@@ -19,6 +19,9 @@
#include <iostream>
#include <set>
// Generated inside of the build directory
#include <version.h>
#include "../../common/communication/vst2.h"
/**
@@ -194,9 +197,12 @@ Vst2Bridge::Vst2Bridge(MainContext& main_context,
// Send the plugin's information to the Linux VST plugin. Any other updates
// of this object will be sent over the `dispatcher()` socket. This would be
// done after the host calls `effOpen()`, and when the plugin calls
// `audioMasterIOChanged()`.
sockets.host_vst_control.send(Vst2EventResult{
.return_value = 0, .payload = *plugin, .value_payload = std::nullopt});
// `audioMasterIOChanged()`. We will also send along this host's version so
// we can show a warning when the plugin's version doesn't match.
sockets.host_vst_control.send(
Vst2EventResult{.return_value = 0,
.payload = *plugin,
.value_payload = yabridge_git_version});
// After sending the AEffect struct we'll receive this instance's
// configuration as a response