X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Finiteffects.cpp;h=a7b4d3f623de9f2fb0f5207dce0d5f6b135acd04;hb=d4048b5cfa6fa527f5f77f1b8b4203673a6427eb;hp=064b0c375ca35a12f8a9baefb97d461c4c8eb6a8;hpb=12c17f0ebd954b5d7b4f0d6e836f851095101818;p=kdenlive
diff --git a/src/initeffects.cpp b/src/initeffects.cpp
index 064b0c37..a7b4d3f6 100644
--- a/src/initeffects.cpp
+++ b/src/initeffects.cpp
@@ -65,7 +65,6 @@ initEffectsThumbnailer initEffects::thumbnailer;
// static
void initEffects::refreshLumas()
{
-
// Check for Kdenlive installed luma files, add empty string at start for no luma
QStringList imagenamelist = QStringList() << i18n("None");
QStringList imagefiles = QStringList() << QString();
@@ -77,20 +76,23 @@ void initEffects::refreshLumas()
QStringList filesnames = QDir(folder).entryList(filters, QDir::Files);
foreach(const QString &fname, filesnames) {
imagenamelist.append(fname);
- imagefiles.append(folder + '/' + fname);
+ imagefiles.append(KUrl(folder).path(KUrl::AddTrailingSlash) + fname);
}
}
// Check for MLT lumas
- QString folder = mlt_environment("MLT_DATA");
- folder.append("/lumas/").append(mlt_environment("MLT_NORMALISATION"));
- QDir lumafolder(folder);
+ KUrl folder(mlt_environment("MLT_DATA"));
+ folder.addPath("lumas");
+ folder.addPath(mlt_environment("MLT_NORMALISATION"));
+ QDir lumafolder(folder.path());
QStringList filesnames = lumafolder.entryList(filters, QDir::Files);
foreach(const QString &fname, filesnames) {
imagenamelist.append(fname);
- imagefiles.append(folder + '/' + fname);
+ KUrl path(folder);
+ path.addPath(fname);
+ imagefiles.append(path.toLocalFile());
}
- QDomElement lumaTransition = MainWindow::transitions.getEffectByTag("luma", QString());
+ QDomElement lumaTransition = MainWindow::transitions.getEffectByTag("luma", "luma");
QDomNodeList params = lumaTransition.elementsByTagName("parameter");
for (int i = 0; i < params.count(); i++) {
QDomElement e = params.item(i).toElement();
@@ -101,6 +103,17 @@ void initEffects::refreshLumas()
}
}
+ QDomElement compositeTransition = MainWindow::transitions.getEffectByTag("composite", "composite");
+ params = compositeTransition.elementsByTagName("parameter");
+ for (int i = 0; i < params.count(); i++) {
+ QDomElement e = params.item(i).toElement();
+ if (e.attribute("tag") == "luma") {
+ e.setAttribute("paramlistdisplay", imagenamelist.join(","));
+ e.setAttribute("paramlist", imagefiles.join(","));
+ break;
+ }
+ }
+
}
@@ -184,6 +197,8 @@ Mlt::Repository *initEffects::parseEffectFiles()
KGlobal::dirs()->addResourceDir("ladspa_plugin", "/usr/local/lib/ladspa");
KGlobal::dirs()->addResourceDir("ladspa_plugin", "/opt/lib/ladspa");
KGlobal::dirs()->addResourceDir("ladspa_plugin", "/opt/local/lib/ladspa");
+ KGlobal::dirs()->addResourceDir("ladspa_plugin", "/usr/lib64/ladspa");
+ KGlobal::dirs()->addResourceDir("ladspa_plugin", "/usr/local/lib64/ladspa");
kDebug() << "// INIT EFFECT SEARCH" << endl;
@@ -217,7 +232,7 @@ Mlt::Repository *initEffects::parseEffectFiles()
// static
void initEffects::parseCustomEffectsFile()
{
- MainWindow::customEffects.clear();
+ MainWindow::customEffects.clearList();
QString path = KStandardDirs::locateLocal("appdata", "effects/", true);
QDir directory = QDir(path);
QStringList filter;
@@ -504,7 +519,7 @@ QDomDocument initEffects::createDescriptionFromMlt(Mlt::Repository* repository,
eff.appendChild(desc);
Mlt::Properties param_props((mlt_properties) metadata->get_data("parameters"));
- for (int j = 0; param_props.is_valid() && j < param_props.count();j++) {
+ for (int j = 0; param_props.is_valid() && j < param_props.count(); j++) {
QDomElement params = ret.createElement("parameter");
Mlt::Properties paramdesc((mlt_properties) param_props.get_data(param_props.get_name(j)));
@@ -582,7 +597,7 @@ void initEffects::fillTransitionsList(Mlt::Repository * repository, EffectsList*
desc.appendChild(ret.createTextNode(metadata->get("description")));
Mlt::Properties param_props((mlt_properties) metadata->get_data("parameters"));
- for (int j = 0; param_props.is_valid() && j < param_props.count();j++) {
+ for (int j = 0; param_props.is_valid() && j < param_props.count(); j++) {
QDomElement params = ret.createElement("parameter");
Mlt::Properties paramdesc((mlt_properties) param_props.get_data(param_props.get_name(j)));
@@ -636,28 +651,32 @@ void initEffects::fillTransitionsList(Mlt::Repository * repository, EffectsList*
filters << "*.pgm" << "*.png";
QStringList customLumas = KGlobal::dirs()->findDirs("appdata", "lumas");
- foreach(const QString &folder, customLumas) {
+ foreach(QString folder, customLumas) {
+ if (!folder.endsWith('/')) folder.append('/');
QStringList filesnames = QDir(folder).entryList(filters, QDir::Files);
foreach(const QString &fname, filesnames) {
imagenamelist.append(fname);
- imagefiles.append(folder + '/' + fname);
+ imagefiles.append(folder + fname);
}
}
// Check for MLT lumas
- QString folder = mlt_environment("MLT_DATA");
- folder.append("/lumas/").append(mlt_environment("MLT_NORMALISATION"));
- QDir lumafolder(folder);
+ KUrl folder(mlt_environment("MLT_DATA"));
+ folder.addPath("lumas");
+ folder.addPath(mlt_environment("MLT_NORMALISATION"));
+ QDir lumafolder(folder.path());
QStringList filesnames = lumafolder.entryList(filters, QDir::Files);
foreach(const QString &fname, filesnames) {
imagenamelist.append(fname);
- imagefiles.append(folder + '/' + fname);
+ KUrl path(folder);
+ path.addPath(fname);
+ imagefiles.append(path.toLocalFile());
}
if (name == "luma") {
-
- tname.appendChild(ret.createTextNode("Luma"));
- desc.appendChild(ret.createTextNode("Applies a luma transition between the current and next frames"));
+ ktrans.setAttribute("id", name);
+ tname.appendChild(ret.createTextNode("Wipe"));
+ desc.appendChild(ret.createTextNode("Applies a stationary transition between the current and next frames"));
paramList.append(quickParameterFill(ret, "Softness", "softness", "double", "0", "0", "100", "", "", "100"));
paramList.append(quickParameterFill(ret, "Invert", "invert", "bool", "0", "0", "1"));
@@ -672,9 +691,9 @@ void initEffects::fillTransitionsList(Mlt::Repository * repository, EffectsList*
paramList.append(quickParameterFill(ret, "Align", "aligned", "bool", "1", "0", "1"));
paramList.append(quickParameterFill(ret, "Fill", "fill", "bool", "0", "0", "1"));
paramList.append(quickParameterFill(ret, "Distort", "distort", "bool", "0", "0", "1"));
- paramList.append(quickParameterFill(ret, "Luma Image File", "luma", "list", "", "", "", imagefiles.join(","), imagenamelist.join(",")));
- paramList.append(quickParameterFill(ret, "Luma Softness", "softness", "double", "0", "0", "100", "", "", "100"));
- paramList.append(quickParameterFill(ret, "Luma Invert", "luma_invert", "bool", "0", "0", "1"));
+ paramList.append(quickParameterFill(ret, "Wipe File", "luma", "list", "", "", "", imagefiles.join(","), imagenamelist.join(",")));
+ paramList.append(quickParameterFill(ret, "Wipe Softness", "softness", "double", "0", "0", "100", "", "", "100"));
+ paramList.append(quickParameterFill(ret, "Wipe Invert", "luma_invert", "bool", "0", "0", "1"));
paramList.append(quickParameterFill(ret, "Force Progressive Rendering", "progressive", "bool", "1", "0", "1"));
paramList.append(quickParameterFill(ret, "Force Deinterlace Overlay", "deinterlace", "bool", "0", "0", "1"));
tname.appendChild(ret.createTextNode("Composite"));
@@ -723,18 +742,23 @@ void initEffects::fillTransitionsList(Mlt::Repository * repository, EffectsList*
transitions->append(ret.documentElement());
//kDebug() << "//// //// TRANSITON XML";
- // kDebug() << ret.toString();
+ //kDebug() << ret.toString();
/*
*/
}
- QString wipetrans = "WipeSlide image from one side to anotherDirection AlignForce Progressive RenderingForce Deinterlace Overlay";
+ QString slidetrans = "SlideSlide image from one side to anotherDirection AlignForce Progressive RenderingForce Deinterlace OverlayInvert";
QDomDocument ret;
- ret.setContent(wipetrans);
+ ret.setContent(slidetrans);
transitions->append(ret.documentElement());
+ QString dissolve = "DissolveFade out one video while fading in the other videoReverse";
+ QDomDocument dissolveDoc;
+ dissolveDoc.setContent(dissolve);
+ transitions->append(dissolveDoc.documentElement());
+
/*QString alphatrans = "Alpha transparencyMake alpha channel transparentDirectionRescaleAlign";
QDomDocument ret2;
ret2.setContent(alphatrans);