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: types.h,v 1.21 2003/10/31 20:52:24 joq Exp $ 00019 */ 00020 00021 #ifndef __jack_types_h__ 00022 #define __jack_types_h__ 00023 00024 #include <inttypes.h> 00025 00026 typedef char shm_name_t[32]; 00027 typedef int32_t jack_shmsize_t; 00028 00032 typedef uint32_t jack_nframes_t; 00033 00037 #define JACK_MAX_FRAMES (4294967295U) /* This should be UINT32_MAX, but 00038 C++ has a problem with that. */ 00039 00045 /* JOQ: this is trouble. APPLE POWERPC should use a compatible 00046 * typedef, explicitly converting from double, if necessary. 00047 * Otherwise applications cannot safely print a jack_time_t. */ 00048 #if defined(__APPLE__) && defined(__POWERPC__) 00049 typedef double jack_time_t; 00050 #else 00051 typedef uint64_t jack_time_t; 00052 #endif 00053 00058 typedef struct _jack_port jack_port_t; 00059 00064 typedef struct _jack_client jack_client_t; 00065 00070 typedef uint32_t jack_port_id_t; 00071 00084 typedef int (*JackProcessCallback)(jack_nframes_t nframes, void *arg); 00085 00094 typedef int (*JackGraphOrderCallback)(void *arg); 00095 00104 typedef int (*JackXRunCallback)(void *arg); 00105 00120 typedef int (*JackBufferSizeCallback)(jack_nframes_t nframes, void *arg); 00121 00131 typedef int (*JackSampleRateCallback)(jack_nframes_t nframes, void *arg); 00132 00139 typedef void (*JackPortRegistrationCallback)(jack_port_id_t port, int, void *arg); 00140 00144 #define JACK_DEFAULT_AUDIO_TYPE "32 bit float mono audio" 00145 00151 typedef float jack_default_audio_sample_t; 00152 00159 enum JackPortFlags { 00160 00165 JackPortIsInput = 0x1, 00166 00171 JackPortIsOutput = 0x2, 00172 00177 JackPortIsPhysical = 0x4, 00178 00192 JackPortCanMonitor = 0x8, 00193 00208 JackPortIsTerminal = 0x10 00209 }; 00210 00211 #endif /* __jack_types_h__ */