add Session::request_transport_roll()
Start separation of API for controlling rolling state from that used for speed
This commit is contained in:
parent
7cbecaedff
commit
ec367f49e1
|
@ -465,6 +465,7 @@ public:
|
|||
|
||||
void request_roll_at_and_return (samplepos_t start, samplepos_t return_to);
|
||||
void request_bounded_roll (samplepos_t start, samplepos_t end);
|
||||
void request_roll (TransportRequestSource origin = TRS_UI);
|
||||
void request_stop (bool abort = false, bool clear_state = false, TransportRequestSource origin = TRS_UI);
|
||||
void request_locate (samplepos_t sample, LocateTransportDisposition ltd = RollIfAppropriate, TransportRequestSource origin = TRS_UI);
|
||||
|
||||
|
|
|
@ -898,6 +898,23 @@ Session::request_transport_speed_nonzero (double speed, bool as_default, Transpo
|
|||
request_transport_speed (speed, as_default);
|
||||
}
|
||||
|
||||
void
|
||||
Session::request_roll (TransportRequestSource origin)
|
||||
{
|
||||
if (synced_to_engine()) {
|
||||
_engine.transport_stop ();
|
||||
return;
|
||||
}
|
||||
|
||||
if (should_ignore_transport_request (origin, TR_StartStop)) {
|
||||
return;
|
||||
}
|
||||
|
||||
SessionEvent* ev = new SessionEvent (SessionEvent::SetTransportSpeed, SessionEvent::Add, SessionEvent::Immediate, audible_sample(), _default_engine_speed * _default_transport_speed);
|
||||
DEBUG_TRACE (DEBUG::Transport, string_compose ("Request transport roll, requested %1 from %2 * %3 transport @ %4\n", _default_engine_speed * _default_transport_speed, _default_engine_speed, _default_transport_speed, _transport_sample));
|
||||
queue_event (ev);
|
||||
}
|
||||
|
||||
void
|
||||
Session::request_stop (bool abort, bool clear_state, TransportRequestSource origin)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue
Block a user