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

No behavior should be changed by this modification; the argument has a default value of false, which
matches previous semantics, and every instance where the argument is specified, it is given as false.
This commit is contained in:
Paul Davis 2022-05-27 18:49:11 -06:00
parent 03649dc32a
commit cc2e6b3cf8
9 changed files with 22 additions and 22 deletions

View File

@ -475,7 +475,7 @@ public:
void request_bounded_roll (samplepos_t start, samplepos_t end);
void request_roll (TransportRequestSource origin = TRS_UI);
void request_stop (bool abort = false, bool clear_state = false, TransportRequestSource origin = TRS_UI);
void request_locate (samplepos_t sample, LocateTransportDisposition ltd = RollIfAppropriate, TransportRequestSource origin = TRS_UI);
void request_locate (samplepos_t sample, bool force = false, LocateTransportDisposition ltd = RollIfAppropriate, TransportRequestSource origin = TRS_UI);
void request_play_loop (bool yn, bool leave_rolling = false);
bool get_play_loop () const { return play_loop; }

View File

@ -407,7 +407,7 @@ MTC_TransportMaster::update_mtc_time (const MIDI::byte *msg, bool was_full, samp
boost::shared_ptr<TransportMaster> c = TransportMasterManager::instance().current();
if (c && c.get() == this && _session->config.get_external_sync()) {
_session->set_requested_return_sample (-1);
_session->request_locate (mtc_frame, MustStop, TRS_MTC);
_session->request_locate (mtc_frame, false, MustStop, TRS_MTC);
}
update_mtc_status (MIDI::MTC_Stopped);
reset (false);

View File

@ -1566,7 +1566,7 @@ Session::auto_loop_changed (Location* location)
*/
loop_changing = true;
request_locate (location->start_sample(), MustRoll);
request_locate (location->start_sample(), false, MustRoll);
} else {
@ -6441,7 +6441,7 @@ void
Session::goto_end ()
{
if (_session_range_location) {
request_locate (_session_range_location->end().samples(), MustStop);
request_locate (_session_range_location->end().samples(), false, MustStop);
} else {
request_locate (0, MustStop);
}
@ -6451,9 +6451,9 @@ void
Session::goto_start (bool and_roll)
{
if (_session_range_location) {
request_locate (_session_range_location->start().samples(), and_roll ? MustRoll : RollIfAppropriate);
request_locate (_session_range_location->start().samples(), false, and_roll ? MustRoll : RollIfAppropriate);
} else {
request_locate (0, and_roll ? MustRoll : RollIfAppropriate);
request_locate (0, false, and_roll ? MustRoll : RollIfAppropriate);
}
}

View File

@ -454,6 +454,6 @@ Session::finalize_audio_export (TransportRequestSource trs)
if (post_export_sync) {
config.set_external_sync (true);
} else {
request_locate (post_export_position, MustStop, trs);
request_locate (post_export_position, false, MustStop, trs);
}
}

View File

@ -306,7 +306,7 @@ Session::mmc_locate (MIDI::MachineControl &/*mmc*/, const MIDI::byte* mmc_tc)
mtcs->handle_locate (mmc_tc);
} else {
// cerr << "Locate without MTC slave\n";
request_locate (target_sample, MustStop);
request_locate (target_sample, false, MustStop);
}
}

View File

