traverso-commit
[Top][All Lists]
Advanced

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

[Traverso-commit] traverso/src audiofileio/decode/FlacAudioReader...


From: Remon Sijrier
Subject: [Traverso-commit] traverso/src audiofileio/decode/FlacAudioReader...
Date: Fri, 28 Sep 2007 18:33:45 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Remon Sijrier <r_sijrier>       07/09/28 18:33:45

Modified files:
        src/audiofileio/decode: FlacAudioReader.cpp 
                                ResampleAudioReader.cpp 
                                ResampleAudioReader.h 
        src/commands   : AudioClipExternalProcessing.cpp Fade.cpp 
                         Import.cpp Import.h MoveClip.cpp 
                         PlayHeadMove.cpp WorkCursorMove.cpp 
        src/commands/plugins/TraversoCommands: TraversoCommands.cpp 
        src/core       : AudioClip.cpp AudioClipManager.cpp 
                         FadeCurve.cpp ReadSource.cpp ReadSource.h 
                         SnapList.cpp Song.cpp Track.cpp Utils.cpp 
        src/engine     : defines.h 
        src/traverso/dialogs: InsertSilenceDialog.cpp 
        src/traverso   : Interface.cpp 
        src/traverso/songcanvas: AudioClipView.cpp ClipsViewPort.cpp 
                                 CurveNodeView.cpp CurveView.cpp 
                                 MarkerView.cpp SongView.cpp 
                                 TimeLineView.cpp 

Log message:
        * Disable 'converting constructor' for TimeRef to avoid assignments to 
TimeRef other then qint64 and double.
        Fixed a couple of (potential) bugs that were shacked out by this change 
:)

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/FlacAudioReader.cpp?cvsroot=traverso&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/ResampleAudioReader.cpp?cvsroot=traverso&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/ResampleAudioReader.h?cvsroot=traverso&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/AudioClipExternalProcessing.cpp?cvsroot=traverso&r1=1.31&r2=1.32
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/Fade.cpp?cvsroot=traverso&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/Import.cpp?cvsroot=traverso&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/Import.h?cvsroot=traverso&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/MoveClip.cpp?cvsroot=traverso&r1=1.50&r2=1.51
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/PlayHeadMove.cpp?cvsroot=traverso&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/WorkCursorMove.cpp?cvsroot=traverso&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/plugins/TraversoCommands/TraversoCommands.cpp?cvsroot=traverso&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AudioClip.cpp?cvsroot=traverso&r1=1.138&r2=1.139
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AudioClipManager.cpp?cvsroot=traverso&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/FadeCurve.cpp?cvsroot=traverso&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ReadSource.cpp?cvsroot=traverso&r1=1.66&r2=1.67
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ReadSource.h?cvsroot=traverso&r1=1.38&r2=1.39
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/SnapList.cpp?cvsroot=traverso&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Song.cpp?cvsroot=traverso&r1=1.142&r2=1.143
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Track.cpp?cvsroot=traverso&r1=1.65&r2=1.66
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Utils.cpp?cvsroot=traverso&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/traverso/src/engine/defines.h?cvsroot=traverso&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/InsertSilenceDialog.cpp?cvsroot=traverso&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/Interface.cpp?cvsroot=traverso&r1=1.96&r2=1.97
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/AudioClipView.cpp?cvsroot=traverso&r1=1.98&r2=1.99
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/ClipsViewPort.cpp?cvsroot=traverso&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/CurveNodeView.cpp?cvsroot=traverso&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/CurveView.cpp?cvsroot=traverso&r1=1.60&r2=1.61
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/MarkerView.cpp?cvsroot=traverso&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/SongView.cpp?cvsroot=traverso&r1=1.78&r2=1.79
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/TimeLineView.cpp?cvsroot=traverso&r1=1.49&r2=1.50

