diff --git a/configure.ac b/configure.ac index 32f3a3e..8d2c46d 100644 --- a/configure.ac +++ b/configure.ac @@ -15,7 +15,7 @@ dnl changes are made dnl --- JACK_MAJOR_VERSION=0 JACK_MINOR_VERSION=99 -JACK_MICRO_VERSION=17 +JACK_MICRO_VERSION=18 dnl --- dnl HOWTO: updating the jack protocol version diff --git a/jackd/transengine.c b/jackd/transengine.c index 78a7de1..be18b10 100644 --- a/jackd/transengine.c +++ b/jackd/transengine.c @@ -395,6 +395,7 @@ jack_transport_cycle_end (jack_engine_t *engine) { jack_control_t *ectl = engine->control; transport_command_t cmd; /* latest transport command */ + jack_transport_state_t old_state; /* Promote pending_time to current_time. Maintain the usecs, * frame_rate and frame values, clients may not set them. */ @@ -404,6 +405,8 @@ jack_transport_cycle_end (jack_engine_t *engine) ectl->current_time = ectl->pending_time; ectl->new_pos = ectl->pending_pos; + old_state = ectl->transport_state; + /* check sync results from previous cycle */ if (ectl->transport_state == JackTransportStarting) { if ((ectl->sync_remain == 0) || @@ -425,6 +428,7 @@ jack_transport_cycle_end (jack_engine_t *engine) cmd = TransportCommandNone; /* state transition switch */ + switch (ectl->transport_state) { case JackTransportStopped: @@ -476,7 +480,7 @@ jack_transport_cycle_end (jack_engine_t *engine) } /* update timebase, if needed */ - if (ectl->transport_state == JackTransportRolling) { + if (old_state == JackTransportRolling) { ectl->pending_time.frame = ectl->current_time.frame + ectl->buffer_size; }