Tell the Jack server that the program is ready to start processing audio.
Disconnects an external client from a JACK server.
@return the maximum number of characters in a JACK client name including the final NULL character. This value is a constant.
\bold THIS FUNCTION IS DEPRECATED AND SHOULD NOT BE USED IN NEW JACK CLIENTS
Open an external client session with a JACK server. This interface is more complex but more powerful than jack_client_new(). With it, clients may choose which of several servers to connect, and control whether and how to start the server automatically, if it was not already running. There is also an option for JACK to generate a unique client name, when necessary.
@return the pthread ID of the thread running the JACK client side real-time code.
Establish a connection between two ports.
@return 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.
Signal next clients in the graph.
Wait until this JACK client should process data.
Tell the Jack server to remove this @a client from the process graph. Also, disconnect all ports belonging to it, since inactive clients have no port connections.
Remove a connection between two ports.
Old-style interface to become the timebase for the entire JACK subsystem.
@return the estimated current time in frames. This function is intended for use in other threads (not the process callback). The return value can be compared with the value of jack_last_frame_time to relate time in other threads to JACK time.
@return the estimated time in frames that has passed since the JACK server began the current process cycle.
@return the estimated time in microseconds of the specified frame time
The free function to be used on memory returned by jack_port_get_connections, jack_port_get_all_connections, jack_get_ports and jack_get_internal_client_name functions. This is MANDATORY on Windows when otherwise all nasty runtime version related crashes can occur. Developers are strongly encouraged to use this function instead of the standard "free" function in new code.
@return the current maximum size that will ever be passed to the @a 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 @a bufsize_callback so they will be notified if it does.
@return pointer to actual client name. This is useful when @ref JackUseExactName is not specified on open and @ref JackNameNotUnique status was returned. In that case, the actual name will differ from the @a client_name requested.
@return pid of client. If not available, 0 will be returned.
This function may only be used from the process callback. It provides the internal cycle timing information as used by most of the other time related functions. This allows the caller to map between frame counts and microseconds with full precision (i.e. without rounding frame times to integers), and also provides e.g. the microseconds time of the start of the current cycle directly (it has to be computed otherwise).
@param port_name_pattern A regular expression used to select ports by name. If NULL or of zero length, no selection based on name will be carried out. @param type_name_pattern A regular expression used to select ports by type. If NULL or of zero length, no selection based on type will be carried out. @param flags A value used to select ports by their flags. If zero, no selection based on flags will be carried out.
@return the sample rate of the jack system, as set by the user when jackd was started.
@return return JACK's current system time in microseconds, using the JACK clock source.
Call this function to get version of the JACK, in form of several numbers
Call this function to get version of the JACK, in form of a string
Remove an internal client from a JACK server.
Load an internal client into the Jack server.
@param client pointer to JACK client structure.
@return the precise time at the start of the current process cycle. This function may only be used from the process callback, and can be used to interpret timestamps generated by jack_frame_time() in other threads with respect to the current process cycle.
@param client pointer to JACK client structure. @param function The jack_info_shutdown function pointer. @param arg The arguments for the jack_info_shutdown function.
@param client pointer to JACK client structure. @param function The jack_shutdown function pointer. @param arg The arguments for the jack_shutdown function.
@return address of the jack_port_t of a @a port_id.
@return address of the jack_port_t named @a port_name.
@return number of connections to or from @a port.
@return TRUE if the locally-owned @a port is @b directly connected to the @a port_name.
Perform the same function as jack_disconnect() using port handles rather than names. This avoids the name lookup inherent in the name-based version.
If @ref JackPortCanMonitor is set for a port, this function turns on input monitoring if it was off, and turns it off if only one request has been made to turn it on. Otherwise it does nothing.
@return the @ref JackPortFlags of the jack_port_t.
Get any aliases known for @port.
@return a null-terminated array of full port names to which the @a port is connected. If none, returns NULL.
This returns a pointer to the memory area associated with the specified port. For an output port, it will be a memory area that can be written to; for an input port, it will be an area containing the data from the port's connection(s), or zero-filled. if there are multiple inbound connections, the data will be mixed appropriately.
@return a null-terminated array of full port names to which the @a port is connected. If none, returns NULL.
@return the time (in frames) between data being available or delivered at/to a port, and the time at which it arrived at or is delivered to the "other side" of the port. E.g. for a physical audio output port, this is the time between writing to the port and when the signal will leave the connector. For a physical audio input port, this is the time between the sound arriving at the connector and the corresponding frames being readable from the port.
return the latency range defined by @a mode for @a port, in frames.
The maximum of the sum of the latencies in every connection path that can be drawn between the port and other ports with the @ref JackPortIsTerminal flag set.
@return TRUE if the jack_port_t belongs to the jack_client_t.
@return TRUE if input monitoring has been requested for @a port.
@return the full name of the jack_port_t (including the @a "client_name:" prefix).
@return the maximum number of characters in a full JACK port name including the final NULL character. This value is a constant.
Create a new port for the client. This is an object used for moving data of any type in or out of the client. Ports may be connected in various ways.
If @ref JackPortCanMonitor is set for this @a port, turn input monitoring on or off. Otherwise, do nothing.
If @ref JackPortCanMonitor is set for this @a port_name, turn input monitoring on or off. Otherwise, do nothing.
Set @a alias as an alias for @a port. May be called at any time. If the alias is longer than jack_port_name_size(), it will be truncated.
The port latency is zero by default. Clients that control physical hardware with non-zero latency should call this to set the latency to its correct value. Note that the value should include any systemic latency present "outside" the physical hardware controlled by the client. For example, for a client controlling a digital audio interface connected to an external digital converter, the latency setting should include both buffering by the audio interface *and* the converter.
set the minimum and maximum latencies defined by @a mode for @a port, in frames.
Modify a port's short name. May be called at any time. If the resulting full name (including the @a "client_name:" prefix) is longer than jack_port_name_size(), it will be truncated.
@return the short name of the jack_port_t (not including the @a "client_name:" prefix).
@deprecated This function will be removed from a future version of JACK. Do not use it. There is no replacement. It has turned out to serve essentially no purpose in real-life JACK clients.
@return the @a port type, at most jack_port_type_size() characters including a final NULL.
@return the buffersize of a port of type @arg port_type.
@return the @a port type id.
@return the maximum number of characters in a JACK port type name including the final NULL character. This value is a constant.
Remove the port from the client, disconnecting any existing connections.
Remove @a alias as an alias for @a port. May be called at any time.
@deprecated This function will be removed from a future version of JACK. Do not use it. There is no replacement. It has turned out to serve essentially no purpose in real-life JACK clients.
Request a complete recomputation of all port latencies. This can be called by a client that has just changed the internal latency of its port using jack_port_set_latency and wants to ensure that all signal pathways in the graph are updated with respect to the values that will be returned by jack_port_get_total_latency. It allows a client to change multiple port latencies without triggering a recompute for each change.
Request a complete recomputation of a port's total latency. This can be called by a client that has just changed the internal latency of its port using jack_port_set_latency and wants to ensure that all signal pathways in the graph are updated with respect to the values that will be returned by jack_port_get_total_latency.
Change the buffer size passed to the @a process_callback.
Tell JACK to call @a bufsize_callback whenever the size of the the buffer that will be passed to the @a process_callback is about to change. Clients that depend on knowing the buffer size must supply a @a bufsize_callback before activating themselves.
Tell the JACK server to call @a client_registration_callback whenever a client is registered or unregistered, passing @a arg as a parameter.
Set the @ref jack_error_callback for error message display. Set it to NULL to restore default_jack_error_callback function.
Start/Stop JACK's "freewheel" mode.
Tell the Jack server to call @a freewheel_callback whenever we enter or leave "freewheel" mode, passing @a arg as the second argument. The first argument to the callback will be non-zero if JACK is entering freewheel mode, and zero otherwise.
Tell the JACK server to call @a graph_callback whenever the processing graph is reordered, passing @a arg as a parameter.
Set the @ref jack_info_callback for info message display. Set it to NULL to restore default_jack_info_callback function.
Tell the Jack server to call @a latency_callback whenever it is necessary to recompute the latencies for some or all Jack ports.
Tell the JACK server to call @a connect_callback whenever a port is connected or disconnected, passing @a arg as a parameter.
Tell the JACK server to call @a registration_callback whenever a port is registered or unregistered, passing @a arg as a parameter.
Tell the JACK server to call @a rename_callback whenever a port is renamed, passing @a arg as a parameter.
Tell the Jack server to call @a process_callback whenever there is work be done, passing @a arg as the second argument.
* Tell the Jack server to call @a thread_callback in the RT thread. * Typical use are in conjunction with @a jack_cycle_wait and @a jack_cycle_signal functions. * 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.) * * @return 0 on success, otherwise a non-zero error code.
Tell the Jack server to call @a srate_callback whenever the system sample rate changes.
Tell JACK to call @a thread_init_callback once just after the creation of the thread in which all other callbacks will be handled.
Tell the JACK server to call @a xrun_callback whenever there is a xrun, passing @a arg as a parameter.
\bold THIS FUNCTION IS DEPRECATED AND SHOULD NOT BE USED IN NEW JACK CLIENTS.
@return the estimated time in frames for the specified system time.
Display JACK error message.
Display JACK info message.