#include <jack/types.h>
Go to the source code of this file.
|
|
|
all valid position bits |
|
Unique ID (opaque) |
|
Prototype for the sync_callback defined by slow-sync clients. When the client is active, this callback is invoked just before process() in the same thread. This occurs once after registration, then subsequently whenever some client requests a new position, or the transport enters the JackTransportStarting state. This realtime function must not wait. The transport state will be:
|
|
Prototype for the 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 pos argument to set pos->frame. To change position, use jack_transport_reposition() or jack_transport_locate(). These functions are realtime-safe, the timebase_callback can call them directly.
|
|
Optional struct jack_position_t fields. |
|
Optional struct jack_transport_info_t fields.
|
|
Transport states. |
|
Return an estimate of the current transport frame, including any time elapsed since the last transport positional update.
|
|
Gets the current transport info structure (deprecated).
|
|
Called by the timebase master to release itself from that responsibility. If the timebase master releases the timebase or leaves the JACK graph for any reason, the JACK engine takes over at the start of the next process cycle. The transport state does not change. If rolling, it continues to play, with frame numbers as the only available position information.
|
|
Register (or unregister) as a slow-sync client, one that cannot respond immediately to transport position changes. The sync_callback will be invoked at the first available opportunity after its registration is complete. If the client is currently active this will be the following process cycle, otherwise it will be the first cycle after calling jack_activate(). After that, it runs according to the JackSyncCallback rules. Clients that don't set a sync_callback are assumed to be ready immediately any time the transport wants to start.
|
|
Set the timeout value for slow-sync clients. This timeout prevents unresponsive slow-sync clients from completely halting the transport mechanism. The default is two seconds. When the timeout expires, the transport starts rolling, even if some slow-sync clients are still unready. The sync_callbacks of these clients continue being invoked, giving them a chance to catch up.
|
|
Register as timebase master for the JACK subsystem. The timebase master registers a callback that updates extended position information such as beats or timecode whenever necessary. Without this extended information, there is no need for this function. There is never more than one master at a time. When a new client takes over, the former timebase_callback is no longer called. Taking over the timebase may be done conditionally, so it fails if there was a master already.
|
|
Set the transport info structure (deprecated).
|
|
Reposition the transport to a new frame number. May be called at any time by any client. The new position takes effect in two process cycles. If there are slow-sync clients and the transport is already rolling, it will enter the JackTransportStarting state and begin invoking their sync_callbacks until ready. This function is realtime-safe.
|
|
Query the current transport state and position. This function is realtime-safe, and can be called from any thread. If called from the process thread, pos corresponds to the first frame of the current cycle and the state returned is valid for the entire cycle.
|
|
Request a new transport position. May be called at any time by any client. The new position takes effect in two process cycles. If there are slow-sync clients and the transport is already rolling, it will enter the JackTransportStarting state and begin invoking their sync_callbacks until ready. This function is realtime-safe.
|
|
Start the JACK transport rolling. Any client can make this request at any time. It takes effect no sooner than the next process cycle, perhaps later if there are slow-sync clients. This function is realtime-safe.
|
|
Stop the JACK transport. Any client can make this request at any time. It takes effect on the next process cycle. This function is realtime-safe.
|