diff --git a/common/JackClient.cpp b/common/JackClient.cpp index 544ef34a..1e62734b 100644 --- a/common/JackClient.cpp +++ b/common/JackClient.cpp @@ -732,18 +732,16 @@ void JackClient::CallTimebaseCallback() { JackTransportEngine& transport = GetEngineControl()->fTransport; - if (GetClientControl()->fRefNum == transport.GetTimebaseMaster()) { // Client *is* timebase... + if (GetClientControl()->fRefNum == transport.GetTimebaseMaster() && fTimebase) { // Client *is* timebase... jack_transport_state_t transport_state = transport.GetState(); jack_position_t* cur_pos = transport.WriteNextStateStart(1); if (transport_state == JackTransportRolling) { - assert(fTimebase); - fTimebase(transport_state, GetEngineControl()->fBufferSize, cur_pos, false, fTimebaseArg); + fTimebase(transport_state, GetEngineControl()->fBufferSize, cur_pos, false, fTimebaseArg); } else if (GetClientControl()->fTransportTimebase) { - assert(fTimebase); fTimebase(transport_state, GetEngineControl()->fBufferSize, cur_pos, true, fTimebaseArg); - GetClientControl()->fTransportTimebase = true; // Callback is called only once with "new_pos" = true + GetClientControl()->fTransportTimebase = false; // Callback is called only once with "new_pos" = true } transport.WriteNextStateStop(1);