fix/improve BasicUI's methods for rewind/ffwd/play (used by various surfaces)

This commit is contained in:
Paul Davis 2021-04-19 15:48:04 -06:00
parent 4b095aad62
commit f94aec5a59

View file

@ -188,14 +188,22 @@ BasicUI::remove_marker_at_playhead ()
void void
BasicUI::rewind () BasicUI::rewind ()
{ {
session->request_transport_speed (get_transport_speed() - 1.5, false); if (session->transport_speed() < 0) {
session->request_transport_speed (get_transport_speed() - 1.5, false);
} else {
session->request_transport_speed (-1.5, false);
}
session->request_roll (); session->request_roll ();
} }
void void
BasicUI::ffwd () BasicUI::ffwd ()
{ {
session->request_transport_speed (get_transport_speed() + 1.5, false); if (session->transport_speed() > 0) {
session->request_transport_speed (get_transport_speed() + 1.5, false);
} else {
session->request_transport_speed (1.5, false);
}
session->request_roll (); session->request_roll ();
} }
@ -284,7 +292,9 @@ BasicUI::transport_play (bool from_last_start)
session->request_play_range (0, true); session->request_play_range (0, true);
} }
if (!rolling) { if (rolling) {
session->request_transport_speed (1.0, TRS_UI);
} else {
session->request_roll (); session->request_roll ();
} }
} }