From e2e62749567f4e57a89a370839e5b292271f9c3f Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 27 May 2022 18:49:23 -0600 Subject: [PATCH] libardour: change API of Session::request_locate() to include "force" argument (GUI edition) --- gtk2_ardour/ardour_ui.cc | 2 +- gtk2_ardour/editor.cc | 3 ++- gtk2_ardour/editor_drag.cc | 2 +- gtk2_ardour/editor_markers.cc | 14 +++++++------- gtk2_ardour/editor_mouse.cc | 4 ++-- gtk2_ardour/editor_ops.cc | 10 +++++----- 6 files changed, 18 insertions(+), 17 deletions(-) diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index e74323c2e4..908b2dfa61 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -1932,7 +1932,7 @@ ARDOUR_UI::toggle_roll (bool with_abort, bool roll_out_of_bounded_mode) } if (_session->get_play_loop() && Config->get_loop_is_mode()) { - _session->request_locate (_session->locations()->auto_loop_location()->start().samples(), MustRoll); + _session->request_locate (_session->locations()->auto_loop_location()->start().samples(), false, MustRoll); } else { if (UIConfiguration::instance().get_follow_edits()) { list& range = editor->get_selection().time; diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 7e4f85b2c1..e1a7c9539e 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -1393,7 +1393,7 @@ Editor::set_session (Session *t) /* catch up with the playhead */ - _session->request_locate (_playhead_cursor->current_sample (), MustStop); + _session->request_locate (_playhead_cursor->current_sample (), false, MustStop); _pending_initial_locate = true; update_title (); @@ -4331,6 +4331,7 @@ Editor::get_grid_type_as_beats (bool& success, timepos_t const & position) return Temporal::Beats::from_double ((4.0 * m.divisions_per_bar()) / m.note_value()); } break; + default: #warning NUTEMPO need to implement all other subdivs success = false; diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index 029f276d5c..151387fb2f 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -4187,7 +4187,7 @@ CursorDrag::finished (GdkEvent* event, bool movement_occurred) Session* s = _editor->session (); if (s) { _editor->_pending_locate_request = true; - s->request_locate (_editor->playhead_cursor ()->current_sample (), _was_rolling ? MustRoll : RollIfAppropriate); + s->request_locate (_editor->playhead_cursor ()->current_sample (), false, _was_rolling ? MustRoll : RollIfAppropriate); s->request_resume_timecode_transmission (); } } diff --git a/gtk2_ardour/editor_markers.cc b/gtk2_ardour/editor_markers.cc index d51b806314..09e1254888 100644 --- a/gtk2_ardour/editor_markers.cc +++ b/gtk2_ardour/editor_markers.cc @@ -1315,15 +1315,15 @@ Editor::marker_menu_play_from () if ((l = find_location_from_marker (marker, is_start)) != 0) { if (l->is_mark()) { - _session->request_locate (l->start_sample(), MustRoll); + _session->request_locate (l->start_sample(), false, MustRoll); } else { //_session->request_bounded_roll (l->start_sample(), l->end()); if (is_start) { - _session->request_locate (l->start_sample(), MustRoll); + _session->request_locate (l->start_sample(), false, MustRoll); } else { - _session->request_locate (l->end_sample(), MustRoll); + _session->request_locate (l->end_sample(), false, MustRoll); } } } @@ -1345,13 +1345,13 @@ Editor::marker_menu_set_playhead () if ((l = find_location_from_marker (marker, is_start)) != 0) { if (l->is_mark()) { - _session->request_locate (l->start_sample(), MustStop); + _session->request_locate (l->start_sample(), false, MustStop); } else { if (is_start) { - _session->request_locate (l->start_sample(), MustStop); + _session->request_locate (l->start_sample(), false, MustStop); } else { - _session->request_locate (l->end_sample(), MustStop); + _session->request_locate (l->end_sample(), false, MustStop); } } } @@ -1496,7 +1496,7 @@ Editor::marker_menu_play_range () if ((l = find_location_from_marker (marker, is_start)) != 0) { if (l->is_mark()) { - _session->request_locate (l->start().samples(), MustRoll); + _session->request_locate (l->start().samples(), false, MustRoll); } else { _session->request_bounded_roll (l->start().samples(), l->end().samples()); diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index ec5561db53..d32350a16c 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -1462,7 +1462,7 @@ Editor::button_press_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemTyp timepos_t where (canvas_event_sample (event)); snap_to (where); - _session->request_locate (where.samples(), MustStop); + _session->request_locate (where.samples(), false, MustStop); } switch (event->button.button) { @@ -2153,7 +2153,7 @@ Editor::scrub (samplepos_t sample, double current_x) if (scrubbing_direction == 0) { /* first move */ - _session->request_locate (sample, MustStop); + _session->request_locate (sample, false, MustStop); _session->request_transport_speed (0.1); scrubbing_direction = 1; diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index dc5f9f80f8..0b88b7bb76 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -2697,13 +2697,13 @@ Editor::transition_to_rolling (bool fwd) void Editor::play_from_start () { - _session->request_locate (_session->current_start_sample(), MustRoll); + _session->request_locate (_session->current_start_sample(), false, MustRoll); } void Editor::play_from_edit_point () { - _session->request_locate (get_preferred_edit_position().samples(), MustRoll); + _session->request_locate (get_preferred_edit_position().samples(), false, MustRoll); } void @@ -2715,7 +2715,7 @@ Editor::play_from_edit_point_and_return () start_sample = get_preferred_edit_position (EDIT_IGNORE_PHEAD).samples(); if (_session->transport_rolling()) { - _session->request_locate (start_sample, MustStop); + _session->request_locate (start_sample, false, MustStop); return; } @@ -2801,7 +2801,7 @@ Editor::play_with_preroll () } else { start = 0; } - _session->request_locate (start, MustRoll); + _session->request_locate (start, false, MustRoll); _session->set_requested_return_sample (ph); //force auto-return to return to playhead location, without the preroll } } @@ -2843,7 +2843,7 @@ Editor::loop_location (Location& location) tll->set (location.start(), location.end()); // enable looping, reposition and start rolling - _session->request_locate (tll->start().samples(), MustRoll); + _session->request_locate (tll->start().samples(), false, MustRoll); _session->request_play_loop (true); } }