JACK-AUDIO-CONNECTION-KIT
0.121.2
|
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 <jack/types.h> 00029 #include <jack/transport.h> 00030 00036 /************************************************************* 00037 * NOTE: JACK_WEAK_EXPORT ***MUST*** be used on every function 00038 * added to the JACK API after the 0.116.2 release. 00039 * 00040 * Functions that predate this release are marked with 00041 * JACK_WEAK_OPTIONAL_EXPORT which can be defined at compile 00042 * time in a variety of ways. The default definition is empty, 00043 * so that these symbols get normal linkage. If you wish to 00044 * use all JACK symbols with weak linkage, include 00045 * <jack/weakjack.h> before jack.h. 00046 *************************************************************/ 00047 00048 #include <jack/weakmacros.h> 00049 00088 jack_client_t *jack_client_open (const char *client_name, 00089 jack_options_t options, 00090 jack_status_t *status, ...) JACK_OPTIONAL_WEAK_EXPORT; 00091 00097 jack_client_t *jack_client_new (const char *client_name) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00098 00104 int jack_client_close (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00105 00110 int jack_client_name_size (void) JACK_OPTIONAL_WEAK_EXPORT; 00111 00118 char *jack_get_client_name (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00119 00141 int jack_internal_client_new (const char *client_name, 00142 const char *load_name, 00143 const char *load_init) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00144 00150 void jack_internal_client_close (const char *client_name) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00151 00158 int jack_activate (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00159 00167 int jack_deactivate (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00168 00173 jack_native_thread_t jack_client_thread_id (jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 00174 00184 int jack_is_realtime (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00185 00198 jack_nframes_t jack_thread_wait (jack_client_t*, int status) JACK_OPTIONAL_WEAK_EXPORT; 00199 00207 jack_nframes_t jack_cycle_wait (jack_client_t* client) JACK_OPTIONAL_WEAK_EXPORT; 00208 00215 void jack_cycle_signal (jack_client_t* client, int status) JACK_OPTIONAL_WEAK_EXPORT; 00216 00228 int jack_set_process_thread(jack_client_t* client, JackThreadCallback fun, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00229 00248 int jack_set_thread_init_callback (jack_client_t *client, 00249 JackThreadInitCallback thread_init_callback, 00250 void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00251 00275 void jack_on_shutdown (jack_client_t *client, 00276 JackShutdownCallback function, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00277 00301 void jack_on_info_shutdown (jack_client_t *client, 00302 JackInfoShutdownCallback function, void *arg) JACK_WEAK_EXPORT; 00303 00317 int jack_set_process_callback (jack_client_t *client, 00318 JackProcessCallback process_callback, 00319 void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00320 00330 int jack_set_freewheel_callback (jack_client_t *client, 00331 JackFreewheelCallback freewheel_callback, 00332 void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00333 00346 int jack_set_buffer_size_callback (jack_client_t *client, 00347 JackBufferSizeCallback bufsize_callback, 00348 void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00349 00356 int jack_set_sample_rate_callback (jack_client_t *client, 00357 JackSampleRateCallback srate_callback, 00358 void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00359 00366 int jack_set_client_registration_callback (jack_client_t *, 00367 JackClientRegistrationCallback 00368 registration_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00369 00376 int jack_set_port_registration_callback (jack_client_t *, 00377 JackPortRegistrationCallback 00378 registration_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00379 00386 int jack_set_port_connect_callback (jack_client_t *, 00387 JackPortConnectCallback 00388 connect_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00395 int jack_set_graph_order_callback (jack_client_t *, 00396 JackGraphOrderCallback graph_callback, 00397 void *) JACK_OPTIONAL_WEAK_EXPORT; 00398 00405 int jack_set_xrun_callback (jack_client_t *, 00406 JackXRunCallback xrun_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00407 00461 int jack_set_latency_callback (jack_client_t *, 00462 JackLatencyCallback latency_callback, 00463 void *) JACK_WEAK_EXPORT; 00495 int jack_set_freewheel(jack_client_t* client, int onoff) JACK_OPTIONAL_WEAK_EXPORT; 00496 00512 int jack_set_buffer_size (jack_client_t *client, jack_nframes_t nframes) JACK_OPTIONAL_WEAK_EXPORT; 00513 00518 jack_nframes_t jack_get_sample_rate (jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 00519 00529 jack_nframes_t jack_get_buffer_size (jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 00530 00541 int jack_engine_takeover_timebase (jack_client_t *) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00542 00549 float jack_cpu_load (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00550 00551 00588 jack_port_t *jack_port_register (jack_client_t *client, 00589 const char *port_name, 00590 const char *port_type, 00591 unsigned long flags, 00592 unsigned long buffer_size) JACK_OPTIONAL_WEAK_EXPORT; 00593 00600 int jack_port_unregister (jack_client_t *, jack_port_t *) JACK_OPTIONAL_WEAK_EXPORT; 00601 00613 void *jack_port_get_buffer (jack_port_t *, jack_nframes_t) JACK_OPTIONAL_WEAK_EXPORT; 00614 00621 const char *jack_port_name (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00622 00629 const char *jack_port_short_name (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00630 00634 int jack_port_flags (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00635 00640 const char *jack_port_type (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00641 00645 int jack_port_is_mine (const jack_client_t *, const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00646 00652 int jack_port_connected (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00653 00660 int jack_port_connected_to (const jack_port_t *port, 00661 const char *port_name) JACK_OPTIONAL_WEAK_EXPORT; 00662 00674 const char **jack_port_get_connections (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00675 00695 const char **jack_port_get_all_connections (const jack_client_t *client, 00696 const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00697 00705 int jack_port_tie (jack_port_t *src, jack_port_t *dst) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00706 00714 int jack_port_untie (jack_port_t *port) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00715 00723 int jack_port_set_name (jack_port_t *port, const char *port_name) JACK_OPTIONAL_WEAK_EXPORT; 00724 00738 int jack_port_set_alias (jack_port_t *port, const char *alias) JACK_OPTIONAL_WEAK_EXPORT; 00739 00748 int jack_port_unset_alias (jack_port_t *port, const char *alias) JACK_OPTIONAL_WEAK_EXPORT; 00749 00750 /* 00751 * Get any aliases known for @port. 00752 * 00753 * @return the number of aliases discovered for the port 00754 */ 00755 int jack_port_get_aliases (const jack_port_t *port, char* const aliases[2]) JACK_OPTIONAL_WEAK_EXPORT; 00756 00761 int jack_port_request_monitor (jack_port_t *port, int onoff) JACK_OPTIONAL_WEAK_EXPORT; 00762 00771 int jack_port_request_monitor_by_name (jack_client_t *client, 00772 const char *port_name, int onoff) JACK_OPTIONAL_WEAK_EXPORT; 00773 00781 int jack_port_ensure_monitor (jack_port_t *port, int onoff) JACK_OPTIONAL_WEAK_EXPORT; 00782 00786 int jack_port_monitoring_input (jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00787 00805 int jack_connect (jack_client_t *, 00806 const char *source_port, 00807 const char *destination_port) JACK_OPTIONAL_WEAK_EXPORT; 00808 00822 int jack_disconnect (jack_client_t *, 00823 const char *source_port, 00824 const char *destination_port) JACK_OPTIONAL_WEAK_EXPORT; 00825 00835 int jack_port_disconnect (jack_client_t *, jack_port_t *) JACK_OPTIONAL_WEAK_EXPORT; 00836 00845 int jack_port_name_size(void) JACK_OPTIONAL_WEAK_EXPORT; 00846 00851 int jack_port_type_size(void) JACK_OPTIONAL_WEAK_EXPORT; 00852 00858 size_t jack_port_type_get_buffer_size (jack_client_t *client, const char *port_type) JACK_WEAK_EXPORT; 00859 00926 void jack_port_set_latency (jack_port_t *, jack_nframes_t) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00927 00937 void jack_port_get_latency_range (jack_port_t *port, jack_latency_callback_mode_t mode, jack_latency_range_t *range) JACK_WEAK_EXPORT; 00938 01006 void jack_port_set_latency_range (jack_port_t *port, jack_latency_callback_mode_t mode, jack_latency_range_t *range) JACK_WEAK_EXPORT; 01007 01021 int jack_recompute_total_latencies (jack_client_t*) JACK_OPTIONAL_WEAK_EXPORT; 01022 01038 jack_nframes_t jack_port_get_latency (jack_port_t *port) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 01039 01050 jack_nframes_t jack_port_get_total_latency (jack_client_t *, 01051 jack_port_t *port) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 01052 01069 int jack_recompute_total_latency (jack_client_t*, jack_port_t* port) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 01070 01094 const char **jack_get_ports (jack_client_t *, 01095 const char *port_name_pattern, 01096 const char *type_name_pattern, 01097 unsigned long flags) JACK_OPTIONAL_WEAK_EXPORT; 01098 01104 jack_port_t *jack_port_by_name (jack_client_t *, const char *port_name) JACK_OPTIONAL_WEAK_EXPORT; 01105 01109 jack_port_t *jack_port_by_id (jack_client_t *client, 01110 jack_port_id_t port_id) JACK_OPTIONAL_WEAK_EXPORT; 01111 01128 jack_nframes_t jack_frames_since_cycle_start (const jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 01129 01136 jack_nframes_t jack_frame_time (const jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 01137 01152 jack_nframes_t jack_last_frame_time (const jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 01153 01157 jack_time_t jack_frames_to_time(const jack_client_t *client, jack_nframes_t) JACK_OPTIONAL_WEAK_EXPORT; 01158 01162 jack_nframes_t jack_time_to_frames(const jack_client_t *client, jack_time_t) JACK_OPTIONAL_WEAK_EXPORT; 01163 01170 jack_time_t jack_get_time() JACK_OPTIONAL_WEAK_EXPORT; 01171 01178 01187 extern void (*jack_error_callback)(const char *msg) JACK_OPTIONAL_WEAK_EXPORT; 01188 01195 void jack_set_error_function (void (*func)(const char *)) JACK_OPTIONAL_WEAK_EXPORT; 01196 01205 extern void (*jack_info_callback)(const char *msg) JACK_OPTIONAL_WEAK_EXPORT; 01206 01210 void jack_set_info_function (void (*func)(const char *)) JACK_OPTIONAL_WEAK_EXPORT; 01220 void jack_free(void* ptr) JACK_OPTIONAL_WEAK_EXPORT; 01221 01222 #ifdef __cplusplus 01223 } 01224 #endif 01225 01226 #endif /* __jack_h__ */ 01227