JACK-AUDIO-CONNECTION-KIT 0.118.0
|
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_types_h__ 00022 #define __jack_types_h__ 00023 00024 #include <inttypes.h> 00025 #ifndef PRIu32 00026 #define PRIi32 "i" /* int32_t */ 00027 #define PRIu32 "u" /* uint32_t */ 00028 #define PRIu64 "llu" /* uint64_t */ 00029 #define SCNu64 "llu" /* uint64_t */ 00030 #define PRId32 "d" /* int32_t */ 00031 #define PRIx64 "llx" /* uint64_t */ 00032 #endif 00033 00034 typedef int32_t jack_shmsize_t; 00035 00039 typedef uint32_t jack_nframes_t; 00040 00044 #define JACK_MAX_FRAMES (4294967295U) /* This should be UINT32_MAX, but 00045 C++ has a problem with that. */ 00046 00051 typedef uint64_t jack_time_t; 00052 00057 #define JACK_LOAD_INIT_LIMIT 1024 00058 00064 typedef uint64_t jack_intclient_t; 00065 00070 typedef struct _jack_port jack_port_t; 00071 00076 typedef struct _jack_client jack_client_t; 00077 00082 typedef uint32_t jack_port_id_t; 00083 00084 00088 enum JackOptions { 00089 00093 JackNullOption = 0x00, 00094 00101 JackNoStartServer = 0x01, 00102 00107 JackUseExactName = 0x02, 00108 00112 JackServerName = 0x04, 00113 00118 JackLoadName = 0x08, 00119 00124 JackLoadInit = 0x10 00125 }; 00126 00128 #define JackOpenOptions (JackServerName|JackNoStartServer|JackUseExactName) 00129 00131 #define JackLoadOptions (JackLoadInit|JackLoadName|JackUseExactName) 00132 00137 typedef enum JackOptions jack_options_t; 00138 00142 enum JackStatus { 00143 00147 JackFailure = 0x01, 00148 00152 JackInvalidOption = 0x02, 00153 00163 JackNameNotUnique = 0x04, 00164 00171 JackServerStarted = 0x08, 00172 00176 JackServerFailed = 0x10, 00177 00181 JackServerError = 0x20, 00182 00186 JackNoSuchClient = 0x40, 00187 00191 JackLoadFailure = 0x80, 00192 00196 JackInitFailure = 0x100, 00197 00201 JackShmFailure = 0x200, 00202 00206 JackVersionError = 0x400, 00207 00208 /* 00209 * BackendError 00210 */ 00211 JackBackendError = 0x800, 00212 00213 /* 00214 * Client is being shutdown against its will 00215 */ 00216 JackClientZombie = 0x1000 00217 }; 00218 00223 typedef enum JackStatus jack_status_t; 00224 00237 typedef int (*JackProcessCallback)(jack_nframes_t nframes, void *arg); 00238 00251 typedef void (*JackThreadInitCallback)(void *arg); 00252 00261 typedef int (*JackGraphOrderCallback)(void *arg); 00262 00273 typedef int (*JackXRunCallback)(void *arg); 00274 00289 typedef int (*JackBufferSizeCallback)(jack_nframes_t nframes, void *arg); 00290 00300 typedef int (*JackSampleRateCallback)(jack_nframes_t nframes, void *arg); 00301 00311 typedef void (*JackPortRegistrationCallback)(jack_port_id_t port, int register, void *arg); 00312 00322 typedef void (*JackClientRegistrationCallback)(const char* name, int register, void *arg); 00323 00334 typedef void (*JackPortConnectCallback)(jack_port_id_t a, jack_port_id_t b, int connect, void* arg); 00335 00343 typedef void (*JackFreewheelCallback)(int starting, void *arg); 00344 00345 typedef void *(*JackThreadCallback)(void* arg); 00346 00358 typedef void (*JackShutdownCallback)(void *arg); 00359 00373 typedef void (*JackInfoShutdownCallback)(jack_status_t code, const char* reason, void *arg); 00374 00379 #define JACK_DEFAULT_AUDIO_TYPE "32 bit float mono audio" 00380 #define JACK_DEFAULT_MIDI_TYPE "8 bit raw midi" 00381 00387 typedef float jack_default_audio_sample_t; 00388 00395 enum JackPortFlags { 00396 00401 JackPortIsInput = 0x1, 00402 00407 JackPortIsOutput = 0x2, 00408 00413 JackPortIsPhysical = 0x4, 00414 00428 JackPortCanMonitor = 0x8, 00429 00444 JackPortIsTerminal = 0x10 00445 }; 00446 00447 00448 #endif /* __jack_types_h__ */ 00449