DPF

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

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:
Mdistrho/src/DistrhoPluginLV2export.cpp | 25+++++++++++++++++--------
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);