13
0

new SessionEvents for start/stop transport

This commit is contained in:
Paul Davis 2021-04-15 23:09:41 -06:00
parent aeed50b1cc
commit 5a159abe1f
2 changed files with 11 additions and 0 deletions

View File

@ -63,6 +63,8 @@ public:
SetTimecodeTransmission,
Skip,
SetTransportMaster,
StartRoll,
EndRoll,
/* only one of each of these events can be queued at any one time */

View File

@ -61,6 +61,7 @@ using namespace PBD;
using namespace std;
#define TFSM_EVENT(evtype) { _transport_fsm->enqueue (new TransportFSM::Event (evtype)); }
#define TFSM_ROLL() { _transport_fsm->enqueue (new TransportFSM::Event (TransportFSM::StartTransport)); }
#define TFSM_STOP(abort,clear) { _transport_fsm->enqueue (new TransportFSM::Event (TransportFSM::StopTransport,abort,clear)); }
#define TFSM_SPEED(speed,abort,clear_state,as_default) { _transport_fsm->enqueue (new TransportFSM::Event (TransportFSM::SetSpeed,speed,abort,clear_state,as_default)); }
#define TFSM_LOCATE(target,ltd,flush,loop,force) { _transport_fsm->enqueue (new TransportFSM::Event (TransportFSM::Locate,target,ltd,flush,loop,force)); }
@ -914,6 +915,14 @@ Session::process_event (SessionEvent* ev)
TFSM_SPEED (ev->speed, ev->yes_or_no, ev->second_yes_or_no, ev->third_yes_or_no);
break;
case SessionEvent::StartRoll:
TFSM_ROLL ();
break;
case SessionEvent::EndRoll:
TFSM_STOP (ev->yes_or_no, ev->second_yes_or_no);
break;
case SessionEvent::SetTransportMaster:
/* do not allow changing the transport master if we're already
using one.