Prototype for the @a timebase_callback used to provide extended
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, 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
jack_transport_locate(). These functions are realtime-safe, the @a
timebase_callback can call them directly.
@param state current transport state.
@param nframes number of frames in current period.
@param pos address of the position structure for the next cycle; @a
pos->frame will be its frame number. If @a new_pos is FALSE, this
structure contains extended position information from the current
cycle. If TRUE, it contains whatever was set by the requester.
The @a timebase_callback's task is to update the extended
information here.
@param new_pos TRUE (non-zero) for a newly requested @a pos, or for
the first cycle after the @a timebase_callback is defined.
@param arg the argument supplied by jack_set_timebase_callback().
Prototype for the @a timebase_callback used to provide extended 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, 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 jack_transport_locate(). These functions are realtime-safe, the @a timebase_callback can call them directly.
@param state current transport state. @param nframes number of frames in current period. @param pos address of the position structure for the next cycle; @a pos->frame will be its frame number. If @a new_pos is FALSE, this structure contains extended position information from the current cycle. If TRUE, it contains whatever was set by the requester. The @a timebase_callback's task is to update the extended information here. @param new_pos TRUE (non-zero) for a newly requested @a pos, or for the first cycle after the @a timebase_callback is defined. @param arg the argument supplied by jack_set_timebase_callback().