Add fixmes for incorrect byte orders

As pointed out on the Discord. Fixing this will require a breaking
change, but right we report incorrect plugin IDs meaning that projects
saved under Windows cannot be opened under Linux with yabridge so this
really needs a fix.
This commit is contained in:
Robbert van der Helm
2021-01-22 01:28:25 +01:00
parent 4812757f1a
commit 29410e3992
2 changed files with 10 additions and 0 deletions
@@ -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;
@@ -25,6 +25,13 @@ YaPluginFactory::ConstructArgs::ConstructArgs() {}
YaPluginFactory::ConstructArgs::ConstructArgs(
Steinberg::IPtr<Steinberg::IPluginFactory> 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) {