From 1b61e1d16a8d0675260391393395b3aab3b0a75f Mon Sep 17 00:00:00 2001 From: Till Theato Date: Sun, 2 Jan 2011 20:05:38 +0000 Subject: [PATCH] Bezier Spline: requires version 0.2 of frei0r.curves svn path=/trunk/kdenlive/; revision=5243 --- effects/frei0r_bezier_curves.xml | 2 +- src/initeffects.cpp | 20 ++++++++++++++------ src/initeffects.h | 6 ++++-- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/effects/frei0r_bezier_curves.xml b/effects/frei0r_bezier_curves.xml index 8a4bfb51..dff83968 100644 --- a/effects/frei0r_bezier_curves.xml +++ b/effects/frei0r_bezier_curves.xml @@ -1,5 +1,5 @@ - + Bézier Curves Color curves adjustment Till Theato, Maksim Golovkin diff --git a/src/initeffects.cpp b/src/initeffects.cpp index 6ce55d62..e0b93531 100644 --- a/src/initeffects.cpp +++ b/src/initeffects.cpp @@ -208,7 +208,7 @@ Mlt::Repository *initEffects::parseEffectFiles() parseEffectFile(&MainWindow::customEffects, &MainWindow::audioEffects, &MainWindow::videoEffects, - itemName, filtersList, producersList); + itemName, filtersList, producersList, repository); } } @@ -317,7 +317,7 @@ void initEffects::parseCustomEffectsFile() } // static -void initEffects::parseEffectFile(EffectsList *customEffectList, EffectsList *audioEffectList, EffectsList *videoEffectList, QString name, QStringList filtersList, QStringList producersList) +void initEffects::parseEffectFile(EffectsList *customEffectList, EffectsList *audioEffectList, EffectsList *videoEffectList, QString name, QStringList filtersList, QStringList producersList, Mlt::Repository *repository) { QDomDocument doc; QFile file(name); @@ -331,13 +331,21 @@ void initEffects::parseEffectFile(EffectsList *customEffectList, EffectsList *au return; } - /*QString groupName; - if (doc.elementsByTagName("effectgroup").item(0).toElement().tagName() == "effectgroup") - groupName = documentElement.attribute("name", QString());*/ - for (int i = 0; !effects.item(i).isNull(); ++i) { documentElement = effects.item(i).toElement(); QString tag = documentElement.attribute("tag", QString()); + + if (documentElement.hasAttribute("version")) { + // a specific version of the filter is required + Mlt::Properties *metadata = repository->metadata(filter_type, tag.toUtf8().data()); + if (metadata && metadata->is_valid()) { + double version = atof(metadata->get("version")); + if (documentElement.attribute("version").toDouble() > version) + return; + } + delete metadata; + } + bool ladspaOk = true; if (tag == "ladspa") { QString library = documentElement.attribute("library", QString()); diff --git a/src/initeffects.h b/src/initeffects.h index d87c5abc..434d79b7 100644 --- a/src/initeffects.h +++ b/src/initeffects.h @@ -95,12 +95,14 @@ public: * @param videoEffectList list of video effects * @param name file name * @param filtersList list of filters in the MLT repository - * @param producersList list of producers in the MLT repository */ + * @param producersList list of producers in the MLT repository + * @param repository MLT repository */ static void parseEffectFile(EffectsList *customEffectList, EffectsList *audioEffectList, EffectsList *videoEffectList, QString name, QStringList filtersList, - QStringList producersList); + QStringList producersList, + Mlt::Repository *repository); /** @brief Reloads information about custom effects. */ static void parseCustomEffectsFile(); -- 2.39.2