diff --git a/src/common/serialization/vst3/host-context/plug-interface-support.h b/src/common/serialization/vst3/host-context/plug-interface-support.h index 11791af4..390ccdec 100644 --- a/src/common/serialization/vst3/host-context/plug-interface-support.h +++ b/src/common/serialization/vst3/host-context/plug-interface-support.h @@ -66,6 +66,9 @@ class YaPlugInterfaceSupport : public Steinberg::Vst::IPlugInterfaceSupport { * Message to pass through a call to * `IPlugInterfaceSupport::isPlugInterfaceSupported(iid)` to the host * context provided by the host. + * + * TODO: Figure out if we should translate the UIDs from Windows COM to + * non-Windows COM. */ struct IsPlugInterfaceSupported { using Response = UniversalTResult; diff --git a/src/common/serialization/vst3/plugin-factory.cpp b/src/common/serialization/vst3/plugin-factory.cpp index b973c9f0..453736d6 100644 --- a/src/common/serialization/vst3/plugin-factory.cpp +++ b/src/common/serialization/vst3/plugin-factory.cpp @@ -25,6 +25,13 @@ YaPluginFactory::ConstructArgs::ConstructArgs() {} YaPluginFactory::ConstructArgs::ConstructArgs( Steinberg::IPtr factory) { + // FIXME: The class IDs are incorrect! See the `INLINE_UID` macro. We need + // to shuffle the byte orders around for plugins to be compatible + // with projects saved under Windows and with native Linux versions + // of the same plugin. + // FIXME: We need to do similar translations everywhere where we encounter + // `ArrayUID`, such as `IComponent::getControllerClassId()` + // `IPluginFactory::getFactoryInfo` if (Steinberg::PFactoryInfo info; factory->getFactoryInfo(&info) == Steinberg::kResultOk) {