mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-09 08:14:58 +01:00
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
2 changed files with 18 additions and 0 deletions
|
|
@ -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…
Add table
Add a link
Reference in a new issue