summaryrefslogtreecommitdiff
path: root/libs/surfaces
diff options
context:
space:
mode:
authorBen Loftis <ben@harrisonconsoles.com>2020-02-23 08:40:10 -0600
committerBen Loftis <ben@harrisonconsoles.com>2020-02-23 09:02:21 -0600
commit276baee8ad4931b62613aa38f214ade45072ecf5 (patch)
treebd13d4269052308c081ceb3a0d7c6d2dbf2c054d /libs/surfaces
parent8efb642c460b8829dc1d5181c72d9734ab488e25 (diff)
surfaces transport hotfix: BasicUI: prefer actual_speed() and transport_stopped_or_stopping() for current Transport FSM
Diffstat (limited to 'libs/surfaces')
-rw-r--r--libs/surfaces/control_protocol/basic_ui.cc24
-rw-r--r--libs/surfaces/control_protocol/control_protocol/basic_ui.h4
2 files changed, 18 insertions, 10 deletions
diff --git a/libs/surfaces/control_protocol/basic_ui.cc b/libs/surfaces/control_protocol/basic_ui.cc
index 73f0792826..a02879902f 100644
--- a/libs/surfaces/control_protocol/basic_ui.cc
+++ b/libs/surfaces/control_protocol/basic_ui.cc
@@ -188,13 +188,13 @@ BasicUI::remove_marker_at_playhead ()
void
BasicUI::rewind ()
{
- session->request_transport_speed (session->actual_speed() - 1.5);
+ session->request_transport_speed (get_transport_speed() - 1.5);
}
void
BasicUI::ffwd ()
{
- session->request_transport_speed (session->transport_speed() + 1.5);
+ session->request_transport_speed (get_transport_speed() + 1.5);
}
void
@@ -212,19 +212,19 @@ BasicUI::stop_button_onoff () const
bool
BasicUI::play_button_onoff () const
{
- return session->actual_speed() == 1.0;
+ return get_transport_speed() == 1.0;
}
bool
BasicUI::ffwd_button_onoff () const
{
- return session->actual_speed() > 1.0;
+ return get_transport_speed() > 1.0;
}
bool
BasicUI::rewind_button_onoff () const
{
- return session->actual_speed() < 0.0;
+ return get_transport_speed() < 0.0;
}
bool
@@ -258,7 +258,7 @@ BasicUI::transport_play (bool from_last_start)
}
#endif
- bool rolling = session->transport_rolling();
+ bool rolling = transport_rolling();
if (session->get_play_loop()) {
@@ -355,9 +355,15 @@ BasicUI::set_transport_speed (double speed)
}
double
-BasicUI::get_transport_speed ()
+BasicUI::get_transport_speed () const
{
- return session->transport_speed ();
+ return session->actual_speed ();
+}
+
+double
+BasicUI::transport_rolling () const
+{
+ return !session->transport_stopped_or_stopping ();
}
void
@@ -548,7 +554,7 @@ BasicUI::toggle_roll (bool roll_out_of_bounded_mode)
}
}
- bool rolling = session->transport_rolling();
+ bool rolling = transport_rolling();
if (rolling) {
diff --git a/libs/surfaces/control_protocol/control_protocol/basic_ui.h b/libs/surfaces/control_protocol/control_protocol/basic_ui.h
index 7d5904544f..3595f20c5a 100644
--- a/libs/surfaces/control_protocol/control_protocol/basic_ui.h
+++ b/libs/surfaces/control_protocol/control_protocol/basic_ui.h
@@ -68,7 +68,9 @@ class LIBCONTROLCP_API BasicUI {
void transport_stop ();
void transport_play (bool jump_back = false);
void set_transport_speed (double speed);
- double get_transport_speed ();
+
+ double get_transport_speed () const;
+ double transport_rolling () const;
void jump_by_seconds (double sec, ARDOUR::LocateTransportDisposition ltd = ARDOUR::RollIfAppropriate);
void jump_by_bars (double bars, ARDOUR::LocateTransportDisposition ltd = ARDOUR::RollIfAppropriate);