jack.h

Go to the documentation of this file.
00001 /*
00002     Copyright (C) 2001 Paul Davis
00003     
00004     This program is free software; you can redistribute it and/or modify
00005     it under the terms of the GNU Lesser General Public License as published by
00006     the Free Software Foundation; either version 2.1 of the License, or
00007     (at your option) any later version.
00008     
00009     This program is distributed in the hope that it will be useful,
00010     but WITHOUT ANY WARRANTY; without even the implied warranty of
00011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012     GNU Lesser General Public License for more details.
00013     
00014     You should have received a copy of the GNU Lesser General Public License
00015     along with this program; if not, write to the Free Software 
00016     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00017 
00018     $Id: jack.h,v 1.64 2004/07/15 03:07:28 trutkin Exp $
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 
00055 jack_client_t *jack_client_new (const char *client_name);
00056 
00062 int jack_client_close (jack_client_t *client);
00063 
00068 int jack_client_name_size(void);
00069 
00085 int jack_internal_client_new (const char *client_name, const char *so_name,
00086                               const char *so_data);
00087 
00093 void jack_internal_client_close (const char *client_name);
00094 
00102 int jack_is_realtime (jack_client_t *client);
00103 
00122 void jack_on_shutdown (jack_client_t *client, void (*function)(void *arg), void *arg);
00123 
00139 int jack_set_process_callback (jack_client_t *client,
00140                                JackProcessCallback process_callback,
00141                                void *arg);
00142 
00154 int jack_set_thread_init_callback (jack_client_t *client,
00155                                    JackThreadInitCallback thread_init_callback,
00156                                    void *arg);
00157 
00167 int jack_set_freewheel_callback (jack_client_t *client,
00168                                  JackFreewheelCallback freewheel_callback,
00169                                  void *arg);
00170 
00189 int jack_set_freewheel(jack_client_t* client, int onoff);
00190 
00206 int jack_set_buffer_size (jack_client_t *client, jack_nframes_t nframes);
00207 
00220 int jack_set_buffer_size_callback (jack_client_t *client,
00221                                    JackBufferSizeCallback bufsize_callback,
00222                                    void *arg);
00223 
00230 int jack_set_sample_rate_callback (jack_client_t *client,
00231                                    JackSampleRateCallback srate_callback,
00232                                    void *arg);
00233 
00240 int jack_set_port_registration_callback (jack_client_t *,
00241                                          JackPortRegistrationCallback
00242                                          registration_callback, void *arg);
00243 
00250 int jack_set_graph_order_callback (jack_client_t *, JackGraphOrderCallback graph_callback, void *);
00251 
00258 int jack_set_xrun_callback (jack_client_t *, JackXRunCallback xrun_callback, void *arg);
00259 
00266 int jack_activate (jack_client_t *client);
00267 
00275 int jack_deactivate (jack_client_t *client);
00276 
00303 jack_port_t *jack_port_register (jack_client_t *client,
00304                                  const char *port_name,
00305                                  const char *port_type,
00306                                  unsigned long flags,
00307                                  unsigned long buffer_size);
00308 
00315 int jack_port_unregister (jack_client_t *, jack_port_t *);
00316 
00333 void *jack_port_get_buffer (jack_port_t *, jack_nframes_t);
00334 
00341 const char *jack_port_name (const jack_port_t *port);
00342 
00349 const char *jack_port_short_name (const jack_port_t *port);
00350 
00354 int jack_port_flags (const jack_port_t *port);
00355 
00360 const char *jack_port_type (const jack_port_t *port);
00361 
00365 int jack_port_is_mine (const jack_client_t *, const jack_port_t *port);
00366 
00372 int jack_port_connected (const jack_port_t *port);
00373 
00380 int jack_port_connected_to (const jack_port_t *port,
00381                             const char *port_name);
00382 
00394 const char **jack_port_get_connections (const jack_port_t *port);
00395 
00415 const char **jack_port_get_all_connections (const jack_client_t *client,
00416                                             const jack_port_t *port);
00417 
00434 int  jack_port_tie (jack_port_t *src, jack_port_t *dst);
00435 
00443 int  jack_port_untie (jack_port_t *port);
00444 
00452 int jack_port_lock (jack_client_t *, jack_port_t *);
00453 
00459 int jack_port_unlock (jack_client_t *, jack_port_t *);
00460 
00471 jack_nframes_t jack_port_get_latency (jack_port_t *port);
00472 
00478 jack_nframes_t jack_port_get_total_latency (jack_client_t *,
00479                                             jack_port_t *port);
00480 
00491 void jack_port_set_latency (jack_port_t *, jack_nframes_t);
00492 
00500 int jack_port_set_name (jack_port_t *port, const char *port_name);
00501 
00506 int jack_port_request_monitor (jack_port_t *port, int onoff);
00507 
00516 int jack_port_request_monitor_by_name (jack_client_t *client,
00517                                        const char *port_name, int onoff);
00518 
00526 int jack_port_ensure_monitor (jack_port_t *port, int onoff);
00527 
00531 int jack_port_monitoring_input (jack_port_t *port);
00532 
00550 int jack_connect (jack_client_t *,
00551                   const char *source_port,
00552                   const char *destination_port);
00553 
00567 int jack_disconnect (jack_client_t *,
00568                      const char *source_port,
00569                      const char *destination_port);
00570 
00580 int jack_port_disconnect (jack_client_t *, jack_port_t *);
00581 
00590 int jack_port_name_size(void);
00591 
00596 int jack_port_type_size(void);
00597 
00602 jack_nframes_t jack_get_sample_rate (jack_client_t *);
00603 
00613 jack_nframes_t jack_get_buffer_size (jack_client_t *);
00614 
00631 const char **jack_get_ports (jack_client_t *, 
00632                              const char *port_name_pattern, 
00633                              const char *type_name_pattern, 
00634                              unsigned long flags);
00635 
00641 jack_port_t *jack_port_by_name (jack_client_t *, const char *port_name);
00642 
00646 jack_port_t *jack_port_by_id (const jack_client_t *client,
00647                               jack_port_id_t port_id);
00648 
00659 int  jack_engine_takeover_timebase (jack_client_t *);
00660 
00665 jack_nframes_t jack_frames_since_cycle_start (const jack_client_t *);
00666 
00672 jack_nframes_t jack_frame_time (const jack_client_t *);
00673 
00681 jack_nframes_t jack_last_frame_time (const jack_client_t *client);
00682 
00683 
00690 float jack_cpu_load (jack_client_t *client);
00691 
00703 void jack_set_server_dir (const char *path);
00704 
00709 pthread_t jack_client_thread_id (jack_client_t *);
00710 
00719 extern void (*jack_error_callback)(const char *msg);
00720 
00727 void jack_set_error_function (void (*func)(const char *));
00728 
00729 #ifdef __cplusplus
00730 }
00731 #endif
00732 
00733 #endif /* __jack_h__ */

Generated on Tue Jan 25 12:55:41 2005 for JACK-AUDIO-CONNECTION-KIT by  doxygen 1.4.1