commit fce8f5a880551c8ce97275846549ecad7fb23f65
parent 41750f73adcf019956d04d47256c699764580a9e
Author: falkTX <falktx@falktx.com>
Date: Sat, 18 Sep 2021 11:07:20 +0100
LV2: Generate properties for plugin state keys, passing validation
Signed-off-by: falkTX <falktx@falktx.com>
Diffstat:
1 file changed, 15 insertions(+), 0 deletions(-)
diff --git a/distrho/src/DistrhoPluginLV2export.cpp b/distrho/src/DistrhoPluginLV2export.cpp
@@ -1078,7 +1078,10 @@ void lv2_generate_ttl(const char* const basename)
presetsString += "@prefix lv2: <" LV2_CORE_PREFIX "> .\n";
presetsString += "@prefix pset: <" LV2_PRESETS_PREFIX "> .\n";
# if DISTRHO_PLUGIN_WANT_STATE
+ presetsString += "@prefix owl: <http://www.w3.org/2002/07/owl#> .\n";
+ presetsString += "@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n";
presetsString += "@prefix state: <" LV2_STATE_PREFIX "> .\n";
+ presetsString += "@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .\n";
# endif
presetsString += "\n";
@@ -1100,6 +1103,18 @@ void lv2_generate_ttl(const char* const basename)
String presetString;
+# if DISTRHO_PLUGIN_WANT_FULL_STATE
+ for (uint32_t i=0; i<numStates; ++i)
+ {
+ presetString = "<" DISTRHO_PLUGIN_LV2_STATE_PREFIX + plugin.getStateKey(i) + ">\n";
+ presetString += " a owl:DatatypeProperty ;\n";
+ presetString += " rdfs:label \"Plugin state key-value string pair\" ;\n";
+ presetString += " rdfs:domain state:State ;\n";
+ presetString += " rdfs:range xsd:string .\n\n";
+ presetsString += presetString;
+ }
+# endif
+
for (uint32_t i=0; i<numPrograms; ++i)
{
std::snprintf(strBuf, 0xff, "%03i", i+1);