make jitter val configurable... the connectscript will use this soon.
[jack.git] / libjack / local.h
blobef0323535902a570b3f1f9c5f5687a5947da9dd7
1 #ifndef __jack_libjack_local_h__
2 #define __jack_libjack_local_h__
4 /* Client data structure, in the client address space. */
5 struct _jack_client {
7 jack_control_t *engine;
8 jack_client_control_t *control;
9 jack_shm_info_t engine_shm;
10 jack_shm_info_t control_shm;
12 struct pollfd* pollfd;
13 int pollmax;
14 int graph_next_fd;
15 int request_fd;
16 int upstream_is_jackd;
18 /* these two are copied from the engine when the
19 * client is created.
22 jack_port_type_id_t n_port_types;
23 jack_shm_info_t* port_segment;
25 JSList *ports;
26 JSList *ports_ext;
28 pthread_t thread;
29 char fifo_prefix[PATH_MAX+1];
30 void (*on_shutdown)(void *arg);
31 void *on_shutdown_arg;
32 void (*on_info_shutdown)(jack_status_t, const char*, void *arg);
33 void *on_info_shutdown_arg;
34 char thread_ok : 1;
35 char first_active : 1;
36 pthread_t thread_id;
37 char name[JACK_CLIENT_NAME_SIZE];
39 #ifdef JACK_USE_MACH_THREADS
40 /* specific ressources for server/client real-time thread communication */
41 mach_port_t clienttask, bp, serverport, replyport;
42 trivial_message message;
43 pthread_t process_thread;
44 char rt_thread_ok : 1;
45 #endif
47 /* callbacks
49 JackProcessCallback process;
50 void *process_arg;
51 JackThreadInitCallback thread_init;
52 void *thread_init_arg;
53 JackBufferSizeCallback bufsize;
54 void *bufsize_arg;
55 JackSampleRateCallback srate;
56 void *srate_arg;
57 JackPortRegistrationCallback port_register;
58 void *port_register_arg;
59 JackPortConnectCallback port_connect;
60 void *port_connect_arg;
61 JackGraphOrderCallback graph_order;
62 void *graph_order_arg;
63 JackXRunCallback xrun;
64 void *xrun_arg;
65 JackSyncCallback sync_cb;
66 void *sync_arg;
67 JackTimebaseCallback timebase_cb;
68 void *timebase_arg;
69 JackFreewheelCallback freewheel_cb;
70 void *freewheel_arg;
71 JackClientRegistrationCallback client_register;
72 void *client_register_arg;
73 JackThreadCallback thread_cb;
74 void *thread_cb_arg;
76 /* external clients: set by libjack
77 * internal clients: set by engine */
78 int (*deliver_request)(void*, jack_request_t*); /* JOQ: 64/32 bug! */
79 void *deliver_arg;
83 extern int jack_client_deliver_request (const jack_client_t *client,
84 jack_request_t *req);
85 extern jack_port_t *jack_port_new (const jack_client_t *client,
86 jack_port_id_t port_id,
87 jack_control_t *control);
89 extern void *jack_zero_filled_buffer;
91 extern void jack_set_clock_source (jack_timer_type_t);
93 #endif /* __jack_libjack_local_h__ */