diff --git a/src/plugin/bridges/vst2.cpp b/src/plugin/bridges/vst2.cpp index 5427eb75..d169c854 100644 --- a/src/plugin/bridges/vst2.cpp +++ b/src/plugin/bridges/vst2.cpp @@ -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(); + const auto initialized_plugin = std::get(initialization_data.payload); + const auto host_version = + std::get(*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 diff --git a/src/wine-host/bridges/vst2.cpp b/src/wine-host/bridges/vst2.cpp index e457ab7a..bc22bfe5 100644 --- a/src/wine-host/bridges/vst2.cpp +++ b/src/wine-host/bridges/vst2.cpp @@ -19,6 +19,9 @@ #include #include +// Generated inside of the build directory +#include + #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