Jack2
1.9.8
|
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 00112 jack_client_t * jack_client_open (const char *client_name, 00113 jack_options_t options, 00114 jack_status_t *status, ...) JACK_OPTIONAL_WEAK_EXPORT; 00115 00122 jack_client_t * jack_client_new (const char *client_name) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00123 00129 int jack_client_close (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00130 00135 int jack_client_name_size (void) JACK_OPTIONAL_WEAK_EXPORT; 00136 00143 char * jack_get_client_name (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00144 00166 int jack_internal_client_new (const char *client_name, 00167 const char *load_name, 00168 const char *load_init) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00169 00175 void jack_internal_client_close (const char *client_name) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00176 00183 int jack_activate (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00184 00192 int jack_deactivate (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00193 00197 int jack_get_client_pid (const char *name) JACK_OPTIONAL_WEAK_EXPORT; 00198 00203 jack_native_thread_t jack_client_thread_id (jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 00204 00214 int jack_is_realtime (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00215 00227 jack_nframes_t jack_thread_wait (jack_client_t*, int status) JACK_OPTIONAL_WEAK_EXPORT; 00228 00236 jack_nframes_t jack_cycle_wait (jack_client_t* client) JACK_OPTIONAL_WEAK_EXPORT; 00237 00244 void jack_cycle_signal (jack_client_t* client, int status) JACK_OPTIONAL_WEAK_EXPORT; 00245 00262 int jack_set_process_thread(jack_client_t* client, JackThreadCallback thread_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00263 00285 int jack_set_thread_init_callback (jack_client_t *client, 00286 JackThreadInitCallback thread_init_callback, 00287 void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00288 00312 void jack_on_shutdown (jack_client_t *client, 00313 JackShutdownCallback shutdown_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00314 00338 void jack_on_info_shutdown (jack_client_t *client, 00339 JackInfoShutdownCallback shutdown_callback, void *arg) JACK_WEAK_EXPORT; 00340 00358 int jack_set_process_callback (jack_client_t *client, 00359 JackProcessCallback process_callback, 00360 void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00361 00378 int jack_set_freewheel_callback (jack_client_t *client, 00379 JackFreewheelCallback freewheel_callback, 00380 void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00381 00401 int jack_set_buffer_size_callback (jack_client_t *client, 00402 JackBufferSizeCallback bufsize_callback, 00403 void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00404 00418 int jack_set_sample_rate_callback (jack_client_t *client, 00419 JackSampleRateCallback srate_callback, 00420 void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00421 00435 int jack_set_client_registration_callback (jack_client_t *, 00436 JackClientRegistrationCallback 00437 registration_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00438 00452 int jack_set_port_registration_callback (jack_client_t *, 00453 JackPortRegistrationCallback 00454 registration_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00455 00469 int jack_set_port_connect_callback (jack_client_t *, 00470 JackPortConnectCallback 00471 connect_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00472 00486 int jack_set_port_rename_callback (jack_client_t *, 00487 JackPortRenameCallback 00488 rename_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00489 00503 int jack_set_graph_order_callback (jack_client_t *, 00504 JackGraphOrderCallback graph_callback, 00505 void *) JACK_OPTIONAL_WEAK_EXPORT; 00506 00520 int jack_set_xrun_callback (jack_client_t *, 00521 JackXRunCallback xrun_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; 00522 00578 int jack_set_latency_callback (jack_client_t *, 00579 JackLatencyCallback latency_callback, 00580 void *) JACK_WEAK_EXPORT; 00612 int jack_set_freewheel(jack_client_t* client, int onoff) JACK_OPTIONAL_WEAK_EXPORT; 00613 00629 int jack_set_buffer_size (jack_client_t *client, jack_nframes_t nframes) JACK_OPTIONAL_WEAK_EXPORT; 00630 00635 jack_nframes_t jack_get_sample_rate (jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 00636 00646 jack_nframes_t jack_get_buffer_size (jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 00647 00658 int jack_engine_takeover_timebase (jack_client_t *) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00659 00666 float jack_cpu_load (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00667 00704 jack_port_t * jack_port_register (jack_client_t *client, 00705 const char *port_name, 00706 const char *port_type, 00707 unsigned long flags, 00708 unsigned long buffer_size) JACK_OPTIONAL_WEAK_EXPORT; 00709 00716 int jack_port_unregister (jack_client_t *, jack_port_t *) JACK_OPTIONAL_WEAK_EXPORT; 00717 00737 void * jack_port_get_buffer (jack_port_t *, jack_nframes_t) JACK_OPTIONAL_WEAK_EXPORT; 00738 00745 const char * jack_port_name (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00746 00753 const char * jack_port_short_name (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00754 00758 int jack_port_flags (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00759 00764 const char * jack_port_type (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00765 00769 jack_port_type_id_t jack_port_type_id (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00770 00774 int jack_port_is_mine (const jack_client_t *, const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00775 00781 int jack_port_connected (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00782 00789 int jack_port_connected_to (const jack_port_t *port, 00790 const char *port_name) JACK_OPTIONAL_WEAK_EXPORT; 00791 00803 const char ** jack_port_get_connections (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00804 00824 const char ** jack_port_get_all_connections (const jack_client_t *client, 00825 const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00826 00834 int jack_port_tie (jack_port_t *src, jack_port_t *dst) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00835 00843 int jack_port_untie (jack_port_t *port) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00844 00852 int jack_port_set_name (jack_port_t *port, const char *port_name) JACK_OPTIONAL_WEAK_EXPORT; 00853 00867 int jack_port_set_alias (jack_port_t *port, const char *alias) JACK_OPTIONAL_WEAK_EXPORT; 00868 00877 int jack_port_unset_alias (jack_port_t *port, const char *alias) JACK_OPTIONAL_WEAK_EXPORT; 00878 00884 int jack_port_get_aliases (const jack_port_t *port, char* const aliases[2]) JACK_OPTIONAL_WEAK_EXPORT; 00885 00890 int jack_port_request_monitor (jack_port_t *port, int onoff) JACK_OPTIONAL_WEAK_EXPORT; 00891 00900 int jack_port_request_monitor_by_name (jack_client_t *client, 00901 const char *port_name, int onoff) JACK_OPTIONAL_WEAK_EXPORT; 00902 00910 int jack_port_ensure_monitor (jack_port_t *port, int onoff) JACK_OPTIONAL_WEAK_EXPORT; 00911 00915 int jack_port_monitoring_input (jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00916 00934 int jack_connect (jack_client_t *, 00935 const char *source_port, 00936 const char *destination_port) JACK_OPTIONAL_WEAK_EXPORT; 00937 00951 int jack_disconnect (jack_client_t *, 00952 const char *source_port, 00953 const char *destination_port) JACK_OPTIONAL_WEAK_EXPORT; 00954 00964 int jack_port_disconnect (jack_client_t *, jack_port_t *) JACK_OPTIONAL_WEAK_EXPORT; 00965 00974 int jack_port_name_size(void) JACK_OPTIONAL_WEAK_EXPORT; 00975 00980 int jack_port_type_size(void) JACK_OPTIONAL_WEAK_EXPORT; 00981 00987 size_t jack_port_type_get_buffer_size (jack_client_t *client, const char *port_type) JACK_WEAK_EXPORT; 00988 01055 void jack_port_set_latency (jack_port_t *, jack_nframes_t) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 01056 01066 void jack_port_get_latency_range (jack_port_t *port, jack_latency_callback_mode_t mode, jack_latency_range_t *range) JACK_WEAK_EXPORT; 01067 01135 void jack_port_set_latency_range (jack_port_t *port, jack_latency_callback_mode_t mode, jack_latency_range_t *range) JACK_WEAK_EXPORT; 01136 01150 int jack_recompute_total_latencies (jack_client_t*) JACK_OPTIONAL_WEAK_EXPORT; 01151 01167 jack_nframes_t jack_port_get_latency (jack_port_t *port) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 01168 01179 jack_nframes_t jack_port_get_total_latency (jack_client_t *, 01180 jack_port_t *port) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 01181 01198 int jack_recompute_total_latency (jack_client_t*, jack_port_t* port) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 01199 01223 const char ** jack_get_ports (jack_client_t *, 01224 const char *port_name_pattern, 01225 const char *type_name_pattern, 01226 unsigned long flags) JACK_OPTIONAL_WEAK_EXPORT; 01227 01233 jack_port_t * jack_port_by_name (jack_client_t *, const char *port_name) JACK_OPTIONAL_WEAK_EXPORT; 01234 01238 jack_port_t * jack_port_by_id (jack_client_t *client, 01239 jack_port_id_t port_id) JACK_OPTIONAL_WEAK_EXPORT; 01240 01256 jack_nframes_t jack_frames_since_cycle_start (const jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 01257 01264 jack_nframes_t jack_frame_time (const jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 01265 01280 jack_nframes_t jack_last_frame_time (const jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 01281 01285 jack_time_t jack_frames_to_time(const jack_client_t *client, jack_nframes_t) JACK_OPTIONAL_WEAK_EXPORT; 01286 01290 jack_nframes_t jack_time_to_frames(const jack_client_t *client, jack_time_t) JACK_OPTIONAL_WEAK_EXPORT; 01291 01298 jack_time_t jack_get_time() JACK_OPTIONAL_WEAK_EXPORT; 01299 01306 01315 extern void (*jack_error_callback)(const char *msg) JACK_OPTIONAL_WEAK_EXPORT; 01316 01324 void jack_set_error_function (void (*func)(const char *)) JACK_OPTIONAL_WEAK_EXPORT; 01325 01334 extern void (*jack_info_callback)(const char *msg) JACK_OPTIONAL_WEAK_EXPORT; 01335 01343 void jack_set_info_function (void (*func)(const char *)) JACK_OPTIONAL_WEAK_EXPORT; 01344 01354 void jack_free(void* ptr) JACK_OPTIONAL_WEAK_EXPORT; 01355 01356 01357 #ifdef __cplusplus 01358 } 01359 #endif 01360 01361 #endif /* __jack_h__ */