Browse Source

Adjust latest changes to be more in DPF style

Signed-off-by: falkTX <falktx@gmail.com>
pull/169/head
falkTX 5 years ago
parent
commit
fd55d1002c
Signed by: falkTX <falktx@gmail.com> GPG Key ID: 2D3445A829213837
1 changed files with 37 additions and 30 deletions
  1. +37
    -30
      distrho/src/DistrhoPluginLV2export.cpp

+ 37
- 30
distrho/src/DistrhoPluginLV2export.cpp View File

@@ -71,7 +71,7 @@
#define DISTRHO_LV2_USE_EVENTS_OUT (DISTRHO_PLUGIN_WANT_MIDI_OUTPUT || (DISTRHO_PLUGIN_WANT_STATE && DISTRHO_PLUGIN_HAS_UI)) #define DISTRHO_LV2_USE_EVENTS_OUT (DISTRHO_PLUGIN_WANT_MIDI_OUTPUT || (DISTRHO_PLUGIN_WANT_STATE && DISTRHO_PLUGIN_HAS_UI))


// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
static const char *const lv2ManifestPluginExtensionData[] =
static const char* const lv2ManifestPluginExtensionData[] =
{ {
#if DISTRHO_PLUGIN_WANT_STATE #if DISTRHO_PLUGIN_WANT_STATE
LV2_STATE__interface, LV2_STATE__interface,
@@ -87,7 +87,7 @@ static const char *const lv2ManifestPluginExtensionData[] =
nullptr nullptr
}; };


static const char *const lv2ManifestPluginOptionalFeatures[] =
static const char* const lv2ManifestPluginOptionalFeatures[] =
{ {
#if DISTRHO_PLUGIN_IS_RT_SAFE #if DISTRHO_PLUGIN_IS_RT_SAFE
LV2_CORE__hardRTCapable, LV2_CORE__hardRTCapable,
@@ -96,7 +96,7 @@ static const char *const lv2ManifestPluginOptionalFeatures[] =
nullptr nullptr
}; };


static const char *const lv2ManifestPluginRequiredFeatures[] =
static const char* const lv2ManifestPluginRequiredFeatures[] =
{ {
LV2_OPTIONS__options, LV2_OPTIONS__options,
LV2_URID__map, LV2_URID__map,
@@ -109,7 +109,7 @@ static const char *const lv2ManifestPluginRequiredFeatures[] =
nullptr nullptr
}; };


static const char *const lv2ManifestPluginSupportedOptions[] =
static const char* const lv2ManifestPluginSupportedOptions[] =
{ {
LV2_BUF_SIZE__nominalBlockLength, LV2_BUF_SIZE__nominalBlockLength,
LV2_BUF_SIZE__maxBlockLength, LV2_BUF_SIZE__maxBlockLength,
@@ -118,7 +118,7 @@ static const char *const lv2ManifestPluginSupportedOptions[] =
}; };


#if DISTRHO_PLUGIN_HAS_UI #if DISTRHO_PLUGIN_HAS_UI
static const char *const lv2ManifestUiExtensionData[] =
static const char* const lv2ManifestUiExtensionData[] =
{ {
LV2_OPTIONS__interface, LV2_OPTIONS__interface,
"ui:idleInterface", "ui:idleInterface",
@@ -130,7 +130,7 @@ static const char *const lv2ManifestUiExtensionData[] =
nullptr nullptr
}; };


static const char *const lv2ManifestUiOptionalFeatures[] =
static const char* const lv2ManifestUiOptionalFeatures[] =
{ {
#if DISTRHO_PLUGIN_HAS_EMBED_UI #if DISTRHO_PLUGIN_HAS_EMBED_UI
# if !DISTRHO_UI_USER_RESIZABLE # if !DISTRHO_UI_USER_RESIZABLE
@@ -142,7 +142,7 @@ static const char *const lv2ManifestUiOptionalFeatures[] =
nullptr nullptr
}; };


static const char *const lv2ManifestUiRequiredFeatures[] =
static const char* const lv2ManifestUiRequiredFeatures[] =
{ {
#if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS #if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS
LV2_DATA_ACCESS_URI, LV2_DATA_ACCESS_URI,
@@ -153,37 +153,46 @@ static const char *const lv2ManifestUiRequiredFeatures[] =
nullptr nullptr
}; };


static const char *lv2ManifestUiSupportedOptions[] =
static const char* const lv2ManifestUiSupportedOptions[] =
{ {
LV2_PARAMETERS__sampleRate, LV2_PARAMETERS__sampleRate,
nullptr nullptr
}; };
#endif // DISTRHO_PLUGIN_HAS_UI #endif // DISTRHO_PLUGIN_HAS_UI


