diff --git a/source/backend/plugin/DssiPlugin.cpp b/source/backend/plugin/DssiPlugin.cpp index 87a416658..64832b8e2 100644 --- a/source/backend/plugin/DssiPlugin.cpp +++ b/source/backend/plugin/DssiPlugin.cpp @@ -143,6 +143,7 @@ public: CARLA_ASSERT(fDescriptor != nullptr); const bool isDssiVst = fFilename.contains("dssi-vst", true); + const bool isZASX = fFilename.contains("zynaddsubfx", true); unsigned int options = 0x0; options |= PLUGIN_OPTION_MAP_PROGRAM_CHANGES; @@ -155,7 +156,7 @@ public: if (fDescriptor != nullptr && fDssiDescriptor->get_custom_data != nullptr && fDssiDescriptor->set_custom_data != nullptr) options |= PLUGIN_OPTION_USE_CHUNKS; } - else + else if (! isZASX) { options |= PLUGIN_OPTION_FIXED_BUFFER; } @@ -706,6 +707,7 @@ public: // plugin hints const bool haveGUI = (fHints & PLUGIN_HAS_GUI); const bool isDssiVst = fFilename.contains("dssi-vst", true); + const bool isZASX = fFilename.contains("zynaddsubfx", true); fHints = 0x0; @@ -748,6 +750,10 @@ public: if (kData->engine->getOptions().useDssiVstChunks && fDssiDescriptor->get_custom_data != nullptr && fDssiDescriptor->set_custom_data != nullptr) fOptions |= PLUGIN_OPTION_USE_CHUNKS; } + else if (isZASX) + { + fOptions |= PLUGIN_OPTION_FIXED_BUFFER; + } if (mIns > 0) { diff --git a/source/backend/plugin/NativePlugin.cpp b/source/backend/plugin/NativePlugin.cpp index 96d606514..dbb89ccc6 100644 --- a/source/backend/plugin/NativePlugin.cpp +++ b/source/backend/plugin/NativePlugin.cpp @@ -213,7 +213,18 @@ public: unsigned int options = 0x0; - options |= PLUGIN_OPTION_FIXED_BUFFER; + if (fDescriptor->name != nullptr) + { + if (std::strcmp(fDescriptor->name, "ZynAddSubFX") == 0) + { + // nothing + } + else + { + options |= PLUGIN_OPTION_FIXED_BUFFER; + } + } + options |= PLUGIN_OPTION_MAP_PROGRAM_CHANGES; //if ((kData->audioIns.count() == 1 || kData->audioOuts.count() == 0) || (kData->audioIns.count() == 0 || kData->audioOuts.count() == 1)) @@ -892,6 +903,14 @@ public: // plugin options fOptions = 0x0; + if (fDescriptor->name != nullptr) + { + if (std::strcmp(fDescriptor->name, "ZynAddSubFX") == 0) + { + fOptions |= PLUGIN_OPTION_FIXED_BUFFER; + } + } + fOptions |= PLUGIN_OPTION_MAP_PROGRAM_CHANGES; if (forcedStereoIn || forcedStereoOut)