commit 417f234b16911ab36311a4f31c5b82017e5e56e5
parent 4685979dc16e0a236180603cf6f5ce1c8f04a19f
Author: falkTX <falktx@falktx.com>
Date: Sat, 18 Sep 2021 19:27:35 +0100
Write MIDI CC binding LV2 meta-data
Signed-off-by: falkTX <falktx@falktx.com>
Diffstat:
1 file changed, 17 insertions(+), 8 deletions(-)
diff --git a/distrho/src/DistrhoPluginLV2export.cpp b/distrho/src/DistrhoPluginLV2export.cpp
@@ -332,6 +332,7 @@ void lv2_generate_ttl(const char* const basename)
pluginString += "@prefix doap: <http://usefulinc.com/ns/doap#> .\n";
pluginString += "@prefix foaf: <http://xmlns.com/foaf/0.1/> .\n";
pluginString += "@prefix lv2: <" LV2_CORE_PREFIX "> .\n";
+ pluginString += "@prefix midi: <" LV2_MIDI_PREFIX "> .\n";
pluginString += "@prefix mod: <http://moddevices.com/ns/mod#> .\n";
pluginString += "@prefix opts: <" LV2_OPTIONS_PREFIX "> .\n";
pluginString += "@prefix pg: <" LV2_PORT_GROUPS_PREFIX "> .\n";
@@ -595,10 +596,10 @@ void lv2_generate_ttl(const char* const basename)
pluginString += " rsz:minimumSize " + String(DISTRHO_PLUGIN_MINIMUM_BUFFER_SIZE) + " ;\n";
pluginString += " atom:bufferType atom:Sequence ;\n";
# if (DISTRHO_PLUGIN_WANT_STATE && DISTRHO_PLUGIN_HAS_UI)
- pluginString += " atom:supports <" LV2_ATOM__String "> ;\n";
+ pluginString += " atom:supports atom:String ;\n";
# endif
# if DISTRHO_PLUGIN_WANT_MIDI_INPUT
- pluginString += " atom:supports <" LV2_MIDI__MidiEvent "> ;\n";
+ pluginString += " atom:supports midi:MidiEvent ;\n";
# endif
# if DISTRHO_PLUGIN_WANT_STATEFILES
pluginString += " atom:supports <" LV2_PATCH__Message "> ;\n";
@@ -619,10 +620,10 @@ void lv2_generate_ttl(const char* const basename)
pluginString += " rsz:minimumSize " + String(DISTRHO_PLUGIN_MINIMUM_BUFFER_SIZE) + " ;\n";
pluginString += " atom:bufferType atom:Sequence ;\n";
# if (DISTRHO_PLUGIN_WANT_STATE && DISTRHO_PLUGIN_HAS_UI)
- pluginString += " atom:supports <" LV2_ATOM__String "> ;\n";
+ pluginString += " atom:supports atom:String ;\n";
# endif
# if DISTRHO_PLUGIN_WANT_MIDI_OUTPUT
- pluginString += " atom:supports <" LV2_MIDI__MidiEvent "> ;\n";
+ pluginString += " atom:supports midi:MidiEvent ;\n";
# endif
# if DISTRHO_PLUGIN_WANT_STATEFILES
pluginString += " atom:supports <" LV2_PATCH__Message "> ;\n";
@@ -753,12 +754,22 @@ void lv2_generate_ttl(const char* const basename)
}
if (j+1 == enumValues.count)
- pluginString += " ] ;\n\n";
+ pluginString += " ] ;\n";
else
pluginString += " ] ,\n";
}
}
+ // MIDI CC binding
+ if (const uint8_t midiCC = plugin.getParameterMidiCC(i))
+ {
+ char midiCCBuf[7];
+ snprintf(midiCCBuf, sizeof(midiCCBuf), "B0%02x00", midiCC);
+ pluginString += " midi:binding \"";
+ pluginString += midiCCBuf;
+ pluginString += "\"^^midi:MidiEvent ;\n";
+ }
+
// unit
const String& unit(plugin.getParameterUnit(i));
@@ -821,7 +832,7 @@ void lv2_generate_ttl(const char* const basename)
}
// hints
- const uint32_t hints(plugin.getParameterHints(i));
+ const uint32_t hints = plugin.getParameterHints(i);
if (hints & kParameterIsBoolean)
{
@@ -839,8 +850,6 @@ void lv2_generate_ttl(const char* const basename)
pluginString += " <" LV2_KXSTUDIO_PROPERTIES__NonAutomable "> ;\n";
}
- // TODO midiCC
-
// group
const uint32_t groupId = plugin.getParameterGroupId(i);