Patches:
Index: audiofileio/decode/FlacAudioReader.cpp
===================================================================
RCS file: 
/sources/traverso/traverso/src/audiofileio/decode/FlacAudioReader.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- audiofileio/decode/FlacAudioReader.cpp      27 Sep 2007 16:58:22 -0000      
1.9
+++ audiofileio/decode/FlacAudioReader.cpp      28 Sep 2007 18:33:43 -0000      
1.10
@@ -478,7 +478,7 @@
 {
        Q_ASSERT(m_flac);
        
-       if (start >= get_length()) {
+       if (start >= m_nframes) {
                PERROR("FlacAudioReader: could not seek to frame %d within %s, 
it's past the end.", start, m_fileName.toUtf8().data());
                return false;
        }

Index: audiofileio/decode/ResampleAudioReader.cpp
===================================================================
RCS file: 
/sources/traverso/traverso/src/audiofileio/decode/ResampleAudioReader.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- audiofileio/decode/ResampleAudioReader.cpp  27 Sep 2007 19:38:34 -0000      
1.14
+++ audiofileio/decode/ResampleAudioReader.cpp  28 Sep 2007 18:33:43 -0000      
1.15
@@ -90,8 +90,8 @@
 // Clear the samplerateconverter to a clean state (used on seek)
 void ResampleAudioReader::reset()
 {
-       for (int c = 0; c < m_reader->get_num_channels(); c++) {
-               src_reset(m_srcStates[c]);
+       foreach(SRC_STATE* state, m_srcStates) {
+               src_reset(state);
        }
        
        m_srcData.end_of_input = 0;
@@ -149,6 +149,8 @@
        m_outputRate = rate;
        m_nframes = file_to_resampled_frame(m_reader->get_nframes());
        m_length = TimeRef(m_nframes, m_outputRate);
+       
+       reset();
 }
 
 

Index: audiofileio/decode/ResampleAudioReader.h
===================================================================
RCS file: 
/sources/traverso/traverso/src/audiofileio/decode/ResampleAudioReader.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- audiofileio/decode/ResampleAudioReader.h    27 Sep 2007 19:38:34 -0000      
1.10
+++ audiofileio/decode/ResampleAudioReader.h    28 Sep 2007 18:33:43 -0000      
1.11
@@ -34,8 +34,12 @@
        ResampleAudioReader(QString filename, const QString& decoder);
        ~ResampleAudioReader();
        
-       nframes_t read_from(DecodeBuffer* buffer, TimeRef start, nframes_t 
count) {
-               return AbstractAudioReader::read_from(buffer, 
start.to_frame(m_outputRate), count);
+       nframes_t read_from(DecodeBuffer* buffer, nframes_t start, nframes_t 
count) {
+               return AbstractAudioReader::read_from(buffer, start, count);
+       }
+       nframes_t read_from(DecodeBuffer* buffer, const TimeRef& start, 
nframes_t count) {
+               TimeRef location = start;
+               return AbstractAudioReader::read_from(buffer, 
location.to_frame(m_outputRate), count);
        }
        QString decoder_type() const {return (m_reader) ? 
m_reader->decoder_type() : "";}
        void clear_buffers();

Index: commands/AudioClipExternalProcessing.cpp
===================================================================
RCS file: 
/sources/traverso/traverso/src/commands/AudioClipExternalProcessing.cpp,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- commands/AudioClipExternalProcessing.cpp    26 Sep 2007 21:08:46 -0000      
1.31
+++ commands/AudioClipExternalProcessing.cpp    28 Sep 2007 18:33:43 -0000      
1.32
@@ -98,7 +98,7 @@
                
                        writesource->process(buffersize);
                
-                       spec->pos += nframes;
+                       spec->pos.add_frames(nframes, m_readsource->get_rate());
                        
                } while (spec->pos != spec->totalTime);
                

Index: commands/Fade.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/Fade.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- commands/Fade.cpp   26 Sep 2007 20:46:32 -0000      1.23
+++ commands/Fade.cpp   28 Sep 2007 18:33:43 -0000      1.24
@@ -130,7 +130,8 @@
        
        m_curve->set_range( m_newRange );
        
-       
cpointer().get_viewport()->set_holdcursor_text(timeref_to_ms_3(m_newRange));
+       TimeRef location = TimeRef(m_newRange);
+       
cpointer().get_viewport()->set_holdcursor_text(timeref_to_ms_3(location));
        
        return 1;
 }

Index: commands/Import.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/Import.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- commands/Import.cpp 10 Sep 2007 18:42:12 -0000      1.26
+++ commands/Import.cpp 28 Sep 2007 18:33:43 -0000      1.27
@@ -43,7 +43,7 @@
 }
 
 
-Import::Import(Track* track, bool silent, const TimeRef& length)
+Import::Import(Track* track, const TimeRef& length, bool silent)
        : Command(track, "")
 {
        m_track = track;
@@ -144,7 +144,7 @@
        m_clip->set_song(m_track->get_song());
        m_clip->set_track(m_track);
        
-       TimeRef startLocation(0);
+       TimeRef startLocation(qint64(0));
        if (!m_hasPosition) {
                if (AudioClip* lastClip = m_track->get_cliplist().get_last()) {
                        startLocation = lastClip->get_track_end_location() + 1;

Index: commands/Import.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/Import.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- commands/Import.h   10 Sep 2007 18:42:13 -0000      1.7
+++ commands/Import.h   28 Sep 2007 18:33:43 -0000      1.8
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
  
-    $Id: Import.h,v 1.7 2007/09/10 18:42:13 r_sijrier Exp $
+    $Id: Import.h,v 1.8 2007/09/28 18:33:43 r_sijrier Exp $
 */
 
 #ifndef IMPORT_H
@@ -33,7 +33,7 @@
 {
 public :
        Import(const QString& fileName);
-        Import(Track* track, bool silent = false, const TimeRef& length = 0);
+       Import(Track* track, const TimeRef& length, bool silent = false);
         Import(Track* track, const QString& fileName);
         Import(Track* track, const QString& fileName, const TimeRef& position);
         ~Import();

Index: commands/MoveClip.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/MoveClip.cpp,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -b -r1.50 -r1.51
--- commands/MoveClip.cpp       10 Sep 2007 18:42:13 -0000      1.50
+++ commands/MoveClip.cpp       28 Sep 2007 18:33:43 -0000      1.51
@@ -282,7 +282,7 @@
                        
m_clip->set_track_start_location(m_originalTrackStartLocation);
                }
                d->view->set_trackview(d->origTrackView);
-               d->view->setPos(QPoint(m_originalTrackStartLocation / 
d->sv->timeref_scalefactor,
+               d->view->setPos(QPoint((int)(m_originalTrackStartLocation / 
d->sv->timeref_scalefactor),
                                d->origTrackView->get_childview_y_offset()));
        }
 }
@@ -329,7 +329,7 @@
        TimeRef newTrackEndLocation = d->origTrackEndLocation + diff_f;
 
        if (diff_f < 0 && d->origTrackStartLocation < (-1 * diff_f)) {
-               newTrackStartLocation = TimeRef(0);
+               newTrackStartLocation = qint64(0);
        } else {
                newTrackStartLocation = d->origTrackStartLocation + diff_f;
        }
@@ -406,7 +406,7 @@
 void MoveClip::move_to_start(bool autorepeat)
 {
        Q_UNUSED(autorepeat)
-       TimeRef location(0);
+       TimeRef location;
        m_clip->set_track_start_location(location);
 }
 

Index: commands/PlayHeadMove.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/PlayHeadMove.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- commands/PlayHeadMove.cpp   10 Sep 2007 18:42:13 -0000      1.14
+++ commands/PlayHeadMove.cpp   28 Sep 2007 18:33:43 -0000      1.15
@@ -52,7 +52,8 @@
                if (m_song->is_transport_rolling()) {
                        m_cursor->hide();
                }
-               m_song->set_transport_pos(x * m_sv->timeref_scalefactor);
+               TimeRef location(x * m_sv->timeref_scalefactor);
+               m_song->set_transport_pos(location);
        }
        m_sv->start_shuttle(false);
        return -1;
@@ -61,7 +62,7 @@
 int PlayHeadMove::begin_hold()
 {
        m_cursor->set_active(false);
-       m_origXPos = m_newXPos = m_song->get_transport_location() / 
m_sv->timeref_scalefactor;
+       m_origXPos = m_newXPos = int(m_song->get_transport_location() / 
m_sv->timeref_scalefactor);
        m_sv->start_shuttle(true, true);
        return 1;
 }
@@ -97,7 +98,7 @@
        
        if (x != m_newXPos) {
                m_cursor->setPos(x, 0);
-               TimeRef newpos = x * m_sv->timeref_scalefactor;
+               TimeRef newpos(x * m_sv->timeref_scalefactor);
                if (m_resync && m_song->is_transport_rolling()) {
                        m_song->set_transport_pos(newpos);
                }

Index: commands/WorkCursorMove.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/WorkCursorMove.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- commands/WorkCursorMove.cpp 10 Sep 2007 18:42:13 -0000      1.8
+++ commands/WorkCursorMove.cpp 28 Sep 2007 18:33:43 -0000      1.9
@@ -82,7 +82,7 @@
                x = 0;
        }
 
-       TimeRef newLocation = x * m_sv->timeref_scalefactor;
+       TimeRef newLocation(x * m_sv->timeref_scalefactor);
 
        if (m_song->is_snap_on()) {
                SnapList* slist = m_song->get_snap_list();

Index: commands/plugins/TraversoCommands/TraversoCommands.cpp
===================================================================
RCS file: 
/sources/traverso/traverso/src/commands/plugins/TraversoCommands/TraversoCommands.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- commands/plugins/TraversoCommands/TraversoCommands.cpp      15 May 2007 
20:15:14 -0000      1.12
+++ commands/plugins/TraversoCommands/TraversoCommands.cpp      28 Sep 2007 
18:33:43 -0000      1.13
@@ -98,7 +98,7 @@
                                        "ImportAudioCommand needs a Track as 
argument");
                                return 0;
                        }
-                       return new Import(track);
+                       return new Import(track, TimeRef());
                }
                
                case InsertSilenceCommand:
@@ -109,7 +109,7 @@
                                        "ImportAudioCommand needs a Track as 
argument");
                                return 0;
                        }
-                       return new Import(track, 480000, true);
+                       return new Import(track, 
TimeRef(10*UNIVERSAL_SAMPLE_RATE), true);
                }
                
                case AddNewTrackCommand:

Index: core/AudioClip.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/AudioClip.cpp,v
retrieving revision 1.138
retrieving revision 1.139
diff -u -b -r1.138 -r1.139
--- core/AudioClip.cpp  26 Sep 2007 21:08:46 -0000      1.138
+++ core/AudioClip.cpp  28 Sep 2007 18:33:43 -0000      1.139
@@ -95,7 +95,8 @@
        m_sourceStartLocation = TimeRef(e.attribute( "sourcestart", "" 
).toLongLong(&ok));
        
        m_sourceEndLocation = m_sourceStartLocation + m_length;
-       set_track_start_location( e.attribute( "trackstart", "" 
).toLongLong(&ok));
+       TimeRef location(e.attribute( "trackstart", "" ).toLongLong(&ok));
+       set_track_start_location(location);
        m_domNode = node.cloneNode();
        init();
 }
