Add Session::start_transport_from_processor() (for process() context use only)

This commit is contained in:
Paul Davis 2021-07-19 22:36:37 -06:00
parent 8eed420ad4
commit e52eead1b6
2 changed files with 10 additions and 0 deletions

View File

@ -485,6 +485,7 @@ public:
double default_play_speed (); double default_play_speed ();
void reset_transport_speed (TransportRequestSource origin = TRS_UI); void reset_transport_speed (TransportRequestSource origin = TRS_UI);
void start_transport_from_processor ();
void request_transport_speed (double speed, TransportRequestSource origin = TRS_UI); void request_transport_speed (double speed, TransportRequestSource origin = TRS_UI);
void request_default_play_speed (double speed, TransportRequestSource origin = TRS_UI); void request_default_play_speed (double speed, TransportRequestSource origin = TRS_UI);
void request_transport_speed_nonzero (double, TransportRequestSource origin = TRS_UI); void request_transport_speed_nonzero (double, TransportRequestSource origin = TRS_UI);

View File

@ -84,6 +84,7 @@ using namespace Temporal;
#define TFSM_EVENT(evtype) { _transport_fsm->enqueue (new TransportFSM::Event (evtype)); } #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_STOP(abort,clear) { _transport_fsm->enqueue (new TransportFSM::Event (TransportFSM::StopTransport,abort,clear)); }
#define TFSM_LOCATE(target,ltd,loop,force) { _transport_fsm->enqueue (new TransportFSM::Event (TransportFSM::Locate,target,ltd,loop,force)); } #define TFSM_LOCATE(target,ltd,loop,force) { _transport_fsm->enqueue (new TransportFSM::Event (TransportFSM::Locate,target,ltd,loop,force)); }
#define TFSM_SPEED(speed) { _transport_fsm->enqueue (new TransportFSM::Event (speed)); } #define TFSM_SPEED(speed) { _transport_fsm->enqueue (new TransportFSM::Event (speed)); }
@ -443,6 +444,14 @@ Session::stop_transport (bool abort, bool clear_state)
realtime_stop (abort, clear_state); realtime_stop (abort, clear_state);
} }
/** Called from the process thread */
void
Session::start_transport_from_processor ()
{
ENSURE_PROCESS_THREAD;
TFSM_ROLL();
}
/** Called from the process thread */ /** Called from the process thread */
void void
Session::start_transport (bool after_loop) Session::start_transport (bool after_loop)