diff --git a/configure.ac b/configure.ac index 098cee2..7df0d25 100644 --- a/configure.ac +++ b/configure.ac @@ -15,7 +15,7 @@ dnl changes are made dnl --- JACK_MAJOR_VERSION=0 JACK_MINOR_VERSION=99 -JACK_MICRO_VERSION=41 +JACK_MICRO_VERSION=42 dnl --- dnl HOWTO: updating the jack protocol version diff --git a/doc/mainpage.dox b/doc/mainpage.dox index 06dc055..49a6774 100644 --- a/doc/mainpage.dox +++ b/doc/mainpage.dox @@ -82,9 +82,11 @@ internal client "plugin" that runs within the JACK server process. The JACK programming interfaces are described in several header files: - - @ref jack.h "" defines most of the JACK interfaces. - - @ref intclient.h "" defines interfaces for - loading and unloading JACK internal clients. + - @ref jack.h "" is the main JACK interface. + - @ref statistics.h "" provides interfaces for + monitoring the performance of a running JACK server. + - @ref intclient.h "" allows loading and unloading + JACK internal clients. - @ref ringbuffer.h "" defines a simple API for using lock-free ringbuffers. These are a good way to pass data between threads, when streaming realtime data to slower media, like @@ -92,29 +94,29 @@ The JACK programming interfaces are described in several header files: - @ref transport.h "" defines a simple transport control mechanism for starting, stopping and repositioning clients. This is described in the @ref transport-design document. - - @ref types.h "" defines most of the JACK data types. + - @ref types.h "" defines the main JACK data types. - @ref thread.h "" functions standardize thread creation for JACK and its clients. In addition, the example-clients directory provides numerous examples of simple JACK clients that nevertheless use the API to do something -useful. It includes +useful. It includes - a metronome. - a recording client that can capture any number of channels from any JACK sources and store them as an audio file. - command line clients to control the transport mechanism, change the buffer size and more. - - simple examples of wrapping a GUI around a JACK application. + - commands to load and unload JACK internal clients. - tools for checking the status of a running JACK system. @section porting Porting JACK is designed to be portable to any system supporting the relevant -POSIX and ANSI C standards. It currently runs under GNU/Linux and Mac -OS X on several different processor architectures. If you want to -port JACK to another platform, please read the @ref porting-guide -document. +POSIX and ANSI C standards. It currently runs under GNU/Linux, Mac OS +X and Berkeley Unix on several different processor architectures. If +you want to port JACK to another platform, please read the @ref +porting-guide document. @section license License diff --git a/doc/reference.doxygen.in b/doc/reference.doxygen.in index bf929f4..4ac4d7e 100644 --- a/doc/reference.doxygen.in +++ b/doc/reference.doxygen.in @@ -370,6 +370,7 @@ INPUT = @top_srcdir@/doc/mainpage.dox \ @top_srcdir@/jack/intclient.h \ @top_srcdir@/jack/jack.h \ @top_srcdir@/jack/ringbuffer.h \ + @top_srcdir@/jack/statistics.h \ @top_srcdir@/jack/thread.h \ @top_srcdir@/jack/transport.h \ @top_srcdir@/jack/types.h diff --git a/jack/Makefile.am b/jack/Makefile.am index 8349e24..587c051 100644 --- a/jack/Makefile.am +++ b/jack/Makefile.am @@ -6,6 +6,7 @@ libjackinclude_HEADERS = \ intclient.h \ jack.h \ ringbuffer.h \ + statistics.h \ thread.h \ timestamps.h \ transport.h \ diff --git a/jack/jack.h b/jack/jack.h index 9e85d0f..8469798 100644 --- a/jack/jack.h +++ b/jack/jack.h @@ -1,5 +1,6 @@ /* Copyright (C) 2001 Paul Davis + Copyright (C) 2004 Jack O'Quin This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -316,13 +317,6 @@ int jack_set_graph_order_callback (jack_client_t *, int jack_set_xrun_callback (jack_client_t *, JackXRunCallback xrun_callback, void *arg); -/** - * @return the delay in microseconds due to the most recent XRUN - * occurrence. This probably only makes sense when called from a @ref - * JackXRunCallback defined using jack_set_xrun_callback(). - */ -float jack_get_xrun_delayed_usecs (jack_client_t *client); - /** * Tell the Jack server that the program is ready to start processing * audio. @@ -746,7 +740,6 @@ jack_nframes_t jack_frame_time (const jack_client_t *); */ jack_nframes_t jack_last_frame_time (const jack_client_t *client); - /** * @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 @@ -754,21 +747,6 @@ jack_nframes_t jack_last_frame_time (const jack_client_t *client); * determined by the buffer size and sample rate. */ float jack_cpu_load (jack_client_t *client); - -/** - * @return the maximum delay reported by the backend since - * startup or reset. When compared to the period size in usecs, this - * can be used to estimate the ideal period size for a given setup. - */ -float jack_get_max_delayed_usecs (jack_client_t *client); - -/** - * Reset the maximum delay counter. This would be useful - * to estimate the effect that a change to the configuration of a running - * system (e.g. toggling kernel preemption) has on the delay - * experienced by JACK, without having to restart the JACK engine. - */ -void jack_reset_max_delayed_usecs (jack_client_t *client); /** * @return the pthread ID of the thread running the JACK client side diff --git a/jack/statistics.h b/jack/statistics.h new file mode 100644 index 0000000..fd3b82a --- /dev/null +++ b/jack/statistics.h @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2004 Rui Nuno Capela, Lee Revell + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free + * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * $Id$ + */ + +#ifndef __statistics_h__ +#define __statistics_h__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +/** + * @return the maximum delay reported by the backend since + * startup or reset. When compared to the period size in usecs, this + * can be used to estimate the ideal period size for a given setup. + */ +float jack_get_max_delayed_usecs (jack_client_t *client); + +/** + * @return the delay in microseconds due to the most recent XRUN + * occurrence. This probably only makes sense when called from a @ref + * JackXRunCallback defined using jack_set_xrun_callback(). + */ +float jack_get_xrun_delayed_usecs (jack_client_t *client); + +/** + * Reset the maximum delay counter. This would be useful + * to estimate the effect that a change to the configuration of a running + * system (e.g. toggling kernel preemption) has on the delay + * experienced by JACK, without having to restart the JACK engine. + */ +void jack_reset_max_delayed_usecs (jack_client_t *client); + +#ifdef __cplusplus +} +#endif + +#endif /* __statistics_h__ */ diff --git a/libjack/ChangeLog b/libjack/ChangeLog index fa96f09..080e325 100644 --- a/libjack/ChangeLog +++ b/libjack/ChangeLog @@ -1,3 +1,7 @@ +2004-12-31 Jack O'Quin + + * new header file: + 2004-12-27 Jack O'Quin * new API functions jack_get_max_delayed_usecs() and