traverso-commit
[Top][All Lists]
Advanced

[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);




reply via email to

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