21 #ifndef __jack_types_h__
22 #define __jack_types_h__
24 #include <jack/systemdeps.h>
26 typedef uint64_t jack_uuid_t;
28 typedef int32_t jack_shmsize_t;
33 typedef uint32_t jack_nframes_t;
38 #define JACK_MAX_FRAMES (4294967295U)
44 typedef uint64_t jack_time_t;
50 #define JACK_LOAD_INIT_LIMIT 1024
57 typedef uint64_t jack_intclient_t;
63 typedef struct _jack_port jack_port_t;
69 typedef struct _jack_client jack_client_t;
75 typedef uint32_t jack_port_id_t;
77 typedef 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)
136 typedef 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
222 typedef enum JackStatus jack_status_t;
227 enum JackLatencyCallbackMode {
248 typedef enum JackLatencyCallbackMode jack_latency_callback_mode_t;
259 typedef void (*JackLatencyCallback)(jack_latency_callback_mode_t mode,
void *arg);
275 } POST_PACKED_STRUCTURE;
291 typedef int (*JackProcessCallback)(jack_nframes_t nframes,
void *arg);
300 typedef void *(*JackThreadCallback)(
void* arg);
314 typedef void (*JackThreadInitCallback)(
void *arg);
324 typedef int (*JackGraphOrderCallback)(
void *arg);
336 typedef int (*JackXRunCallback)(
void *arg);
352 typedef int (*JackBufferSizeCallback)(jack_nframes_t nframes,
void *arg);
363 typedef int (*JackSampleRateCallback)(jack_nframes_t nframes,
void *arg);
374 typedef void (*JackPortRegistrationCallback)(jack_port_id_t port,
int ,
void *arg);
385 typedef void (*JackClientRegistrationCallback)(
const char* name,
int ,
void *arg);
397 typedef void (*JackPortConnectCallback)(jack_port_id_t a, jack_port_id_t b,
int connect,
void* arg);
407 typedef void (*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);
445 typedef 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"
459 typedef 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;
534 typedef uint64_t jack_unique_t;
541 JackPositionBBT = 0x10,
542 JackPositionTimecode = 0x20,
543 JackBBTFrameOffset = 0x40,
544 JackAudioVideoRatio = 0x80,
545 JackVideoFrameOffset = 0x100
547 } jack_position_bits_t;
550 #define JACK_POSITION_MASK (JackPositionBBT|JackPositionTimecode)
551 #define EXTENDED_TIME_INFO
568 double bar_start_tick;
572 double ticks_per_beat;
573 double beats_per_minute;
620 } POST_PACKED_STRUCTURE;
645 typedef int (*JackSyncCallback)(jack_transport_state_t state,
679 typedef void (*JackTimebaseCallback)(jack_transport_state_t state,
680 jack_nframes_t nframes,
697 JackTransportState = 0x1,
698 JackTransportPosition = 0x2,
699 JackTransportLoop = 0x4,
700 JackTransportSMPTE = 0x8,
701 JackTransportBBT = 0x10
703 } jack_transport_bits_t;
719 jack_transport_state_t transport_state;
720 jack_nframes_t
frame;
721 jack_nframes_t loop_start;
722 jack_nframes_t loop_end;
730 double bar_start_tick;
734 double ticks_per_beat;
735 double beats_per_minute;