Jack2 1.9.10
|
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 { 00027 #endif 00028 00029 #include <jack/systemdeps.h> 00030 #include <jack/types.h> 00031 #include <jack/transport.h> 00032 00037 /************************************************************* 00038 * NOTE: JACK_WEAK_EXPORT ***MUST*** be used on every function 00039 * added to the JACK API after the 0.116.2 release. 00040 * 00041 * Functions that predate this release are marked with 00042 * JACK_WEAK_OPTIONAL_EXPORT which can be defined at compile 00043 * time in a variety of ways. The default definition is empty, 00044 * so that these symbols get normal linkage. If you wish to 00045 * use all JACK symbols with weak linkage, include 00046 * <jack/weakjack.h> before jack.h. 00047 *************************************************************/ 00048 00049 #include <jack/weakmacros.h> 00050 00063 void 00064 jack_get_version( 00065 int *major_ptr, 00066 int *minor_ptr, 00067 int *micro_ptr, 00068 int *proto_ptr) JACK_OPTIONAL_WEAK_EXPORT; 00069 00076 const char * 00077 jack_get_version_string() JACK_OPTIONAL_WEAK_EXPORT; 00078 00117 jack_client_t * jack_client_open (const char *client_name, 00118 jack_options_t options, 00119 jack_status_t *status, ...) JACK_OPTIONAL_WEAK_EXPORT; 00120 00127 jack_client_t * jack_client_new (const char *client_name) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00128 00134 int jack_client_close (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00135 00140 int jack_client_name_size (void) JACK_OPTIONAL_WEAK_EXPORT; 00141 00148 char * jack_get_client_name (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00149 00158 char *jack_get_uuid_for_client_name (jack_client_t *client, 00159 const char *client_name) JACK_WEAK_EXPORT; 00160 00170 char *jack_get_client_name_by_uuid (jack_client_t *client, 00171 const char *client_uuid ) JACK_WEAK_EXPORT; 00172 00194 int jack_internal_client_new (const char *client_name, 00195 const char *load_name, 00196 const char *load_init) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00197 00203 void jack_internal_client_close (const char *client_name) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00204 00211 int jack_activate (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00212 00220 int jack_deactivate (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00221 00225 int jack_get_client_pid (const char *name) JACK_OPTIONAL_WEAK_EXPORT; 00226 00231 jack_native_thread_t jack_client_thread_id (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00232 00242 int jack_is_realtime (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00243 00255 jack_nframes_t jack_thread_wait (jack_client_t *client, int status) JACK_OPTIONAL_WEAK_EXPORT; 00256 00264 jack_nframes_t jack_cycle_wait (jack_client_t* client) JACK_OPTIONAL_WEAK_EXPORT; 00265 00272 void jack_cycle_signal (jack_client_t* client, int status) JACK_OPTIONAL_WEAK_EXPORT; 00273 00290 int jack_set_process_thread(jack_client_t* client, JackThreadCallback thread_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00291 00313 int jack_set_thread_init_callback (jack_client_t *client, 00314 JackThreadInitCallback thread_init_callback, 00315 void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00316 00345 void jack_on_shutdown (jack_client_t *client, 00346 JackShutdownCallback shutdown_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00347 00375 void jack_on_info_shutdown (jack_client_t *client, 00376 JackInfoShutdownCallback shutdown_callback, void *arg) JACK_WEAK_EXPORT; 00377 00395 int jack_set_process_callback (jack_client_t *client, 00396 JackProcessCallback process_callback, 00397 void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00398 00415 int jack_set_freewheel_callback (jack_client_t *client, 00416 JackFreewheelCallback freewheel_callback, 00417 void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00418 00438 int jack_set_buffer_size_callback (jack_client_t *client, 00439 JackBufferSizeCallback bufsize_callback, 00440 void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00441 00455 int jack_set_sample_rate_callback (jack_client_t *client, 00456 JackSampleRateCallback srate_callback, 00457 void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00458 00472 int jack_set_client_registration_callback (jack_client_t *client, 00473 JackClientRegistrationCallback 00474 registration_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00475 00489 int jack_set_port_registration_callback (jack_client_t *client, 00490 JackPortRegistrationCallback 00491 registration_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00492 00506 int jack_set_port_connect_callback (jack_client_t *client, 00507 JackPortConnectCallback 00508 connect_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00509 00523 int jack_set_port_rename_callback (jack_client_t *client, 00524 JackPortRenameCallback 00525 rename_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00526 00540 int jack_set_graph_order_callback (jack_client_t *client, 00541 JackGraphOrderCallback graph_callback, 00542 void *) JACK_OPTIONAL_WEAK_EXPORT; 00543 00557 int jack_set_xrun_callback (jack_client_t *client, 00558 JackXRunCallback xrun_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00559 00615 int jack_set_latency_callback (jack_client_t *client, 00616 JackLatencyCallback latency_callback, 00617 void *) JACK_WEAK_EXPORT; 00649 int jack_set_freewheel(jack_client_t* client, int onoff) JACK_OPTIONAL_WEAK_EXPORT; 00650 00666 int jack_set_buffer_size (jack_client_t *client, jack_nframes_t nframes) JACK_OPTIONAL_WEAK_EXPORT; 00667 00672 jack_nframes_t jack_get_sample_rate (jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 00673 00683 jack_nframes_t jack_get_buffer_size (jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 00684 00695 int jack_engine_takeover_timebase (jack_client_t *) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00696 00703 float jack_cpu_load (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00704 00741 jack_port_t * jack_port_register (jack_client_t *client, 00742 const char *port_name, 00743 const char *port_type, 00744 unsigned long flags, 00745 unsigned long buffer_size) JACK_OPTIONAL_WEAK_EXPORT; 00746 00753 int jack_port_unregister (jack_client_t *client, jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00754 00774 void * jack_port_get_buffer (jack_port_t *port, jack_nframes_t) JACK_OPTIONAL_WEAK_EXPORT; 00775 00781 jack_uuid_t jack_port_uuid (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00782 00789 const char * jack_port_name (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00790 00797 const char * jack_port_short_name (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00798 00802 int jack_port_flags (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00803 00808 const char * jack_port_type (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00809 00813 jack_port_type_id_t jack_port_type_id (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00814 00818 int jack_port_is_mine (const jack_client_t *client, const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00819 00825 int jack_port_connected (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00826 00833 int jack_port_connected_to (const jack_port_t *port, 00834 const char *port_name) JACK_OPTIONAL_WEAK_EXPORT; 00835 00847 const char ** jack_port_get_connections (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00848 00868 const char ** jack_port_get_all_connections (const jack_client_t *client, 00869 const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00870 00878 int jack_port_tie (jack_port_t *src, jack_port_t *dst) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00879 00887 int jack_port_untie (jack_port_t *port) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00888 00896 int jack_port_set_name (jack_port_t *port, const char *port_name) JACK_OPTIONAL_WEAK_EXPORT; 00897 00911 int jack_port_set_alias (jack_port_t *port, const char *alias) JACK_OPTIONAL_WEAK_EXPORT; 00912 00921 int jack_port_unset_alias (jack_port_t *port, const char *alias) JACK_OPTIONAL_WEAK_EXPORT; 00922 00928 int jack_port_get_aliases (const jack_port_t *port, char* const aliases[2]) JACK_OPTIONAL_WEAK_EXPORT; 00929 00934 int jack_port_request_monitor (jack_port_t *port, int onoff) JACK_OPTIONAL_WEAK_EXPORT; 00935 00944 int jack_port_request_monitor_by_name (jack_client_t *client, 00945 const char *port_name, int onoff) JACK_OPTIONAL_WEAK_EXPORT; 00946 00954 int jack_port_ensure_monitor (jack_port_t *port, int onoff) JACK_OPTIONAL_WEAK_EXPORT; 00955 00959 int jack_port_monitoring_input (jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00960 00978 int jack_connect (jack_client_t *client, 00979 const char *source_port, 00980 const char *destination_port) JACK_OPTIONAL_WEAK_EXPORT; 00981 00995 int jack_disconnect (jack_client_t *client, 00996 const char *source_port, 00997 const char *destination_port) JACK_OPTIONAL_WEAK_EXPORT; 00998 01008 int jack_port_disconnect (jack_client_t *client, jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 01009 01018 int jack_port_name_size(void) JACK_OPTIONAL_WEAK_EXPORT; 01019 01024 int jack_port_type_size(void) JACK_OPTIONAL_WEAK_EXPORT; 01025 01031 size_t jack_port_type_get_buffer_size (jack_client_t *client, const char *port_type) JACK_WEAK_EXPORT; 01032 01099 void jack_port_set_latency (jack_port_t *port, jack_nframes_t) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 01100 01110 void jack_port_get_latency_range (jack_port_t *port, jack_latency_callback_mode_t mode, jack_latency_range_t *range) JACK_WEAK_EXPORT; 01111 01179 void jack_port_set_latency_range (jack_port_t *port, jack_latency_callback_mode_t mode, jack_latency_range_t *range) JACK_WEAK_EXPORT; 01180 01194 int jack_recompute_total_latencies (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 01195 01211 jack_nframes_t jack_port_get_latency (jack_port_t *port) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 01212 01223 jack_nframes_t jack_port_get_total_latency (jack_client_t *client, 01224 jack_port_t *port) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 01225 01242 int jack_recompute_total_latency (jack_client_t*, jack_port_t* port) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 01243 01267 const char ** jack_get_ports (jack_client_t *client, 01268 const char *port_name_pattern, 01269 const char *type_name_pattern, 01270 unsigned long flags) JACK_OPTIONAL_WEAK_EXPORT; 01271 01277 jack_port_t * jack_port_by_name (jack_client_t *client, const char *port_name) JACK_OPTIONAL_WEAK_EXPORT; 01278 01282 jack_port_t * jack_port_by_id (jack_client_t *client, 01283 jack_port_id_t port_id) JACK_OPTIONAL_WEAK_EXPORT; 01284 01300 jack_nframes_t jack_frames_since_cycle_start (const jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 01301 01308 jack_nframes_t jack_frame_time (const jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 01309 01324 jack_nframes_t jack_last_frame_time (const jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 01325 01369 int jack_get_cycle_times(const jack_client_t *client, 01370 jack_nframes_t *current_frames, 01371 jack_time_t *current_usecs, 01372 jack_time_t *next_usecs, 01373 float *period_usecs) JACK_OPTIONAL_WEAK_EXPORT; 01374 01378 jack_time_t jack_frames_to_time(const jack_client_t *client, jack_nframes_t) JACK_OPTIONAL_WEAK_EXPORT; 01379 01383 jack_nframes_t jack_time_to_frames(const jack_client_t *client, jack_time_t) JACK_OPTIONAL_WEAK_EXPORT; 01384 01391 jack_time_t jack_get_time() JACK_OPTIONAL_WEAK_EXPORT; 01392 01399 01408 extern void (*jack_error_callback)(const char *msg) JACK_OPTIONAL_WEAK_EXPORT; 01409 01417 void jack_set_error_function (void (*func)(const char *)) JACK_OPTIONAL_WEAK_EXPORT; 01418 01427 extern void (*jack_info_callback)(const char *msg) JACK_OPTIONAL_WEAK_EXPORT; 01428 01436 void jack_set_info_function (void (*func)(const char *)) JACK_OPTIONAL_WEAK_EXPORT; 01437 01447 void jack_free(void* ptr) JACK_OPTIONAL_WEAK_EXPORT; 01448 01449 01450 #ifdef __cplusplus 01451 } 01452 #endif 01453 01454 #endif /* __jack_h__ */