use new Session transport API calls in GUI

This commit is contained in:
Paul Davis 2021-04-15 23:20:59 -06:00
parent 0bccc4bffd
commit 52b7e68102
9 changed files with 21 additions and 23 deletions

View file

@ -5467,7 +5467,7 @@ ScrubDrag::finished (GdkEvent* /*event*/, bool movement_occurred)
{ {
if (movement_occurred && _editor->session()) { if (movement_occurred && _editor->session()) {
/* make sure we stop */ /* make sure we stop */
_editor->session()->request_transport_speed (0.0); _editor->session()->request_stop ();
} }
} }

View file

@ -313,7 +313,8 @@ Editor::mouse_mode_toggled (MouseMode m)
if (_session && mouse_mode == MouseAudition) { if (_session && mouse_mode == MouseAudition) {
/* stop transport and reset default speed to avoid oddness with /* stop transport and reset default speed to avoid oddness with
auditioning */ auditioning */
_session->request_transport_speed (0.0, true); _session->request_stop ();
_session->request_transport_speed (1.0);
} }
const bool was_internal = internal_editing(); const bool was_internal = internal_editing();
@ -1788,7 +1789,7 @@ Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemT
} }
} else if (_session) { } else if (_session) {
/* make sure we stop */ /* make sure we stop */
_session->request_transport_speed (0.0); _session->request_stop ();
} }
break; break;

View file

@ -4012,7 +4012,7 @@ Editor::freeze_route ()
} }
/* stop transport before we start. this is important */ /* stop transport before we start. this is important */
_session->request_transport_speed (0.0); _session->request_stop();
/* wait for just a little while, because the above call is asynchronous */ /* wait for just a little while, because the above call is asynchronous */
int timeout = 10; int timeout = 10;

View file

@ -269,11 +269,7 @@ ShuttleControl::reset_speed ()
return; return;
} }
if (_session->transport_rolling()) { _session->reset_transport_speed ();
_session->request_transport_speed (1.0, true);
} else {
_session->request_transport_speed (0.0, true);
}
} }
void void
@ -307,7 +303,7 @@ ShuttleControl::on_button_press_event (GdkEventButton* ev)
case 1: case 1:
if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) { if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
if (_session->transport_rolling()) { if (_session->transport_rolling()) {
_session->request_transport_speed (1.0); _session->reset_transport_speed ();
} }
} else { } else {
add_modal_grab (); add_modal_grab ();
@ -345,11 +341,7 @@ ShuttleControl::on_button_release_event (GdkEventButton* ev)
gdk_pointer_ungrab (GDK_CURRENT_TIME); gdk_pointer_ungrab (GDK_CURRENT_TIME);
if (Config->get_shuttle_behaviour() == Sprung) { if (Config->get_shuttle_behaviour() == Sprung) {
if (shuttle_speed_on_grab == 0 ) { _session->reset_transport_speed();
_session->request_stop ();
} else {
_session->request_transport_speed (shuttle_speed_on_grab);
}
} else { } else {
mouse_shuttle (ev->x, true); mouse_shuttle (ev->x, true);
} }
@ -567,6 +559,12 @@ ShuttleControl::use_shuttle_fract (bool force, bool zero_ok)
} else { } else {
_session->request_transport_speed_nonzero (speed, Config->get_shuttle_behaviour() == Wheel); _session->request_transport_speed_nonzero (speed, Config->get_shuttle_behaviour() == Wheel);
} }
if (speed != 0 && !_session->transport_state_rolling()) {
_session->request_roll ();
} else if (speed == 0 && zero_ok && _session->transport_state_rolling()) {
_session->request_stop ();
}
} }
} }
@ -721,7 +719,7 @@ ShuttleControl::parameter_changed (std::string p)
/* reset current speed and /* reset current speed and
revert to 1.0 as the default revert to 1.0 as the default
*/ */
_session->request_transport_speed (1.0); _session->reset_transport_speed ();
/* redraw when speed changes */ /* redraw when speed changes */
} }
} else { } else {

View file

@ -200,7 +200,7 @@ BasicUI::ffwd ()
void void
BasicUI::transport_stop () BasicUI::transport_stop ()
{ {
session->request_transport_speed (0.0); session->request_stop ();
} }
bool bool
@ -283,7 +283,7 @@ BasicUI::transport_play (bool from_last_start)
} }
if (!rolling) { if (!rolling) {
session->request_transport_speed (1.0f, false); session->request_roll ();
} }
} }

View file

@ -3022,7 +3022,7 @@ OSC::scrub (float delta, lo_message msg)
session->request_transport_speed (-1); session->request_transport_speed (-1);
} }
} else { } else {
session->request_transport_speed (0); session->request_stop ();
} }
return 0; return 0;
@ -5896,7 +5896,6 @@ OSC::periodic (void)
int64_t diff = now - scrub_time; int64_t diff = now - scrub_time;
if (diff > 120000) { if (diff > 120000) {
scrub_speed = 0; scrub_speed = 0;
session->request_transport_speed (0);
// locate to the place PH was at last tick // locate to the place PH was at last tick
session->request_locate (scrub_place, MustStop); session->request_locate (scrub_place, MustStop);
} }

View file

@ -29,7 +29,7 @@ function factory ()
-- event at 09:32:00 UTC (here: rec-stop) -- event at 09:32:00 UTC (here: rec-stop)
if (now >= hhmmss (09, 32, 00) and _last_time < hhmmss (09, 32, 00)) then if (now >= hhmmss (09, 32, 00) and _last_time < hhmmss (09, 32, 00)) then
Session:disable_record (false, false) Session:disable_record (false, false)
Session:request_transport_speed (0.0, true, ARDOUR.TransportRequestSource.TRS_UI) Session:request_stop (false, false, TRS_UI);
end end
_last_time = now _last_time = now

View file

@ -28,7 +28,7 @@ function factory (params)
end end
a = a + n_samples a = a + n_samples
if (a > timeout * Session:sample_rate()) then if (a > timeout * Session:sample_rate()) then
Session:request_transport_speed(0.0, true, ARDOUR.TransportRequestSource.TRS_Engine) Session:request_stop (false, false, TRS_UI);
end end
end end
end end

View file

@ -22,7 +22,7 @@ s:maybe_enable_record()
s:request_transport_speed(1.0, true, 4) s:request_transport_speed(1.0, true, 4)
ARDOUR.LuaAPI.usleep (1000000 * reclen) ARDOUR.LuaAPI.usleep (1000000 * reclen)
s:request_transport_speed(0.0, false, 4) s:request_stop (false, false, 4);
for t in s:get_tracks():iter() do for t in s:get_tracks():iter() do
t:rec_enable_control():set_value(0, PBD.GroupControlDisposition.UseGroup) t:rec_enable_control():set_value(0, PBD.GroupControlDisposition.UseGroup)