diff --git a/client.c b/client.c index 9cefeda..b0105a3 100644 --- a/client.c +++ b/client.c @@ -264,7 +264,7 @@ jack_handle_reorder (jack_client_t *client, jack_event_t *event) */ if (client->control->graph_order) { - client->control->graph_order (); + client->control->graph_order (client->control->graph_order_arg); } return 0; @@ -1259,12 +1259,13 @@ jack_port_untie (jack_port_t *port) } int -jack_set_graph_order_callback (jack_client_t *client, JackGraphOrderCallback callback) +jack_set_graph_order_callback (jack_client_t *client, JackGraphOrderCallback callback, void *arg) { if (client->control->active) { return -1; } client->control->graph_order = callback; + client->control->graph_order_arg = arg; return 0; } diff --git a/configure.in b/configure.in index a09e30d..642dee2 100644 --- a/configure.in +++ b/configure.in @@ -5,7 +5,7 @@ AC_CONFIG_AUX_DIR(.) JACK_MAJOR_VERSION=0 JACK_MINOR_VERSION=17 -JACK_MICRO_VERSION=1 +JACK_MICRO_VERSION=2 BETA= diff --git a/engine.c b/engine.c index 4a7421b..8a2518f 100644 --- a/engine.c +++ b/engine.c @@ -1377,6 +1377,7 @@ jack_client_internal_new (jack_engine_t *engine, int fd, jack_client_connect_req client->control->port_register = NULL; client->control->port_register_arg = NULL; client->control->graph_order = NULL; + client->control->graph_order_arg = NULL; if (req->type == ClientDynamic) { if (jack_load_client (engine, client, req->object_path)) { @@ -1658,7 +1659,7 @@ jack_rechain_graph (jack_engine_t *engine, int take_lock) } if (client->control->graph_order) { - client->control->graph_order (); + client->control->graph_order (client->control->graph_order_arg); } subgraph_client = 0; diff --git a/jack/internal.h b/jack/internal.h index 90e3d5b..5890566 100644 --- a/jack/internal.h +++ b/jack/internal.h @@ -145,6 +145,7 @@ typedef volatile struct { JackPortRegistrationCallback port_register; void *port_register_arg; JackGraphOrderCallback graph_order; + void *graph_order_arg; /* for engine use only */ diff --git a/jack/jack.h b/jack/jack.h index 96845ef..370ae5d 100644 --- a/jack/jack.h +++ b/jack/jack.h @@ -54,7 +54,7 @@ int jack_set_process_callback (jack_client_t *, JackProcessCallback, void *arg); int jack_set_buffer_size_callback (jack_client_t *, JackBufferSizeCallback, void *arg); int jack_set_sample_rate_callback (jack_client_t *, JackSampleRateCallback, void *arg); int jack_set_port_registration_callback (jack_client_t *, JackPortRegistrationCallback, void *); -int jack_set_graph_order_callback (jack_client_t *, JackGraphOrderCallback); +int jack_set_graph_order_callback (jack_client_t *, JackGraphOrderCallback, void *); int jack_activate (jack_client_t *client); int jack_deactivate (jack_client_t *client); diff --git a/jack/types.h b/jack/types.h index 20e3fbe..ed80d70 100644 --- a/jack/types.h +++ b/jack/types.h @@ -33,7 +33,7 @@ typedef long channel_t; static const nframes_t max_frames = ULONG_MAX; typedef int (*JackProcessCallback)(nframes_t, void *); -typedef int (*JackGraphOrderCallback)(void); +typedef int (*JackGraphOrderCallback)(void *); typedef int (*JackBufferSizeCallback)(nframes_t, void *); typedef int (*JackSampleRateCallback)(nframes_t, void *); typedef void (*JackPortRegistrationCallback)(jack_port_id_t,int,void*);