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;
274 jack_nframes_t nframes);
279 #define JACK_DRIVER_NT_DECL \
281 struct _jack_engine * engine; \
282 volatile int nt_run; \
283 pthread_t nt_thread; \
284 pthread_mutex_t nt_run_lock; \
285 JackDriverNTAttachFunction nt_attach; \
286 JackDriverNTDetachFunction nt_detach; \
287 JackDriverNTStopFunction nt_stop; \
288 JackDriverNTStartFunction nt_start; \
289 JackDriverNTBufSizeFunction nt_bufsize; \
290 JackDriverNTRunCycleFunction nt_run_cycle;
292 #define nt_write write
293 #define nt_null_cycle null_cycle