@ -489,7 +489,7 @@ Session::start_transport (bool after_loop)
/* jump to start and then roll from there */
request_locate (location->start_sample(), MustRoll);
request_locate (location->start_sample(), false, MustRoll);
return;
}
}
@ -907,7 +907,7 @@ Session::request_stop (bool abort, bool clear_state, TransportRequestSource orig
}
void
Session::request_locate (samplepos_t target_sample, LocateTransportDisposition ltd, TransportRequestSource origin)
Session::request_locate (samplepos_t target_sample, bool force, LocateTransportDisposition ltd, TransportRequestSource origin)
{
if (synced_to_engine()) {
_engine.transport_locate (target_sample);
@ -936,7 +936,7 @@ Session::request_locate (samplepos_t target_sample, LocateTransportDisposition l
break;
}
SessionEvent *ev = new SessionEvent (type, SessionEvent::Add, SessionEvent::Immediate, target_sample, 0, false);
SessionEvent *ev = new SessionEvent (type, SessionEvent::Add, SessionEvent::Immediate, target_sample, 0, force);
ev->locate_transport_disposition = ltd;
DEBUG_TRACE (DEBUG::Transport, string_compose ("Request locate to %1 ltd = %2\n", target_sample, enum_2_string (ltd)));
queue_event (ev);
@ -971,7 +971,7 @@ Session::request_preroll_record_trim (samplepos_t rec_in, samplecnt_t preroll)
samplepos_t pos = std::max ((samplepos_t)0, rec_in - preroll);
_preroll_record_trim_len = rec_in - pos;
maybe_enable_record ();
request_locate (pos, MustRoll);
request_locate (pos, false, MustRoll);
set_requested_return_sample (rec_in);
if (pos < rec_in) {

View File

@ -521,13 +521,13 @@ BasicUI::transport_sample ()
void
BasicUI::locate (samplepos_t where, LocateTransportDisposition ltd)
{
session->request_locate (where, ltd);
session->request_locate (where, false, ltd);
}
void
BasicUI::locate (samplepos_t where, bool roll)
{
session->request_locate (where, roll ? MustRoll : RollIfAppropriate);
session->request_locate (where, false, roll ? MustRoll : RollIfAppropriate);
}
void
@ -542,7 +542,7 @@ BasicUI::jump_by_seconds (double secs, LocateTransportDisposition ltd)
}
s = s * session->nominal_sample_rate();
session->request_locate (floor(s), ltd);
session->request_locate (floor(s), false, ltd);
}
void
@ -556,7 +556,7 @@ BasicUI::jump_by_bars (int bars, LocateTransportDisposition ltd)
bbt.bars = 1;
}
session->request_locate (tmap->sample_at (bbt), ltd);
session->request_locate (tmap->sample_at (bbt), false, ltd);
}
void
@ -678,7 +678,7 @@ BasicUI::toggle_roll (bool with_abort, bool roll_out_of_bounded_mode)
} else { /* not rolling */
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 {
session->request_roll (TRS_UI);
}

View File

@ -309,7 +309,7 @@ FaderPort8::button_varispeed (bool ffw)
// stop key-repeat
dynamic_cast<FP8RepeatButton*>(&b_ffw)->stop_repeat();
dynamic_cast<FP8RepeatButton*>(&b_rew)->stop_repeat();
session->request_locate (0, MustStop);
session->request_locate (0, false, MustStop);
return;
}

View File

@ -1305,7 +1305,7 @@ OSC::osc_toggle_roll (bool ret2strt)
} else {
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 {
session->request_roll (TRS_UI);
}
@ -3143,7 +3143,7 @@ OSC::set_marker (const char* types, lo_arg **argv, int argc, lo_message msg)
for (Locations::LocationList::const_iterator l = ll.begin(); l != ll.end(); ++l) {
if ((*l)->is_mark ()) {
if (strcmp (&argv[0]->s, (*l)->name().c_str()) == 0) {
session->request_locate ((*l)->start_sample (), MustStop);
session->request_locate ((*l)->start_sample (), false, MustStop);
return 0;
} else if ((*l)->start () == session->transport_sample()) {
cur_mark = (*l);
@ -3180,7 +3180,7 @@ OSC::set_marker (const char* types, lo_arg **argv, int argc, lo_message msg)
std::sort (lm.begin(), lm.end(), location_marker_sort);
// go there
if (marker < lm.size()) {
session->request_locate (lm[marker].when, MustStop);
session->request_locate (lm[marker].when, false, MustStop);
return 0;
}
// we were unable to deal with things
@ -5904,7 +5904,7 @@ OSC::periodic (void)
if (diff > 120000) {
scrub_speed = 0;
// locate to the place PH was at last tick
session->request_locate (scrub_place, MustStop);
session->request_locate (scrub_place, false, MustStop);
}
}
for (uint32_t it = 0; it < _surface.size(); it++) {