[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso/src commands/PlayHeadMove.cpp commands...
From: |
Ben Levitt |
Subject: |
[Traverso-commit] traverso/src commands/PlayHeadMove.cpp commands... |
Date: |
Sun, 06 May 2007 00:02:38 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Ben Levitt <benjie> 07/05/06 00:02:38
Modified files:
src/commands : PlayHeadMove.cpp SplitClip.cpp
WorkCursorMove.cpp
src/core : Song.cpp Utils.cpp Utils.h
src/traverso/dialogs: MarkerDialog.cpp
src/traverso/dialogs/project: ProjectManagerDialog.cpp
src/traverso/songcanvas: AudioClipView.cpp MarkerView.cpp
TimeLineView.cpp
src/traverso/ui: MarkerDialog.ui
src/traverso/widgets: InfoWidgets.cpp InfoWidgets.h
Log message:
restore frame_to_smpte(), add and use frame_to_msms() and
frame_to_cd(). Show time in playHeadButton in 10ths of seconds
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/PlayHeadMove.cpp?cvsroot=traverso&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/SplitClip.cpp?cvsroot=traverso&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/WorkCursorMove.cpp?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Song.cpp?cvsroot=traverso&r1=1.84&r2=1.85
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Utils.cpp?cvsroot=traverso&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Utils.h?cvsroot=traverso&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/MarkerDialog.cpp?cvsroot=traverso&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/project/ProjectManagerDialog.cpp?cvsroot=traverso&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/AudioClipView.cpp?cvsroot=traverso&r1=1.56&r2=1.57
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/MarkerView.cpp?cvsroot=traverso&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/TimeLineView.cpp?cvsroot=traverso&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/ui/MarkerDialog.ui?cvsroot=traverso&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/InfoWidgets.cpp?cvsroot=traverso&r1=1.22&r2=1.23
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/InfoWidgets.h?cvsroot=traverso&r1=1.12&r2=1.13
Patches:
Index: commands/PlayHeadMove.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/PlayHeadMove.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- commands/PlayHeadMove.cpp 23 Apr 2007 18:18:42 -0000 1.4
+++ commands/PlayHeadMove.cpp 6 May 2007 00:02:37 -0000 1.5
@@ -94,7 +94,7 @@
}
m_sv->update_shuttle_factor();
- cpointer().get_viewport()->set_holdcursor_text(frame_to_smpte(newpos,
m_song->get_rate()));
+ cpointer().get_viewport()->set_holdcursor_text(frame_to_msms(newpos,
m_song->get_rate()));
// Hmm, the alignment of the holdcursor isn't in the center, so we have
to
// substract half the width of it to make it appear centered... :-(
cpointer().get_viewport()->set_holdcursor_pos(QPoint(cpointer().scene_x() - 16,
cpointer().scene_y() - 16));
Index: commands/SplitClip.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/SplitClip.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- commands/SplitClip.cpp 27 Apr 2007 04:38:15 -0000 1.26
+++ commands/SplitClip.cpp 6 May 2007 00:02:37 -0000 1.27
@@ -180,7 +180,7 @@
}
m_splitcursor->setPos(xpos, 0);
m_sv->update_shuttle_factor();
-
cpointer().get_viewport()->set_holdcursor_text(frame_to_smpte(m_splitPoint,
m_clip->get_song()->get_rate()));
+
cpointer().get_viewport()->set_holdcursor_text(frame_to_msms(m_splitPoint,
m_clip->get_song()->get_rate()));
cpointer().get_viewport()->set_holdcursor_pos(QPoint(cpointer().scene_x() - 16,
cpointer().scene_y() - 16));
return 1;
Index: commands/WorkCursorMove.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/WorkCursorMove.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- commands/WorkCursorMove.cpp 17 Apr 2007 19:56:45 -0000 1.3
+++ commands/WorkCursorMove.cpp 6 May 2007 00:02:37 -0000 1.4
@@ -96,7 +96,7 @@
m_song->set_work_at(newFrame);
m_sv->update_shuttle_factor();
- cpointer().get_viewport()->set_holdcursor_text(frame_to_smpte(newFrame,
m_song->get_rate()));
+ cpointer().get_viewport()->set_holdcursor_text(frame_to_msms(newFrame,
m_song->get_rate()));
// Hmm, the alignment of the holdcursor isn't in the center, so we have
to
// substract half the width of it to make it appear centered... :-(
cpointer().get_viewport()->set_holdcursor_pos(QPoint(cpointer().scene_x() - 16,
cpointer().scene_y() - 16));
Index: core/Song.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Song.cpp,v
retrieving revision 1.84
retrieving revision 1.85
diff -u -b -r1.84 -r1.85
--- core/Song.cpp 3 May 2007 18:12:07 -0000 1.84
+++ core/Song.cpp 6 May 2007 00:02:38 -0000 1.85
@@ -351,7 +351,7 @@
spec->total_frames = spec->end_frame - spec->start_frame;
-// PWARN("Render length is: %s",frame_to_smpte(spec->total_frames,
m_project->get_rate()).toAscii().data() );
+// PWARN("Render length is: %s",frame_to_msms(spec->total_frames,
m_project->get_rate()).toAscii().data() );
spec->pos = spec->start_frame;
transportFrame = spec->start_frame;
@@ -932,8 +932,8 @@
nframes_t end = m_end->get_when();
nframes_t length = end - start;
- QString s_start = frame_to_smpte(start, m_project->get_rate());
- QString s_length = frame_to_smpte(length,
m_project->get_rate());
+ QString s_start = frame_to_msms(start, m_project->get_rate());
+ QString s_length = frame_to_msms(length, m_project->get_rate());
s_start.replace(QRegExp("[" + QRegExp::escape(",.;") + "]"),
":");
s_length.replace(QRegExp("[" + QRegExp::escape(",.;") + "]"),
":");
Index: core/Utils.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Utils.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- core/Utils.cpp 5 May 2007 20:54:03 -0000 1.9
+++ core/Utils.cpp 6 May 2007 00:02:38 -0000 1.10
@@ -31,6 +31,7 @@
#include <QChar>
+// Frame to MM:SS.30 (smpte time = 30ths of a second)
QString frame_to_smpte ( nframes_t nframes, int rate )
{
QString spos;
@@ -41,12 +42,63 @@
remainder = nframes - ( mins * 60 * rate );
secs = remainder / rate;
remainder -= secs * rate;
- frames = remainder / ( rate / 1000 );
+ frames = remainder / ( rate / 30 );
+ spos.sprintf ( " %02d:%02d%c%02d", mins, secs,
QLocale::system().decimalPoint().toAscii(), frames );
+
+ return spos;
+}
+
+// Frame to MM:SS.999 (ms)
+QString frame_to_msms ( nframes_t nframes, int rate )
+{
+ QString spos;
+ long unsigned int remainder;
+ int mins, secs, frames;
+
+ mins = nframes / ( 60 * rate );
+ remainder = nframes - ( mins * 60 * rate );
+ secs = remainder / rate;
+ remainder -= secs * rate;
+ frames = remainder * 1000 / rate;
spos.sprintf ( " %02d:%02d%c%03d", mins, secs,
QLocale::system().decimalPoint().toAscii(), frames );
return spos;
}
+// Frame to MM:SS.9 (tenths of a second)
+QString frame_to_mst ( nframes_t nframes, int rate )
+{
+ QString spos;
+ long unsigned int remainder;
+ int mins, secs, frames;
+
+ mins = nframes / ( 60 * rate );
+ remainder = nframes - ( mins * 60 * rate );
+ secs = remainder / rate;
+ remainder -= secs * rate;
+ frames = remainder / ( rate / 10 );
+ spos.sprintf ( " %02d:%02d%c%01d", mins, secs,
QLocale::system().decimalPoint().toAscii(), frames );
+
+ return spos;
+}
+
+// Frame to MM:SS:75 (75ths of a second, for CD burning)
+QString frame_to_cd ( nframes_t nframes, int rate )
+{
+ QString spos;
+ long unsigned int remainder;
+ int mins, secs, frames;
+
+ mins = nframes / ( 60 * rate );
+ remainder = nframes - ( mins * 60 * rate );
+ secs = remainder / rate;
+ remainder -= secs * rate;
+ frames = remainder * 75 / rate;
+ spos.sprintf ( " %02d:%02d:%02d", mins, secs, frames );
+
+ return spos;
+}
+
QString frame_to_hms(double nframes, int rate)
{
long unsigned int remainder;
@@ -79,11 +131,35 @@
if (lst.size() >= 1) out += lst.at(0).toInt() * 60 * rate;
if (lst.size() >= 2) out += lst.at(1).toInt() * rate;
+ if (lst.size() >= 3) out += lst.at(2).toInt() * rate / 30;
+
+ return out;
+}
+
+nframes_t msms_to_frame( QString str, int rate )
+{
+ nframes_t out = 0;
+ QStringList lst = str.simplified().split(QRegExp("[;,.:]"),
QString::SkipEmptyParts);
+
+ if (lst.size() >= 1) out += lst.at(0).toInt() * 60 * rate;
+ if (lst.size() >= 2) out += lst.at(1).toInt() * rate;
if (lst.size() >= 3) out += lst.at(2).toInt() * rate / 1000;
return out;
}
+nframes_t cd_to_frame( QString str, int rate )
+{
+ nframes_t out = 0;
+ QStringList lst = str.simplified().split(QRegExp("[;,.:]"),
QString::SkipEmptyParts);
+
+ if (lst.size() >= 1) out += lst.at(0).toInt() * 60 * rate;
+ if (lst.size() >= 2) out += lst.at(1).toInt() * rate;
+ if (lst.size() >= 3) out += lst.at(2).toInt() * rate / 75;
+
+ return out;
+}
+
QString coefficient_to_dbstring ( float coeff )
{
float db = coefficient_to_dB ( coeff );
Index: core/Utils.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/Utils.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- core/Utils.h 25 Apr 2007 15:58:49 -0000 1.9
+++ core/Utils.h 6 May 2007 00:02:38 -0000 1.10
@@ -31,9 +31,14 @@
class QString;
QString frame_to_smpte(nframes_t nframes, int rate);
+QString frame_to_msms(nframes_t nframes, int rate);
+QString frame_to_mst(nframes_t nframes, int rate);
+QString frame_to_cd(nframes_t nframes, int rate);
QString frame_to_hms(double nframes, int rate);
QString frame_to_ms(double nframes, int rate);
nframes_t smpte_to_frame(QString str, int rate);
+nframes_t msms_to_frame(QString str, int rate);
+nframes_t cd_to_frame(QString str, int rate);
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.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- traverso/dialogs/MarkerDialog.cpp 10 Apr 2007 20:18:30 -0000 1.6
+++ traverso/dialogs/MarkerDialog.cpp 6 May 2007 00:02:38 -0000 1.7
@@ -49,7 +49,7 @@
set_project(m_project);
}
- QString mask = "99:99,99";
+ QString mask = "99:99:99";
lineEditPosition->setInputMask(mask);
// hide the first column if necessary
@@ -146,7 +146,7 @@
foreach(Marker* marker, tl->get_markers()) {
QString name = marker->get_description();
- QString pos = frame_to_smpte(marker->get_when(),
m_project->get_rate());
+ QString pos = frame_to_cd(marker->get_when(),
m_project->get_rate());
QTreeWidgetItem* item = new QTreeWidgetItem(markersTreeWidget);
item->setText(0, QString("%1 %2").arg(index, 2, 10,
QLatin1Char('0')).arg(song->get_title()));
@@ -173,7 +173,7 @@
if (previous) {
Marker *marker = get_marker(previous->data(0,
Qt::UserRole).toLongLong());
- marker->set_when(smpte_to_frame(lineEditPosition->text(),
m_project->get_rate()));
+ marker->set_when(cd_to_frame(lineEditPosition->text(),
m_project->get_rate()));
marker->set_description(lineEditTitle->text());
marker->set_performer(lineEditPerformer->text());
marker->set_composer(lineEditComposer->text());
@@ -185,7 +185,7 @@
marker->set_copyprotect(checkBoxCopy->isChecked());
}
- lineEditPosition->setText(frame_to_smpte(m_marker->get_when(),
m_project->get_rate()));
+ lineEditPosition->setText(frame_to_cd(m_marker->get_when(),
m_project->get_rate()));
lineEditTitle->setText(m_marker->get_description());
lineEditPerformer->setText(m_marker->get_performer());
lineEditComposer->setText(m_marker->get_composer());
@@ -220,7 +220,7 @@
}
item->setText(1, s);
- m_marker->set_when(smpte_to_frame(s, m_project->get_rate()));
+ m_marker->set_when(cd_to_frame(s, m_project->get_rate()));
markersTreeWidget->sortItems(1, Qt::AscendingOrder);
}
@@ -513,7 +513,7 @@
foreach(Marker* marker, tl->get_markers()) {
QString name = marker->get_description();
- QString pos = frame_to_smpte(marker->get_when(),
m_project->get_rate());
+ QString pos = frame_to_cd(marker->get_when(),
m_project->get_rate());
out << " <tr><td>" << pos << "</td>\n <td>" << name
<< "</td></tr>\n";
}
Index: traverso/dialogs/project/ProjectManagerDialog.cpp
===================================================================
RCS file:
/sources/traverso/traverso/src/traverso/dialogs/project/ProjectManagerDialog.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- traverso/dialogs/project/ProjectManagerDialog.cpp 9 Apr 2007 14:00:57
-0000 1.11
+++ traverso/dialogs/project/ProjectManagerDialog.cpp 6 May 2007 00:02:38
-0000 1.12
@@ -101,7 +101,7 @@
QString songNr =
QString::number(m_project->get_song_index(song->get_id()));
QString songName = "Song " + songNr + " - " + song->get_title();
QString numberOfTracks = QString::number(song->get_numtracks());
- QString songLength = frame_to_smpte(song->get_last_frame(),
song->get_rate());
+ QString songLength = frame_to_msms(song->get_last_frame(),
song->get_rate());
QString songStatus = song->is_changed()?"UnSaved":"Saved";
QString songSpaceAllocated = "Unknown";
Index: traverso/songcanvas/AudioClipView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/AudioClipView.cpp,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -b -r1.56 -r1.57
--- traverso/songcanvas/AudioClipView.cpp 2 May 2007 05:58:20 -0000
1.56
+++ traverso/songcanvas/AudioClipView.cpp 6 May 2007 00:02:38 -0000
1.57
@@ -207,7 +207,7 @@
}
if (m_dragging) {
- m_posIndicator->set_value(frame_to_smpte( (nframes_t)(x() *
m_sv->scalefactor), m_song->get_rate()));
+ m_posIndicator->set_value(frame_to_msms( (nframes_t)(x() *
m_sv->scalefactor), m_song->get_rate()));
}
painter->restore();
Index: traverso/songcanvas/MarkerView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/MarkerView.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- traverso/songcanvas/MarkerView.cpp 10 Apr 2007 17:11:48 -0000 1.9
+++ traverso/songcanvas/MarkerView.cpp 6 May 2007 00:02:38 -0000 1.10
@@ -74,7 +74,7 @@
}
if (m_dragging) {
- m_posIndicator->set_value(frame_to_smpte( (x() +
m_boundingRect.width() / 2 ) * m_sv->scalefactor,
+ m_posIndicator->set_value(frame_to_msms( (x() +
m_boundingRect.width() / 2 ) * m_sv->scalefactor,
m_sv->get_song()->get_rate()));
}
Index: traverso/songcanvas/TimeLineView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/TimeLineView.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- traverso/songcanvas/TimeLineView.cpp 5 May 2007 20:54:03 -0000
1.24
+++ traverso/songcanvas/TimeLineView.cpp 6 May 2007 00:02:38 -0000
1.25
@@ -257,7 +257,7 @@
nframes_t major;
if (m_zooms.contains(m_sv->scalefactor)) {
- major = smpte_to_frame(m_zooms[m_sv->scalefactor],
m_samplerate);
+ major = msms_to_frame(m_zooms[m_sv->scalefactor], m_samplerate);
} else {
major = 120 * m_sv->scalefactor;
}
@@ -273,14 +273,14 @@
// Draw minor ticks
for (int i = 0; i < (lastFrame-firstFrame+major) / minor; i++ ) {
- int x = (((int)(firstFrame/major))*major + i *
minor)/m_sv->scalefactor;
+ int x = (int)(((int)(firstFrame/major))*major + i *
minor)/m_sv->scalefactor;
painter->drawLine(x, height - 5, x, height - 1);
}
// Draw major ticks
- for (nframes_t t = ((int)(firstFrame/major))*major; t < lastFrame; t +=
major ) {
- painter->drawLine(t/m_sv->scalefactor, height - 13,
t/m_sv->scalefactor, height - 1);
- painter->drawText(t/m_sv->scalefactor + 4, height - 8, (showMs)
? frame_to_smpte(t, m_samplerate) : frame_to_ms(t, m_samplerate));
+ for (nframes_t frame = ((int)(firstFrame/major))*major; frame <
lastFrame; frame += major ) {
+ painter->drawLine(frame/m_sv->scalefactor, height - 13,
frame/m_sv->scalefactor, height - 1);
+ painter->drawText(frame/m_sv->scalefactor + 4, height - 8,
(showMs) ? frame_to_msms(frame, m_samplerate) : frame_to_ms(frame,
m_samplerate));
}
}
Index: traverso/ui/MarkerDialog.ui
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/ui/MarkerDialog.ui,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- traverso/ui/MarkerDialog.ui 9 Apr 2007 14:00:58 -0000 1.4
+++ traverso/ui/MarkerDialog.ui 6 May 2007 00:02:38 -0000 1.5
@@ -133,7 +133,7 @@
<item row="0" column="0" >
<widget class="QLabel" name="label_9" >
<property name="text" >
- <string>Position:</string>
+ <string>Position: (MM:SS:75ths)</string>
</property>
</widget>
</item>
Index: traverso/widgets/InfoWidgets.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/InfoWidgets.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- traverso/widgets/InfoWidgets.cpp 3 May 2007 19:43:32 -0000 1.22
+++ traverso/widgets/InfoWidgets.cpp 6 May 2007 00:02:38 -0000 1.23
@@ -440,7 +440,7 @@
void PlayHeadInfo::set_project(Project* project )
{
if (! project) {
- stop_smpte_update_timer();
+ stop_song_update_timer();
}
InfoWidget::set_project(project);
@@ -451,13 +451,13 @@
m_song = song;
if (!m_song) {
- stop_smpte_update_timer();
+ stop_song_update_timer();
m_playpixmap = find_pixmap(":/playstart");
return;
}
- connect(m_song, SIGNAL(transferStopped()), this,
SLOT(stop_smpte_update_timer()));
- connect(m_song, SIGNAL(transferStarted()), this,
SLOT(start_smpte_update_timer()));
+ connect(m_song, SIGNAL(transferStopped()), this,
SLOT(stop_song_update_timer()));
+ connect(m_song, SIGNAL(transferStarted()), this,
SLOT(start_song_update_timer()));
connect(m_song, SIGNAL(transportPosSet()), this, SLOT(update()));
@@ -473,12 +473,12 @@
void PlayHeadInfo::paintEvent(QPaintEvent* )
{
QPainter painter(this);
- QString currentsmpte;
+ QString currentTime;
if (!m_song) {
- currentsmpte = "0:00:0";
+ currentTime = "0:00.0";
} else {
- currentsmpte = frame_to_smpte(m_song->get_transport_frame(),
m_song->get_rate());
+ currentTime = frame_to_mst(m_song->get_transport_frame(),
m_song->get_rate());
}
int fc = 170;
@@ -494,16 +494,16 @@
painter.drawPixmap(0, 0, m_background);
painter.drawPixmap(8, 6, m_playpixmap);
- painter.drawText(QRect(12, 4, width() - 6, height() - 6),
Qt::AlignCenter, currentsmpte);
+ painter.drawText(QRect(12, 4, width() - 6, height() - 6),
Qt::AlignCenter, currentTime);
}
-void PlayHeadInfo::start_smpte_update_timer( )
+void PlayHeadInfo::start_song_update_timer( )
{
m_playpixmap = find_pixmap(":/playstop");
m_updateTimer.start(150);
}
-void PlayHeadInfo::stop_smpte_update_timer( )
+void PlayHeadInfo::stop_song_update_timer( )
{
m_updateTimer.stop();
m_playpixmap = find_pixmap(":/playstart");
Index: traverso/widgets/InfoWidgets.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/InfoWidgets.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- traverso/widgets/InfoWidgets.h 24 Apr 2007 14:27:03 -0000 1.12
+++ traverso/widgets/InfoWidgets.h 6 May 2007 00:02:38 -0000 1.13
@@ -186,8 +186,8 @@
void set_song(Song* );
private slots:
- void start_smpte_update_timer();
- void stop_smpte_update_timer();
+ void start_song_update_timer();
+ void stop_song_update_timer();
};
- [Traverso-commit] traverso/src commands/PlayHeadMove.cpp commands...,
Ben Levitt <=