[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso/src/traverso dialogs/AudioClipEditDial...
From: |
Remon Sijrier |
Subject: |
[Traverso-commit] traverso/src/traverso dialogs/AudioClipEditDial... |
Date: |
Mon, 10 Sep 2007 18:44:17 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Remon Sijrier <r_sijrier> 07/09/10 18:44:17
Modified files:
src/traverso/dialogs: AudioClipEditDialog.cpp
InsertSilenceDialog.cpp
src/traverso/dialogs/project: ProjectManagerDialog.cpp
src/traverso : Interface.cpp
src/traverso/songcanvas: AudioClipView.cpp ClipsViewPort.cpp
Cursors.cpp CurveView.cpp CurveView.h
MarkerView.cpp SongView.cpp
TimeLineView.cpp TimeLineView.h
src/traverso/widgets: InfoWidgets.cpp ResourcesWidget.cpp
Log message:
Conversion work from nframes_t to TimeRef
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/AudioClipEditDialog.cpp?cvsroot=traverso&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/InsertSilenceDialog.cpp?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/project/ProjectManagerDialog.cpp?cvsroot=traverso&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/Interface.cpp?cvsroot=traverso&r1=1.95&r2=1.96
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/AudioClipView.cpp?cvsroot=traverso&r1=1.83&r2=1.84
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/ClipsViewPort.cpp?cvsroot=traverso&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/Cursors.cpp?cvsroot=traverso&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/CurveView.cpp?cvsroot=traverso&r1=1.56&r2=1.57
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/CurveView.h?cvsroot=traverso&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/MarkerView.cpp?cvsroot=traverso&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/SongView.cpp?cvsroot=traverso&r1=1.75&r2=1.76
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/TimeLineView.cpp?cvsroot=traverso&r1=1.43&r2=1.44
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/TimeLineView.h?cvsroot=traverso&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/InfoWidgets.cpp?cvsroot=traverso&r1=1.42&r2=1.43
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/ResourcesWidget.cpp?cvsroot=traverso&r1=1.28&r2=1.29
Patches:
Index: dialogs/AudioClipEditDialog.cpp
===================================================================
RCS file:
/sources/traverso/traverso/src/traverso/dialogs/AudioClipEditDialog.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- dialogs/AudioClipEditDialog.cpp 11 Aug 2007 22:54:58 -0000 1.7
+++ dialogs/AudioClipEditDialog.cpp 10 Sep 2007 18:44:15 -0000 1.8
@@ -37,6 +37,7 @@
#include "Command.h"
#include "AudioClipExternalProcessing.h"
#include "InputEngine.h"
+#include "AudioDevice.h"
#define TIME_FORMAT "hh:mm:ss.zzz"
@@ -112,8 +113,8 @@
QDomNode m_origState;
friend class AudioClipEditDialog;
- nframes_t qtime_to_nframes(const QTime& time, uint rate);
- QTime nframes_to_qtime(nframes_t nframes, uint rate);
+ TimeRef qtime_to_timeref(const QTime& time);
+ QTime timeref_to_qtime(TimeRef& ref);
bool locked;
private slots:
@@ -212,10 +213,10 @@
{
if (locked) return;
- QTime clipLengthTime = nframes_to_qtime(m_clip->get_length(),
m_clip->get_rate());
+ QTime clipLengthTime = timeref_to_qtime(m_clip->get_length());
clipLengthEdit->setTime(clipLengthTime);
- QTime clipStartTime = nframes_to_qtime(m_clip->get_track_start_frame(),
m_clip->get_rate());
+ QTime clipStartTime =
timeref_to_qtime(m_clip->get_track_start_location());
clipStartEdit->setTime(clipStartTime);
update_clip_end();
@@ -226,7 +227,8 @@
if (ie().is_holding()) return;
if (locked) return;
- QTime fadeTime =
nframes_to_qtime((nframes_t)(m_clip->get_fade_in()->get_range()),
m_clip->get_rate());
+ TimeRef ref(m_clip->get_fade_in()->get_range(), m_clip->get_rate());
+ QTime fadeTime = timeref_to_qtime(ref);
fadeInEdit->setTime(fadeTime);
}
@@ -234,7 +236,8 @@
{
if (locked) return;
- QTime fadeTime =
nframes_to_qtime((nframes_t)(m_clip->get_fade_out()->get_range()),
m_clip->get_rate());
+ TimeRef ref(m_clip->get_fade_out()->get_range(), m_clip->get_rate());
+ QTime fadeTime = timeref_to_qtime(ref);
fadeOutEdit->setTime(fadeTime);
}
@@ -247,7 +250,7 @@
if (ie().is_holding()) return;
locked = true;
- nframes_t frames = qtime_to_nframes(time, m_clip->get_rate());
+ nframes_t frames =
qtime_to_timeref(time).to_frame(audiodevice().get_sample_rate());
if (frames == 0) {
m_clip->set_fade_in(1);
} else {
@@ -261,7 +264,7 @@
if (ie().is_holding()) return;
locked = true;
- nframes_t frames = qtime_to_nframes(time, m_clip->get_rate());
+ nframes_t frames =
qtime_to_timeref(time).to_frame(audiodevice().get_sample_rate());
if (frames == 0) {
m_clip->set_fade_out(1);
} else {
@@ -275,16 +278,16 @@
if (ie().is_holding()) return;
locked = true;
- uint rate = m_clip->get_rate();
- uint frames = qtime_to_nframes(time, rate);
- if (frames >= m_clip->get_source_length()) {
- frames = m_clip->get_source_length();
- QTime clipLengthTime = nframes_to_qtime(frames,
m_clip->get_rate());
+ TimeRef ref = qtime_to_timeref(time);
+
+ if (ref >= m_clip->get_source_length()) {
+ ref = m_clip->get_source_length();
+ QTime clipLengthTime = timeref_to_qtime(ref);
clipLengthEdit->setTime(clipLengthTime);
}
- m_clip->set_right_edge(frames + m_clip->get_track_start_frame());
+ m_clip->set_right_edge(ref + m_clip->get_track_start_location());
update_clip_end();
locked = false;
}
@@ -294,7 +297,7 @@
if (ie().is_holding()) return;
locked = true;
- m_clip->set_track_start_frame(qtime_to_nframes(time,
m_clip->get_rate()));
+ m_clip->set_track_start_location(qtime_to_timeref(time));
update_clip_end();
locked = false;
}
@@ -415,24 +418,27 @@
fadeOutStrengthBox->setValue(0.5);
}
-nframes_t AudioClipEditWidget::qtime_to_nframes(const QTime & time, uint rate)
+TimeRef AudioClipEditWidget::qtime_to_timeref(const QTime & time)
{
- return time.hour() * 3600 * rate + time.minute() * 60 * rate +
time.second() * rate + (time.msec() * rate) / 1000;
+ TimeRef ref(time.hour() * 3600 * UNIVERSAL_SAMPLE_RATE + time.minute()
* 60 * UNIVERSAL_SAMPLE_RATE + time.second() * UNIVERSAL_SAMPLE_RATE +
(time.msec() * UNIVERSAL_SAMPLE_RATE) / 1000);
+ return ref;
}
-QTime AudioClipEditWidget::nframes_to_qtime(nframes_t nframes, uint rate)
+QTime AudioClipEditWidget::timeref_to_qtime(TimeRef& ref)
{
long unsigned int remainder;
int hours, mins, secs, msec;
- remainder = nframes;
- hours = remainder / (3600 * rate);
- remainder -= ( hours * 3600 * rate );
- mins = remainder / ( 60 * rate );
- remainder -= ( mins * 60 * rate );
- secs = remainder / rate;
- remainder -= secs * rate;
- msec = remainder * 1000 / rate;
+ qint64 universalframe = ref.universal_frame();
+
+ remainder = universalframe;
+ hours = remainder / (3600 * UNIVERSAL_SAMPLE_RATE);
+ remainder -= ( hours * 3600 * UNIVERSAL_SAMPLE_RATE );
+ mins = remainder / ( 60 * UNIVERSAL_SAMPLE_RATE );
+ remainder -= ( mins * 60 * UNIVERSAL_SAMPLE_RATE );
+ secs = remainder / UNIVERSAL_SAMPLE_RATE;
+ remainder -= secs * UNIVERSAL_SAMPLE_RATE;
+ msec = remainder * 1000 / UNIVERSAL_SAMPLE_RATE;
QTime time(hours, mins, secs, msec);
return time;
@@ -464,8 +470,8 @@
void AudioClipEditWidget::update_clip_end()
{
- nframes_t clipEndFrame = m_clip->get_track_start_frame() +
m_clip->get_length();
- QTime clipEndTime = nframes_to_qtime(clipEndFrame, m_clip->get_rate());
+ TimeRef clipEndLocation = m_clip->get_track_start_location() +
m_clip->get_length();
+ QTime clipEndTime = timeref_to_qtime(clipEndLocation);
clipEndLineEdit->setText(clipEndTime.toString(TIME_FORMAT));
}
Index: dialogs/InsertSilenceDialog.cpp
===================================================================
RCS file:
/sources/traverso/traverso/src/traverso/dialogs/InsertSilenceDialog.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- dialogs/InsertSilenceDialog.cpp 11 Aug 2007 22:54:58 -0000 1.3
+++ dialogs/InsertSilenceDialog.cpp 10 Sep 2007 18:44:15 -0000 1.4
@@ -72,7 +72,7 @@
Track* shortestTrack = tracks.at(0);
for (int i=1; i<tracks.size(); i++) {
- if (tracks.at(i)->get_cliplist().get_last() &&
tracks.at(i)->get_cliplist().get_last()->get_track_end_frame() >
shortestTrack->get_cliplist().get_last()->get_track_end_frame()) {
+ if (tracks.at(i)->get_cliplist().get_last() &&
tracks.at(i)->get_cliplist().get_last()->get_track_end_location() >
shortestTrack->get_cliplist().get_last()->get_track_end_location()) {
shortestTrack = tracks.at(i);
}
}
Index: dialogs/project/ProjectManagerDialog.cpp
===================================================================
RCS file:
/sources/traverso/traverso/src/traverso/dialogs/project/ProjectManagerDialog.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- dialogs/project/ProjectManagerDialog.cpp 26 Jun 2007 18:07:57 -0000
1.19
+++ dialogs/project/ProjectManagerDialog.cpp 10 Sep 2007 18:44:15 -0000
1.20
@@ -117,7 +117,7 @@
QString songNr =
QString::number(m_project->get_song_index(song->get_id()));
QString songName = "Sheet " + songNr + " - " +
song->get_title();
QString numberOfTracks = QString::number(song->get_numtracks());
- QString songLength = frame_to_ms_2(song->get_last_frame(),
song->get_rate());
+ QString songLength = timeref_to_ms_2(song->get_last_location());
QString songStatus = song->is_changed()?"UnSaved":"Saved";
QString songSpaceAllocated = "Unknown";
Index: Interface.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/Interface.cpp,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -b -r1.95 -r1.96
--- Interface.cpp 16 Jul 2007 02:19:31 -0000 1.95
+++ Interface.cpp 10 Sep 2007 18:44:15 -0000 1.96
@@ -881,7 +881,7 @@
Track* shortestTrack = tracks.at(0);
for (int i=1; i<tracks.size(); i++) {
- if (tracks.at(i)->get_cliplist().get_last() &&
tracks.at(i)->get_cliplist().get_last()->get_track_end_frame() >
shortestTrack->get_cliplist().get_last()->get_track_end_frame()) {
+ if (tracks.at(i)->get_cliplist().get_last() &&
tracks.at(i)->get_cliplist().get_last()->get_track_end_location() >
shortestTrack->get_cliplist().get_last()->get_track_end_location()) {
shortestTrack = tracks.at(i);
}
}
Index: songcanvas/AudioClipView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/AudioClipView.cpp,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -b -r1.83 -r1.84
--- songcanvas/AudioClipView.cpp 28 Aug 2007 19:51:52 -0000 1.83
+++ songcanvas/AudioClipView.cpp 10 Sep 2007 18:44:15 -0000 1.84
@@ -42,6 +42,8 @@
#include <QFileDialog>
#include "AudioClipEditDialog.h"
+#include "AudioDevice.h"
+
// Always put me below _all_ includes, this is needed
// in case we run with memory leak detection enabled!
#include "Debugger.h"
@@ -82,7 +84,7 @@
// CurveViews don't 'get' their start offset, it's only a property for
AudioClips..
// So to be sure the CurveNodeViews start offset get updated as well,
// we call curveviews calculate_bounding_rect() function!
- curveView->set_start_offset(m_clip->get_source_start_frame());
+ curveView->set_start_offset(m_clip->get_source_start_location());
curveView->calculate_bounding_rect();
connect(curveView, SIGNAL(curveModified()), m_sv,
SLOT(stop_follow_play_head()));
@@ -209,12 +211,12 @@
// Paint a pixmap if the clip is locked
if (m_clip->is_locked()) {
- int center = m_clip->get_length() / (2 * m_sv->scalefactor);
+ int center = m_clip->get_length() / (2 *
m_sv->timeref_scalefactor);
painter->drawPixmap(center - 8, m_height - 20,
find_pixmap(":/lock"));
}
if (m_dragging) {
- m_posIndicator->set_value(frame_to_text( (nframes_t)(x() *
m_sv->scalefactor), m_song->get_rate(), m_sv->scalefactor));
+ m_posIndicator->set_value(timeref_to_text(x() *
m_sv->timeref_scalefactor, m_sv->timeref_scalefactor));
}
painter->restore();
@@ -265,7 +267,7 @@
for (int chan=0; chan < channels; chan++) {
// memset(buffers[chan], 0, buffersize * sizeof(peak_data_t));
- nframes_t clipstartoffset = m_clip->get_source_start_frame();
+ TimeRef clipstartoffset = m_clip->get_source_start_location();
Peak* peak = m_clip->get_peak_for_channel(chan);
if (!peak) {
@@ -274,7 +276,7 @@
}
int availpeaks = peak->calculate_peaks( &buffers[chan],
microView ?
m_song->get_hzoom() : m_song->get_hzoom() + 1,
- (xstart *
m_sv->scalefactor) + clipstartoffset,
+ (xstart *
m_sv->scalefactor) + clipstartoffset.to_frame(audiodevice().get_sample_rate()),
microView ?
peakdatacount : peakdatacount / 2);
if (peakdatacount != availpeaks) {
@@ -299,7 +301,7 @@
}
int mixcurvedata = 0;
- int offset = m_clip->get_source_start_frame() / m_sv->scalefactor;
+ int offset = m_clip->get_source_start_location() /
m_sv->timeref_scalefactor;
mixcurvedata |= curveView->get_vector(xstart + offset, pixelcount,
curvemixdown);
float fademixdown[pixelcount];
@@ -748,7 +750,7 @@
prepareGeometryChange();
// printf("AudioClipView::calculate_bounding_rect()\n");
set_height(m_tv->get_height());
- m_boundingRect = QRectF(0, 0, (m_clip->get_length() /
m_sv->scalefactor), m_height);
+ m_boundingRect = QRectF(0, 0, (m_clip->get_length() /
m_sv->timeref_scalefactor), m_height);
update_start_pos();
ViewItem::calculate_bounding_rect();
}
@@ -773,7 +775,7 @@
void AudioClipView::update_start_pos()
{
// printf("AudioClipView::update_start_pos()\n");
- setPos(m_clip->get_track_start_frame() / m_sv->scalefactor,
m_tv->get_childview_y_offset());
+ setPos(m_clip->get_track_start_location() / m_sv->timeref_scalefactor,
m_tv->get_childview_y_offset());
}
Command * AudioClipView::fade_range()
@@ -811,7 +813,7 @@
// the calculate_bounding_rect() will update AudioClipViews children, so
// the CurveView and it's nodes get updated as well, no need to set
// the start offset for those manually!
- curveView->set_start_offset(m_clip->get_source_start_frame());
+ curveView->set_start_offset(m_clip->get_source_start_location());
calculate_bounding_rect();
update();
}
@@ -875,7 +877,7 @@
{
m_recordingTimer.stop();
prepareGeometryChange();
- m_boundingRect = QRectF(0, 0, (m_clip->get_length() /
m_sv->scalefactor), m_height);
+ m_boundingRect = QRectF(0, 0, (m_clip->get_length() /
m_sv->timeref_scalefactor), m_height);
curveView->calculate_bounding_rect();
update();
}
@@ -887,12 +889,13 @@
}
prepareGeometryChange();
- nframes_t newPos = m_clip->get_length();
- m_boundingRect = QRectF(0, 0, (newPos / m_sv->scalefactor), m_height);
+ TimeRef newPos = m_clip->get_length();
+ m_boundingRect = QRectF(0, 0, (newPos / m_sv->timeref_scalefactor),
m_height);
+/* FIXME NONSENSE!!
QRect updaterect = QRect(m_oldRecordingPos, 0, newPos,
(int)m_boundingRect.height());
update(updaterect);
- m_oldRecordingPos = newPos;
+ m_oldRecordingPos = newPos;*/
}
void AudioClipView::set_dragging(bool dragging)
Index: songcanvas/ClipsViewPort.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/ClipsViewPort.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- songcanvas/ClipsViewPort.cpp 5 Jun 2007 07:43:20 -0000 1.24
+++ songcanvas/ClipsViewPort.cpp 10 Sep 2007 18:44:15 -0000 1.25
@@ -29,6 +29,8 @@
#include <CommandGroup.h>
#include "RemoveClip.h"
+#include "AudioDevice.h"
+
#include <QScrollBar>
#include <QSet>
#include <QPaintEngine>
@@ -142,7 +144,7 @@
CommandGroup* group = new CommandGroup(m_sw->get_song(),
tr("Import %n audiofile(s)", "", m_imports.size() +
m_resourcesImport.size()), true);
- nframes_t startpos = mapFromGlobal(QCursor::pos()).x() *
m_sw->get_songview()->scalefactor;
+ TimeRef startpos = mapFromGlobal(QCursor::pos()).x() *
m_sw->get_songview()->timeref_scalefactor;
foreach(qint64 id, m_resourcesImport) {
AudioClip* clip = resources_manager()->get_clip(id);
@@ -153,8 +155,8 @@
if (!hadSong) {
clip->set_state(clip->get_dom_node());
}
- clip->set_track_start_frame(startpos);
- startpos = clip->get_track_end_frame();
+ clip->set_track_start_location(startpos);
+ startpos = clip->get_track_end_location();
AddRemoveClip* arc = new AddRemoveClip(clip,
AddRemoveClip::ADD);
group->add_command(arc);
continue;
@@ -165,8 +167,8 @@
resources_manager()->set_source_for_clip(clip, source);
clip->set_song(importTrack->get_song());
clip->set_track(importTrack);
- clip->set_track_start_frame(startpos);
- startpos = clip->get_track_end_frame();
+ clip->set_track_start_location(startpos);
+ startpos = clip->get_track_end_location();
AddRemoveClip* arc = new AddRemoveClip(clip,
AddRemoveClip::ADD);
group->add_command(arc);
}
Index: songcanvas/Cursors.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/Cursors.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- songcanvas/Cursors.cpp 29 Aug 2007 18:00:36 -0000 1.27
+++ songcanvas/Cursors.cpp 10 Sep 2007 18:44:15 -0000 1.28
@@ -273,7 +273,7 @@
void WorkCursor::update_position()
{
- setPos(m_song->get_working_location() / m_sv->timeref_scalefactor, 1);
+ setPos(m_song->get_work_location() / m_sv->timeref_scalefactor, 1);
}
void WorkCursor::set_bounding_rect( QRectF rect )
Index: songcanvas/CurveView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/CurveView.cpp,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -b -r1.56 -r1.57
--- songcanvas/CurveView.cpp 11 Aug 2007 22:54:58 -0000 1.56
+++ songcanvas/CurveView.cpp 10 Sep 2007 18:44:16 -0000 1.57
@@ -24,6 +24,7 @@
#include "CurveNodeView.h"
#include "ClipsViewPort.h"
#include <Themer.h>
+#include "AudioDevice.h"
#include <Curve.h>
#include <CurveNode.h>
@@ -148,11 +149,12 @@
m_newPos.setX(m_newPos.x() + dx * m_scalefactor);
m_newPos.setY(m_newPos.y() - ( dy /
m_curveView->boundingRect().height()) );
- if ( ((int)(m_newPos.x() - m_curveView->get_start_offset())/
m_scalefactor) > m_curveView->boundingRect().width()) {
- m_newPos.setX(m_curveView->boundingRect().width() *
m_scalefactor + m_curveView->get_start_offset());
+ TimeRef startoffset = m_curveView->get_start_offset();
+ if ( ((int)(m_newPos.x() -
startoffset.to_frame(audiodevice().get_sample_rate()))/ m_scalefactor) >
m_curveView->boundingRect().width()) {
+ m_newPos.setX(m_curveView->boundingRect().width() *
m_scalefactor + startoffset.to_frame(audiodevice().get_sample_rate()));
}
- if ( m_newPos.x() - m_curveView->get_start_offset() < 0) {
- m_newPos.setX(m_curveView->get_start_offset());
+ if ( m_newPos.x() -
startoffset.to_frame(audiodevice().get_sample_rate()) < 0) {
+
m_newPos.setX(startoffset.to_frame(audiodevice().get_sample_rate()));
}
if (m_newPos.y() < 0.0) {
@@ -255,7 +257,7 @@
float vector[pixelcount];
// printf("range: %d\n", (int)m_nodeViews.last()->pos().x());
- int offset = m_startoffset / m_sv->scalefactor;
+ int offset = m_startoffset / m_sv->timeref_scalefactor;
m_guicurve->get_vector(xstart + offset,
xstart + pixelcount + offset,
vector,
@@ -466,7 +468,7 @@
emit curveModified();
- CurveNode* node = new CurveNode(m_curve, point.x() * m_sv->scalefactor
+ m_startoffset,
+ CurveNode* node = new CurveNode(m_curve, point.x() * m_sv->scalefactor
+ m_startoffset.to_frame(audiodevice().get_sample_rate()),
(m_boundingRect.height() - point.y())
/ m_boundingRect.height());
return m_curve->add_node(node);
}
@@ -579,7 +581,7 @@
calculate_bounding_rect();
}
-void CurveView::set_start_offset(nframes_t offset)
+void CurveView::set_start_offset(const TimeRef& offset)
{
m_startoffset = offset;
}
Index: songcanvas/CurveView.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/CurveView.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- songcanvas/CurveView.h 27 Jun 2007 19:32:43 -0000 1.12
+++ songcanvas/CurveView.h 10 Sep 2007 18:44:16 -0000 1.13
@@ -50,8 +50,8 @@
void calculate_bounding_rect();
void load_theme_data();
- void set_start_offset(nframes_t offset);
- nframes_t get_start_offset() const {return m_startoffset;}
+ void set_start_offset(const TimeRef& offset);
+ const TimeRef& get_start_offset() const {return m_startoffset;}
protected:
@@ -67,7 +67,7 @@
int m_blinkDarkness;
int m_blinkColorDirection;
QList<CurveNodeView*> m_nodeViews;
- nframes_t m_startoffset;
+ TimeRef m_startoffset;
void update_softselected_node(QPoint pos, bool force = false);
Index: songcanvas/MarkerView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/MarkerView.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- songcanvas/MarkerView.cpp 11 Aug 2007 22:54:58 -0000 1.21
+++ songcanvas/MarkerView.cpp 10 Sep 2007 18:44:16 -0000 1.22
@@ -85,8 +85,7 @@
painter->drawText(m_width + 1, m_ascent, m_marker->get_description());
if (m_dragging) {
- m_posIndicator->set_value(frame_to_text((nframes_t)((x() +
m_width / 2) * m_sv->scalefactor),
- m_sv->get_song()->get_rate(),
m_sv->scalefactor));
+ m_posIndicator->set_value(timeref_to_text((x() + m_width / 2) *
m_sv->timeref_scalefactor, m_sv->timeref_scalefactor));
}
painter->restore();
Index: songcanvas/SongView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/SongView.cpp,v
retrieving revision 1.75
retrieving revision 1.76
diff -u -b -r1.75 -r1.76
--- songcanvas/SongView.cpp 29 Aug 2007 18:00:36 -0000 1.75
+++ songcanvas/SongView.cpp 10 Sep 2007 18:44:16 -0000 1.76
@@ -232,7 +232,7 @@
void SongView::update_scrollbars()
{
- int width = (m_song->get_last_frame() / scalefactor) -
(m_clipsViewPort->width() / 4);
+ int width = (int)(m_song->get_last_location() / timeref_scalefactor) -
(m_clipsViewPort->width() / 4);
m_hScrollBar->setRange(0, width);
m_hScrollBar->setSingleStep(m_clipsViewPort->width() / 10);
@@ -339,14 +339,14 @@
Command* SongView::center()
{
PENTER2;
- nframes_t centerX;
+ TimeRef centerX;
if (m_song->is_transport_rolling() && m_actOnPlayHead) {
- centerX = m_song->get_transport_frame();
+ centerX = m_song->get_transport_location();
} else {
- centerX = m_song->get_working_frame();
+ centerX = m_song->get_work_location();
}
- set_hscrollbar_value(centerX / scalefactor - m_clipsViewPort->width() /
2);
+ set_hscrollbar_value((int)(centerX / timeref_scalefactor) -
m_clipsViewPort->width() / 2);
return (Command*) 0;
}
@@ -368,7 +368,7 @@
if (state) {
m_actOnPlayHead = true;
m_playCursor->enable_follow();
- m_playCursor->setPos(m_song->get_transport_frame() /
scalefactor, 0);
+ m_playCursor->setPos(m_song->get_transport_location() /
timeref_scalefactor, 0);
} else {
m_actOnPlayHead = false;
m_playCursor->disable_follow();
@@ -481,7 +481,8 @@
Command* SongView::goto_end()
{
stop_follow_play_head();
- m_song->set_work_at(m_song->get_last_frame());
+ TimeRef lastlocation = m_song->get_last_location();
+ m_song->set_work_at(lastlocation);
center();
return (Command*) 0;
}
@@ -501,7 +502,7 @@
Command * SongView::touch( )
{
QPointF point =
m_clipsViewPort->mapToScene(QPoint(cpointer().on_first_input_event_x(),
cpointer().on_first_input_event_y()));
- m_song->set_work_at((nframes_t) (point.x() * scalefactor));
+ m_song->set_work_at((qint64)(point.x() * timeref_scalefactor));
return 0;
}
@@ -510,7 +511,7 @@
{
QPointF point =
m_clipsViewPort->mapToScene(QPoint(cpointer().on_first_input_event_x(),
cpointer().on_first_input_event_y()));
m_playCursor->setPos(point.x(), 0);
- m_song->set_transport_pos( (nframes_t) (point.x() * scalefactor));
+ m_song->set_transport_pos((qint64)(point.x() * timeref_scalefactor));
return 0;
}
@@ -536,9 +537,9 @@
void SongView::set_snap_range(int start)
{
// printf("SongView::set_snap_range\n");
- m_song->get_snap_list()->set_range(start * scalefactor,
- (start +
m_clipsViewPort->viewport()->width()) * scalefactor,
- scalefactor);
+ m_song->get_snap_list()->set_range(start * timeref_scalefactor,
+ (start +
m_clipsViewPort->viewport()->width()) * timeref_scalefactor,
+ timeref_scalefactor);
}
Command* SongView::scroll_up( )
@@ -612,9 +613,9 @@
Command * SongView::playhead_to_workcursor( )
{
- TimeRef worklocation = m_song->get_working_location();
+ TimeRef worklocation = m_song->get_work_location();
- m_song->set_transport_pos( worklocation );
+ m_song->set_transport_pos(worklocation);
m_playCursor->setPos(worklocation / timeref_scalefactor, 0);
if (!m_song->is_transport_rolling()) {
@@ -626,8 +627,8 @@
Command * SongView::center_playhead( )
{
- nframes_t centerX = m_song->get_transport_frame();
- set_hscrollbar_value(centerX / scalefactor - m_clipsViewPort->width() /
2);
+ TimeRef centerX = m_song->get_transport_location();
+ set_hscrollbar_value(centerX / timeref_scalefactor -
m_clipsViewPort->width() / 2);
follow_play_head();
Index: songcanvas/TimeLineView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/TimeLineView.cpp,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -b -r1.43 -r1.44
--- songcanvas/TimeLineView.cpp 22 Jun 2007 12:29:28 -0000 1.43
+++ songcanvas/TimeLineView.cpp 10 Sep 2007 18:44:16 -0000 1.44
@@ -41,8 +41,9 @@
#include <AddRemove.h>
#include <CommandGroup.h>
#include <InputEngine.h>
-#include <QFont>
+#include "AudioDevice.h"
+#include <QFont>
#include <QDebug>
// Always put me below _all_ includes, this is needed
@@ -174,7 +175,7 @@
}
d->jogBypassPos = cpointer().x();
- long newpos = (uint) (cpointer().scene_x() * d->scalefactor);
+ TimeRef newpos = (cpointer().scene_x() * d->scalefactor * 882);
if (m_marker->get_timeline()->get_song()->is_snap_on()) {
SnapList* slist =
m_marker->get_timeline()->get_song()->get_snap_list();
@@ -185,7 +186,7 @@
newpos = 0;
}
- m_newWhen = newpos;
+ m_newWhen = newpos / 882;
d->view->set_position(int(m_newWhen / d->scalefactor));
d->view->get_songview()->update_shuttle_factor();
@@ -207,7 +208,6 @@
m_sv = view;
m_boundingRect = QRectF(0, 0, MAX_CANVAS_WIDTH, TIMELINE_HEIGHT);
m_timeline = m_sv->get_song()->get_timeline();
- m_samplerate = pm().get_project()->get_rate();
#if QT_VERSION < 0x040300
view->scene()->addItem(this);
@@ -225,26 +225,26 @@
setAcceptsHoverEvents(true);
- m_zooms[524288] = "20:00.000";
- m_zooms[262144] = "10:00.000";
- m_zooms[131072] = "5:00.000";
- m_zooms[ 65536] = "2:30.000";
- m_zooms[ 32768] = "1:00.000";
- m_zooms[ 16384] = "0:30.000";
- m_zooms[ 8192] = "0:20.000";
- m_zooms[ 4096] = "0:10.000";
- m_zooms[ 2048] = "0:05.000";
- m_zooms[ 1024] = "0:02.000";
- m_zooms[ 512] = "0:01.000";
- m_zooms[ 256] = "0:00.800";
- m_zooms[ 128] = "0:00.400";
- m_zooms[ 64] = "0:00.200";
- m_zooms[ 32] = "0:00.100";
- m_zooms[ 16] = "0:00.050";
- m_zooms[ 8] = "0:00.020";
- m_zooms[ 4] = "0:00.010";
- m_zooms[ 2] = "0:00.005";
- m_zooms[ 1] = "0:00.002";
+ m_zooms[524288 * 882] = "20:00.000";
+ m_zooms[262144 * 882] = "10:00.000";
+ m_zooms[131072 * 882] = "5:00.000";
+ m_zooms[ 65536 * 882] = "2:30.000";
+ m_zooms[ 32768 * 882] = "1:00.000";
+ m_zooms[ 16384 * 882] = "0:30.000";
+ m_zooms[ 8192 * 882] = "0:20.000";
+ m_zooms[ 4096 * 882] = "0:10.000";
+ m_zooms[ 2048 * 882] = "0:05.000";
+ m_zooms[ 1024 * 882] = "0:02.000";
+ m_zooms[ 512 * 882] = "0:01.000";
+ m_zooms[ 256 * 882] = "0:00.800";
+ m_zooms[ 128 * 882] = "0:00.400";
+ m_zooms[ 64 * 882] = "0:00.200";
+ m_zooms[ 32 * 882] = "0:00.100";
+ m_zooms[ 16 * 882] = "0:00.050";
+ m_zooms[ 8 * 882] = "0:00.020";
+ m_zooms[ 4 * 882] = "0:00.010";
+ m_zooms[ 2 * 882] = "0:00.005";
+ m_zooms[ 1 * 882] = "0:00.002";
}
@@ -287,36 +287,37 @@
painter->setPen(themer()->get_color("Timeline:text"));
painter->setFont( themer()->get_font("Timeline:fontscale:label") );
- nframes_t major;
+ TimeRef major;
- if (m_zooms.contains(m_sv->scalefactor)) {
- major = msms_to_frame(m_zooms[m_sv->scalefactor], m_samplerate);
+ if (m_zooms.contains(m_sv->timeref_scalefactor)) {
+ major = msms_to_timeref(m_zooms[m_sv->timeref_scalefactor]);
} else {
- major = 120 * m_sv->scalefactor;
+ major = 120 * m_sv->timeref_scalefactor;
}
// minor is double so they line up right with the majors,
// despite not always being an even number of frames
double minor = major/10.0;
- nframes_t firstFrame = xstart * m_sv->scalefactor;
- nframes_t lastFrame = xstart * m_sv->scalefactor + pixelcount *
m_sv->scalefactor;
+ TimeRef firstLocation = xstart * m_sv->timeref_scalefactor;
+ TimeRef lastLocation = xstart * m_sv->timeref_scalefactor + pixelcount
* m_sv->timeref_scalefactor;
int xstartoffset = m_sv->hscrollbar_value();
painter->setMatrixEnabled(false);
+ TimeRef firstlocactiondividedbymajorsquare = firstLocation/major*major;
// Draw minor ticks
- for (int i = 0; i < (lastFrame-firstFrame+major) / minor; i++ ) {
- int x = (int)(((int)(firstFrame/major))*major + i *
minor)/m_sv->scalefactor - xstartoffset;
+ for (qint64 i = 0; i < (lastLocation-firstLocation+major) / minor; i++
) {
+ int x = (int)((firstlocactiondividedbymajorsquare + i * minor)
/ m_sv->timeref_scalefactor) - xstartoffset;
painter->drawLine(x, height - 5, x, height - 1);
}
// Draw major ticks
- for (nframes_t frame = ((int)(firstFrame/major))*major; frame <
lastFrame; frame += major ) {
- int x = frame/m_sv->scalefactor - xstartoffset;
+ for (TimeRef location = firstlocactiondividedbymajorsquare; location <
lastLocation; location += major) {
+ int x = location/m_sv->timeref_scalefactor - xstartoffset;
painter->drawLine(x, height - 13, x, height - 1);
if (paintText) {
- painter->drawText(x + 4, height - 8,
frame_to_text(frame, m_samplerate, m_sv->scalefactor));
+ painter->drawText(x + 4, height - 8,
timeref_to_text(location, m_sv->timeref_scalefactor));
}
}
@@ -358,14 +359,15 @@
{
QPointF point = mapFromScene(cpointer().scene_pos());
- nframes_t when = (uint) (point.x() * m_sv->scalefactor);
+ nframes_t when = (uint) (point.x() * m_sv->timeref_scalefactor);
return add_marker_at(when);
}
Command* TimeLineView::add_marker_at_playhead()
{
- nframes_t when = m_sv->get_song()->get_transport_frame();
+ TimeRef location = m_sv->get_song()->get_transport_location();
+ nframes_t when = location.to_frame(audiodevice().get_sample_rate());
return add_marker_at(when);
}
@@ -382,8 +384,9 @@
group->add_command(m_timeline->add_marker(m));
}
- if (when < m_sv->get_song()->get_last_frame()) { // add one at
the end of the song
- Marker* me = new Marker(m_timeline,
m_sv->get_song()->get_last_frame(), Marker::ENDMARKER);
+ TimeRef lastlocation = m_sv->get_song()->get_last_location();
+ if (when <
lastlocation.to_frame(audiodevice().get_sample_rate())) { // add one at the
end of the song
+ Marker* me = new Marker(m_timeline,
lastlocation.to_frame(audiodevice().get_sample_rate()), Marker::ENDMARKER);
me->set_description(tr("End"));
group->add_command(m_timeline->add_marker(me));
}
@@ -403,7 +406,7 @@
update_softselected_marker(QPoint(cpointer().on_first_input_event_scene_x(),
cpointer().on_first_input_event_scene_y()));
if (m_blinkingMarker) {
-
m_sv->get_song()->set_transport_pos(m_blinkingMarker->get_marker()->get_when());
+
m_sv->get_song()->set_transport_pos(m_blinkingMarker->get_marker()->get_when()
* 882);
return 0;
}
@@ -500,7 +503,7 @@
update_softselected_marker(QPoint(cpointer().on_first_input_event_scene_x(),
cpointer().on_first_input_event_scene_y()));
if (m_blinkingMarker) {
- return new DragMarker(m_blinkingMarker, m_sv->scalefactor,
tr("Drag Marker"));
+ return new DragMarker(m_blinkingMarker,
m_sv->timeref_scalefactor, tr("Drag Marker"));
}
return ie().did_not_implement();
Index: songcanvas/TimeLineView.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/TimeLineView.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- songcanvas/TimeLineView.h 31 May 2007 06:20:13 -0000 1.11
+++ songcanvas/TimeLineView.h 10 Sep 2007 18:44:16 -0000 1.12
@@ -59,7 +59,6 @@
TimeLine* m_timeline;
MarkerView* m_blinkingMarker;
QColor m_blinkColor;
- int m_samplerate;
QHash<nframes_t, QString> m_zooms;
Index: widgets/InfoWidgets.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/InfoWidgets.cpp,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -b -r1.42 -r1.43
--- widgets/InfoWidgets.cpp 11 Aug 2007 22:54:58 -0000 1.42
+++ widgets/InfoWidgets.cpp 10 Sep 2007 18:44:16 -0000 1.43
@@ -405,7 +405,7 @@
if (!m_song) {
currentTime = "0:00.0";
} else {
- currentTime = frame_to_ms_2(m_song->get_transport_frame(),
m_song->get_rate());
+ currentTime = timeref_to_ms_2(m_song->get_transport_location());
}
int fc = 170;
Index: widgets/ResourcesWidget.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/ResourcesWidget.cpp,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- widgets/ResourcesWidget.cpp 28 Jun 2007 15:03:56 -0000 1.28
+++ widgets/ResourcesWidget.cpp 10 Sep 2007 18:44:17 -0000 1.29
@@ -405,11 +405,11 @@
}
}
- QString start = frame_to_ms(m_clip->get_source_start_frame(),
m_clip->get_rate());
- QString end = frame_to_ms(m_clip->get_source_end_frame(),
m_clip->get_rate());
+ QString start = timeref_to_ms(m_clip->get_source_start_location());
+ QString end = timeref_to_ms(m_clip->get_source_end_location());
setText(0, m_clip->get_name());
- setText(1, frame_to_ms(m_clip->get_length(), m_clip->get_rate()));
+ setText(1, timeref_to_ms(m_clip->get_length()));
setText(2, start);
setText(3, end);
setToolTip(0, m_clip->get_name() + " " + start + " - " + end);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Traverso-commit] traverso/src/traverso dialogs/AudioClipEditDial...,
Remon Sijrier <=