21 #ifndef __jack_driver_h__
22 #define __jack_driver_h__
27 #include "driver_interface.h"
30 typedef long channel_t;
39 typedef void (*ClockSyncListenerFunction)(channel_t, ClockSyncStatus,
void*);
44 ClockSyncListenerFunction
function;
52 typedef int (*JackDriverAttachFunction)(
struct _jack_driver *,
53 struct _jack_engine *);
54 typedef int (*JackDriverDetachFunction)(
struct _jack_driver *,
55 struct _jack_engine *);
56 typedef int (*JackDriverReadFunction)(
struct _jack_driver *,
57 jack_nframes_t nframes);
58 typedef int (*JackDriverWriteFunction)(
struct _jack_driver *,
59 jack_nframes_t nframes);
60 typedef int (*JackDriverNullCycleFunction)(
struct _jack_driver *,
61 jack_nframes_t nframes);
62 typedef int (*JackDriverStopFunction)(
struct _jack_driver *);
63 typedef int (*JackDriverStartFunction)(
struct _jack_driver *);
64 typedef int (*JackDriverBufSizeFunction)(
struct _jack_driver *,
65 jack_nframes_t nframes);
215 #define JACK_DRIVER_DECL \
216 jack_time_t period_usecs; \
217 jack_time_t last_wait_ust; \
219 struct _jack_client_internal * internal_client; \
220 void (*finish)(struct _jack_driver *);\
221 JackDriverAttachFunction attach; \
222 JackDriverDetachFunction detach; \
223 JackDriverReadFunction read; \
224 JackDriverWriteFunction write; \
225 JackDriverNullCycleFunction null_cycle; \
226 JackDriverStopFunction stop; \
227 JackDriverStartFunction start; \
228 JackDriverBufSizeFunction bufsize;
272 jack_nframes_t nframes);
277 #define JACK_DRIVER_NT_DECL \
279 struct _jack_engine * engine; \
280 volatile int nt_run; \
281 pthread_t nt_thread; \
282 pthread_mutex_t nt_run_lock; \
283 JackDriverNTAttachFunction nt_attach; \
284 JackDriverNTDetachFunction nt_detach; \
285 JackDriverNTStopFunction nt_stop; \
286 JackDriverNTStartFunction nt_start; \
287 JackDriverNTBufSizeFunction nt_bufsize; \
288 JackDriverNTRunCycleFunction nt_run_cycle;
290 #define nt_write write
291 #define nt_null_cycle null_cycle