mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-12 01:26:31 +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_roll_at_and_return (samplepos_t start, samplepos_t return_to);
|
||||||
void request_bounded_roll (samplepos_t start, samplepos_t end);
|
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_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);
|
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);
|
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
|
void
|
||||||
Session::request_stop (bool abort, bool clear_state, TransportRequestSource origin)
|
Session::request_stop (bool abort, bool clear_state, TransportRequestSource origin)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue