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);
288 typedef int (*JackProcessCallback)(jack_nframes_t nframes,
void *arg);
297 typedef void *(*JackThreadCallback)(
void* arg);
311 typedef void (*JackThreadInitCallback)(
void *arg);
321 typedef int (*JackGraphOrderCallback)(
void *arg);
333 typedef int (*JackXRunCallback)(
void *arg);
349 typedef int (*JackBufferSizeCallback)(jack_nframes_t nframes,
void *arg);
360 typedef int (*JackSampleRateCallback)(jack_nframes_t nframes,
void *arg);
371 typedef void (*JackPortRegistrationCallback)(jack_port_id_t port,
int register,
void *arg);
382 typedef void (*JackClientRegistrationCallback)(
const char* name,
int register,
void *arg);
394 typedef void (*JackPortConnectCallback)(jack_port_id_t a, jack_port_id_t b,
int connect,
void* arg);
406 typedef int (*JackPortRenameCallback)(jack_port_id_t port,
const char* old_name,
const char* new_name,
void *arg);
415 typedef void (*JackFreewheelCallback)(
int starting,
void *arg);
428 typedef void (*JackShutdownCallback)(
void *arg);
443 typedef void (*JackInfoShutdownCallback)(jack_status_t code,
const char* reason,
void *arg);
449 #define JACK_DEFAULT_AUDIO_TYPE "32 bit float mono audio"
450 #define JACK_DEFAULT_MIDI_TYPE "8 bit raw midi"
457 typedef float jack_default_audio_sample_t;
471 JackPortIsInput = 0x1,
477 JackPortIsOutput = 0x2,
483 JackPortIsPhysical = 0x4,
498 JackPortCanMonitor = 0x8,
514 JackPortIsTerminal = 0x10,
524 JackTransportStopped = 0,
525 JackTransportRolling = 1,
526 JackTransportLooping = 2,
527 JackTransportStarting = 3,
528 JackTransportNetStarting = 4,
530 } jack_transport_state_t;
532 typedef uint64_t jack_unique_t;
539 JackPositionBBT = 0x10,
540 JackPositionTimecode = 0x20,
541 JackBBTFrameOffset = 0x40,
542 JackAudioVideoRatio = 0x80,
543 JackVideoFrameOffset = 0x100
545 } jack_position_bits_t;
548 #define JACK_POSITION_MASK (JackPositionBBT|JackPositionTimecode)
549 #define EXTENDED_TIME_INFO
565 double bar_start_tick;
569 double ticks_per_beat;
570 double beats_per_minute;
578 jack_nframes_t bbt_offset;
595 float audio_frames_per_video_frame;
602 jack_nframes_t video_offset;
640 typedef int (*JackSyncCallback)(jack_transport_state_t state,
674 typedef void (*JackTimebaseCallback)(jack_transport_state_t state,
675 jack_nframes_t nframes,
692 JackTransportState = 0x1,
693 JackTransportPosition = 0x2,
694 JackTransportLoop = 0x4,
695 JackTransportSMPTE = 0x8,
696 JackTransportBBT = 0x10
698 } jack_transport_bits_t;
714 jack_transport_state_t transport_state;
715 jack_nframes_t frame;
716 jack_nframes_t loop_start;
717 jack_nframes_t loop_end;
725 double bar_start_tick;
729 double ticks_per_beat;
730 double beats_per_minute;