@@ -153,7 +154,8 @@
        m_sourceStartLocation = TimeRef(e.attribute( "sourcestart", "" 
).toLongLong(&ok));
        m_length = TimeRef(e.attribute( "length", "0" ).toLongLong(&ok));
        m_sourceEndLocation = m_sourceStartLocation + m_length;
-       set_track_start_location(e.attribute( "trackstart", "" 
).toLongLong(&ok));
+       TimeRef location(e.attribute( "trackstart", "" ).toLongLong(&ok));
+       set_track_start_location(location);
        
        emit stateChanged();
        
@@ -254,8 +256,8 @@
 
 void AudioClip::set_left_edge(TimeRef newLeftLocation)
 {
-       if (newLeftLocation < 0) {
-               newLeftLocation = TimeRef(0);
+       if (newLeftLocation < qint64(0)) {
+               newLeftLocation = TimeRef();
        }
        
        if (newLeftLocation < m_trackStartLocation) {
@@ -293,8 +295,8 @@
 
 void AudioClip::set_right_edge(TimeRef newRightLocation)
 {
-       if (newRightLocation < 0) {
-               newRightLocation = TimeRef(0);
+       if (newRightLocation < qint64(0)) {
+               newRightLocation = TimeRef();
        }
        
        if (newRightLocation > m_trackEndLocation) {
@@ -479,7 +481,7 @@
                return;
        }
        
-       m_length += nframes;
+       m_length.add_frames(nframes, get_rate());
        nframes_t written = 0;
        
        if (m_track->capture_left_channel() && 
m_track->capture_right_channel()) {
@@ -517,7 +519,7 @@
                return -1;
        }
 
-       m_sourceStartLocation = TimeRef(0);
+       m_sourceStartLocation = TimeRef();
        m_isTake = 1;
        m_recordingStatus = RECORDING;
        int channelcount;

Index: core/AudioClipManager.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/AudioClipManager.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- core/AudioClipManager.cpp   10 Sep 2007 18:42:48 -0000      1.17
+++ core/AudioClipManager.cpp   28 Sep 2007 18:33:44 -0000      1.18
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
  
-    $Id: AudioClipManager.cpp,v 1.17 2007/09/10 18:42:48 r_sijrier Exp $
+    $Id: AudioClipManager.cpp,v 1.18 2007/09/28 18:33:44 r_sijrier Exp $
 */
  
 #include "AudioClipManager.h"
@@ -83,7 +83,7 @@
 {
        PENTER;
        
-       lastLocation = TimeRef(0);
+       lastLocation = TimeRef();
        
        foreach(AudioClip* clip, m_clips) {
                if (clip->get_track_end_location() >= lastLocation)

Index: core/FadeCurve.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/FadeCurve.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- core/FadeCurve.cpp  24 Sep 2007 16:58:38 -0000      1.27
+++ core/FadeCurve.cpp  28 Sep 2007 18:33:44 -0000      1.28
@@ -17,7 +17,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
 
-$Id: FadeCurve.cpp,v 1.27 2007/09/24 16:58:38 r_sijrier Exp $
+$Id: FadeCurve.cpp,v 1.28 2007/09/28 18:33:44 r_sijrier Exp $
 */
  
 #include "FadeCurve.h"
@@ -173,7 +173,7 @@
        
        
        TimeRef range = TimeRef(qint64(get_range()));
-       TimeRef fadepos = 0;
+       TimeRef fadepos;
        
        if (m_type == FadeIn) {
                if( !( m_song->get_transport_location() < 
(m_clip->get_track_start_location() + range) ) ) {
@@ -190,12 +190,12 @@
        }
 
        TimeRef realframes(nframes, audiodevice().get_sample_rate());
-       TimeRef limit = std::min (realframes.universal_frame(), 
range.universal_frame());
+       TimeRef limit(std::min (realframes.universal_frame(), 
range.universal_frame()));
        
        get_vector(fadepos.universal_frame(), (fadepos + 
limit).universal_frame(), m_song->gainbuffer, 
limit.to_frame(audiodevice().get_sample_rate()));
 
        nframes_t framerange = limit.to_frame(audiodevice().get_sample_rate());
-       for (int chan=0; chan<channels; ++chan) {
+       for (uint chan=0; chan<channels; ++chan) {
                for (nframes_t frame = 0; frame < framerange; ++frame) {
                        mixdown[chan][frame] *= m_song->gainbuffer[frame];
                }

Index: core/ReadSource.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ReadSource.cpp,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -b -r1.66 -r1.67
--- core/ReadSource.cpp 27 Sep 2007 20:55:50 -0000      1.66
+++ core/ReadSource.cpp 28 Sep 2007 18:33:44 -0000      1.67
@@ -165,7 +165,7 @@
        m_origSongId = e.attribute("origsheetid", "0").toLongLong();
        set_dir( e.attribute("dir", "" ));
        m_id = e.attribute("id", "").toLongLong();
-       m_rate = e.attribute("rate", "0").toUInt();
+       m_rate = m_outputRate = e.attribute("rate", "0").toUInt();
        bool ok;
        m_length = TimeRef(e.attribute("length", "0").toLongLong(&ok));
        m_origBitDepth = e.attribute("origbitdepth", "0").toInt();
@@ -196,7 +196,7 @@
        m_bufferstatus = new BufferStatus;
        
        // Fake the samplerate, until it's set by an AudioReader!
-       m_rate = project->get_rate();
+       m_rate = m_outputRate = project->get_rate();
        
        if (m_silent) {
                m_length = TimeRef(LONG_LONG_MAX);
@@ -284,7 +284,7 @@
 }
 
 
-int ReadSource::file_read(DecodeBuffer* buffer, TimeRef& start, nframes_t cnt) 
const
+int ReadSource::file_read(DecodeBuffer* buffer, const TimeRef& start, 
nframes_t cnt) const
 {
 //     PROFILE_START;
        nframes_t result = m_audioReader->read_from(buffer, start, cnt);
@@ -295,8 +295,7 @@
 
 int ReadSource::file_read(DecodeBuffer * buffer, nframes_t start, nframes_t 
cnt)
 {
-       // Any way to avoid this casting, anyone ??
-       return ((AbstractAudioReader*)m_audioReader)->read_from(buffer, start, 
cnt);
+       return m_audioReader->read_from(buffer, start, cnt);
 }
 
 

Index: core/ReadSource.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/ReadSource.h,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -b -r1.38 -r1.39
--- core/ReadSource.h   27 Sep 2007 19:46:52 -0000      1.38
+++ core/ReadSource.h   28 Sep 2007 18:33:44 -0000      1.39
@@ -57,7 +57,7 @@
        int rb_read(audio_sample_t** dest, TimeRef& start, nframes_t cnt);
        void rb_seek_to_file_position(TimeRef& position);
        
-       int file_read(DecodeBuffer* buffer, TimeRef& start, nframes_t cnt) 
const;
+       int file_read(DecodeBuffer* buffer, const TimeRef& start, nframes_t 
cnt) const;
        int file_read(DecodeBuffer* buffer, nframes_t start, nframes_t cnt);
 
        int init();

Index: core/SnapList.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/SnapList.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- core/SnapList.cpp   10 Sep 2007 18:42:48 -0000      1.18
+++ core/SnapList.cpp   28 Sep 2007 18:33:44 -0000      1.19
@@ -72,7 +72,7 @@
 
        // Be able to snap to trackstart
        if (m_rangeStart == 0) {
-               m_xposList.append(0);
+               m_xposList.append(TimeRef());
        }
 
        for( int i = 0; i < acList->size(); i++ ) {
@@ -120,11 +120,11 @@
 
        // create a linear lookup table
        for (int i = 0; i <= range; ++i) {
-               m_xposLut.push_back(0);
+               m_xposLut.push_back(TimeRef());
                m_xposBool.push_back(false);
        }
 
-       TimeRef lastVal = 0;
+       TimeRef lastVal;
        long lastIndex = -1;
        // now modify the regions around snap points in the lookup table
        for (int i = 0; i < m_xposList.size(); i++) {
@@ -307,7 +307,7 @@
        
        do {
                TimeRef snap = m_xposLut.at(index);
-               if (snap < pos && snap != 0) {
+               if (snap < pos && snap != TimeRef(qint64(0))) {
                        newpos = snap;
                        break;
                }
@@ -315,7 +315,7 @@
        } while (index >= 0);
        
        if (index == -1) {
-               return 0;
+               return TimeRef();
        }
        
        if (newpos == pos) {

Index: core/Song.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Song.cpp,v
retrieving revision 1.142
retrieving revision 1.143
diff -u -b -r1.142 -r1.143
--- core/Song.cpp       26 Sep 2007 21:19:39 -0000      1.142
+++ core/Song.cpp       28 Sep 2007 18:33:44 -0000      1.143
@@ -200,7 +200,8 @@
        set_first_visible_frame(e.attribute( "firstVisibleFrame", "0" 
).toUInt());
        
        bool ok;
-       set_work_at(e.attribute( "m_workLocation", "0").toLongLong(&ok));
+       TimeRef location(e.attribute( "m_workLocation", "0").toLongLong(&ok));
+       set_work_at(location);
        m_transportLocation = TimeRef(e.attribute( "transportlocation", 
"0").toLongLong(&ok));
        
        // Start seeking to the 'old' transport pos
@@ -853,7 +854,7 @@
        }
        mlist = markermap.values();
 
-       TimeRef start = 0;
+       TimeRef start;
        for(int i = 0; i < mlist.size()-1; ++i) {
                Marker* startmarker = mlist.at(i);
                Marker* endmarker = mlist.at(i+1);

Index: core/Track.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Track.cpp,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -b -r1.65 -r1.66

Index: core/Utils.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Utils.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- core/Utils.cpp      26 Sep 2007 21:19:39 -0000      1.20
+++ core/Utils.cpp      28 Sep 2007 18:33:44 -0000      1.21
@@ -33,24 +33,24 @@
 
 TimeRef msms_to_timeref(QString str)
 {
-       TimeRef out = 0;
+       TimeRef out;
        QStringList lst = str.simplified().split(QRegExp("[;,.:]"), 
QString::SkipEmptyParts);
 
-       if (lst.size() >= 1) out += lst.at(0).toInt() * 
ONE_MINUTE_UNIVERSAL_SAMPLE_RATE;
-       if (lst.size() >= 2) out += lst.at(1).toInt() * UNIVERSAL_SAMPLE_RATE;
-       if (lst.size() >= 3) out += lst.at(2).toInt() * UNIVERSAL_SAMPLE_RATE / 
1000;
+       if (lst.size() >= 1) out += TimeRef(lst.at(0).toInt() * 
ONE_MINUTE_UNIVERSAL_SAMPLE_RATE);
+       if (lst.size() >= 2) out += TimeRef(lst.at(1).toInt() * 
UNIVERSAL_SAMPLE_RATE);
+       if (lst.size() >= 3) out += TimeRef(lst.at(2).toInt() * 
UNIVERSAL_SAMPLE_RATE / 1000);
 
        return out;
 }
 
 TimeRef cd_to_timeref(QString str)
 {
-       TimeRef out = 0;
+       TimeRef out;
        QStringList lst = str.simplified().split(QRegExp("[;,.:]"), 
QString::SkipEmptyParts);
 
-       if (lst.size() >= 1) out += lst.at(0).toInt() * 
ONE_MINUTE_UNIVERSAL_SAMPLE_RATE;
-       if (lst.size() >= 2) out += lst.at(1).toInt() * UNIVERSAL_SAMPLE_RATE;
-       if (lst.size() >= 3) out += lst.at(2).toInt() * UNIVERSAL_SAMPLE_RATE / 
75;
+       if (lst.size() >= 1) out += TimeRef(lst.at(0).toInt() * 
ONE_MINUTE_UNIVERSAL_SAMPLE_RATE);
+       if (lst.size() >= 2) out += TimeRef(lst.at(1).toInt() * 
UNIVERSAL_SAMPLE_RATE);
+       if (lst.size() >= 3) out += TimeRef(lst.at(2).toInt() * 
UNIVERSAL_SAMPLE_RATE / 75);
 
        return out;
 }

Index: engine/defines.h
===================================================================
RCS file: /sources/traverso/traverso/src/engine/defines.h,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- engine/defines.h    27 Sep 2007 19:20:30 -0000      1.24
+++ engine/defines.h    28 Sep 2007 18:33:44 -0000      1.25
@@ -59,7 +59,8 @@
        TimeRef() {
                m_position = 0;
        }
-       TimeRef(qint64 position) : m_position(position) {}
+       explicit TimeRef(qint64 position) : m_position(position) {}
+       explicit TimeRef(double position) : m_position(qint64(position)) {}
        
        TimeRef(nframes_t frame, int rate) {
                m_position = (UNIVERSAL_SAMPLE_RATE / rate) * frame;
@@ -76,6 +77,11 @@
        
        qint64 universal_frame() const {return m_position;}
        
+       TimeRef operator =(qint64 value) {
+               TimeRef ref(value);
+               return ref;
+       }
+       
        friend int operator!=(const TimeRef& left, const TimeRef& right) {
                return left.m_position != right.m_position;
        }
@@ -161,6 +167,10 @@
                return left.m_position == right.m_position;
        }
        
+       friend int operator==(const TimeRef& left, qint64 right) {
+               return left.m_position == right;
+       }
+       
 private:
        qint64 m_position;
 };

Index: traverso/dialogs/InsertSilenceDialog.cpp
===================================================================
RCS file: 
/sources/traverso/traverso/src/traverso/dialogs/InsertSilenceDialog.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- traverso/dialogs/InsertSilenceDialog.cpp    10 Sep 2007 18:44:15 -0000      
1.4
+++ traverso/dialogs/InsertSilenceDialog.cpp    28 Sep 2007 18:33:44 -0000      
1.5
@@ -79,8 +79,8 @@
                        m_track = shortestTrack;
                }
 
-               nframes_t length = (nframes_t)(lengthSpinBox->value() * 
pm().get_project()->get_rate());
-               Import* cmd = new Import(m_track, true, length);
+               TimeRef length = TimeRef(lengthSpinBox->value(), 
pm().get_project()->get_rate());
+               Import* cmd = new Import(m_track, length, true);
                Command::process_command(cmd);
        }
 

Index: traverso/Interface.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/Interface.cpp,v
retrieving revision 1.96
retrieving revision 1.97
diff -u -b -r1.96 -r1.97
--- traverso/Interface.cpp      10 Sep 2007 18:44:15 -0000      1.96
+++ traverso/Interface.cpp      28 Sep 2007 18:33:44 -0000      1.97
@@ -886,7 +886,7 @@
                        }
                }
 
-               Import* cmd = new Import(shortestTrack);
+               Import* cmd = new Import(shortestTrack, TimeRef());
                Command::process_command(cmd);
        }
 }

Index: traverso/songcanvas/AudioClipView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/AudioClipView.cpp,v
retrieving revision 1.98
retrieving revision 1.99
diff -u -b -r1.98 -r1.99
--- traverso/songcanvas/AudioClipView.cpp       26 Sep 2007 16:44:14 -0000      
1.98
+++ traverso/songcanvas/AudioClipView.cpp       28 Sep 2007 18:33:44 -0000      
1.99
@@ -216,7 +216,7 @@
        }
 
        if (m_dragging) {
-               m_posIndicator->set_value(timeref_to_text((qint64)(x() * 
m_sv->timeref_scalefactor), m_sv->timeref_scalefactor));
+               m_posIndicator->set_value(timeref_to_text(TimeRef(x() * 
m_sv->timeref_scalefactor), m_sv->timeref_scalefactor));
        }
        
        painter->restore();
@@ -271,7 +271,7 @@
                int availpeaks = peak->calculate_peaks( chan,
                                                        &pixeldata[chan],
                                                                microView ? 
m_song->get_hzoom() : m_song->get_hzoom() + 1,
-                                                       (xstart * 
m_sv->timeref_scalefactor) + clipstartoffset,
+                                                       TimeRef(xstart * 
m_sv->timeref_scalefactor) + clipstartoffset,
                                                        microView ? 
peakdatacount : peakdatacount / 2 + 2);
                
                if (peakdatacount != availpeaks) {

Index: traverso/songcanvas/ClipsViewPort.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/ClipsViewPort.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- traverso/songcanvas/ClipsViewPort.cpp       26 Sep 2007 16:32:53 -0000      
1.26
+++ traverso/songcanvas/ClipsViewPort.cpp       28 Sep 2007 18:33:44 -0000      
1.27
@@ -139,7 +139,7 @@
        CommandGroup* group = new CommandGroup(m_sw->get_song(), 
                       tr("Import %n audiofile(s)", "", m_imports.size() + 
m_resourcesImport.size()), true);
        
-       TimeRef startpos = mapFromGlobal(QCursor::pos()).x() * 
m_sw->get_songview()->timeref_scalefactor;
+       TimeRef startpos = TimeRef(mapFromGlobal(QCursor::pos()).x() * 
m_sw->get_songview()->timeref_scalefactor);
        
        foreach(qint64 id, m_resourcesImport) {
                AudioClip* clip = resources_manager()->get_clip(id);

Index: traverso/songcanvas/CurveNodeView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/CurveNodeView.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- traverso/songcanvas/CurveNodeView.cpp       24 Sep 2007 16:58:39 -0000      
1.11
+++ traverso/songcanvas/CurveNodeView.cpp       28 Sep 2007 18:33:45 -0000      
1.12
@@ -109,7 +109,7 @@
 {
        qreal halfwidth = (m_boundingRect.width() / 2);
        qreal parentheight = m_parentViewItem->boundingRect().height();
-       qreal when = ((qint64(m_node->get_when()) - 
m_curveview->get_start_offset()) / m_sv->timeref_scalefactor) - halfwidth;
+       qreal when = ((TimeRef(m_node->get_when()) - 
m_curveview->get_start_offset()) / m_sv->timeref_scalefactor) - halfwidth;
        qreal value = parentheight - (m_node->get_value() * parentheight + 
halfwidth);
        setPos(when, value);
                

Index: traverso/songcanvas/CurveView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/CurveView.cpp,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -b -r1.60 -r1.61
--- traverso/songcanvas/CurveView.cpp   26 Sep 2007 16:32:53 -0000      1.60
+++ traverso/songcanvas/CurveView.cpp   28 Sep 2007 18:33:45 -0000      1.61
@@ -160,10 +160,10 @@
        m_newValue = m_newValue - ( dy / d->curveView->boundingRect().height());
        
        TimeRef startoffset = d->curveView->get_start_offset();
-       if ( ((qint64(m_newWhen) - startoffset) / d->scalefactor) > 
d->curveView->boundingRect().width()) {
+       if ( ((TimeRef(m_newWhen) - startoffset) / d->scalefactor) > 
d->curveView->boundingRect().width()) {
                m_newWhen = double(d->curveView->boundingRect().width() * 
d->scalefactor + startoffset.universal_frame());
        }
-       if ((qint64(m_newWhen) - startoffset) < 0) {
+       if ((TimeRef(m_newWhen) - startoffset) < 0) {
                m_newWhen = startoffset.universal_frame();
        }
        

Index: traverso/songcanvas/MarkerView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/MarkerView.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- traverso/songcanvas/MarkerView.cpp  20 Sep 2007 18:25:15 -0000      1.23
+++ traverso/songcanvas/MarkerView.cpp  28 Sep 2007 18:33:45 -0000      1.24
@@ -85,7 +85,7 @@
        painter->drawText(m_width + 1, m_ascent, m_marker->get_description());
 
        if (m_dragging) {
-               m_posIndicator->set_value(timeref_to_text((x() + m_width / 2) * 
m_sv->timeref_scalefactor, m_sv->timeref_scalefactor));
+               m_posIndicator->set_value(timeref_to_text(TimeRef((x() + 
m_width / 2) * m_sv->timeref_scalefactor), m_sv->timeref_scalefactor));
        }
 
        painter->restore();

Index: traverso/songcanvas/SongView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/SongView.cpp,v
retrieving revision 1.78
retrieving revision 1.79
diff -u -b -r1.78 -r1.79
--- traverso/songcanvas/SongView.cpp    24 Sep 2007 16:58:39 -0000      1.78
+++ traverso/songcanvas/SongView.cpp    28 Sep 2007 18:33:45 -0000      1.79
@@ -470,7 +470,7 @@
 Command* SongView::goto_begin()
 {
        stop_follow_play_head();
-       m_song->set_work_at(0);
+       m_song->set_work_at(TimeRef());
        center();
        return (Command*) 0;
 }
@@ -500,7 +500,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((qint64)(point.x() * timeref_scalefactor));
+       m_song->set_work_at(TimeRef(point.x() * timeref_scalefactor));
 
        return 0;
 }
@@ -509,7 +509,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((qint64)(point.x() * timeref_scalefactor));
+       m_song->set_transport_pos(TimeRef(point.x() * timeref_scalefactor));
 
        return 0;
 }
@@ -517,7 +517,7 @@
 Command * SongView::play_to_begin( )
 {
        m_playCursor->setPos(0, 0);
-       m_song->set_transport_pos(0);
+       m_song->set_transport_pos(TimeRef());
 
        return 0;
 }
@@ -535,8 +535,8 @@
 void SongView::set_snap_range(int start)
 {
 //     printf("SongView::set_snap_range\n");
-       m_song->get_snap_list()->set_range(start * timeref_scalefactor, 
-                                       (start + 
m_clipsViewPort->viewport()->width()) * timeref_scalefactor,
+       m_song->get_snap_list()->set_range(TimeRef(start * timeref_scalefactor),
+                                       TimeRef((start + 
m_clipsViewPort->viewport()->width()) * timeref_scalefactor),
                                        timeref_scalefactor);
 }
 
@@ -626,7 +626,7 @@
 Command * SongView::center_playhead( )
 {
        TimeRef centerX = m_song->get_transport_location();
-       set_hscrollbar_value(centerX / timeref_scalefactor - 
m_clipsViewPort->width() / 2);
+       set_hscrollbar_value(int(centerX / timeref_scalefactor - 
m_clipsViewPort->width() / 2));
        
        follow_play_head();
 

Index: traverso/songcanvas/TimeLineView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/TimeLineView.cpp,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -b -r1.49 -r1.50
--- traverso/songcanvas/TimeLineView.cpp        26 Sep 2007 20:46:34 -0000      
1.49
+++ traverso/songcanvas/TimeLineView.cpp        28 Sep 2007 18:33:45 -0000      
1.50
@@ -175,7 +175,7 @@
        }
        
        d->jogBypassPos = cpointer().x();
-       TimeRef newpos = (cpointer().scene_x() * d->scalefactor);
+       TimeRef newpos = TimeRef(cpointer().scene_x() * d->scalefactor);
 
        if (m_marker->get_timeline()->get_song()->is_snap_on()) {
                SnapList* slist = 
m_marker->get_timeline()->get_song()->get_snap_list();
@@ -298,17 +298,17 @@
        // minor is double so they line up right with the majors,
        // despite not always being an even number of frames
        // @Ben : is still still the same when using TimeRef based calculations?
-       TimeRef minor = qint64(major/10);
+       TimeRef minor = TimeRef(major/10);
 
-       TimeRef firstLocation = xstart * m_sv->timeref_scalefactor;
-       TimeRef lastLocation = xstart * m_sv->timeref_scalefactor + pixelcount 
* m_sv->timeref_scalefactor;
+       TimeRef firstLocation = TimeRef(xstart * m_sv->timeref_scalefactor);
+       TimeRef lastLocation = TimeRef(xstart * m_sv->timeref_scalefactor + 
pixelcount * m_sv->timeref_scalefactor);
        int xstartoffset = m_sv->hscrollbar_value();
        
        painter->setMatrixEnabled(false);
 
        TimeRef factor = (firstLocation/major)*major;
        // Draw minor ticks
-       for (qint64 i = 0; i < (lastLocation-firstLocation+major) / minor; i++ 
) {
+       for (qint64 i = 0; i < ((lastLocation-firstLocation+major) / 
minor).universal_frame(); i++ ) {
                int x = (int)((factor + i * minor) / m_sv->timeref_scalefactor) 
- xstartoffset;
                painter->drawLine(x, height - 5, x, height - 1);
        }
@@ -377,7 +377,7 @@
        // check if it is the first marker added to the timeline
        if (!m_timeline->get_markers().size()) {
                if (when > 0) {  // add one at the beginning of the song
-                       Marker* m = new Marker(m_timeline, Marker::CDTRACK);
+                       Marker* m = new Marker(m_timeline, TimeRef(), 
Marker::CDTRACK);
                        m->set_description("");
                        group->add_command(m_timeline->add_marker(m));
                }




reply via email to

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