Jack2: Controlling & querying JACK server operation

Jack2 1.9.22

Functions
Controlling & querying JACK server operation

## Functions
int | jack_set_freewheel (jack_client_t *client, int onoff) JACK_OPTIONAL_WEAK_EXPORT
int | jack_set_buffer_size (jack_client_t *client, jack_nframes_t nframes) JACK_OPTIONAL_WEAK_EXPORT
jack_nframes_t | jack_get_sample_rate (jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT
jack_nframes_t | jack_get_buffer_size (jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT
int | jack_engine_takeover_timebase (jack_client_t *) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT
float | jack_cpu_load (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT

## Detailed Description

## Function Documentation

## ◆ jack_set_freewheel()

int jack_set_freewheel | ( | jack_client_t * | client,
|  | int | onoff
| ) |  |

Start/Stop JACK's "freewheel" mode.

When in "freewheel" mode, JACK no longer waits for any external event to begin the start of the next process cycle.

As a result, freewheel mode causes "faster than realtime" execution of a JACK graph. If possessed, real-time scheduling is dropped when entering freewheel mode, and if appropriate it is reacquired when stopping.

IMPORTANT: on systems using capabilities to provide real-time scheduling (i.e. Linux kernel 2.4), if onoff is zero, this function must be called from the thread that originally called jack_activate(). This restriction does not apply to other systems (e.g. Linux kernel 2.6 or OS X).

Parameters

  client | pointer to JACK client structure
  onoff | if non-zero, freewheel mode starts. Otherwise freewheel mode ends.

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

## ◆ jack_set_buffer_size()

int jack_set_buffer_size | ( | jack_client_t * | client,
|  | jack_nframes_t | nframes
| ) |  |

Change the buffer size passed to the process_callback.

This operation stops the JACK engine process cycle, then calls all registered bufsize_callback functions before restarting the process cycle. This will cause a gap in the audio flow, so it should only be done at appropriate stopping points.

See also
  jack_set_buffer_size_callback()

Parameters

  client | pointer to JACK client structure.
  nframes | new buffer size. Must be a power of two.

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

## ◆ jack_get_sample_rate()

jack_nframes_t jack_get_sample_rate | ( | jack_client_t * |  | ) |

Returns
  the sample rate of the jack system, as set by the user when jackd was started.

## ◆ jack_get_buffer_size()

jack_nframes_t jack_get_buffer_size | ( | jack_client_t * |  | ) |

Returns
  the current maximum size that will ever be passed to the process_callback. It should only be used before the client has been activated. This size may change, clients that depend on it must register a bufsize_callback so they will be notified if it does.

See also
  jack_set_buffer_size_callback()

## ◆ jack_engine_takeover_timebase()

int jack_engine_takeover_timebase | ( | jack_client_t * |  | ) |

Old-style interface to become the timebase for the entire JACK subsystem.

Deprecated:
  This function still exists for compatibility with the earlier transport interface, but it does nothing. Instead, see transport.h and use jack_set_timebase_callback().

Returns
  ENOSYS, function not implemented.

## ◆ jack_cpu_load()

float jack_cpu_load | ( | jack_client_t * | client | ) |

Returns
  the current CPU load estimated by JACK. This is a running average of the time it takes to execute a full process cycle for all clients as a percentage of the real time available per cycle determined by the buffer size and sample rate.