transport.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
#ifndef __jack_transport_h__
00023
#define __jack_transport_h__
00024
00025
#ifdef __cplusplus
00026
extern "C" {
00027
#endif
00028
00029
#include <jack/types.h>
00030
00034 typedef enum {
00035
00036
00037
JackTransportStopped = 0,
00038
JackTransportRolling = 1,
00039
JackTransportLooping = 2,
00040
JackTransportStarting = 3
00042 }
jack_transport_state_t;
00043
00044 typedef uint64_t
jack_unique_t;
00049 typedef enum {
00050
00051
JackPositionBBT = 0x10,
00052
JackPositionTimecode = 0x20
00054 }
jack_position_bits_t;
00055
00057 #define JACK_POSITION_MASK (JackPositionBBT|JackPositionTimecode)
00058 #define EXTENDED_TIME_INFO
00059
00063 typedef struct {
00064
00065
00066 jack_unique_t unique_1;
00067 jack_time_t usecs;
00068 jack_nframes_t frame_rate;
00069 jack_nframes_t frame;
00071 jack_position_bits_t valid;
00073
00074 int32_t bar;
00075 int32_t beat;
00076 int32_t tick;
00077 double bar_start_tick;
00078
00079 float beats_per_bar;
00080 float beat_type;
00081 double ticks_per_beat;
00082 double beats_per_minute;
00083
00084
00085 double frame_time;
00086 double next_time;
00089
00090
00091
00092 int32_t padding[10];
00093
00094
00095 jack_unique_t unique_2;
00097 }
jack_position_t;
00098
00115
int jack_release_timebase (
jack_client_t *client);
00116
00138 typedef int (*
JackSyncCallback)(
jack_transport_state_t state,
00139
jack_position_t *pos,
00140
void *arg);
00141
00162
int jack_set_sync_callback (
jack_client_t *client,
00163
JackSyncCallback sync_callback,
00164
void *arg);
00165
00183
int jack_set_sync_timeout (
jack_client_t *client,
00184
jack_time_t timeout);
00185
00215 typedef void (*
JackTimebaseCallback)(
jack_transport_state_t state,
00216
jack_nframes_t nframes,
00217
jack_position_t *pos,
00218
int new_pos,
00219
void *arg);
00220
00246
int jack_set_timebase_callback (
jack_client_t *client,
00247
int conditional,
00248
JackTimebaseCallback timebase_callback,
00249
void *arg);
00250
00267
int jack_transport_locate (
jack_client_t *client,
00268
jack_nframes_t frame);
00269
00285
jack_transport_state_t jack_transport_query (
const jack_client_t *client,
00286
jack_position_t *pos);
00287
00295
jack_nframes_t jack_get_current_transport_frame (
const jack_client_t *client);
00296
00313
int jack_transport_reposition (
jack_client_t *client,
00314
jack_position_t *pos);
00315
00327
void jack_transport_start (
jack_client_t *client);
00328
00337
void jack_transport_stop (
jack_client_t *client);
00338
00339
00340
00341
00342
00343
00344
00350 typedef enum {
00351
00352
JackTransportState = 0x1,
00353
JackTransportPosition = 0x2,
00354
JackTransportLoop = 0x4,
00355
JackTransportSMPTE = 0x8,
00356
JackTransportBBT = 0x10
00358 }
jack_transport_bits_t;
00359
00366 typedef struct {
00367
00368
00369
00370 jack_nframes_t frame_rate;
00371 jack_time_t usecs;
00373 jack_transport_bits_t valid;
00374 jack_transport_state_t transport_state;
00375 jack_nframes_t frame;
00376 jack_nframes_t loop_start;
00377 jack_nframes_t loop_end;
00378
00379 long smpte_offset;
00380 float smpte_frame_rate;
00382 int bar;
00383 int beat;
00384 int tick;
00385 double bar_start_tick;
00386
00387 float beats_per_bar;
00388 float beat_type;
00389 double ticks_per_beat;
00390 double beats_per_minute;
00391
00392 }
jack_transport_info_t;
00393
00406
void jack_get_transport_info (
jack_client_t *client,
00407
jack_transport_info_t *tinfo);
00408
00416
void jack_set_transport_info (
jack_client_t *client,
00417
jack_transport_info_t *tinfo);
00418
00419
#ifdef __cplusplus
00420
}
00421
#endif
00422
00423
#endif
Generated on Sun Sep 19 10:22:22 2004 for JACK-AUDIO-CONNECTION-KIT by
1.3.8