traverso-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Traverso-commit] traverso/src/core ProjectConverter.cpp


From: Remon Sijrier
Subject: [Traverso-commit] traverso/src/core ProjectConverter.cpp
Date: Mon, 26 Nov 2007 18:21:47 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Remon Sijrier <r_sijrier>       07/11/26 18:21:47

Modified files:
        src/core       : ProjectConverter.cpp 

Log message:
        * also convert Marker and Gainenvelope Nodes to universal samplerate

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ProjectConverter.cpp?cvsroot=traverso&r1=1.5&r2=1.6

Patches:
Index: ProjectConverter.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ProjectConverter.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- ProjectConverter.cpp        23 Nov 2007 21:19:18 -0000      1.5
+++ ProjectConverter.cpp        26 Nov 2007 18:21:47 -0000      1.6
@@ -183,6 +183,68 @@
                clipelement.setAttribute("sourcestart", 
TimeRef(sourceStartFrame, rate).universal_frame());
                clipelement.setAttribute("length", TimeRef(length, 
rate).universal_frame());
                        
+               QDomElement fadeInNode = clipsNode.firstChildElement("FadeIn");
+               if (!fadeInNode.isNull()) {
+                       QDomElement e = fadeInNode.toElement();
+                       QString rangestring = e.attribute("range", "1");
+                       double range;
+                       if (rangestring == "nan" || rangestring == "inf") {
+                               printf("FadeCurve::set_state: stored range was 
not a number!\n");
+                               range = 1;
+                       } else {
+                               range = rangestring.toDouble();
+                       }
+                       if (range > 1.0) {
+                               e.setAttribute("range", 
TimeRef(nframes_t(range), rate).universal_frame());
+                       }
+               }
+               QDomElement fadeOutNode = 
clipsNode.firstChildElement("FadeOut");
+               if (!fadeOutNode.isNull()) {
+                       QDomElement e = fadeOutNode.toElement();
+                       QString rangestring = e.attribute("range", "1");
+                       double range;
+                       if (rangestring == "nan" || rangestring == "inf") {
+                               printf("FadeCurve::set_state: stored range was 
not a number!\n");
+                               range = 1;
+                       } else {
+                               range = rangestring.toDouble();
+                       }
+                       if (range > 1.0)
+                               e.setAttribute("range", 
TimeRef(nframes_t(range), rate).universal_frame());
+               }
+                       
+               QDomNode pluginChainNode = 
clipsNode.firstChildElement("PluginChain");
+               if (!pluginChainNode.isNull()) {
+                       QDomNode pluginsNode = pluginChainNode.firstChild();
+                       QDomNode pluginNode = pluginsNode.firstChild();
+
+                       while(!pluginNode.isNull()) {
+                               if (pluginNode.toElement().attribute( "type", 
"") == "GainEnvelope") {
+                                       QDomElement controlPortsNode = 
pluginNode.firstChildElement("ControlPorts");
+                                       if (!controlPortsNode.isNull()) {
+                                               QDomNode portNode = 
controlPortsNode.firstChild();
+               
+                                               if(!portNode.isNull()) {
+                                                       QDomElement curveNode = 
portNode.firstChildElement("PortAutomation");
+                                                       if 
(!curveNode.isNull()) {
+                                                               QDomElement e = 
curveNode.toElement();
+                                                               QStringList 
nodesList = e.attribute( "nodes", "" ).split(";");
+                                                               QStringList 
newNodesList;
+                                                               for (int i=0; 
i<nodesList.size(); ++i) {
+                                                                       
QStringList whenValueList = nodesList.at(i).split(",");
+                                                                       double 
when = whenValueList.at(0).toDouble();
+                                                                       double 
value = whenValueList.at(1).toDouble();
+                                                                       
newNodesList << QString::number(TimeRef(nframes_t(when), 
rate).universal_frame(), 'g', 24).append(",").append(QString::number(value));
+                                                                       
e.setAttribute("nodes",  newNodesList.join(";"));
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               }
+                               pluginNode = pluginNode.nextSibling();
+                       }
+               }
+               
                clipsNode = clipsNode.nextSibling();
        }
                




reply via email to

[Prev in Thread] Current Thread [Next in Thread]