21#ifndef __jack_types_h__
22#define __jack_types_h__
24#include <jack/systemdeps.h>
26typedef uint64_t jack_uuid_t;
28typedef int32_t jack_shmsize_t;
33typedef uint32_t jack_nframes_t;
38#define JACK_MAX_FRAMES (4294967295U)
44typedef uint64_t jack_time_t;
50#define JACK_LOAD_INIT_LIMIT 1024
57typedef uint64_t jack_intclient_t;
63typedef struct _jack_port jack_port_t;
69typedef struct _jack_client jack_client_t;
75typedef uint32_t jack_port_id_t;
77typedef uint32_t jack_port_type_id_t;
87 JackNullOption = 0x00,
95 JackNoStartServer = 0x01,
101 JackUseExactName = 0x02,
106 JackServerName = 0x04,
127#define JackOpenOptions (JackSessionID|JackServerName|JackNoStartServer|JackUseExactName)
130#define JackLoadOptions (JackLoadInit|JackLoadName|JackUseExactName)
136typedef enum JackOptions jack_options_t;
151 JackInvalidOption = 0x02,
162 JackNameNotUnique = 0x04,
170 JackServerStarted = 0x08,
175 JackServerFailed = 0x10,
180 JackServerError = 0x20,
185 JackNoSuchClient = 0x40,
190 JackLoadFailure = 0x80,
195 JackInitFailure = 0x100,
200 JackShmFailure = 0x200,
205 JackVersionError = 0x400,
210 JackBackendError = 0x800,
215 JackClientZombie = 0x1000
222typedef enum JackStatus jack_status_t;
227enum JackLatencyCallbackMode {
248typedef enum JackLatencyCallbackMode jack_latency_callback_mode_t;
259typedef void (*JackLatencyCallback)(jack_latency_callback_mode_t mode,
void *arg);
275} POST_PACKED_STRUCTURE;
291typedef int (*JackProcessCallback)(jack_nframes_t nframes,
void *arg);
300typedef void *(*JackThreadCallback)(
void* arg);
314typedef void (*JackThreadInitCallback)(
void *arg);
324typedef int (*JackGraphOrderCallback)(
void *arg);
336typedef int (*JackXRunCallback)(
void *arg);
352typedef int (*JackBufferSizeCallback)(jack_nframes_t nframes,
void *arg);
363typedef int (*JackSampleRateCallback)(jack_nframes_t nframes,
void *arg);
374typedef void (*JackPortRegistrationCallback)(jack_port_id_t port,
int ,
void *arg);
385typedef void (*JackClientRegistrationCallback)(
const char* name,
int ,
void *arg);
397typedef void (*JackPortConnectCallback)(jack_port_id_t a, jack_port_id_t b,
int connect,
void* arg);
407typedef void (*JackPortRenameCallback)(jack_port_id_t port,
const char* old_name,
const char* new_name,
void *arg);
416typedef void (*JackFreewheelCallback)(
int starting,
void *arg);
429typedef void (*JackShutdownCallback)(
void *arg);
445typedef void (*JackInfoShutdownCallback)(jack_status_t code,
const char* reason,
void *arg);
451#define JACK_DEFAULT_AUDIO_TYPE "32 bit float mono audio"
452#define JACK_DEFAULT_MIDI_TYPE "8 bit raw midi"
459typedef float jack_default_audio_sample_t;
473 JackPortIsInput = 0x1,
479 JackPortIsOutput = 0x2,
485 JackPortIsPhysical = 0x4,
500 JackPortCanMonitor = 0x8,
516 JackPortIsTerminal = 0x10,
526 JackTransportStopped = 0,
527 JackTransportRolling = 1,
528 JackTransportLooping = 2,
529 JackTransportStarting = 3,
530 JackTransportNetStarting = 4,
532} jack_transport_state_t;
534typedef uint64_t jack_unique_t;
541 JackPositionBBT = 0x10,
542 JackPositionTimecode = 0x20,
543 JackBBTFrameOffset = 0x40,
544 JackAudioVideoRatio = 0x80,
545 JackVideoFrameOffset = 0x100,
546 JackTickDouble = 0x200,
548} jack_position_bits_t;
551#define JACK_POSITION_MASK (JackPositionBBT|JackPositionTimecode)
552#define EXTENDED_TIME_INFO
555#define JACK_TICK_DOUBLE
572 double bar_start_tick;
576 double ticks_per_beat;
577 double beats_per_minute;
632} POST_PACKED_STRUCTURE;
657typedef int (*JackSyncCallback)(jack_transport_state_t state,
658 jack_position_t *pos,
691typedef void (*JackTimebaseCallback)(jack_transport_state_t state,
692 jack_nframes_t nframes,
693 jack_position_t *pos,
709 JackTransportState = 0x1,
710 JackTransportPosition = 0x2,
711 JackTransportLoop = 0x4,
712 JackTransportSMPTE = 0x8,
713 JackTransportBBT = 0x10
715} jack_transport_bits_t;
731 jack_transport_state_t transport_state;
732 jack_nframes_t frame;
733 jack_nframes_t loop_start;
734 jack_nframes_t loop_end;
742 double bar_start_tick;
746 double ticks_per_beat;
747 double beats_per_minute;
jack_position_bits_t valid
jack_nframes_t video_offset
float audio_frames_per_video_frame
jack_nframes_t bbt_offset
jack_nframes_t frame_rate
jack_transport_bits_t valid
jack_nframes_t frame_rate