21 #ifndef __JackTransportEngine__    22 #define __JackTransportEngine__    24 #include "JackAtomicArrayState.h"    25 #include "JackCompilerDeps.h"    32     TransportCommandNone = 0,
    33     TransportCommandStart = 1,
    34     TransportCommandStop = 2,
    35 } transport_command_t;
    90 class JackClientInterface;
    98         jack_transport_state_t fTransportState;
    99         volatile transport_command_t fTransportCmd;
   100         transport_command_t fPreviousCmd;               
   101         jack_time_t fSyncTimeout;
   107         SInt32 fWriteCounter;
   114         void SyncTimeout(jack_nframes_t frame_rate, jack_nframes_t buffer_size);
   123         void SetCommand(transport_command_t state)
   125             fTransportCmd = state;
   128         jack_transport_state_t GetState()
 const   130             return fTransportState;
   133         void SetState(jack_transport_state_t state)
   135             fTransportState = state;
   141         int ResetTimebase(
int refnum);
   146         int SetTimebaseMaster(
int refnum, 
bool conditionnal);
   148         void GetTimebaseMaster(
int& refnum, 
bool& conditionnal)
   150             refnum = fTimeBaseMaster;
   151             conditionnal = fConditionnal;
   157         void CycleBegin(jack_nframes_t frame_rate, jack_time_t time);
   162         void CycleEnd(
JackClientInterface** table, jack_nframes_t frame_rate, jack_nframes_t buffer_size);
   167         void SetSyncTimeout(jack_time_t timeout)
   169             fSyncTimeout = timeout;
   174         jack_unique_t GenerateUniqueID()
   176             return (jack_unique_t)INC_ATOMIC(&fWriteCounter);
   183         jack_nframes_t GetCurrentFrame();
   187         bool GetNetworkSync()
 const   192         void SetNetworkSync(
bool sync)
   197 } POST_PACKED_STRUCTURE;
 
A class to handle several states in a lock-free manner.