diff options
author | nick_m <mainsbridge@gmail.com> | 2015-05-17 04:26:05 +1000 |
---|---|---|
committer | nick_m <mainsbridge@gmail.com> | 2015-05-17 04:26:05 +1000 |
commit | 91a34c596d1bb72f33ccaa17d6ebfa3a435f629c (patch) | |
tree | e4597f925fb4f65d7aba9b52eac61f13095f418b /gtk2_ardour/editor.cc | |
parent | bbafb8f137bd9f8a18a7242e2628d309a1f8f991 (diff) |
Relative snap - support magnetic mode (hackishly for now)
Diffstat (limited to 'gtk2_ardour/editor.cc')
-rw-r--r-- | gtk2_ardour/editor.cc | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 60aa58dbb0..a45e243da5 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -2654,6 +2654,16 @@ Editor::snap_to (framepos_t& start, RoundMode direction, bool for_mark) } void +Editor::snap_to_no_magnets (framepos_t& start, RoundMode direction, bool for_mark) +{ + if (!_session || _snap_mode == SnapOff) { + return; + } + + snap_to_internal (start, direction, for_mark, true); +} + +void Editor::timecode_snap_to_internal (framepos_t& start, RoundMode direction, bool /*for_mark*/) { const framepos_t one_timecode_second = (framepos_t)(rint(_session->timecode_frames_per_second()) * _session->frames_per_timecode_frame()); @@ -2720,7 +2730,7 @@ Editor::timecode_snap_to_internal (framepos_t& start, RoundMode direction, bool } void -Editor::snap_to_internal (framepos_t& start, RoundMode direction, bool for_mark) +Editor::snap_to_internal (framepos_t& start, RoundMode direction, bool for_mark, bool no_magnets) { const framepos_t one_second = _session->frame_rate(); const framepos_t one_minute = _session->frame_rate() * 60; @@ -2890,6 +2900,10 @@ Editor::snap_to_internal (framepos_t& start, RoundMode direction, bool for_mark) case SnapMagnetic: + if (no_magnets) { + return; + } + if (presnap > start) { if (presnap > (start + pixel_to_sample(snap_threshold))) { start = presnap; |