From 48e5607f7c71f64aaaae1e85f5ee08c1a7b8354d Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sat, 17 Apr 2021 13:29:00 -0600 Subject: [PATCH] use Session::request_roll() instead of request_transport_speed (1.0, ...) --- gtk2_ardour/editor_mouse.cc | 2 +- gtk2_ardour/shuttle_control.cc | 10 ++-------- headless/load_session.cc | 2 +- libs/ardour/session_midi.cc | 6 +++--- libs/surfaces/control_protocol/basic_ui.cc | 4 +++- libs/surfaces/faderport8/actions.cc | 11 +++++++---- .../frontier/tranzport/tranzport_control_protocol.cc | 1 + libs/surfaces/osc/osc.cc | 2 +- libs/surfaces/tranzport/wheel.cc | 1 + share/scripts/_cron.lua | 2 +- share/scripts/_midi_rec_start.lua | 2 +- share/scripts/voice_activate.lua | 2 +- tools/split_benchmark.lua | 2 +- 13 files changed, 24 insertions(+), 23 deletions(-) diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index 8518276185..bd18044b80 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -314,7 +314,7 @@ Editor::mouse_mode_toggled (MouseMode m) /* stop transport and reset default speed to avoid oddness with auditioning */ _session->request_stop (); - _session->request_transport_speed (1.0); + _session->reset_transport_speed (); } const bool was_internal = internal_editing(); diff --git a/gtk2_ardour/shuttle_control.cc b/gtk2_ardour/shuttle_control.cc index fea327e63c..7c52ddcf13 100644 --- a/gtk2_ardour/shuttle_control.cc +++ b/gtk2_ardour/shuttle_control.cc @@ -302,9 +302,7 @@ ShuttleControl::on_button_press_event (GdkEventButton* ev) switch (ev->button) { case 1: if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) { - if (_session->transport_rolling()) { - _session->reset_transport_speed (); - } + _session->reset_transport_speed (); } else { add_modal_grab (); shuttle_grabbed = true; @@ -319,6 +317,7 @@ ShuttleControl::on_button_press_event (GdkEventButton* ev) case 2: case 3: + default: return true; break; } @@ -349,11 +348,6 @@ ShuttleControl::on_button_release_event (GdkEventButton* ev) return true; case 2: - if (_session->transport_rolling()) { - _session->request_transport_speed (1.0, Config->get_shuttle_behaviour() == Wheel); - } - return true; - case 3: default: return true; diff --git a/headless/load_session.cc b/headless/load_session.cc index b9d2ad192b..10971ce25a 100644 --- a/headless/load_session.cc +++ b/headless/load_session.cc @@ -273,7 +273,7 @@ main (int argc, char* argv[]) signal (SIGTERM, wearedone); #endif - s->request_transport_speed (1.0); + s->request_roll (); char msg; do { diff --git a/libs/ardour/session_midi.cc b/libs/ardour/session_midi.cc index 5dc065aebf..752d865998 100644 --- a/libs/ardour/session_midi.cc +++ b/libs/ardour/session_midi.cc @@ -99,7 +99,7 @@ void Session::spp_start () { if (Config->get_mmc_control ()) { - request_transport_speed (1.0); + request_roll (TRS_MIDIClock); } } @@ -121,7 +121,7 @@ void Session::mmc_deferred_play (MIDI::MachineControl &/*mmc*/) { if (Config->get_mmc_control ()) { - request_transport_speed (1.0); + request_roll (TRS_MMC); } } @@ -154,7 +154,7 @@ Session::mmc_record_strobe (MIDI::MachineControl &/*mmc*/) g_atomic_int_set (&_record_status, Enabled); RecordStateChanged (); /* EMIT SIGNAL */ - request_transport_speed (1.0); + request_roll (TRS_MMC); } else { diff --git a/libs/surfaces/control_protocol/basic_ui.cc b/libs/surfaces/control_protocol/basic_ui.cc index 7192f3ae55..db173cc624 100644 --- a/libs/surfaces/control_protocol/basic_ui.cc +++ b/libs/surfaces/control_protocol/basic_ui.cc @@ -189,12 +189,14 @@ void BasicUI::rewind () { session->request_transport_speed (get_transport_speed() - 1.5, false); + session->request_roll (); } void BasicUI::ffwd () { session->request_transport_speed (get_transport_speed() + 1.5, false); + session->request_roll (); } void @@ -588,7 +590,7 @@ BasicUI::toggle_roll (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(), MustRoll); } else { - session->request_transport_speed (1.0f); + session->request_roll (TRS_UI); } } } diff --git a/libs/surfaces/faderport8/actions.cc b/libs/surfaces/faderport8/actions.cc index 2e6b5c7b00..8411ab2c26 100644 --- a/libs/surfaces/faderport8/actions.cc +++ b/libs/surfaces/faderport8/actions.cc @@ -137,7 +137,7 @@ FaderPort8::button_play () { if (transport_rolling ()) { if (get_transport_speed() != 1.0) { - session->request_transport_speed (1.0); + session->request_roll (TRS_UI); } else { transport_stop (); } @@ -316,13 +316,15 @@ FaderPort8::button_varispeed (bool ffw) // switch play direction, if needed if (ffw) { if (get_transport_speed() <= 0) { - session->request_transport_speed (1.0); + session->request_transport_speed (1.0, false); + session->request_roll (TRS_UI); return ; } } else { if (get_transport_speed() >= 0) { - session->request_transport_speed (-1.0); - return ; + session->request_transport_speed (-1.0, false); + session->request_roll (TRS_UI); + return; } } // incrementally increase speed by semitones @@ -331,6 +333,7 @@ FaderPort8::button_varispeed (bool ffw) float speed = exp2f(1.0/12.0) * get_transport_speed(); speed = std::max (-maxspeed, std::min (maxspeed, speed)); session->request_transport_speed (speed, false); + session->request_roll (TRS_UI); } #ifdef FP8_MUTESOLO_UNDO diff --git a/libs/surfaces/frontier/tranzport/tranzport_control_protocol.cc b/libs/surfaces/frontier/tranzport/tranzport_control_protocol.cc index a55b718415..6bef2ad54d 100644 --- a/libs/surfaces/frontier/tranzport/tranzport_control_protocol.cc +++ b/libs/surfaces/frontier/tranzport/tranzport_control_protocol.cc @@ -1718,6 +1718,7 @@ TranzportControlProtocol::shuttle () session->request_transport_speed_nonzero (get_transport_speed() - 0.1); } } + session->request_roll (); } void diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc index 11b8c37b91..03cb71ae47 100644 --- a/libs/surfaces/osc/osc.cc +++ b/libs/surfaces/osc/osc.cc @@ -1305,7 +1305,7 @@ OSC::osc_toggle_roll (bool ret2strt) if (session->get_play_loop() && Config->get_loop_is_mode()) { session->request_locate (session->locations()->auto_loop_location()->start(), MustRoll); } else { - session->request_transport_speed (1.0f); + session->request_roll (TRS_UI); } } return 0; diff --git a/libs/surfaces/tranzport/wheel.cc b/libs/surfaces/tranzport/wheel.cc index 6d86f76733..9f193c5c5d 100644 --- a/libs/surfaces/tranzport/wheel.cc +++ b/libs/surfaces/tranzport/wheel.cc @@ -199,4 +199,5 @@ TranzportControlProtocol::shuttle () session->request_transport_speed_nonzero (get_transport_speed() - 0.1); } } + session->request_roll (); } diff --git a/share/scripts/_cron.lua b/share/scripts/_cron.lua index 4dfa927e47..c179418dbf 100644 --- a/share/scripts/_cron.lua +++ b/share/scripts/_cron.lua @@ -23,7 +23,7 @@ function factory () -- event at 09:30:00 UTC (here: rec-arm + roll) if (now >= hhmmss (09, 30, 00) and _last_time < hhmmss (09, 30, 00)) then Session:maybe_enable_record (false) - Session:request_transport_speed (1.0, true, ARDOUR.TransportRequestSource.TRS_UI) + Session:request_roll (ARDOUR.TransportRequestSource.TRS_UI) end -- event at 09:32:00 UTC (here: rec-stop) diff --git a/share/scripts/_midi_rec_start.lua b/share/scripts/_midi_rec_start.lua index 0e084c935f..6051ef0923 100644 --- a/share/scripts/_midi_rec_start.lua +++ b/share/scripts/_midi_rec_start.lua @@ -26,7 +26,7 @@ function factory () -- maybe-enable may fail if there are no tracks or step-entry is active -- roll transport if record-enable suceeded: if ARDOUR.Session.RecordState.Enabled == Session:record_status() then - Session:request_transport_speed (1.0, true, ARDOUR.TransportRequestSource.TRS_UI) -- ...and go. + Session:request_roll (ARDOUR.TransportRequestSource.TRS_UI) -- ...and go. end return end diff --git a/share/scripts/voice_activate.lua b/share/scripts/voice_activate.lua index 634653b809..f9f353f4f8 100644 --- a/share/scripts/voice_activate.lua +++ b/share/scripts/voice_activate.lua @@ -44,7 +44,7 @@ function dsp_runmap (bufs, in_map, out_map, n_samples, offset) if b ~= ARDOUR.ChanMapping.Invalid then -- check if channel is mapped local a = ARDOUR.DSP.compute_peak(bufs:get_audio(b):data(offset), n_samples, 0) -- compute digital peak if a > threshold then - Session:request_transport_speed (1.0, true, ARDOUR.TransportRequestSource.TRS_UI) + Session:request_roll (ARDOUR.TransportRequestSource.TRS_UI) end if a > level then level = a end -- max level of all channels end diff --git a/tools/split_benchmark.lua b/tools/split_benchmark.lua index ae8ea9769a..12bb5f7043 100644 --- a/tools/split_benchmark.lua +++ b/tools/split_benchmark.lua @@ -20,7 +20,7 @@ ARDOUR.LuaAPI.usleep (100000) s:goto_start() s:maybe_enable_record() -s:request_transport_speed(1.0, true, 4) +s:request_roll (4) ARDOUR.LuaAPI.usleep (1000000 * reclen) s:request_stop (false, false, 4);