DPF

DISTRHO Plugin Framework
Log | Files | Refs | Submodules | README | LICENSE

commit 15e5b575d72590ccf37f81429c48d2b607653d64
parent eac2757ce7334818f16e49e41291c86766fdfc77
Author: falkTX <falktx@falktx.com>
Date:   Sat, 18 Sep 2021 10:52:40 +0100

LV2: Set plugin type as project too, prevent invalid presets

Signed-off-by: falkTX <falktx@falktx.com>

Diffstat:
Mdistrho/src/DistrhoPluginLV2export.cpp | 22++++++++--------------
1 file changed, 8 insertions(+), 14 deletions(-)

diff --git a/distrho/src/DistrhoPluginLV2export.cpp b/distrho/src/DistrhoPluginLV2export.cpp @@ -368,11 +368,11 @@ void lv2_generate_ttl(const char* const basename) // plugin pluginString += "<" DISTRHO_PLUGIN_URI ">\n"; #ifdef DISTRHO_PLUGIN_LV2_CATEGORY - pluginString += " a " DISTRHO_PLUGIN_LV2_CATEGORY ", lv2:Plugin ;\n"; + pluginString += " a " DISTRHO_PLUGIN_LV2_CATEGORY ", lv2:Plugin, doap:Project ;\n"; #elif DISTRHO_PLUGIN_IS_SYNTH - pluginString += " a lv2:InstrumentPlugin, lv2:Plugin ;\n"; + pluginString += " a lv2:InstrumentPlugin, lv2:Plugin, doap:Project ;\n"; #else - pluginString += " a lv2:Plugin ;\n"; + pluginString += " a lv2:Plugin, doap:Project ;\n"; #endif pluginString += "\n"; @@ -1086,8 +1086,13 @@ void lv2_generate_ttl(const char* const basename) const uint32_t numPrograms = plugin.getProgramCount(); # if DISTRHO_PLUGIN_WANT_FULL_STATE const uint32_t numStates = plugin.getStateCount(); + const bool valid = numParameters != 0 || numStates != 0; +# else + const bool valid = numParameters != 0; # endif + DISTRHO_CUSTOM_SAFE_ASSERT_RETURN("Programs require parameters or full state", valid, presetsFile.close()); + const String presetSeparator(std::strstr(DISTRHO_PLUGIN_URI, "#") != nullptr ? ":" : "#"); char strBuf[0xff+1]; @@ -1104,17 +1109,6 @@ void lv2_generate_ttl(const char* const basename) presetString = "<" DISTRHO_PLUGIN_URI + presetSeparator + "preset" + strBuf + ">\n"; # if DISTRHO_PLUGIN_WANT_FULL_STATE - if (numParameters == 0 && numStates == 0) -#else - if (numParameters == 0) -#endif - { - presetString += " ."; - presetsString += presetString; - continue; - } - -# if DISTRHO_PLUGIN_WANT_FULL_STATE presetString += " state:state [\n"; for (uint32_t j=0; j<numStates; ++j) {