traverso-commit
[Top][All Lists]
Advanced

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

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


From: Ben Levitt
Subject: [Traverso-commit] traverso/src/core Song.cpp
Date: Wed, 09 May 2007 01:58:25 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Ben Levitt <benjie>     07/05/09 01:58:25

Modified files:
        src/core       : Song.cpp 

Log message:
        Fix cdrdao export bug.  cd times had rounding problems that would cause 
glitches in cds.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Song.cpp?cvsroot=traverso&r1=1.88&r2=1.89

Patches:
Index: Song.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Song.cpp,v
retrieving revision 1.88
retrieving revision 1.89
diff -u -b -r1.88 -r1.89
--- Song.cpp    8 May 2007 22:13:40 -0000       1.88
+++ Song.cpp    9 May 2007 01:58:25 -0000       1.89
@@ -911,6 +911,7 @@
        }
        mlist = mmap.values();
 
+       nframes_t start;
        for(int i = 0; i < mlist.size()-1; ++i) {
                Marker *m_start = mlist.at(i);
                Marker *m_end = mlist.at(i+1);
@@ -935,14 +936,21 @@
                out << "      SONGWRITER \"" << m_start->get_songwriter() << 
"\"\n";
                out << "      MESSAGE \"" << m_start->get_message() << "\"\n    
}\n  }\n";
 
-               nframes_t start = m_start->get_when();
-               nframes_t end = m_end->get_when();
+               if (i == 0) {
+                       start = cd_to_frame(frame_to_cd(m_start->get_when(), 
m_project->get_rate()), m_project->get_rate());
+                       // I thought some cd players required a 2-second PREGAP 
on the first track?
+                       // FIXME: Uncomment, remove, or make configurable in 
the Export dialog.
+                       // out << "  PREGAP 0:02:00\n";
+               }
+
+               nframes_t end = cd_to_frame(frame_to_cd(m_end->get_when(), 
m_project->get_rate()), m_project->get_rate());
                nframes_t length = end - start;
 
                QString s_start = frame_to_cd(start, m_project->get_rate());
                QString s_length = frame_to_cd(length, m_project->get_rate());
 
                out << "  FILE \"" << spec->name << "\" " << s_start << " " << 
s_length << "\n\n";
+               start += length;
        }
 }
 




reply via email to

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