summaryrefslogtreecommitdiff
path: root/libs/ardour/session_transport.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2020-03-10 11:39:39 -0600
committerPaul Davis <paul@linuxaudiosystems.com>2020-03-10 11:39:39 -0600
commitaad60e37b980e5c39d308f4dfb7c3092df95d30b (patch)
treee0df95c563707e0eaf81da7424f89944c70b8b6c /libs/ardour/session_transport.cc
parent843907654c8bb694d58e6efb1d313c735eb4ec4d (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.cc16
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;
}