]> git.sesse.net Git - kdenlive/commitdiff
read filter desc from mlt (not full working)
authorMarco Gittler <marco@gitma.de>
Wed, 27 Feb 2008 12:32:36 +0000 (12:32 +0000)
committerMarco Gittler <marco@gitma.de>
Wed, 27 Feb 2008 12:32:36 +0000 (12:32 +0000)
svn path=/branches/KDE4/; revision=1951

src/effectstackedit.cpp
src/initeffects.cpp
src/initeffects.h

index 9c782a0c5c7c55f76b0713333d34c5d1dcec5bad..5fd69f75fef0630c059632eb1d1006147aacf7b6 100644 (file)
@@ -69,10 +69,7 @@ void EffectStackEdit::transferParamDesc(const QDomElement& d,int ,int){
        QDomNodeList namenode = params.elementsByTagName("parameter");
        
        clearAllItems();
-               QString outstr;
-               QTextStream str(&outstr);
-               d.save(str,2);
-               kDebug() << outstr;
+
        for (int i=0;i< namenode.count() ;i++){
                kDebug() << "in form";
                QDomNode pa=namenode.item(i);
index 29dd44a70ad1f86e252eb4057464c03e8a99e487..337ffe45347d9c352decc73ba23151cffe7e268e 100644 (file)
@@ -88,6 +88,11 @@ Mlt::Repository *initEffects::parseEffectFiles(EffectsList *audioEffectList, Eff
            // kDebug()<<"//  FOUND EFFECT FILE: "<<itemName<<endl;
        }
     }
+       foreach(QString filtername,filtersList){
+               QDomDocument doc=createDescriptionFromMlt(repository,"filters",filtername);
+               if (!doc.isNull())
+                       videoEffectList->append(doc.documentElement());
+       }
     return repository;
 }
 
@@ -338,4 +343,45 @@ char* initEffects::ladspaPhaserEffectString(QStringList params)
 }
 
 
+QDomDocument initEffects::createDescriptionFromMlt(Mlt::Repository* repository, const QString& type, const QString& filtername){
+       
+       QDomDocument ret;
+       Mlt::Properties *metadata=repository->metadata(filter_type,filtername.toAscii().data());
+       kDebug() << filtername;
+       if (metadata && metadata->is_valid()){
+               kDebug() << "valid" << metadata->count();
+               for (int i=0;i<metadata->count();i++){
+                       if (metadata->get("title") && metadata->get("identifier")){
+                               QDomElement eff=ret.createElement("effect");
+                               eff.setAttribute("tag",metadata->get("identifier"));
+                               
+                               QDomElement name=ret.createElement("name");
+                               name.appendChild(ret.createTextNode(metadata->get("title")));
+
+                               QDomElement desc=ret.createElement("description");
+                               desc.appendChild(ret.createTextNode(metadata->get("description")));
+                               
+                               QDomElement author=ret.createElement("author");
+                               author.appendChild(ret.createTextNode(metadata->get("creator")));
+                               
+                               eff.appendChild(name);
+                               eff.appendChild(author);
+                               eff.appendChild(desc);
+                               
+                               /*Mlt::Properties *param_props=(Mlt::Properties*)(metadata->get_data("parameters"));
+                               for (int j=0; param_props && j<param_props->count();j++){
+                                       QDomElement params=ret.createElement("parameter");
+                                       
+                                       eff.appendChild(params);
+                               }*/
+                               ret.appendChild(eff);
+                       }
+               }
+       }
+       QString outstr;
+       QTextStream str(&outstr);
+       ret.save(str,2);
+       kDebug() << outstr;
+       return ret;
+}
 
index 180a88f75b17057fb4cc6bb2e5e4c1e52b26af96..d7dc82ac1c24aee622b40ee419c347074219ad6d 100644 (file)
@@ -36,6 +36,7 @@ class initEffects
        ~initEffects();
 
        static Mlt::Repository *parseEffectFiles(EffectsList *audioEffectList, EffectsList *videoEffectList);
+       static QDomDocument createDescriptionFromMlt(Mlt::Repository* repository,const QString& type, const QString& name);
        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);