static void addAttribute(String &text, unsigned indent, const char *attribute, const char* const values[])
static void addAttribute(String& text,
const char* const attribute,
const char* const values[],
const uint indent,
const bool endInDot = false)
{ {
if (!values[0])
if (values[0] == nullptr)
return; return;


size_t attributeLength = strlen(attribute);
const size_t attributeLength = std::strlen(attribute);


for (unsigned i = 0; values[i]; ++i)
for (uint i = 0; values[i] != nullptr; ++i)
{ {
for (unsigned l = 0; l < indent; ++l)
for (uint j = 0; j < indent; ++j)
text += " "; text += " ";


if (i == 0) if (i == 0)
{
text += attribute; text += attribute;
}
else else
for (unsigned l = 0; l < attributeLength; ++l)
{
for (uint j = 0; j < attributeLength; ++j)
text += " "; text += " ";
}

text += " "; text += " ";


bool isUrl = strstr(values[i], "://") != nullptr;
const bool isUrl = std::strstr(values[i], "://") != nullptr || std::strncmp(values[i], "urn:", 4) == 0;
if (isUrl) text += "<"; if (isUrl) text += "<";
text += values[i]; text += values[i];
if (isUrl) text += ">"; if (isUrl) text += ">";
text += values[i + 1] ? " ,\n" : " ;\n\n";
text += values[i + 1] ? " ,\n" : (endInDot ? " .\n\n" : " ;\n\n");
} }
} }


@@ -249,11 +258,10 @@ void lv2_generate_ttl(const char* const basename)
manifestString += " a ui:" DISTRHO_LV2_UI_TYPE " ;\n"; manifestString += " a ui:" DISTRHO_LV2_UI_TYPE " ;\n";
manifestString += " ui:binary <" + pluginUI + "." DISTRHO_DLL_EXTENSION "> ;\n"; manifestString += " ui:binary <" + pluginUI + "." DISTRHO_DLL_EXTENSION "> ;\n";
# if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS # if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS
addAttribute(manifestString, 4, "lv2:extensionData", lv2ManifestUiExtensionData);
addAttribute(manifestString, 4, "lv2:optionalFeature", lv2ManifestUiOptionalFeatures);
addAttribute(manifestString, 4, "lv2:requiredFeature", lv2ManifestUiRequiredFeatures);
addAttribute(manifestString, 4, "opts:supportedOption", lv2ManifestUiSupportedOptions);
manifestString[manifestString.rfind(';')] = '.';
addAttribute(manifestString, "lv2:extensionData", lv2ManifestUiExtensionData, 4);
addAttribute(manifestString, "lv2:optionalFeature", lv2ManifestUiOptionalFeatures, 4);
addAttribute(manifestString, "lv2:requiredFeature", lv2ManifestUiRequiredFeatures, 4);
addAttribute(manifestString, "opts:supportedOption", lv2ManifestUiSupportedOptions, 4, true);
# else // DISTRHO_PLUGIN_WANT_DIRECT_ACCESS # else // DISTRHO_PLUGIN_WANT_DIRECT_ACCESS
manifestString += " rdfs:seeAlso <" + uiTTL + "> .\n"; manifestString += " rdfs:seeAlso <" + uiTTL + "> .\n";
# endif // DISTRHO_PLUGIN_WANT_DIRECT_ACCESS # endif // DISTRHO_PLUGIN_WANT_DIRECT_ACCESS
@@ -328,10 +336,10 @@ void lv2_generate_ttl(const char* const basename)
#endif #endif
pluginString += "\n"; pluginString += "\n";


addAttribute(pluginString, 4, "lv2:extensionData", lv2ManifestPluginExtensionData);
addAttribute(pluginString, 4, "lv2:optionalFeature", lv2ManifestPluginOptionalFeatures);
addAttribute(pluginString, 4, "lv2:requiredFeature", lv2ManifestPluginRequiredFeatures);
addAttribute(pluginString, 4, "opts:supportedOption", lv2ManifestPluginSupportedOptions);
addAttribute(pluginString, "lv2:extensionData", lv2ManifestPluginExtensionData, 4);
addAttribute(pluginString, "lv2:optionalFeature", lv2ManifestPluginOptionalFeatures, 4);
addAttribute(pluginString, "lv2:requiredFeature", lv2ManifestPluginRequiredFeatures, 4);
addAttribute(pluginString, "opts:supportedOption", lv2ManifestPluginSupportedOptions, 4);


// UI // UI
#if DISTRHO_PLUGIN_HAS_UI #if DISTRHO_PLUGIN_HAS_UI
@@ -697,11 +705,10 @@ void lv2_generate_ttl(const char* const basename)


uiString += "<" DISTRHO_UI_URI ">\n"; uiString += "<" DISTRHO_UI_URI ">\n";


addAttribute(uiString, 4, "lv2:extensionData", lv2ManifestUiExtensionData);
addAttribute(uiString, 4, "lv2:optionalFeature", lv2ManifestUiOptionalFeatures);
addAttribute(uiString, 4, "lv2:requiredFeature", lv2ManifestUiRequiredFeatures);
addAttribute(uiString, 4, "opts:supportedOption", lv2ManifestUiSupportedOptions);
uiString[uiString.rfind(';')] = '.';
addAttribute(uiString, "lv2:extensionData", lv2ManifestUiExtensionData, 4);
addAttribute(uiString, "lv2:optionalFeature", lv2ManifestUiOptionalFeatures, 4);
addAttribute(uiString, "lv2:requiredFeature", lv2ManifestUiRequiredFeatures, 4);
addAttribute(uiString, "opts:supportedOption", lv2ManifestUiSupportedOptions, 4, true);


uiFile << uiString << std::endl; uiFile << uiString << std::endl;
uiFile.close(); uiFile.close();


Loading…
Cancel
Save