use frame interval api for empoMap::framepos_plus_qn()
authornick_m <mainsbridge@gmail.com>
Tue, 8 Nov 2016 14:04:45 +0000 (01:04 +1100)
committernick_m <mainsbridge@gmail.com>
Thu, 10 Nov 2016 16:37:08 +0000 (03:37 +1100)
libs/ardour/tempo.cc

index 0565f66f7c534c061f1457da7aabf1fff3fe451f..51b911187807248c42980916c0a0fe7b072a3265 100644 (file)
@@ -4358,11 +4358,12 @@ TempoMap::remove_time (framepos_t where, framecnt_t amount)
  *  pos can be -ve, if required.
  */
 framepos_t
-TempoMap::framepos_plus_qn (framepos_t frame, Evoral::Beats quarter_note) const
+TempoMap::framepos_plus_qn (framepos_t frame, Evoral::Beats beats) const
 {
        Glib::Threads::RWLock::ReaderLock lm (lock);
+       const double frame_qn = quarter_notes_between_frames_locked (_metrics, 0, frame);
 
-       return frame_at_minute (minute_at_quarter_note_locked (_metrics, quarter_note_at_minute_locked (_metrics, minute_at_frame (frame)) + quarter_note.to_double()));
+       return frame_at_minute (minute_at_quarter_note_locked (_metrics, frame_qn + beats.to_double()));
 }
 
 framepos_t