libardour: change API of Session::request_locate() to include "force" argument (GUI edition)

This commit is contained in:
Paul Davis 2022-05-27 18:49:23 -06:00
parent cc2e6b3cf8
commit e2e6274956
6 changed files with 18 additions and 17 deletions

View File

@ -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<TimelineRange>& range = editor->get_selection().time;

View File

@ -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;

View File

@ -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 ();
}
}

View File

@ -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());

View File

@ -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;

View File

@ -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);
}
}