# Controlling & querying JACK server operation

## Functions

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

## Function Documentation

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.

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_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_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.

Referenced by main().

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

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.