mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-06-19 09:53:56 +02:00
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:
@@ -66,6 +66,9 @@ class YaPlugInterfaceSupport : public Steinberg::Vst::IPlugInterfaceSupport {
|
|||||||
* Message to pass through a call to
|
* Message to pass through a call to
|
||||||
* `IPlugInterfaceSupport::isPlugInterfaceSupported(iid)` to the host
|
* `IPlugInterfaceSupport::isPlugInterfaceSupported(iid)` to the host
|
||||||
* context provided by 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 {
|
struct IsPlugInterfaceSupported {
|
||||||
using Response = UniversalTResult;
|
using Response = UniversalTResult;
|
||||||
|
|||||||
@@ -25,6 +25,13 @@ YaPluginFactory::ConstructArgs::ConstructArgs() {}
|
|||||||
|
|
||||||
YaPluginFactory::ConstructArgs::ConstructArgs(
|
YaPluginFactory::ConstructArgs::ConstructArgs(
|
||||||
Steinberg::IPtr<Steinberg::IPluginFactory> factory) {
|
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`
|
// `IPluginFactory::getFactoryInfo`
|
||||||
if (Steinberg::PFactoryInfo info;
|
if (Steinberg::PFactoryInfo info;
|
||||||
factory->getFactoryInfo(&info) == Steinberg::kResultOk) {
|
factory->getFactoryInfo(&info) == Steinberg::kResultOk) {
|
||||||
|
|||||||
Reference in New Issue
Block a user