21 #ifndef __jack_types_h__
22 #define __jack_types_h__
24 #include <jack/systemdeps.h>
26 typedef int32_t jack_shmsize_t;
31 typedef uint32_t jack_nframes_t;
36 #define JACK_MAX_FRAMES (4294967295U)
42 typedef uint64_t jack_time_t;
48 #define JACK_LOAD_INIT_LIMIT 1024
55 typedef uint64_t jack_intclient_t;
61 typedef struct _jack_port jack_port_t;
67 typedef struct _jack_client jack_client_t;
73 typedef uint32_t jack_port_id_t;
75 typedef uint32_t jack_port_type_id_t;
85 JackNullOption = 0x00,
93 JackNoStartServer = 0x01,
99 JackUseExactName = 0x02,
104 JackServerName = 0x04,
125 #define JackOpenOptions (JackSessionID|JackServerName|JackNoStartServer|JackUseExactName)
128 #define JackLoadOptions (JackLoadInit|JackLoadName|JackUseExactName)
134 typedef enum JackOptions jack_options_t;
149 JackInvalidOption = 0x02,
160 JackNameNotUnique = 0x04,
168 JackServerStarted = 0x08,
173 JackServerFailed = 0x10,
178 JackServerError = 0x20,
183 JackNoSuchClient = 0x40,
188 JackLoadFailure = 0x80,
193 JackInitFailure = 0x100,
198 JackShmFailure = 0x200,
203 JackVersionError = 0x400,
208 JackBackendError = 0x800,
213 JackClientZombie = 0x1000
220 typedef enum JackStatus jack_status_t;
225 enum JackLatencyCallbackMode {
246 typedef enum JackLatencyCallbackMode jack_latency_callback_mode_t;
257 typedef void (*JackLatencyCallback)(jack_latency_callback_mode_t mode,
void *arg);
273 } POST_PACKED_STRUCTURE;
289 typedef int (*JackProcessCallback)(jack_nframes_t nframes,
void *arg);
298 typedef void *(*JackThreadCallback)(
void* arg);
312 typedef void (*JackThreadInitCallback)(
void *arg);
322 typedef int (*JackGraphOrderCallback)(
void *arg);
334 typedef int (*JackXRunCallback)(
void *arg);
350 typedef int (*JackBufferSizeCallback)(jack_nframes_t nframes,
void *arg);
361 typedef int (*JackSampleRateCallback)(jack_nframes_t nframes,
void *arg);
372 typedef void (*JackPortRegistrationCallback)(jack_port_id_t port,
int register,
void *arg);
383 typedef void (*JackClientRegistrationCallback)(
const char* name,
int register,
void *arg);
395 typedef void (*JackPortConnectCallback)(jack_port_id_t a, jack_port_id_t b,
int connect,
void* arg);
407 typedef int (*JackPortRenameCallback)(jack_port_id_t port,
const char* old_name,
const char* new_name,
void *arg);
416 typedef void (*JackFreewheelCallback)(
int starting,
void *arg);
429 typedef void (*JackShutdownCallback)(
void *arg);
444 typedef void (*JackInfoShutdownCallback)(jack_status_t code,
const char* reason,
void *arg);
450 #define JACK_DEFAULT_AUDIO_TYPE "32 bit float mono audio"
451 #define JACK_DEFAULT_MIDI_TYPE "8 bit raw midi"
458 typedef float jack_default_audio_sample_t;
472 JackPortIsInput = 0x1,
478 JackPortIsOutput = 0x2,
484 JackPortIsPhysical = 0x4,
499 JackPortCanMonitor = 0x8,
515 JackPortIsTerminal = 0x10,
525 JackTransportStopped = 0,
526 JackTransportRolling = 1,
527 JackTransportLooping = 2,
528 JackTransportStarting = 3,
529 JackTransportNetStarting = 4,
531 } jack_transport_state_t;
533 typedef uint64_t jack_unique_t;
540 JackPositionBBT = 0x10,
541 JackPositionTimecode = 0x20,
542 JackBBTFrameOffset = 0x40,
543 JackAudioVideoRatio = 0x80,
544 JackVideoFrameOffset = 0x100
546 } jack_position_bits_t;
549 #define JACK_POSITION_MASK (JackPositionBBT|JackPositionTimecode)
550 #define EXTENDED_TIME_INFO
567 double bar_start_tick;
571 double ticks_per_beat;
572 double beats_per_minute;
619 } POST_PACKED_STRUCTURE;
644 typedef int (*JackSyncCallback)(jack_transport_state_t state,
678 typedef void (*JackTimebaseCallback)(jack_transport_state_t state,
679 jack_nframes_t nframes,
696 JackTransportState = 0x1,
697 JackTransportPosition = 0x2,
698 JackTransportLoop = 0x4,
699 JackTransportSMPTE = 0x8,
700 JackTransportBBT = 0x10
702 } jack_transport_bits_t;
718 jack_transport_state_t transport_state;
719 jack_nframes_t
frame;
720 jack_nframes_t loop_start;
721 jack_nframes_t loop_end;
729 double bar_start_tick;
733 double ticks_per_beat;
734 double beats_per_minute;
jack_nframes_t video_offset
jack_nframes_t bbt_offset
jack_position_bits_t valid
float audio_frames_per_video_frame
jack_nframes_t frame_rate
jack_transport_bits_t valid
jack_nframes_t frame_rate