JACK-AUDIO-CONNECTION-KIT 0.120.1
|
00001 /* 00002 Copyright (C) 2001 Paul Davis 00003 Copyright (C) 2004 Jack O'Quin 00004 00005 This program is free software; you can redistribute it and/or modify 00006 it under the terms of the GNU Lesser General Public License as published by 00007 the Free Software Foundation; either version 2.1 of the License, or 00008 (at your option) any later version. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU Lesser General Public License for more details. 00014 00015 You should have received a copy of the GNU Lesser General Public License 00016 along with this program; if not, write to the Free Software 00017 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00018 00019 */ 00020 00021 #ifndef __jack_h__ 00022 #define __jack_h__ 00023 00024 #ifdef __cplusplus 00025 extern "C" { 00026 #endif 00027 00028 #include <pthread.h> 00029 00030 #include <jack/types.h> 00031 #include <jack/transport.h> 00032 00038 /************************************************************* 00039 * NOTE: JACK_WEAK_EXPORT ***MUST*** be used on every function 00040 * added to the JACK API after the 0.116.2 release. 00041 * 00042 * Functions that predate this release are marked with 00043 * JACK_WEAK_OPTIONAL_EXPORT which can be defined at compile 00044 * time in a variety of ways. The default definition is empty, 00045 * so that these symbols get normal linkage. If you wish to 00046 * use all JACK symbols with weak linkage, include 00047 * <jack/weakjack.h> before jack.h. 00048 *************************************************************/ 00049 00050 #include <jack/weakmacros.h> 00051 00090 jack_client_t *jack_client_open (const char *client_name, 00091 jack_options_t options, 00092 jack_status_t *status, ...) JACK_OPTIONAL_WEAK_EXPORT; 00093 00099 jack_client_t *jack_client_new (const char *client_name) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00100 00106 int jack_client_close (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00107 00112 int jack_client_name_size (void) JACK_OPTIONAL_WEAK_EXPORT; 00113 00120 char *jack_get_client_name (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00121 00143 int jack_internal_client_new (const char *client_name, 00144 const char *load_name, 00145 const char *load_init) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00146 00152 void jack_internal_client_close (const char *client_name) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00153 00160 int jack_activate (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00161 00169 int jack_deactivate (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00170 00175 pthread_t jack_client_thread_id (jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 00176 00186 int jack_is_realtime (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00187 00200 jack_nframes_t jack_thread_wait (jack_client_t*, int status) JACK_OPTIONAL_WEAK_EXPORT; 00201 00209 jack_nframes_t jack_cycle_wait (jack_client_t* client) JACK_OPTIONAL_WEAK_EXPORT; 00210 00217 void jack_cycle_signal (jack_client_t* client, int status) JACK_OPTIONAL_WEAK_EXPORT; 00218 00230 int jack_set_process_thread(jack_client_t* client, JackThreadCallback fun, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00231 00250 int jack_set_thread_init_callback (jack_client_t *client, 00251 JackThreadInitCallback thread_init_callback, 00252 void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00253 00277 void jack_on_shutdown (jack_client_t *client, 00278 JackShutdownCallback function, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00279 00303 void jack_on_info_shutdown (jack_client_t *client, 00304 JackInfoShutdownCallback function, void *arg) JACK_WEAK_EXPORT; 00305 00319 int jack_set_process_callback (jack_client_t *client, 00320 JackProcessCallback process_callback, 00321 void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00322 00332 int jack_set_freewheel_callback (jack_client_t *client, 00333 JackFreewheelCallback freewheel_callback, 00334 void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00335 00348 int jack_set_buffer_size_callback (jack_client_t *client, 00349 JackBufferSizeCallback bufsize_callback, 00350 void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00351 00358 int jack_set_sample_rate_callback (jack_client_t *client, 00359 JackSampleRateCallback srate_callback, 00360 void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00361 00368 int jack_set_client_registration_callback (jack_client_t *, 00369 JackClientRegistrationCallback 00370 registration_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00371 00378 int jack_set_port_registration_callback (jack_client_t *, 00379 JackPortRegistrationCallback 00380 registration_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00381 00388 int jack_set_port_connect_callback (jack_client_t *, 00389 JackPortConnectCallback 00390 connect_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00397 int jack_set_graph_order_callback (jack_client_t *, 00398 JackGraphOrderCallback graph_callback, 00399 void *) JACK_OPTIONAL_WEAK_EXPORT; 00400 00407 int jack_set_xrun_callback (jack_client_t *, 00408 JackXRunCallback xrun_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00409 00416 int jack_set_latency_callback (jack_client_t *, 00417 JackLatencyCallback latency_callback, 00418 void *) JACK_WEAK_EXPORT; 00450 int jack_set_freewheel(jack_client_t* client, int onoff) JACK_OPTIONAL_WEAK_EXPORT; 00451 00467 int jack_set_buffer_size (jack_client_t *client, jack_nframes_t nframes) JACK_OPTIONAL_WEAK_EXPORT; 00468 00473 jack_nframes_t jack_get_sample_rate (jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 00474 00484 jack_nframes_t jack_get_buffer_size (jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 00485 00496 int jack_engine_takeover_timebase (jack_client_t *) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00497 00504 float jack_cpu_load (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00505 00506 00543 jack_port_t *jack_port_register (jack_client_t *client, 00544 const char *port_name, 00545 const char *port_type, 00546 unsigned long flags, 00547 unsigned long buffer_size) JACK_OPTIONAL_WEAK_EXPORT; 00548 00555 int jack_port_unregister (jack_client_t *, jack_port_t *) JACK_OPTIONAL_WEAK_EXPORT; 00556 00568 void *jack_port_get_buffer (jack_port_t *, jack_nframes_t) JACK_OPTIONAL_WEAK_EXPORT; 00569 00576 const char *jack_port_name (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00577 00584 const char *jack_port_short_name (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00585 00589 int jack_port_flags (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00590 00595 const char *jack_port_type (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00596 00600 int jack_port_is_mine (const jack_client_t *, const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00601 00607 int jack_port_connected (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00608 00615 int jack_port_connected_to (const jack_port_t *port, 00616 const char *port_name) JACK_OPTIONAL_WEAK_EXPORT; 00617 00629 const char **jack_port_get_connections (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00630 00650 const char **jack_port_get_all_connections (const jack_client_t *client, 00651 const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00652 00660 int jack_port_tie (jack_port_t *src, jack_port_t *dst) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00661 00669 int jack_port_untie (jack_port_t *port) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00670 00681 jack_nframes_t jack_port_get_latency (jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00682 00688 jack_nframes_t jack_port_get_total_latency (jack_client_t *, 00689 jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00690 00701 void jack_port_set_latency (jack_port_t *, jack_nframes_t) JACK_OPTIONAL_WEAK_EXPORT; 00702 00708 void jack_port_get_latency_range (jack_port_t *port, jack_latency_callback_mode_t mode, jack_latency_range_t *range) JACK_WEAK_EXPORT; 00709 00713 void jack_port_set_latency_range (jack_port_t *port, jack_latency_callback_mode_t mode, jack_latency_range_t *range) JACK_WEAK_EXPORT; 00714 00726 int jack_recompute_total_latency (jack_client_t*, jack_port_t* port) JACK_OPTIONAL_WEAK_EXPORT; 00727 00741 int jack_recompute_total_latencies (jack_client_t*) JACK_OPTIONAL_WEAK_EXPORT; 00742 00750 int jack_port_set_name (jack_port_t *port, const char *port_name) JACK_OPTIONAL_WEAK_EXPORT; 00751 00765 int jack_port_set_alias (jack_port_t *port, const char *alias) JACK_OPTIONAL_WEAK_EXPORT; 00766 00775 int jack_port_unset_alias (jack_port_t *port, const char *alias) JACK_OPTIONAL_WEAK_EXPORT; 00776 00777 /* 00778 * Get any aliases known for @port. 00779 * 00780 * @return the number of aliases discovered for the port 00781 */ 00782 int jack_port_get_aliases (const jack_port_t *port, char* const aliases[2]) JACK_OPTIONAL_WEAK_EXPORT; 00783 00788 int jack_port_request_monitor (jack_port_t *port, int onoff) JACK_OPTIONAL_WEAK_EXPORT; 00789 00798 int jack_port_request_monitor_by_name (jack_client_t *client, 00799 const char *port_name, int onoff) JACK_OPTIONAL_WEAK_EXPORT; 00800 00808 int jack_port_ensure_monitor (jack_port_t *port, int onoff) JACK_OPTIONAL_WEAK_EXPORT; 00809 00813 int jack_port_monitoring_input (jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00814 00832 int jack_connect (jack_client_t *, 00833 const char *source_port, 00834 const char *destination_port) JACK_OPTIONAL_WEAK_EXPORT; 00835 00849 int jack_disconnect (jack_client_t *, 00850 const char *source_port, 00851 const char *destination_port) JACK_OPTIONAL_WEAK_EXPORT; 00852 00862 int jack_port_disconnect (jack_client_t *, jack_port_t *) JACK_OPTIONAL_WEAK_EXPORT; 00863 00872 int jack_port_name_size(void) JACK_OPTIONAL_WEAK_EXPORT; 00873 00878 int jack_port_type_size(void) JACK_OPTIONAL_WEAK_EXPORT; 00902 const char **jack_get_ports (jack_client_t *, 00903 const char *port_name_pattern, 00904 const char *type_name_pattern, 00905 unsigned long flags) JACK_OPTIONAL_WEAK_EXPORT; 00906 00912 jack_port_t *jack_port_by_name (jack_client_t *, const char *port_name) JACK_OPTIONAL_WEAK_EXPORT; 00913 00917 jack_port_t *jack_port_by_id (jack_client_t *client, 00918 jack_port_id_t port_id) JACK_OPTIONAL_WEAK_EXPORT; 00919 00936 jack_nframes_t jack_frames_since_cycle_start (const jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 00937 00944 jack_nframes_t jack_frame_time (const jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 00945 00960 jack_nframes_t jack_last_frame_time (const jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00961 00965 jack_time_t jack_frames_to_time(const jack_client_t *client, jack_nframes_t) JACK_OPTIONAL_WEAK_EXPORT; 00966 00970 jack_nframes_t jack_time_to_frames(const jack_client_t *client, jack_time_t) JACK_OPTIONAL_WEAK_EXPORT; 00971 00978 jack_time_t jack_get_time() JACK_OPTIONAL_WEAK_EXPORT; 00979 00986 00995 extern void (*jack_error_callback)(const char *msg) JACK_OPTIONAL_WEAK_EXPORT; 00996 01003 void jack_set_error_function (void (*func)(const char *)) JACK_OPTIONAL_WEAK_EXPORT; 01004 01013 extern void (*jack_info_callback)(const char *msg) JACK_OPTIONAL_WEAK_EXPORT; 01014 01018 void jack_set_info_function (void (*func)(const char *)) JACK_OPTIONAL_WEAK_EXPORT; 01028 void jack_free(void* ptr) JACK_OPTIONAL_WEAK_EXPORT; 01029 01030 #ifdef __cplusplus 01031 } 01032 #endif 01033 01034 #endif /* __jack_h__ */ 01035