Jack2 1.9.12

Functions
Setting Client Callbacks

## Functions
int | jack_set_thread_init_callback (jack_client_t *client, JackThreadInitCallback thread_init_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT
void | jack_on_shutdown (jack_client_t *client, JackShutdownCallback shutdown_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT
void | jack_on_info_shutdown (jack_client_t *client, JackInfoShutdownCallback shutdown_callback, void *arg) JACK_WEAK_EXPORT
int | jack_set_process_callback (jack_client_t *client, JackProcessCallback process_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT
int | jack_set_freewheel_callback (jack_client_t *client, JackFreewheelCallback freewheel_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT
int | jack_set_buffer_size_callback (jack_client_t *client, JackBufferSizeCallback bufsize_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT
int | jack_set_sample_rate_callback (jack_client_t *client, JackSampleRateCallback srate_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT
int | jack_set_client_registration_callback (jack_client_t *client, JackClientRegistrationCallback registration_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT
int | jack_set_port_registration_callback (jack_client_t *client, JackPortRegistrationCallback registration_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT
int | jack_set_port_connect_callback (jack_client_t *client, JackPortConnectCallback connect_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT
int | jack_set_port_rename_callback (jack_client_t *client, JackPortRenameCallback rename_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT
int | jack_set_graph_order_callback (jack_client_t *client, JackGraphOrderCallback graph_callback, void *) JACK_OPTIONAL_WEAK_EXPORT
int | jack_set_xrun_callback (jack_client_t *client, JackXRunCallback xrun_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT

## Detailed Description

## Function Documentation

## ◆ jack_set_thread_init_callback()

int jack_set_thread_init_callback | ( | jack_client_t * | client,
|  | JackThreadInitCallback | thread_init_callback,
|  | void * | arg
| ) |  |

Tell JACK to call thread_init_callback once just after the creation of the thread in which all other callbacks will be handled.

The code in the supplied function does not need to be suitable for real-time execution.

NOTE: this function cannot be called while the client is activated (after jack_activate has been called.)

Returns
  0 on success, otherwise a non-zero error code, causing JACK to remove that client from the process() graph.

Definition at line 1053 of file JackAPI.cpp.

## ◆ jack_on_shutdown()

void jack_on_shutdown | ( | jack_client_t * | client,
|  | JackShutdownCallback | shutdown_callback,
|  | void * | arg
| ) |  |

Parameters

  client | pointer to JACK client structure.
  function | The jack_shutdown function pointer.
  arg | The arguments for the jack_shutdown function.

Register a function (and argument) to be called if and when the JACK server shuts down the client thread. The function must be written as if it were an asynchonrous POSIX signal handler — use only async-safe functions, and remember that it is executed from another thread. A typical function might set a flag or write to a pipe so that the rest of the application knows that the JACK client thread has shut down.

NOTE: clients do not need to call this. It exists only to help more complex clients understand what is going on. It should be called before jack_client_activate().

NOTE: if a client calls this AND jack_on_info_shutdown(), then in case of a client thread shutdown, the callback passed to this function will not be called, and the one passed to jack_on_info_shutdown() will.

NOTE: application should typically signal another thread to correctly finish cleanup, that is by calling "jack_client_close" (since "jack_client_close" cannot be called directly in the context of the thread that calls the shutdown callback).

Definition at line 805 of file JackAPI.cpp.

## ◆ jack_on_info_shutdown()

void jack_on_info_shutdown | ( | jack_client_t * | client,
|  | JackInfoShutdownCallback | shutdown_callback,
|  | void * | arg
| ) |  |

Parameters

  client | pointer to JACK client structure.
  function | The jack_info_shutdown function pointer.
  arg | The arguments for the jack_info_shutdown function.

Register a function (and argument) to be called if and when the JACK server shuts down the client thread. The function must be written as if it were an asynchonrous POSIX signal handler — use only async-safe functions, and remember that it is executed from another thread. A typical function might set a flag or write to a pipe so that the rest of the application knows that the JACK client thread has shut down.

NOTE: clients do not need to call this. It exists only to help more complex clients understand what is going on. It should be called before jack_client_activate().

NOTE: if a client calls this AND jack_on_shutdown(), then in case of a client thread shutdown, the callback passed to jack_on_info_shutdown() will be called.

NOTE: application should typically signal another thread to correctly finish cleanup, that is by calling "jack_client_close" (since "jack_client_close" cannot be called directly in the context of the thread that calls the shutdown callback).

Definition at line 817 of file JackAPI.cpp.

## ◆ jack_set_process_callback()

int jack_set_process_callback | ( | jack_client_t * | client,
|  | JackProcessCallback | process_callback,
|  | void * | arg
| ) |  |

Tell the Jack server to call process_callback whenever there is work be done, passing arg as the second argument.

The code in the supplied function must be suitable for real-time execution. That means that it cannot call functions that might block for a long time. This includes malloc, free, printf, pthread_mutex_lock, sleep, wait, poll, select, pthread_join, pthread_cond_wait, etc, etc. See http://jackit.sourceforge.net/docs/design/design.html#SECTION00411000000000000000 for more information.

NOTE: this function cannot be called while the client is activated (after jack_activate has been called.)

Returns
  0 on success, otherwise a non-zero error code.

Definition at line 829 of file JackAPI.cpp.

## ◆ jack_set_freewheel_callback()

int jack_set_freewheel_callback | ( | jack_client_t * | client,
|  | JackFreewheelCallback | freewheel_callback,
|  | void * | arg
| ) |  |

Tell the Jack server to call freewheel_callback whenever we enter or leave "freewheel" mode, passing arg as the second argument. The first argument to the callback will be non-zero if JACK is entering freewheel mode, and zero otherwise.

All "notification events" are received in a seperated non RT thread, the code in the supplied function does not need to be suitable for real-time execution.

NOTE: this function cannot be called while the client is activated (after jack_activate has been called.)

Returns
  0 on success, otherwise a non-zero error code.

Definition at line 894 of file JackAPI.cpp.

## ◆ jack_set_buffer_size_callback()

int jack_set_buffer_size_callback | ( | jack_client_t * | client,
|  | JackBufferSizeCallback | bufsize_callback,
|  | void * | arg
| ) |  |

Tell JACK to call bufsize_callback whenever the size of the the buffer that will be passed to the process_callback is about to change. Clients that depend on knowing the buffer size must supply a bufsize_callback before activating themselves.

All "notification events" are received in a seperated non RT thread, the code in the supplied function does not need to be suitable for real-time execution.

NOTE: this function cannot be called while the client is activated (after jack_activate has been called.)

Parameters

  client | pointer to JACK client structure.
  bufsize_callback | function to call when the buffer size changes.
  arg | argument for bufsize_callback.

Returns
  0 on success, otherwise a non-zero error code

Definition at line 935 of file JackAPI.cpp.

## ◆ jack_set_sample_rate_callback()

int jack_set_sample_rate_callback | ( | jack_client_t * | client,
|  | JackSampleRateCallback | srate_callback,
|  | void * | arg
| ) |  |

Tell the Jack server to call srate_callback whenever the system sample rate changes.

All "notification events" are received in a seperated non RT thread, the code in the supplied function does not need to be suitable for real-time execution.

NOTE: this function cannot be called while the client is activated (after jack_activate has been called.)

Returns
  0 on success, otherwise a non-zero error code

Definition at line 948 of file JackAPI.cpp.

## ◆ jack_set_client_registration_callback()

int jack_set_client_registration_callback | ( | jack_client_t * | client,
|  | JackClientRegistrationCallback | registration_callback,
|  | void * | arg
| ) |  |

Tell the JACK server to call client_registration_callback whenever a client is registered or unregistered, passing arg as a parameter.

All "notification events" are received in a seperated non RT thread, the code in the supplied function does not need to be suitable for real-time execution.

NOTE: this function cannot be called while the client is activated (after jack_activate has been called.)

Returns
  0 on success, otherwise a non-zero error code

Definition at line 961 of file JackAPI.cpp.

## ◆ jack_set_port_registration_callback()

int jack_set_port_registration_callback | ( | jack_client_t * | client,
|  | JackPortRegistrationCallback | registration_callback,
|  | void * | arg
| ) |  |

Tell the JACK server to call registration_callback whenever a port is registered or unregistered, passing arg as a parameter.

All "notification events" are received in a seperated non RT thread, the code in the supplied function does not need to be suitable for real-time execution.

NOTE: this function cannot be called while the client is activated (after jack_activate has been called.)

Returns
  0 on success, otherwise a non-zero error code

Definition at line 974 of file JackAPI.cpp.

## ◆ jack_set_port_connect_callback()

int jack_set_port_connect_callback | ( | jack_client_t * | client,
|  | JackPortConnectCallback | connect_callback,
|  | void * | arg
| ) |  |

Tell the JACK server to call connect_callback whenever a port is connected or disconnected, passing arg as a parameter.

All "notification events" are received in a seperated non RT thread, the code in the supplied function does not need to be suitable for real-time execution.

NOTE: this function cannot be called while the client is activated (after jack_activate has been called.)

Returns
  0 on success, otherwise a non-zero error code

Definition at line 987 of file JackAPI.cpp.

## ◆ jack_set_port_rename_callback()

int jack_set_port_rename_callback | ( | jack_client_t * | client,
|  | JackPortRenameCallback | rename_callback,
|  | void * | arg
| ) |  |

Tell the JACK server to call rename_callback whenever a port is renamed, passing arg as a parameter.

All "notification events" are received in a seperated non RT thread, the code in the supplied function does not need to be suitable for real-time execution.

NOTE: this function cannot be called while the client is activated (after jack_activate has been called.)

Returns
  0 on success, otherwise a non-zero error code

Definition at line 1000 of file JackAPI.cpp.

## ◆ jack_set_graph_order_callback()

int jack_set_graph_order_callback | ( | jack_client_t * | client,
|  | JackGraphOrderCallback | graph_callback,
|  | void * |
| ) |  |

Tell the JACK server to call graph_callback whenever the processing graph is reordered, passing arg as a parameter.

All "notification events" are received in a seperated non RT thread, the code in the supplied function does not need to be suitable for real-time execution.

NOTE: this function cannot be called while the client is activated (after jack_activate has been called.)

Returns
  0 on success, otherwise a non-zero error code

Definition at line 1013 of file JackAPI.cpp.

## ◆ jack_set_xrun_callback()

int jack_set_xrun_callback | ( | jack_client_t * | client,
|  | JackXRunCallback | xrun_callback,
|  | void * | arg
| ) |  |

Tell the JACK server to call xrun_callback whenever there is a xrun, passing arg as a parameter.

All "notification events" are received in a seperated non RT thread, the code in the supplied function does not need to be suitable for real-time execution.

NOTE: this function cannot be called while the client is activated (after jack_activate has been called.)

Returns
  0 on success, otherwise a non-zero error code

Definition at line 1027 of file JackAPI.cpp.