From fd55d1002c4437efe4673e07ba6b33a3e210690c Mon Sep 17 00:00:00 2001 From: falkTX Date: Mon, 5 Aug 2019 12:59:48 +0100 Subject: [PATCH] Adjust latest changes to be more in DPF style Signed-off-by: falkTX --- distrho/src/DistrhoPluginLV2export.cpp | 67 ++++++++++++++------------ 1 file changed, 37 insertions(+), 30 deletions(-) diff --git a/distrho/src/DistrhoPluginLV2export.cpp b/distrho/src/DistrhoPluginLV2export.cpp index 0d84f5e2..e202d759 100644 --- a/distrho/src/DistrhoPluginLV2export.cpp +++ b/distrho/src/DistrhoPluginLV2export.cpp @@ -71,7 +71,7 @@ #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 LV2_STATE__interface, @@ -87,7 +87,7 @@ static const char *const lv2ManifestPluginExtensionData[] = nullptr }; -static const char *const lv2ManifestPluginOptionalFeatures[] = +static const char* const lv2ManifestPluginOptionalFeatures[] = { #if DISTRHO_PLUGIN_IS_RT_SAFE LV2_CORE__hardRTCapable, @@ -96,7 +96,7 @@ static const char *const lv2ManifestPluginOptionalFeatures[] = nullptr }; -static const char *const lv2ManifestPluginRequiredFeatures[] = +static const char* const lv2ManifestPluginRequiredFeatures[] = { LV2_OPTIONS__options, LV2_URID__map, @@ -109,7 +109,7 @@ static const char *const lv2ManifestPluginRequiredFeatures[] = nullptr }; -static const char *const lv2ManifestPluginSupportedOptions[] = +static const char* const lv2ManifestPluginSupportedOptions[] = { LV2_BUF_SIZE__nominalBlockLength, LV2_BUF_SIZE__maxBlockLength, @@ -118,7 +118,7 @@ static const char *const lv2ManifestPluginSupportedOptions[] = }; #if DISTRHO_PLUGIN_HAS_UI -static const char *const lv2ManifestUiExtensionData[] = +static const char* const lv2ManifestUiExtensionData[] = { LV2_OPTIONS__interface, "ui:idleInterface", @@ -130,7 +130,7 @@ static const char *const lv2ManifestUiExtensionData[] = nullptr }; -static const char *const lv2ManifestUiOptionalFeatures[] = +static const char* const lv2ManifestUiOptionalFeatures[] = { #if DISTRHO_PLUGIN_HAS_EMBED_UI # if !DISTRHO_UI_USER_RESIZABLE @@ -142,7 +142,7 @@ static const char *const lv2ManifestUiOptionalFeatures[] = nullptr }; -static const char *const lv2ManifestUiRequiredFeatures[] = +static const char* const lv2ManifestUiRequiredFeatures[] = { #if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS LV2_DATA_ACCESS_URI, @@ -153,37 +153,46 @@ static const char *const lv2ManifestUiRequiredFeatures[] = nullptr }; -static const char *lv2ManifestUiSupportedOptions[] = +static const char* const lv2ManifestUiSupportedOptions[] = { LV2_PARAMETERS__sampleRate, nullptr }; #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; - 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 += " "; if (i == 0) + { text += attribute; + } else - for (unsigned l = 0; l < attributeLength; ++l) + { + for (uint j = 0; j < attributeLength; ++j) 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 += "<"; text += values[i]; 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 += " ui:binary <" + pluginUI + "." DISTRHO_DLL_EXTENSION "> ;\n"; # 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 manifestString += " rdfs:seeAlso <" + uiTTL + "> .\n"; # endif // DISTRHO_PLUGIN_WANT_DIRECT_ACCESS @@ -328,10 +336,10 @@ void lv2_generate_ttl(const char* const basename) #endif 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 #if DISTRHO_PLUGIN_HAS_UI @@ -697,11 +705,10 @@ void lv2_generate_ttl(const char* const basename) 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.close();