fix debug message when acquiring the "problem" lock
[jack.git] / libjack / local.h
blob7ee4bbbb4ed700bb7aa003830aeb0f7cb3cfb71d
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 char thread_ok : 1;
33 char first_active : 1;
34 pthread_t thread_id;
35 char name[JACK_CLIENT_NAME_SIZE];
37 #ifdef JACK_USE_MACH_THREADS
38 /* specific ressources for server/client real-time thread communication */
39 mach_port_t clienttask, bp, serverport, replyport;
40 trivial_message message;
41 pthread_t process_thread;
42 char rt_thread_ok : 1;
43 #endif
45 /* callbacks
47 JackProcessCallback process;
48 void *process_arg;
49 JackThreadInitCallback thread_init;
50 void *thread_init_arg;
51 JackBufferSizeCallback bufsize;
52 void *bufsize_arg;
53 JackSampleRateCallback srate;
54 void *srate_arg;
55 JackPortRegistrationCallback port_register;
56 void *port_register_arg;
57 JackPortConnectCallback port_connect;
58 void *port_connect_arg;
59 JackGraphOrderCallback graph_order;
60 void *graph_order_arg;
61 JackXRunCallback xrun;
62 void *xrun_arg;
63 JackSyncCallback sync_cb;
64 void *sync_arg;
65 JackTimebaseCallback timebase_cb;
66 void *timebase_arg;
67 JackFreewheelCallback freewheel_cb;
68 void *freewheel_arg;
69 JackClientRegistrationCallback client_register;
70 void *client_register_arg;
71 JackThreadCallback thread_cb;
72 void *thread_cb_arg;
74 /* external clients: set by libjack
75 * internal clients: set by engine */
76 int (*deliver_request)(void*, jack_request_t*); /* JOQ: 64/32 bug! */
77 void *deliver_arg;
81 extern int jack_client_deliver_request (const jack_client_t *client,
82 jack_request_t *req);
83 extern jack_port_t *jack_port_new (const jack_client_t *client,
84 jack_port_id_t port_id,
85 jack_control_t *control);
87 extern void *jack_zero_filled_buffer;
89 extern void jack_set_clock_source (jack_timer_type_t);
91 #endif /* __jack_libjack_local_h__ */