commit ce1ae1e51aeaf644e822f363bccb8e210e310fff
parent fc2930cbcf3f20dd880d064061420280fef20cc3
Author: falkTX <falktx@falktx.com>
Date: Mon, 21 Jun 2021 16:22:07 +0100
LV2: Use mono and stereo port group definitions from lv2 spec
Signed-off-by: falkTX <falktx@falktx.com>
Diffstat:
1 file changed, 47 insertions(+), 3 deletions(-)
diff --git a/distrho/src/DistrhoPluginLV2export.cpp b/distrho/src/DistrhoPluginLV2export.cpp
@@ -430,9 +430,21 @@ void lv2_generate_ttl(const char* const basename)
if (port.hints & kAudioPortIsSidechain)
pluginString += " lv2:portProperty lv2:isSideChain;\n";
- if (port.groupId != kPortGroupNone)
+ switch (port.groupId)
+ {
+ case kPortGroupNone:
+ break;
+ case kPortGroupMono:
+ pluginString += " pg:group pg:MonoGroup ;\n";
+ break;
+ case kPortGroupStereo:
+ pluginString += " pg:group pg:StereoGroup ;\n";
+ break;
+ default:
pluginString += " pg:group <" DISTRHO_PLUGIN_URI "#portGroup_"
+ plugin.getPortGroupSymbolForId(port.groupId) + "> ;\n";
+ break;
+ }
// set ranges
if (port.hints & kCVPortHasBipolarRange)
@@ -508,9 +520,21 @@ void lv2_generate_ttl(const char* const basename)
if (port.hints & kAudioPortIsSidechain)
pluginString += " lv2:portProperty lv2:isSideChain;\n";
- if (port.groupId != kPortGroupNone)
+ switch (port.groupId)
+ {
+ case kPortGroupNone:
+ break;
+ case kPortGroupMono:
+ pluginString += " pg:group pg:MonoGroup ;\n";
+ break;
+ case kPortGroupStereo:
+ pluginString += " pg:group pg:StereoGroup ;\n";
+ break;
+ default:
pluginString += " pg:group <" DISTRHO_PLUGIN_URI "#portGroup_"
+ plugin.getPortGroupSymbolForId(port.groupId) + "> ;\n";
+ break;
+ }
// set ranges
if (port.hints & kCVPortHasBipolarRange)
@@ -805,9 +829,22 @@ void lv2_generate_ttl(const char* const basename)
// group
const uint32_t groupId = plugin.getParameterGroupId(i);
- if (groupId != kPortGroupNone)
+ switch (groupId)
+ {
+ case kPortGroupNone:
+ break;
+ case kPortGroupMono:
+ pluginString += " pg:group pg:MonoGroup ;\n";
+ break;
+ case kPortGroupStereo:
+ pluginString += " pg:group pg:StereoGroup ;\n";
+ break;
+ default:
pluginString += " pg:group <" DISTRHO_PLUGIN_URI "#portGroup_"
+ plugin.getPortGroupSymbolForId(groupId) + "> ;\n";
+ break;
+ }
+
} // ! designated
if (i+1 == count)
@@ -903,6 +940,13 @@ void lv2_generate_ttl(const char* const basename)
DISTRHO_SAFE_ASSERT_CONTINUE(portGroup.groupId != kPortGroupNone);
DISTRHO_SAFE_ASSERT_CONTINUE(portGroup.symbol.isNotEmpty());
+ switch (portGroup.groupId)
+ {
+ case kPortGroupMono:
+ case kPortGroupStereo:
+ continue;
+ }
+
pluginString += "\n<" DISTRHO_PLUGIN_URI "#portGroup_" + portGroup.symbol + ">\n";
isInput = isOutput = false;