diff --git a/doc/transport.dox b/doc/transport.dox index 4290ec2..1419ade 100644 --- a/doc/transport.dox +++ b/doc/transport.dox @@ -65,12 +65,13 @@ master active at a time. If no client is registered as timebase master, frame numbers will be the only position information available. The timebase master registers a callback that updates position -information while the transport is rolling. This function is called -immediately after the process callback in the same thread whenever the -transport is rolling, or when any client has set a new position in the -previous cycle. The first cycle after jack_set_timebase_callback() is -also treated as a new position. Its output affects the following -process cycle. +information while the transport is rolling. Its output affects the +following process cycle. This function is called immediately after +the process callback in the same thread whenever the transport is +rolling, or when any client has set a new position in the previous +cycle. The first cycle after jack_set_timebase_callback() is also +treated as a new position, or the first cycle after jack_activate() if +the client had been inactive. @code typedef int (*JackTimebaseCallback)(jack_transport_state_t state, diff --git a/jack/transport.h b/jack/transport.h index f0ff267..f91fbc9 100644 --- a/jack/transport.h +++ b/jack/transport.h @@ -142,11 +142,12 @@ typedef int (*JackSyncCallback)(jack_transport_state_t state, * Register (or unregister) as a slow-sync client, one that cannot * respond immediately to transport position changes. * - * The @a sync_callback will be invoked on the first process cycle - * after its registration is complete. After that, it runs according - * to the ::JackSyncCallback rules. Clients that don't set a @a - * sync_callback are assumed to be ready immediately any time the - * transport wants to start. + * The @a sync_callback will be invoked in the first process cycle + * after its registration is complete, or in the first cycle after + * jack_activate() if the client had been inactive. After that, it + * runs according to the ::JackSyncCallback rules. Clients that don't + * set a @a sync_callback are assumed to be ready immediately any time + * the transport wants to start. * * @param client the JACK client structure. * @param sync_callback is a realtime function that returns TRUE when @@ -182,14 +183,15 @@ int jack_set_sync_timeout (jack_client_t *client, /** * Prototype for the @a timebase_callback used to provide extended - * position information. + * position information. Its output affects all of the following + * process cycle. This realtime function must not wait. * * This function is called immediately after process() in the same * thread whenever the transport is rolling, or when any client has * requested a new position in the previous cycle. The first cycle * after jack_set_timebase_callback() is also treated as a new - * position. This realtime function must not wait. Its output - * affects all of the following process cycle. + * position, or the first cycle after jack_activate() if the client + * had been inactive. * * The timebase master may not use its @a pos argument to set @a * pos->frame. To change position, use jack_transport_reposition() or