X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Finiteffects.cpp;h=e13b63c571177eed536a75808c5e9db945390870;hb=fc55ba253fa7aff2678e8212799e5db85f847b8a;hp=647de0643ad53562e75441f9cf9615292c8a0165;hpb=18f70213e0f6a0fe5d836b6220f015b84ba8ec12;p=kdenlive diff --git a/src/initeffects.cpp b/src/initeffects.cpp index 647de064..e13b63c5 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; + } + } + } @@ -163,6 +176,7 @@ Mlt::Repository *initEffects::parseEffectFiles() for (int i = 0 ; i < producers->count() ; i++) { producersList << producers->get_name(i); } + KdenliveSettings::setProducerslist(producersList); delete filters; delete producers; @@ -183,10 +197,12 @@ 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; - QStringList direc = KGlobal::dirs()->findDirs("data", "kdenlive/effects"); + QStringList direc = KGlobal::dirs()->findDirs("appdata", "effects"); QDir directory; for (more = direc.begin() ; more != direc.end() ; ++more) { @@ -503,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))); @@ -581,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))); @@ -644,19 +660,22 @@ void initEffects::fillTransitionsList(Mlt::Repository * repository, EffectsList* } // 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")); @@ -671,13 +690,12 @@ 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, "Force Progressive Rendering", "progressive", "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")); - ktrans.setAttribute("id", "composite"); /*QDomDocument ret1; QDomElement ktrans1 = ret1.createElement("ktransition"); @@ -723,18 +741,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 Align"; + 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);