Jack2 1.9.6
|
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 pthread_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_WEAK_EXPORT; 00314 00338 void jack_on_info_shutdown (jack_client_t *client, 00339 JackInfoShutdownCallback shutdown_callback, void *arg) JACK_OPTIONAL_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 00554 int jack_set_freewheel(jack_client_t* client, int onoff) JACK_OPTIONAL_WEAK_EXPORT; 00555 00571 int jack_set_buffer_size (jack_client_t *client, jack_nframes_t nframes) JACK_OPTIONAL_WEAK_EXPORT; 00572 00577 jack_nframes_t jack_get_sample_rate (jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 00578 00588 jack_nframes_t jack_get_buffer_size (jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 00589 00600 int jack_engine_takeover_timebase (jack_client_t *) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00601 00608 float jack_cpu_load (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 00609 00643 jack_port_t * jack_port_register (jack_client_t *client, 00644 const char *port_name, 00645 const char *port_type, 00646 unsigned long flags, 00647 unsigned long buffer_size) JACK_OPTIONAL_WEAK_EXPORT; 00648 00655 int jack_port_unregister (jack_client_t *, jack_port_t *) JACK_OPTIONAL_WEAK_EXPORT; 00656 00676 void * jack_port_get_buffer (jack_port_t *, jack_nframes_t) JACK_OPTIONAL_WEAK_EXPORT; 00677 00684 const char * jack_port_name (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00685 00692 const char * jack_port_short_name (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00693 00697 int jack_port_flags (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00698 00703 const char * jack_port_type (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00704 00708 jack_port_type_id_t jack_port_type_id (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00709 00713 int jack_port_is_mine (const jack_client_t *, const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00714 00720 int jack_port_connected (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00721 00728 int jack_port_connected_to (const jack_port_t *port, 00729 const char *port_name) JACK_OPTIONAL_WEAK_EXPORT; 00730 00742 const char ** jack_port_get_connections (const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00743 00763 const char ** jack_port_get_all_connections (const jack_client_t *client, 00764 const jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00765 00773 int jack_port_tie (jack_port_t *src, jack_port_t *dst) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00774 00782 int jack_port_untie (jack_port_t *port) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; 00783 00794 jack_nframes_t jack_port_get_latency (jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00795 00801 jack_nframes_t jack_port_get_total_latency (jack_client_t *, 00802 jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00803 00814 void jack_port_set_latency (jack_port_t *, jack_nframes_t) JACK_OPTIONAL_WEAK_EXPORT; 00815 00827 int jack_recompute_total_latency (jack_client_t*, jack_port_t* port) JACK_OPTIONAL_WEAK_EXPORT; 00828 00842 int jack_recompute_total_latencies (jack_client_t*) JACK_OPTIONAL_WEAK_EXPORT; 00843 00851 int jack_port_set_name (jack_port_t *port, const char *port_name) JACK_OPTIONAL_WEAK_EXPORT; 00852 00866 int jack_port_set_alias (jack_port_t *port, const char *alias) JACK_OPTIONAL_WEAK_EXPORT; 00867 00876 int jack_port_unset_alias (jack_port_t *port, const char *alias) JACK_OPTIONAL_WEAK_EXPORT; 00877 00883 int jack_port_get_aliases (const jack_port_t *port, char* const aliases[2]) JACK_OPTIONAL_WEAK_EXPORT; 00884 00889 int jack_port_request_monitor (jack_port_t *port, int onoff) JACK_OPTIONAL_WEAK_EXPORT; 00890 00899 int jack_port_request_monitor_by_name (jack_client_t *client, 00900 const char *port_name, int onoff) JACK_OPTIONAL_WEAK_EXPORT; 00901 00909 int jack_port_ensure_monitor (jack_port_t *port, int onoff) JACK_OPTIONAL_WEAK_EXPORT; 00910 00914 int jack_port_monitoring_input (jack_port_t *port) JACK_OPTIONAL_WEAK_EXPORT; 00915 00933 int jack_connect (jack_client_t *, 00934 const char *source_port, 00935 const char *destination_port) JACK_OPTIONAL_WEAK_EXPORT; 00936 00950 int jack_disconnect (jack_client_t *, 00951 const char *source_port, 00952 const char *destination_port) JACK_OPTIONAL_WEAK_EXPORT; 00953 00963 int jack_port_disconnect (jack_client_t *, jack_port_t *) JACK_OPTIONAL_WEAK_EXPORT; 00964 00973 int jack_port_name_size(void) JACK_OPTIONAL_WEAK_EXPORT; 00974 00979 int jack_port_type_size(void) JACK_OPTIONAL_WEAK_EXPORT; 00980 01004 const char ** jack_get_ports (jack_client_t *, 01005 const char *port_name_pattern, 01006 const char *type_name_pattern, 01007 unsigned long flags) JACK_OPTIONAL_WEAK_EXPORT; 01008 01014 jack_port_t * jack_port_by_name (jack_client_t *, const char *port_name) JACK_OPTIONAL_WEAK_EXPORT; 01015 01019 jack_port_t * jack_port_by_id (jack_client_t *client, 01020 jack_port_id_t port_id) JACK_OPTIONAL_WEAK_EXPORT; 01021 01037 jack_nframes_t jack_frames_since_cycle_start (const jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 01038 01045 jack_nframes_t jack_frame_time (const jack_client_t *) JACK_OPTIONAL_WEAK_EXPORT; 01046 01061 jack_nframes_t jack_last_frame_time (const jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; 01062 01066 jack_time_t jack_frames_to_time(const jack_client_t *client, jack_nframes_t) JACK_OPTIONAL_WEAK_EXPORT; 01067 01071 jack_nframes_t jack_time_to_frames(const jack_client_t *client, jack_time_t) JACK_OPTIONAL_WEAK_EXPORT; 01072 01079 jack_time_t jack_get_time() JACK_OPTIONAL_WEAK_EXPORT; 01080 01087 01096 extern void (*jack_error_callback)(const char *msg) JACK_OPTIONAL_WEAK_EXPORT; 01097 01105 void jack_set_error_function (void (*func)(const char *)) JACK_OPTIONAL_WEAK_EXPORT; 01106 01115 extern void (*jack_info_callback)(const char *msg) JACK_OPTIONAL_WEAK_EXPORT; 01116 01124 void jack_set_info_function (void (*func)(const char *)) JACK_OPTIONAL_WEAK_EXPORT; 01125 01135 void jack_free(void* ptr) JACK_OPTIONAL_WEAK_EXPORT; 01136 01137 01138 #ifdef __cplusplus 01139 } 01140 #endif 01141 01142 #endif /* __jack_h__ */