Browse Source

Fix loading vst-shell plugins in bridge mode

tags/1.9.7
falkTX 9 years ago
parent
commit
8797d9b960
1 changed files with 9 additions and 6 deletions
  1. +9
    -6
      source/backend/plugin/CarlaPluginBridge.cpp

+ 9
- 6
source/backend/plugin/CarlaPluginBridge.cpp View File

@@ -743,6 +743,7 @@ public:
fShmNonRtClientControl(),
fShmNonRtServerControl(),
fInfo(),
fUniqueId(0),
fParams(nullptr),
leakDetector_CarlaPluginBridge()
{
@@ -815,7 +816,7 @@ public:

int64_t getUniqueId() const noexcept override
{
return fInfo.uniqueId;
return fUniqueId;
}

// -------------------------------------------------------------------
@@ -2003,11 +2004,12 @@ public:
const uint32_t optionEn = fShmNonRtServerControl.readUInt();
const int64_t uniqueId = fShmNonRtServerControl.readLong();

CARLA_SAFE_ASSERT_INT2(fUniqueId == uniqueId, fUniqueId, uniqueId);

pData->hints = hints | PLUGIN_IS_BRIDGE;
pData->options = optionEn;

fInfo.category = static_cast<PluginCategory>(category);
fInfo.uniqueId = uniqueId;
fInfo.optionsAvailable = optionAv;
} break;

@@ -2413,7 +2415,7 @@ public:

// -------------------------------------------------------------------

bool init(const char* const filename, const char* const name, const char* const label, const char* const bridgeBinary)
bool init(const char* const filename, const char* const name, const char* const label, const int64_t uniqueId, const char* const bridgeBinary)
{
CARLA_SAFE_ASSERT_RETURN(pData->engine != nullptr, false);

@@ -2443,6 +2445,7 @@ public:
else
pData->filename = carla_strdup("");

fUniqueId = uniqueId;
fBridgeBinary = bridgeBinary;

std::srand(static_cast<uint>(std::time(nullptr)));
@@ -2608,7 +2611,6 @@ private:
uint32_t mIns, mOuts;
PluginCategory category;
uint optionsAvailable;
int64_t uniqueId;
CarlaString name;
CarlaString label;
CarlaString maker;
@@ -2624,7 +2626,6 @@ private:
mOuts(0),
category(PLUGIN_CATEGORY_NONE),
optionsAvailable(0),
uniqueId(0),
name(),
label(),
maker(),
@@ -2632,6 +2633,8 @@ private:
chunk() {}
} fInfo;

int64_t fUniqueId;

BridgeParamInfo* fParams;

void resizeAudioPool(const uint32_t bufferSize)
@@ -2686,7 +2689,7 @@ CarlaPlugin* CarlaPlugin::newBridge(const Initializer& init, BinaryType btype, P

CarlaPluginBridge* const plugin(new CarlaPluginBridge(init.engine, init.id, btype, ptype));

if (! plugin->init(init.filename, init.name, init.label, bridgeBinary))
if (! plugin->init(init.filename, init.name, init.label, init.uniqueId, bridgeBinary))
{
delete plugin;
return nullptr;


Loading…
Cancel
Save