diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2020-03-10 11:39:39 -0600 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2020-03-10 11:39:39 -0600 |
commit | aad60e37b980e5c39d308f4dfb7c3092df95d30b (patch) | |
tree | e0df95c563707e0eaf81da7424f89944c70b8b6c /libs/ardour/session_transport.cc | |
parent | 843907654c8bb694d58e6efb1d313c735eb4ec4d (diff) |
small adjustments to TransportMaster API to better accomodate the "ignore/accept commands" concept
Diffstat (limited to 'libs/ardour/session_transport.cc')
-rw-r--r-- | libs/ardour/session_transport.cc | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc index db3469b93f..bafde46674 100644 --- a/libs/ardour/session_transport.cc +++ b/libs/ardour/session_transport.cc @@ -864,8 +864,14 @@ Session::request_transport_speed (double speed, bool as_default, TransportReques return; } - if (should_ignore_transport_request (origin, TR_Speed)) { - return; + if (speed == 1. || speed == 0. || speed == -1.) { + if (should_ignore_transport_request (origin, TR_StartStop)) { + return; + } + } else { + if (should_ignore_transport_request (origin, TR_Speed)) { + return; + } } SessionEvent* ev = new SessionEvent (SessionEvent::SetTransportSpeed, SessionEvent::Add, SessionEvent::Immediate, 0, speed); @@ -881,10 +887,6 @@ Session::request_transport_speed (double speed, bool as_default, TransportReques void Session::request_transport_speed_nonzero (double speed, bool as_default, TransportRequestSource origin) { - if (should_ignore_transport_request (origin, TransportRequestType (TR_Speed|TR_Start))) { - return; - } - if (speed == 0) { speed = DBL_EPSILON; } @@ -900,7 +902,7 @@ Session::request_stop (bool abort, bool clear_state, TransportRequestSource orig return; } - if (should_ignore_transport_request (origin, TR_Stop)) { + if (should_ignore_transport_request (origin, TR_StartStop)) { return; } |