Browse Source

Prefer bridges for some specific plugins

All u-he plugins throw/abort when loaded in carla.
I don't really know the reason, but loading them in bridges works.
So for all known u-he plugins simply force bridge mode.
Take the chance and add calf-analyzer and ir.lv2 in there.
Closes #333
Closes #302
tags/1.9.7
falkTX 10 years ago
parent
commit
ff100b464e
1 changed files with 75 additions and 4 deletions
  1. +75
    -4
      source/backend/engine/CarlaEngine.cpp

+ 75
- 4
source/backend/engine/CarlaEngine.cpp View File

@@ -378,11 +378,11 @@ bool CarlaEngine::addPlugin(const BinaryType btype, const PluginType ptype,
{
if (btype == BINARY_NATIVE)
{
#ifdef CARLA_OS_WIN
# ifdef CARLA_OS_WIN
bridgeBinary += CARLA_OS_SEP_STR "carla-bridge-native.exe";
#else
# else
bridgeBinary += CARLA_OS_SEP_STR "carla-bridge-native";
#endif
# endif
}
else
{
@@ -410,7 +410,78 @@ bool CarlaEngine::addPlugin(const BinaryType btype, const PluginType ptype,
bridgeBinary.clear();
}

if (ptype != PLUGIN_INTERNAL && (btype != BINARY_NATIVE || (pData->options.preferPluginBridges && bridgeBinary.isNotEmpty())))
// Prefer bridges for some specific plugins
bool preferBridges = pData->options.preferPluginBridges;

# ifdef CARLA_OS_LINUX
if (! preferBridges)
{
if (ptype == PLUGIN_LV2)
{
if (std::strcmp(label, "http://calf.sourceforge.net/plugins/Analyzer") == 0)
preferBridges = true;
if (std::strcmp(label, "http://factorial.hu/plugins/lv2/ir") == 0)
preferBridges = true;
}
else if (ptype == PLUGIN_VST2)
{
/**/ if (std::strncmp(label, "ACE ", 4) == 0 && uniqueId == 1633895765)
preferBridges = true;
else if (std::strncmp(label, "Bazille ", 8) == 0 && uniqueId == 1433421876)
preferBridges = true;
else if (std::strncmp(label, "Diva ", 5) == 0 && uniqueId == 1147754081)
preferBridges = true;
else if (std::strncmp(label, "Filterscape ", 13) == 0 && uniqueId == 1095583057)
preferBridges = true;
else if (std::strncmp(label, "Filterscape VA ", 16) == 0 && uniqueId == 1179866689)
preferBridges = true;
else if (std::strncmp(label, "Filterscape Q6 ", 16) == 0 && uniqueId == 1179865398)
preferBridges = true;
else if (std::strncmp(label, "Hive ", 5) == 0 && uniqueId == 1749636677)
preferBridges = true;
else if (std::strncmp(label, "MFM ", 4) == 0 && uniqueId == 1296452914)
preferBridges = true;
else if (std::strncmp(label, "Podolski ", 9) == 0 && uniqueId == 1349477487)
preferBridges = true;
else if (std::strncmp(label, "Presswerk ", 10) == 0 && uniqueId == 1886548821)
preferBridges = true;
else if (std::strncmp(label, "Protoverb ", 10) == 0 && uniqueId == 1969770582)
preferBridges = true;
else if (std::strncmp(label, "Satin ", 6) == 0 && uniqueId == 1969771348)
preferBridges = true;
else if (std::strncmp(label, "TripleCheese ", 13) == 0 && uniqueId == 1667388281)
preferBridges = true;
else if (std::strncmp(label, "Uhbik Ambience ", 15) == 0 && uniqueId == 1432568113)
preferBridges = true;
else if (std::strncmp(label, "Uhbik Delay ", 12) == 0 && uniqueId == 1432568881)
preferBridges = true;
else if (std::strncmp(label, "Uhbik Equalizer ", 16) == 0 && uniqueId == 1432572209)
preferBridges = true;
else if (std::strncmp(label, "Uhbik Flanger ", 14) == 0 && uniqueId == 1432569393)
preferBridges = true;
else if (std::strncmp(label, "Uhbik GrainDad ", 15) == 0 && uniqueId == 1432569649)
preferBridges = true;
else if (std::strncmp(label, "Uhbik Phaser ", 13) == 0 && uniqueId == 1432571953)
preferBridges = true;
else if (std::strncmp(label, "Uhbik Runciter ", 15) == 0 && uniqueId == 1382232375)
preferBridges = true;
else if (std::strncmp(label, "Uhbik Shifter ", 14) == 0 && uniqueId == 1432572721)
preferBridges = true;
else if (std::strncmp(label, "Uhbik Tremolo ", 14) == 0 && uniqueId == 1432572977)
preferBridges = true;
else if (std::strncmp(label, "Zebra ", 6) == 0 && uniqueId == 1397572658)
preferBridges = true;
else if (std::strncmp(label, "Zebralette ", 11) == 0 && uniqueId == 1397572659)
preferBridges = true;
else if (std::strncmp(label, "ZRev ", 5) == 0 && uniqueId == 1919243824)
preferBridges = true;
else if (std::strncmp(label, "Zebrify ", 8) == 0 && uniqueId == 1397578034)
preferBridges = true;
}
}
# endif

if (ptype != PLUGIN_INTERNAL && (btype != BINARY_NATIVE || (preferBridges && bridgeBinary.isNotEmpty())))
{
if (bridgeBinary.isNotEmpty())
{


Loading…
Cancel
Save