diff options
author | Ben Loftis <ben@harrisonconsoles.com> | 2018-07-26 14:23:59 -0500 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2018-07-27 00:28:47 +0200 |
commit | 0883f02de92478800ad232f10d388219e2817ed7 (patch) | |
tree | 28e65aba638709df055c1e44ccebf936060313ff /gtk2_ardour/editor.h | |
parent | 83ce11e4111682c0dfea6b3927a157b9d23556ea (diff) |
new_grid: The Return of the snap_to_X functions.
We no longer assume that Snap always uses the visible ruler lines.
If you want to snap to the grid, and ignore the users zoom scale, use SnapPref::SnapToGrid_Unscaled
This fixes 2 (known) oversights: "snap region(s) to grid" and "regions whose start are left of the canvas edge".
Diffstat (limited to 'gtk2_ardour/editor.h')
-rw-r--r-- | gtk2_ardour/editor.h | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 4fd8d0b028..36756fac82 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -454,15 +454,13 @@ public: void snap_to (ARDOUR::MusicSample& first, ARDOUR::RoundMode direction = ARDOUR::RoundNearest, - ARDOUR::SnapPref pref = ARDOUR::SnapToAny, - bool for_mark = false, + ARDOUR::SnapPref pref = ARDOUR::SnapToAny_Visual, bool ensure_snap = false); void snap_to_with_modifier (ARDOUR::MusicSample& first, GdkEvent const * ev, ARDOUR::RoundMode direction = ARDOUR::RoundNearest, - ARDOUR::SnapPref pref = ARDOUR::SnapToAny, - bool for_mark = false); + ARDOUR::SnapPref pref = ARDOUR::SnapToAny_Visual); void set_snapped_cursor_position (samplepos_t pos); @@ -2189,18 +2187,33 @@ private: void select_next_stripable (bool routes_only = true); void select_prev_stripable (bool routes_only = true); - samplepos_t snap_to_grid ( std::vector<ArdourCanvas::Ruler::Mark> marks, - samplepos_t presnap, - ARDOUR::RoundMode direction = ARDOUR::RoundNearest); + ARDOUR::MusicSample snap_to_minsec ( ARDOUR::MusicSample start, + ARDOUR::RoundMode direction, + ARDOUR::SnapPref gpref); + + ARDOUR::MusicSample snap_to_cd_frames ( ARDOUR::MusicSample start, + ARDOUR::RoundMode direction, + ARDOUR::SnapPref gpref ); + + ARDOUR::MusicSample snap_to_bbt ( ARDOUR::MusicSample start, + ARDOUR::RoundMode direction, + ARDOUR::SnapPref gpref ); + + ARDOUR::MusicSample snap_to_timecode ( ARDOUR::MusicSample start, + ARDOUR::RoundMode direction, + ARDOUR::SnapPref gpref ); + + ARDOUR::MusicSample snap_to_grid ( ARDOUR::MusicSample start, + ARDOUR::RoundMode direction, + ARDOUR::SnapPref gpref ); void snap_to_internal (ARDOUR::MusicSample& first, ARDOUR::RoundMode direction = ARDOUR::RoundNearest, - ARDOUR::SnapPref gpref = ARDOUR::SnapToAny, - bool for_mark = false, + ARDOUR::SnapPref gpref = ARDOUR::SnapToAny_Visual, bool ensure_snap = false); - samplepos_t marker_snap_to_internal (samplepos_t presnap, - ARDOUR::RoundMode direction = ARDOUR::RoundNearest); + samplepos_t snap_to_marker (samplepos_t presnap, + ARDOUR::RoundMode direction = ARDOUR::RoundNearest); RhythmFerret* rhythm_ferret; |