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))

// -----------------------------------------------------------------------
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();


Loading…
Cancel
Save