summaryrefslogtreecommitdiff
path: root/libs/ardour/tempo.cc
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2016-09-01 01:35:53 +1000
committernick_m <mainsbridge@gmail.com>2016-09-01 01:35:53 +1000
commit894cdb6f5c20641962ec86542b084fa7e5ccdf13 (patch)
treebd36600f2b3f37e3e94c7228a8d70dfca4b74d61 /libs/ardour/tempo.cc
parent34e234825edab8e725c31c654934a8caf9c1dbf3 (diff)
Snap to beat snaps to quarter note.
Diffstat (limited to 'libs/ardour/tempo.cc')
-rw-r--r--libs/ardour/tempo.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/libs/ardour/tempo.cc b/libs/ardour/tempo.cc
index 3a938c54d4..a8d5c35a68 100644
--- a/libs/ardour/tempo.cc
+++ b/libs/ardour/tempo.cc
@@ -3445,12 +3445,14 @@ TempoMap::round_to_type (framepos_t frame, RoundMode dir, BBTPointType type)
break;
case Beat:
+ const double qn_at_frame = max (0.0, quarter_note_at_frame_locked (_metrics, frame));
+
if (dir < 0) {
- return frame_at_beat_locked (_metrics, floor (beat_at_framepos));
+ return frame_at_quarter_note_locked (_metrics, floor (qn_at_frame));
} else if (dir > 0) {
- return frame_at_beat_locked (_metrics, ceil (beat_at_framepos));
+ return frame_at_quarter_note_locked (_metrics, ceil (qn_at_frame));
} else {
- return frame_at_beat_locked (_metrics, floor (beat_at_framepos + 0.5));
+ return frame_at_quarter_note_locked (_metrics, floor (qn_at_frame + 0.5));
}
break;
}