traverso-commit
[Top][All Lists]
Advanced

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

[Traverso-commit] traverso/src common/Utils.cpp common/Utils.h tr...


From: Remon Sijrier
Subject: [Traverso-commit] traverso/src common/Utils.cpp common/Utils.h tr...
Date: Sat, 01 Dec 2007 16:34:23 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Remon Sijrier <r_sijrier>       07/12/01 16:34:23

Modified files:
        src/common     : Utils.cpp Utils.h 
        src/traverso/dialogs: MarkerDialog.cpp 

Log message:
        * added timeref_to_cd_including_hours() function, used by Marker Editor 
for proper operation. restored the timeref_to_cd() and cd_to_timeref() 
functions, so we're sure that cdrdao understands the toc 

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/common/Utils.cpp?cvsroot=traverso&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/traverso/src/common/Utils.h?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/MarkerDialog.cpp?cvsroot=traverso&r1=1.20&r2=1.21

Patches:
Index: common/Utils.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/common/Utils.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- common/Utils.cpp    30 Nov 2007 19:58:08 -0000      1.7
+++ common/Utils.cpp    1 Dec 2007 16:34:23 -0000       1.8
@@ -48,6 +48,18 @@
        TimeRef out;
        QStringList lst = str.simplified().split(QRegExp("[;,.:]"), 
QString::SkipEmptyParts);
 
+       if (lst.size() >= 1) out += TimeRef(lst.at(0).toInt() * 
ONE_MINUTE_UNIVERSAL_SAMPLE_RATE);
+       if (lst.size() >= 2) out += TimeRef(lst.at(1).toInt() * 
UNIVERSAL_SAMPLE_RATE);
+       if (lst.size() >= 3) out += TimeRef(lst.at(2).toInt() * 
UNIVERSAL_SAMPLE_RATE / 75);
+
+       return out;
+}
+
+TimeRef cd_to_timeref_including_hours(QString str)
+{
+       TimeRef out;
+       QStringList lst = str.simplified().split(QRegExp("[;,.:]"), 
QString::SkipEmptyParts);
+
        if (lst.size() >= 1) out += TimeRef(lst.at(0).toInt() * 
ONE_HOUR_UNIVERSAL_SAMPLE_RATE);
        if (lst.size() >= 2) out += TimeRef(lst.at(1).toInt() * 
ONE_MINUTE_UNIVERSAL_SAMPLE_RATE);
        if (lst.size() >= 3) out += TimeRef(lst.at(2).toInt() * 
UNIVERSAL_SAMPLE_RATE);
@@ -170,7 +182,7 @@
        return spos;
 }
 
-// Frame to HH:MM:SS,75 (75ths of a second, for CD burning)
+// Frame to MM:SS:75 (75ths of a second, for CD burning)
 QString timeref_to_cd (const TimeRef& ref)
 {
        QString spos;
@@ -179,6 +191,25 @@
        
        qint64 universalframe = ref.universal_frame();
        
+       mins = universalframe / ( ONE_MINUTE_UNIVERSAL_SAMPLE_RATE );
+       remainder = universalframe - ( mins * ONE_MINUTE_UNIVERSAL_SAMPLE_RATE 
);
+       secs = remainder / UNIVERSAL_SAMPLE_RATE;
+       remainder -= secs * UNIVERSAL_SAMPLE_RATE;
+       frames = remainder * 75 / UNIVERSAL_SAMPLE_RATE;
+       spos.sprintf ( " %02d:%02d:%02d", mins, secs, frames );
+
+       return spos;
+}
+
+// Frame to HH:MM:SS,75 (75ths of a second, for CD burning)
+QString timeref_to_cd_including_hours (const TimeRef& ref)
+{
+       QString spos;
+       qint64 remainder;
+       int hours, mins, secs, frames;
+       
+       qint64 universalframe = ref.universal_frame();
+       
        hours = int(universalframe / ONE_HOUR_UNIVERSAL_SAMPLE_RATE);
        remainder = qint64(universalframe - (hours * 
ONE_HOUR_UNIVERSAL_SAMPLE_RATE));
        mins = (int) (remainder / ( ONE_MINUTE_UNIVERSAL_SAMPLE_RATE ));
@@ -191,7 +222,6 @@
        return spos;
 }
 
-
 QString timeref_to_text(const TimeRef & ref, int scalefactor)
 {
        if (scalefactor >= 512*640) {

Index: common/Utils.h
===================================================================
RCS file: /sources/traverso/traverso/src/common/Utils.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- common/Utils.h      20 Oct 2007 17:38:17 -0000      1.3
+++ common/Utils.h      1 Dec 2007 16:34:23 -0000       1.4
@@ -36,9 +36,11 @@
 QString timeref_to_ms_3 (const TimeRef& ref);
 QString timeref_to_text(const TimeRef& ref, int scalefactor);
 QString timeref_to_cd(const TimeRef& ref);
+QString timeref_to_cd_including_hours(const TimeRef& ref);
 
 TimeRef msms_to_timeref(QString str);
 TimeRef cd_to_timeref(QString str);
+TimeRef cd_to_timeref_including_hours(QString str);
 QString coefficient_to_dbstring(float coeff);
 QDateTime extract_date_time(qint64 id);
 

Index: traverso/dialogs/MarkerDialog.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/dialogs/MarkerDialog.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- traverso/dialogs/MarkerDialog.cpp   30 Nov 2007 19:35:44 -0000      1.20
+++ traverso/dialogs/MarkerDialog.cpp   1 Dec 2007 16:34:23 -0000       1.21
@@ -171,7 +171,7 @@
                
        foreach(Marker* marker, tl->get_markers()) {
                QString name = marker->get_description();
-               QString pos = timeref_to_cd(marker->get_when());
+               QString pos = timeref_to_cd_including_hours(marker->get_when());
 
                QTreeWidgetItem* item = new QTreeWidgetItem(markersTreeWidget);
                item->setText(0, QString("%1 %2").arg(index, 2, 10, 
QLatin1Char('0')).arg(song->get_title()));
@@ -214,7 +214,7 @@
                marker->set_copyprotect(checkBoxCopy->isChecked());
        }
 
-       lineEditPosition->setText(timeref_to_cd(m_marker->get_when()));
+       
lineEditPosition->setText(timeref_to_cd_including_hours(m_marker->get_when()));
        lineEditTitle->setText(m_marker->get_description());
        lineEditPerformer->setText(m_marker->get_performer());
        lineEditComposer->setText(m_marker->get_composer());
@@ -549,7 +549,7 @@
        out << "    <h2>" << m_project->get_description() << "</h2>\n";
        
        out << "    <hr>\n";
-       out << "    <table>\n      <tr><th>Position 
(mm:ss.frames)</th><th>Title</th>\n";
+       out << "    <table>\n      <tr><th>Position 
(mm:ss:frames)</th><th>Title</th>\n";
 
        if (comboBoxDisplaySong->currentIndex() >= m_songlist.size()) {
                return;




reply via email to

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