]> git.sesse.net Git - kdenlive/commitdiff
affine transf. with some parameters
authorMarco Gittler <marco@gitma.de>
Mon, 24 Mar 2008 01:37:02 +0000 (01:37 +0000)
committerMarco Gittler <marco@gitma.de>
Mon, 24 Mar 2008 01:37:02 +0000 (01:37 +0000)
svn path=/branches/KDE4/; revision=2110

src/initeffects.cpp
src/initeffects.h

index cf5637ca8d8fc8a6b674c68d48d8cb0401d40f8d..efd3266d058e05f6fb8dc154986d3cc8993a7ca3 100644 (file)
@@ -411,7 +411,7 @@ void initEffects::fillTransitionsList(Mlt::Repository * repository, EffectsList*
         ret.appendChild(ktrans);
         ktrans.setAttribute("tag", name);
         QDomElement tname = ret.createElement("name");
-
+        QList<QDomElement> paramList;
         Mlt::Properties *metadata = repository->metadata(transition_type, name.toAscii().data());
         //kDebug() << filtername;
         if (metadata && metadata->is_valid()) {
@@ -456,23 +456,35 @@ void initEffects::fillTransitionsList(Mlt::Repository * repository, EffectsList*
                 tname.appendChild(ret.createTextNode("Mix"));
             } else if (name == "affine") {
                 tname.appendChild(ret.createTextNode("Affine"));
+                paramList.append(quickParameterFill(ret, "Rotate Y", "rotate_y", "double", "1", "0", "360"));
+                paramList.append(quickParameterFill(ret, "Rotate X", "rotate_x", "double", "1", "0", "360"));
+                paramList.append(quickParameterFill(ret, "Rotate Z", "rotate_z", "double", "1", "0", "360"));
+                paramList.append(quickParameterFill(ret, "Fix Rotate Y", "fix_rotate_y", "double", "1", "0", "360"));
+                paramList.append(quickParameterFill(ret, "Fix Rotate X", "fix_rotate_x", "double", "1", "0", "360"));
+                paramList.append(quickParameterFill(ret, "Fix Rotate Z", "fix_rotate_z", "double", "1", "0", "360"));
+                paramList.append(quickParameterFill(ret, "Shear Y", "shear_y", "double", "1", "0", "360"));
+                paramList.append(quickParameterFill(ret, "Shear X", "shear_x", "double", "1", "0", "360"));
+                paramList.append(quickParameterFill(ret, "Shear Z", "shear_z", "double", "1", "0", "360"));
+                paramList.append(quickParameterFill(ret, "Fix Shear Y", "fix_shear_y", "double", "1", "0", "360"));
+                paramList.append(quickParameterFill(ret, "Fix Shear X", "fix_shear_x", "double", "1", "0", "360"));
+                paramList.append(quickParameterFill(ret, "Fix Shear Z", "fix_shear_z", "double", "1", "0", "360"));
+                paramList.append(quickParameterFill(ret, "Mirror", "mirror_off", "bool", "1", "0", "1"));
+                paramList.append(quickParameterFill(ret, "Repeat", "repeat_off", "bool", "1", "0", "1"));
+                paramList.append(quickParameterFill(ret, "Geometry", "geometry", "geometry", "0,0:100%x100%", "0,0:100%x100%0", "0,0:100%x100%1"));
             } else if (name == "region") {
                 tname.appendChild(ret.createTextNode("Region"));
             }
 
 
         }
-        QDomElement parameter = ret.createElement("parameter");
-        parameter.setAttribute("tag", "reverse");
-        parameter.setAttribute("default", "0");
-        parameter.setAttribute("type", "bool");
-        parameter.setAttribute("name", "reverse");
-        QDomElement pname = ret.createElement("name");
-        pname.appendChild(ret.createTextNode("Reverse Transition"));
-        parameter.appendChild(pname);
-
+        paramList.append(quickParameterFill(ret, "Reverse Transition", "reverse", "bool", "1", "0", "1"));
         ktrans.appendChild(tname);
-        ktrans.appendChild(parameter);
+
+        foreach(QDomElement e, paramList) {
+            ktrans.appendChild(e);
+        }
+
+
         transitions->append(ret.documentElement());
         /*
 
@@ -480,3 +492,17 @@ void initEffects::fillTransitionsList(Mlt::Repository * repository, EffectsList*
         */
     }
 }
+QDomElement initEffects::quickParameterFill(QDomDocument & doc, QString name, QString tag, QString type, QString def, QString min, QString max) {
+    QDomElement parameter = doc.createElement("parameter");
+    parameter.setAttribute("tag", tag);
+    parameter.setAttribute("default", def);
+    parameter.setAttribute("type", type);
+    parameter.setAttribute("name", tag);
+    parameter.setAttribute("max", max);
+    parameter.setAttribute("min", min);
+    QDomElement pname = doc.createElement("name");
+    pname.appendChild(doc.createTextNode(name));
+    parameter.appendChild(pname);
+
+    return parameter;
+}
index 70826343faebcab910262ced66f2b071e90f8a77..4bd9f3ca7842ae624d7664e297f1fd32b3e9632e 100644 (file)
@@ -37,6 +37,7 @@ public:
     static Mlt::Repository *parseEffectFiles(EffectsList *audioEffectList, EffectsList *videoEffectList, EffectsList *transitions);
     static QDomDocument createDescriptionFromMlt(Mlt::Repository* repository, const QString& type, const QString& name);
     static void fillTransitionsList(Mlt::Repository *, EffectsList* transitions, QStringList names);
+    static QDomElement quickParameterFill(QDomDocument & doc, QString name, QString tag, QString type, QString def = QString(), QString min = QString(), QString max = QString());
     static void parseEffectFile(EffectsList *audioEffectList, EffectsList *videoEffectList, QString name, QStringList filtersList, QStringList producersList);
     static char* ladspaEffectString(int ladspaId, QStringList params);
     static void ladspaEffectFile(const QString & fname, int ladspaId, QStringList params);