View | Details | Raw Unified | Return to bug 251125 | Differences between
and this patch

Collapse All | Expand All

(-)b/audio/jack/Makefile (-48 / +39 lines)
Lines 2-9 Link Here
2
# $FreeBSD$
2
# $FreeBSD$
3
3
4
PORTNAME=	jackit
4
PORTNAME=	jackit
5
PORTVERSION=	0.125.0
5
DISTVERSIONPREFIX=	v
6
PORTREVISION=	11
6
DISTVERSION=	1.9.16
7
CATEGORIES=	audio
7
CATEGORIES=	audio
8
8
9
MAINTAINER=	multimedia@FreeBSD.org
9
MAINTAINER=	multimedia@FreeBSD.org
Lines 12-78 COMMENT= Low latency audio server Link Here
12
LICENSE=	GPLv2 LGPL21
12
LICENSE=	GPLv2 LGPL21
13
LICENSE_COMB=	multi
13
LICENSE_COMB=	multi
14
14
15
BROKEN_mips=		fails to link: undefined reference to '__sync_add_and_fetch_4'
16
BROKEN_mips64=		fails to link: undefined reference to '__sync_add_and_fetch_4'
17
18
LIB_DEPENDS=	libsndfile.so:audio/libsndfile \
15
LIB_DEPENDS=	libsndfile.so:audio/libsndfile \
19
		libsamplerate.so:audio/libsamplerate \
16
		libsamplerate.so:audio/libsamplerate \
17
		libsysinfo.so:devel/libsysinfo \
20
		libcelt0.so:audio/celt
18
		libcelt0.so:audio/celt
21
19
22
USES=		autoreconf compiler:c11 gmake pathfix pkgconfig libtool localbase bdb
20
USES=		waf compiler:c11 pkgconfig shebangfix python:3.4+,build
23
USE_GITHUB=	yes
21
USE_GITHUB=	yes
24
22
GH_ACCOUNT=	mekanix
25
GH_ACCOUNT=	jackaudio
23
GH_PROJECT=	jack2
26
GH_PROJECT=	jack1
24
GH_TAGNAME=	a60dfed0a0d5bd8d0222d4186a10d900ce7c51e6
27
GH_TAGNAME=	90f9dd3
28
GH_TUPLE=	jackaudio:headers:07f1ecf:h/jack
29
GH_TUPLE+=	jackaudio:tools:8d13c31:t/tools
30
GH_TUPLE+=	jackaudio:example-clients:7fa0890:e/example-clients
31
USE_LDCONFIG=	yes
25
USE_LDCONFIG=	yes
32
GNU_CONFIGURE=	yes
26
27
CFLAGS+=	-fPIC
28
CPPFLAGS+=	-I${LOCALBASE}/include
29
30
SHEBANG_FILES=	tools/jack_control
31
SHEBANG_LANG=	python3
33
USE_RC_SUBR=	jackd
32
USE_RC_SUBR=	jackd
34
33
35
CONFIGURE_ARGS=	--disable-portaudio \
34
CONFIGURE_ARGS+=	--celt=yes --sndfile=yes --samplerate=yes
36
		--enable-optimize \
35
37
		--enable-force-install \
36
OPTIONS_DEFINE=		ALSA DBUS READLINE OPUS
38
		--with-default-tmpdir=/tmp
37
OPTIONS_DEFAULT=	DBUS READLINE OPUS
39
40
CFLAGS+=		-I${BDB_INCLUDE_DIR}
41
LIBS+=			-L${BDB_LIB_DIR}
42
INSTALL_TARGET=		install-strip
43
44
OPTIONS_DEFINE=		ALSA DOXYGEN READLINE SNDIO COOKEDMODE
45
OPTIONS_DEFINE_i386=	DYNSIMD
46
OPTIONS_DEFINE_amd64=	DYNSIMD
47
OPTIONS_DEFAULT=	READLINE COOKEDMODE
48
OPTIONS_DEFAULT_i386=	DYNSIMD
49
OPTIONS_DEFAULT_amd64=	DYNSIMD
50
OPTIONS_SUB=		yes
38
OPTIONS_SUB=		yes
51
COOKEDMODE_DESC=	Use OSS COOKEDMODE (OSS driver is broken without it)
52
DYNSIMD_DESC=		Use dynamic SIMD selection (only i386/amd64)
53
39
54
ALSA_LIB_DEPENDS=	libasound.so:audio/alsa-lib
40
ALSA_LIB_DEPENDS=	libasound.so:audio/alsa-lib
55
ALSA_CONFIGURE_ENABLE=	alsa
41
ALSA_CONFIGURE_OFF=	--alsa=no
42
ALSA_CONFIGURE_ON=	--alsa=yes
56
43
57
READLINE_USES=		readline
44
DBUS_CONFIGURE_ON=	--dbus --classic --autostart=dbus
58
45
DBUS_LIB_DEPENDS=	libdbus-1.so:devel/dbus \
59
DOXYGEN_BUILD_DEPENDS=	doxygen:devel/doxygen
46
			libexpat.so:textproc/expat2
60
DOXYGEN_CONFIGURE_ENV_OFF=	ac_cv_prog_HAVE_DOXYGEN="false"
47
DBUS_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}dbus>0:devel/py-dbus@${PY_FLAVOR}
61
48
62
READLINE_CONFIGURE_ENV_OFF=	ac_cv_lib_readline_readline=no \
49
READLINE_USES=		readline
63
		ac_cv_header_readline_chardefs_h=no
50
READLINE_CONFIGURE_ON=	--readline=yes
64
51
READLINE_CONFIGURE_OFF=	--readline=no
65
SNDIO_LIB_DEPENDS=	libsndio.so:audio/sndio
52
READLINE_LDFLAGS=	-lreadline
66
SNDIO_CONFIGURE_ENABLE=	sndio
67
53
68
COOKEDMODE_CFLAGS=	-DOPTION_COOKEDMODE
54
OPUS_LIB_DEPENDS=	 libopus.so:audio/opus
55
OPUS_CONFIGURE_ON=	--opus=yes
56
OPUS_CONFIGURE_OFF=	--opus=no
69
57
70
DYNSIMD_CONFIGURE_ENABLE=dynsimd
58
.include <bsd.port.pre.mk>
71
59
72
post-patch:
60
.if ${PORT_OPTIONS:MDBUS}
73
	@${RM} ${WRKSRC}/doc/reference/html/*
61
PLIST_SUB+=	CLASSIC="@comment "
62
.else
63
PLIST_SUB+=	CLASSIC=""
64
.endif
74
65
75
post-build:
66
post-extract:
76
	@${RM} ${WRKSRC}/doc/reference/html/dir__2F*
67
	echo '#define SVN_VERSION "${GH_TAGNAME}"' > ${WRKSRC}/svnversion.h
77
68
78
.include <bsd.port.mk>
69
.include <bsd.port.post.mk>
(-)b/audio/jack/distinfo (-9 / +3 lines)
Lines 1-9 Link Here
1
TIMESTAMP = 1500250305
1
TIMESTAMP = 1607364220
2
SHA256 (jackaudio-jack1-0.125.0-90f9dd3_GH0.tar.gz) = e0ba7dcf58fa934af51329cd329f466fe8d2bc180d07e4ab8be21ed80c60aa8a
2
SHA256 (mekanix-jack2-v1.9.16-a60dfed0a0d5bd8d0222d4186a10d900ce7c51e6_GH0.tar.gz) = a4e3af85541c0d8e23f3bf336af291c82764ad0c03d485ea12984257911a798b
3
SIZE (jackaudio-jack1-0.125.0-90f9dd3_GH0.tar.gz) = 392822
3
SIZE (mekanix-jack2-v1.9.16-a60dfed0a0d5bd8d0222d4186a10d900ce7c51e6_GH0.tar.gz) = 978564
4
SHA256 (jackaudio-headers-07f1ecf_GH0.tar.gz) = 04a3bb87d278923985ba44045b7a27439c90776cc5d4a6016d062fc7a6aa5023
5
SIZE (jackaudio-headers-07f1ecf_GH0.tar.gz) = 36704
6
SHA256 (jackaudio-tools-8d13c31_GH0.tar.gz) = 23e6bc60c8cef4283677206f2687a408367203a725c091c923f48554ae6e8cc8
7
SIZE (jackaudio-tools-8d13c31_GH0.tar.gz) = 45544
8
SHA256 (jackaudio-example-clients-7fa0890_GH0.tar.gz) = 79e2ac1d38d7d77b1afb71aa97414c339e8c00613a5d9b725861232b5c995223
9
SIZE (jackaudio-example-clients-7fa0890_GH0.tar.gz) = 16174
(-)a/audio/jack/files/patch-configure.ac (-10 lines)
Removed Link Here
1
--- configure.ac.orig	2017-01-10 10:20:51 UTC
2
+++ configure.ac
3
@@ -172,6 +172,7 @@ case "${host_os}" in
4
     # barrier code, this may be fixed in 5.3, stay tuned.
5
     USE_BARRIER="no"
6
     USE_MD5SUM=0
7
+    JACK_DO_NOT_MLOCK=0
8
     ;;
9
   openbsd*)
10
     # pthread_barrier* not implemented
(-)a/audio/jack/files/patch-drivers_alsa_memops.c (-11 lines)
Removed Link Here
1
--- drivers/alsa/memops.c.orig	2016-02-23 15:13:53 UTC
2
+++ drivers/alsa/memops.c
3
@@ -30,7 +30,7 @@
4
 #include <stdlib.h>
5
 #include <stdint.h>
6
 #include <limits.h>
7
-#include <endian.h>
8
+#include <sys/endian.h>
9
 
10
 #include "memops.h"
11
 
(-)a/audio/jack/files/patch-drivers_oss_oss__driver.c (-258 lines)
Removed Link Here
1
--- drivers/oss/oss_driver.c.orig	2017-01-10 10:20:51 UTC
2
+++ drivers/oss/oss_driver.c
3
@@ -23,6 +23,7 @@
4
 
5
 #include <config.h>
6
 
7
+#define __BSD_VISIBLE	1
8
 #ifdef USE_BARRIER
9
 /*
10
  * POSIX conformance level should be globally defined somewhere, possibly
11
@@ -172,7 +173,9 @@ static void set_period_size (oss_driver_
12
 		((double)driver->period_size /
13
 		 (double)driver->sample_rate) * 1e6;
14
 	driver->last_wait_ust = 0;
15
-	driver->last_periodtime = driver->engine->get_microseconds ();
16
+	driver->last_periodtime = driver->engine ?
17
+		driver->engine->get_microseconds() :
18
+		jack_get_microseconds();
19
 	driver->next_periodtime = 0;
20
 	driver->iodelay = 0.0F;
21
 }
22
@@ -180,7 +183,9 @@ static void set_period_size (oss_driver_
23
 
24
 static inline void update_times (oss_driver_t *driver)
25
 {
26
-	driver->last_periodtime = driver->engine->get_microseconds ();
27
+	driver->last_periodtime = driver->engine ?
28
+		driver->engine->get_microseconds() :
29
+		jack_get_microseconds();
30
 	if (driver->next_periodtime > 0) {
31
 		driver->iodelay = (float)
32
 				  ((long double)driver->last_periodtime -
33
@@ -211,6 +216,7 @@ static void copy_and_convert_in (jack_sa
34
 	int dstidx;
35
 	signed short *s16src = (signed short*)src;
36
 	signed int *s32src = (signed int*)src;
37
+	unsigned char *s24src = (unsigned char *) src;
38
 	double *f64src = (double*)src;
39
 	jack_sample_t scale;
40
 
41
@@ -225,10 +231,13 @@ static void copy_and_convert_in (jack_sa
42
 		}
43
 		break;
44
 	case 24:
45
-		scale = 1.0f / 0x7fffff;
46
+		scale = 1.0f / 0x7fffffff;
47
 		for (dstidx = 0; dstidx < nframes; dstidx++) {
48
 			dst[dstidx] = (jack_sample_t)
49
-				      s32src[srcidx] * scale;
50
+				((signed int)(
51
+					(s24src[3 * srcidx + 2] << 24) |
52
+					(s24src[3 * srcidx + 1] << 16) |
53
+					(s24src[3 * srcidx + 0] << 8))) * scale;
54
 			srcidx += chcount;
55
 		}
56
 		break;
57
@@ -256,6 +265,7 @@ static void copy_and_convert_out (void *
58
 	int srcidx;
59
 	int dstidx;
60
 	signed short *s16dst = (signed short*)dst;
61
+	unsigned char *s24dst = (unsigned char *) dst;
62
 	signed int *s32dst = (signed int*)dst;
63
 	double *f64dst = (double*)dst;
64
 	jack_sample_t scale;
65
@@ -273,12 +283,15 @@ static void copy_and_convert_out (void *
66
 		}
67
 		break;
68
 	case 24:
69
-		scale = 0x7fffff;
70
+		scale = 0x7fffffff;
71
 		for (srcidx = 0; srcidx < nframes; srcidx++) {
72
-			s32dst[dstidx] = (signed int)
73
-					 (src[srcidx] >= 0.0f) ?
74
-					 (src[srcidx] * scale + 0.5f) :
75
-					 (src[srcidx] * scale - 0.5f);
76
+			signed int sample =
77
+				(src[srcidx] >= 0.0f) ?
78
+				(src[srcidx] * scale + 0.5f) :
79
+				(src[srcidx] * scale - 0.5f) ;
80
+			s24dst[3*dstidx + 2] = sample >> 24;
81
+			s24dst[3*dstidx + 1] = sample >> 16;
82
+			s24dst[3*dstidx + 0] = sample >> 8;
83
 			dstidx += chcount;
84
 		}
85
 		break;
86
@@ -429,7 +442,11 @@ static int oss_driver_detach (oss_driver
87
 
88
 static int oss_driver_start (oss_driver_t *driver)
89
 {
90
-	int flags = 0;
91
+#if defined(OPTION_COOKEDMODE)
92
+	int cookedmode = 1;
93
+#else
94
+	int cookedmode = 0;
95
+#endif
96
 	int format;
97
 	int channels;
98
 	int samplerate;
99
@@ -441,19 +458,7 @@ static int oss_driver_start (oss_driver_
100
 	const char *indev = driver->indev;
101
 	const char *outdev = driver->outdev;
102
 
103
-	switch (driver->bits) {
104
-	case 24:
105
-	case 32:
106
-		samplesize = sizeof(int);
107
-		break;
108
-	case 64:
109
-		samplesize = sizeof(double);
110
-		break;
111
-	case 16:
112
-	default:
113
-		samplesize = sizeof(short);
114
-		break;
115
-	}
116
+	samplesize = driver->bits / 8;
117
 	driver->trigger = 0;
118
 	if (strcmp (indev, outdev) != 0) {
119
 		if (driver->capture_channels > 0) {
120
@@ -464,7 +469,7 @@ static int oss_driver_start (oss_driver_
121
 					indev, __FILE__, __LINE__, errno);
122
 			}
123
 #ifndef OSS_NO_COOKED_MODE
124
-			ioctl (infd, SNDCTL_DSP_COOKEDMODE, &flags);
125
+			ioctl (infd, SNDCTL_DSP_COOKEDMODE, &cookedmode);
126
 #endif
127
 			fragsize = driver->period_size *
128
 				   driver->capture_channels * samplesize;
129
@@ -479,7 +484,7 @@ static int oss_driver_start (oss_driver_
130
 					outdev, __FILE__, __LINE__, errno);
131
 			}
132
 #ifndef OSS_NO_COOKED_MODE
133
-			ioctl (outfd, SNDCTL_DSP_COOKEDMODE, &flags);
134
+			ioctl (outfd, SNDCTL_DSP_COOKEDMODE, &cookedmode);
135
 #endif
136
 			fragsize = driver->period_size *
137
 				   driver->playback_channels * samplesize;
138
@@ -497,7 +502,7 @@ static int oss_driver_start (oss_driver_
139
 				return -1;
140
 			}
141
 #ifndef OSS_NO_COOKED_MODE
142
-			ioctl (infd, SNDCTL_DSP_COOKEDMODE, &flags);
143
+			ioctl (infd, SNDCTL_DSP_COOKEDMODE, &cookedmode);
144
 #endif
145
 		} else if (driver->capture_channels == 0 &&
146
 			   driver->playback_channels != 0) {
147
@@ -510,7 +515,7 @@ static int oss_driver_start (oss_driver_
148
 				return -1;
149
 			}
150
 #ifndef OSS_NO_COOKED_MODE
151
-			ioctl (outfd, SNDCTL_DSP_COOKEDMODE, &flags);
152
+			ioctl (outfd, SNDCTL_DSP_COOKEDMODE, &cookedmode);
153
 #endif
154
 		} else {
155
 			infd = outfd = open (indev, O_RDWR | O_EXCL);
156
@@ -521,7 +526,7 @@ static int oss_driver_start (oss_driver_
157
 				return -1;
158
 			}
159
 #ifndef OSS_NO_COOKED_MODE
160
-			ioctl (infd, SNDCTL_DSP_COOKEDMODE, &flags);
161
+			ioctl (infd, SNDCTL_DSP_COOKEDMODE, &cookedmode);
162
 #endif
163
 		}
164
 		if (infd >= 0 && outfd >= 0) {
165
@@ -705,7 +710,9 @@ static int oss_driver_start (oss_driver_
166
 		sem_post (&driver->sem_start);
167
 	}
168
 
169
-	driver->last_periodtime = driver->engine->get_microseconds ();
170
+	driver->last_periodtime = driver->engine ?
171
+		driver->engine->get_microseconds() :
172
+		jack_get_microseconds();
173
 	driver->next_periodtime = 0;
174
 	driver->iodelay = 0.0F;
175
 
176
@@ -1143,6 +1150,23 @@ jack_driver_t * driver_initialize (jack_
177
 		pnode = jack_slist_next (pnode);
178
 	}
179
 
180
+	switch (bits)
181
+	{
182
+	case 16:        /* native-endian 16-bit integer */
183
+		driver->format = AFMT_S16_NE;
184
+		break;
185
+	case 24:        /* little-endian 24-bit integer */
186
+		driver->format = AFMT_S24_LE;
187
+		break;
188
+	case 32:        /* native-endian 32-bit integer */
189
+		driver->format = AFMT_S32_NE;
190
+		break;
191
+	default:
192
+		free(driver);
193
+		jack_error("OSS: invalid number of bits: %d",
194
+			   __FILE__, __LINE__, bits);
195
+		return NULL;
196
+	}
197
 	driver->sample_rate = sample_rate;
198
 	driver->period_size = period_size;
199
 	driver->nperiods = nperiods;
200
@@ -1163,58 +1187,6 @@ jack_driver_t * driver_initialize (jack_
201
 	}
202
 	driver->infd = -1;
203
 	driver->outfd = -1;
204
-	switch (driver->bits) {
205
-#               ifndef OSS_ENDIAN
206
-#               ifdef __GNUC__
207
-#               if (defined(__i386__) || defined(__alpha__) || defined(__arm__) || defined(__x86_64__) || (defined(__sh__) && !defined(__LITTLE_ENDIAN__)))
208
-#               define OSS_LITTLE_ENDIAN 1234
209
-#               define OSS_ENDIAN OSS_LITTLE_ENDIAN
210
-#               else
211
-#               define OSS_BIG_ENDIAN 4321
212
-#               define OSS_ENDIAN OSS_BIG_ENDIAN
213
-#               endif
214
-#               else /* __GNUC__ */
215
-#               if (defined(_AIX) || defined(AIX) || defined(sparc) || defined(__hppa) || defined(PPC) || defined(__powerpc__) && !defined(i386) && !defined(__i386) && !defined(__i386__))
216
-#               define OSS_BIG_ENDIAN 4321
217
-#               define OSS_ENDIAN OSS_BIG_ENDIAN
218
-#               else
219
-#               define OSS_LITTLE_ENDIAN 1234
220
-#               define OSS_ENDIAN OSS_LITTLE_ENDIAN
221
-#               endif
222
-#               endif   /* __GNUC__ */
223
-#               endif   /* OSS_ENDIAN */
224
-#               if (OSS_ENDIAN == 1234)
225
-	/* little-endian architectures */
226
-	case 24:                /* little-endian LSB aligned 24-bits in 32-bits  integer */
227
-		driver->format = 0x00008000;
228
-		break;
229
-	case 32:                /* little-endian 32-bit integer */
230
-		driver->format = 0x00001000;
231
-		break;
232
-	case 64:                /* native-endian 64-bit float */
233
-		driver->format = 0x00004000;
234
-		break;
235
-	case 16:                /* little-endian 16-bit integer */
236
-	default:
237
-		driver->format = 0x00000010;
238
-		break;
239
-		/* big-endian architectures */
240
-#               else
241
-	case 24:                /* big-endian LSB aligned 24-bits in 32-bits integer */
242
-		break;
243
-		driver->format = 0x00010000;
244
-	case 32:                /* big-endian 32-bit integer */
245
-		driver->format = 0x00002000;
246
-		break;
247
-	case 64:                /* native-endian 64-bit float */
248
-		driver->format = 0x00004000;
249
-		break;
250
-	case 16:                /* big-endian 16-bit integer */
251
-	default:
252
-		driver->format = 0x00000020;
253
-#               endif
254
-	}
255
-
256
 	driver->indevbuf = driver->outdevbuf = NULL;
257
 
258
 	driver->capture_ports = NULL;
(-)a/audio/jack/files/patch-jack.pc.in (-9 lines)
Removed Link Here
1
--- jack.pc.in.orig	2013-10-04 00:45:25 UTC
2
+++ jack.pc.in
3
@@ -6,5 +6,5 @@ includedir=@includedir@
4
 Name: jack
5
 Description: the Jack Audio Connection Kit: a low-latency synchronous callback-based media server
6
 Version: @JACK_VERSION@
7
-Libs: -L${libdir} -ljack -lpthread @OS_LDFLAGS@
8
+Libs: -L${libdir} -ljack -pthread
9
 Cflags: -I${includedir}
(-)a/audio/jack/files/patch-jackd_engine.c (-11 lines)
Removed Link Here
1
--- jackd/engine.c.orig	2016-09-14 17:41:53 UTC
2
+++ jackd/engine.c
3
@@ -1435,7 +1435,7 @@ handle_external_client_request (jack_eng
4
 	if ((r = read (client->request_fd, &req, sizeof(req)))
5
 	    < (ssize_t)sizeof(req)) {
6
 		if (r == 0) {
7
-#if defined(JACK_USE_MACH_THREADS) || defined(__OpenBSD__)
8
+#if 1
9
 			/* poll is implemented using
10
 			   select (see the macosx/fakepoll
11
 			   code). When the socket is closed
(-)a/audio/jack/files/patch-jackd_jackd.c (-22 lines)
Removed Link Here
1
--- jackd/jackd.c.orig	2017-07-17 17:10:09 UTC
2
+++ jackd/jackd.c
3
@@ -521,11 +521,17 @@ jack_drivers_load ()
4
 
5
 static void copyright (FILE* file)
6
 {
7
-	fprintf (file, "jackd " VERSION "\n"
8
+	fprintf (file, "jackd " VERSION " (COOKEDMODE=%s)\n"
9
 		 "Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and others.\n"
10
 		 "jackd comes with ABSOLUTELY NO WARRANTY\n"
11
 		 "This is free software, and you are welcome to redistribute it\n"
12
-		 "under certain conditions; see the file COPYING for details\n\n");
13
+		 "under certain conditions; see the file COPYING for details\n\n",
14
+#if defined(OPTION_COOKEDMODE)
15
+                 "on"
16
+#else
17
+                 "off"
18
+#endif
19
+                 );
20
 }
21
 
22
 static void usage (FILE *file)
(-)a/audio/jack/files/patch-libjack_client.c (-190 lines)
Removed Link Here
1
--- libjack/client.c.orig	2017-01-10 10:20:51 UTC
2
+++ libjack/client.c
3
@@ -68,6 +68,30 @@
4
 static pthread_mutex_t client_lock;
5
 static pthread_cond_t client_ready;
6
 
7
+/*
8
+ * The following read/write wrappers handle the case of interruption
9
+ * by system signals:
10
+ */
11
+static int
12
+read_retry(int fd, void *dst, int size)
13
+{
14
+	int error;
15
+	do {
16
+		error = read(fd, dst, size);
17
+	} while (error == -1 && errno == EINTR);
18
+	return (error);
19
+}
20
+
21
+static int
22
+write_retry(int fd, const void *src, int size)
23
+{
24
+	int error;
25
+	do {
26
+		error = write(fd, src, size);
27
+	} while (error == -1 && errno == EINTR);
28
+	return (error);
29
+}
30
+
31
 static int
32
 jack_client_close_aux(jack_client_t *client);
33
 
34
@@ -251,7 +275,7 @@ oop_client_deliver_request (void *ptr, j
35
 	int wok, rok;
36
 	jack_client_t *client = (jack_client_t*)ptr;
37
 
38
-	wok = (write (client->request_fd, req, sizeof(*req))
39
+	wok = (write_retry (client->request_fd, req, sizeof(*req))
40
 	       == sizeof(*req));
41
 
42
 	/* if necessary, add variable length key data after a PropertyChange request
43
@@ -259,7 +283,7 @@ oop_client_deliver_request (void *ptr, j
44
 
45
 	if (req->type == PropertyChangeNotify) {
46
 		if (req->x.property.keylen) {
47
-			if (write (client->request_fd, req->x.property.key, req->x.property.keylen) != req->x.property.keylen) {
48
+			if (write_retry (client->request_fd, req->x.property.key, req->x.property.keylen) != req->x.property.keylen) {
49
 				jack_error ("cannot send property key of length %d to server",
50
 					    req->x.property.keylen);
51
 				req->status = -1;
52
@@ -268,7 +292,7 @@ oop_client_deliver_request (void *ptr, j
53
 		}
54
 	}
55
 
56
-	rok = (read (client->request_fd, req, sizeof(*req))
57
+	rok = (read_retry (client->request_fd, req, sizeof(*req))
58
 	       == sizeof(*req));
59
 
60
 	if (wok && rok) {               /* everything OK? */
61
@@ -837,14 +861,14 @@ server_event_connect (jack_client_t *cli
62
 
63
 	jack_uuid_copy (&req.client_id, client->control->uuid);
64
 
65
-	if (write (fd, &req, sizeof(req)) != sizeof(req)) {
66
-		jack_error ("cannot write event connect request to server (%s)",
67
+	if (write_retry (fd, &req, sizeof(req)) != sizeof(req)) {
68
+		jack_error ("cannot write_retry event connect request to server (%s)",
69
 			    strerror (errno));
70
 		close (fd);
71
 		return -1;
72
 	}
73
 
74
-	if (read (fd, &res, sizeof(res)) != sizeof(res)) {
75
+	if (read_retry (fd, &res, sizeof(res)) != sizeof(res)) {
76
 		jack_error ("cannot read event connect result from server (%s)",
77
 			    strerror (errno));
78
 		close (fd);
79
@@ -1109,14 +1133,14 @@ jack_request_client (ClientType type,
80
 	snprintf (req.object_data, sizeof(req.object_data),
81
 		  "%s", va->load_init);
82
 
83
-	if (write (*req_fd, &req, sizeof(req)) != sizeof(req)) {
84
+	if (write_retry (*req_fd, &req, sizeof(req)) != sizeof(req)) {
85
 		jack_error ("cannot send request to jack server (%s)",
86
 			    strerror (errno));
87
 		*status |= (JackFailure | JackServerError);
88
 		goto fail;
89
 	}
90
 
91
-	if (read (*req_fd, res, sizeof(*res)) != sizeof(*res)) {
92
+	if (read_retry (*req_fd, res, sizeof(*res)) != sizeof(*res)) {
93
 
94
 		if (errno == 0) {
95
 			/* server shut the socket */
96
@@ -1512,7 +1536,7 @@ jack_internal_client_close (const char *
97
 		return;
98
 	}
99
 
100
-	if (write (fd, &req, sizeof(req)) != sizeof(req)) {
101
+	if (write_retry (fd, &req, sizeof(req)) != sizeof(req)) {
102
 		jack_error ("cannot deliver ClientUnload request to JACK "
103
 			    "server.");
104
 	}
105
@@ -1648,7 +1672,7 @@ jack_session_notify (jack_client_t* clie
106
 
107
 	request.x.session.type = code;
108
 
109
-	if ( (write (client->request_fd, &request, sizeof(request))
110
+	if ( (write_retry (client->request_fd, &request, sizeof(request))
111
 	      != sizeof(request)) ) {
112
 		jack_error ("cannot send request type %d to server",
113
 			    request.type);
114
@@ -1658,7 +1682,7 @@ jack_session_notify (jack_client_t* clie
115
 	while ( 1 ) {
116
 		jack_uuid_t uid;
117
 
118
-		if (read (client->request_fd, &uid, sizeof(uid)) != sizeof(uid)) {
119
+		if (read_retry (client->request_fd, &uid, sizeof(uid)) != sizeof(uid)) {
120
 			jack_error ("cannot read result for request type %d from"
121
 				    " server (%s)", request.type, strerror (errno));
122
 			goto out;
123
@@ -1680,19 +1704,19 @@ jack_session_notify (jack_client_t* clie
124
 			break;
125
 		}
126
 
127
-		if (read (client->request_fd, (char*)retval[num_replies - 1].client_name, JACK_CLIENT_NAME_SIZE)
128
+		if (read_retry (client->request_fd, (char*)retval[num_replies - 1].client_name, JACK_CLIENT_NAME_SIZE)
129
 		    != JACK_CLIENT_NAME_SIZE) {
130
 			jack_error ("cannot read result for request type %d from"
131
 				    " server (%s)", request.type, strerror (errno));
132
 			goto out;
133
 		}
134
-		if (read (client->request_fd, (char*)retval[num_replies - 1].command, JACK_PORT_NAME_SIZE)
135
+		if (read_retry (client->request_fd, (char*)retval[num_replies - 1].command, JACK_PORT_NAME_SIZE)
136
 		    != JACK_PORT_NAME_SIZE) {
137
 			jack_error ("cannot read result for request type %d from"
138
 				    " server (%s)", request.type, strerror (errno));
139
 			goto out;
140
 		}
141
-		if (read (client->request_fd, &retval[num_replies - 1].flags, sizeof(retval[num_replies - 1].flags) )
142
+		if (read_retry (client->request_fd, &retval[num_replies - 1].flags, sizeof(retval[num_replies - 1].flags) )
143
 		    != sizeof(retval[num_replies - 1].flags) ) {
144
 			jack_error ("cannot read result for request type %d from"
145
 				    " server (%s)", request.type, strerror (errno));
146
@@ -1811,7 +1835,7 @@ jack_client_process_events (jack_client_
147
 		/* server has sent us an event. process the
148
 		 * event and reply */
149
 
150
-		if (read (client->event_fd, &event, sizeof(event))
151
+		if (read_retry (client->event_fd, &event, sizeof(event))
152
 		    != sizeof(event)) {
153
 			jack_error ("cannot read server event (%s)",
154
 				    strerror (errno));
155
@@ -1821,7 +1845,7 @@ jack_client_process_events (jack_client_
156
 		if (event.type == PropertyChange) {
157
 			if (event.y.key_size) {
158
 				key = (char*)malloc (event.y.key_size);
159
-				if (read (client->event_fd, key, event.y.key_size) !=
160
+				if (read_retry (client->event_fd, key, event.y.key_size) !=
161
 				    event.y.key_size) {
162
 					jack_error ("cannot read property change key (%s)",
163
 						    strerror (errno));
164
@@ -1940,7 +1964,7 @@ jack_client_process_events (jack_client_
165
 		DEBUG ("client has dealt with the event, writing "
166
 		       "response on event fd");
167
 
168
-		if (write (client->event_fd, &status, sizeof(status))
169
+		if (write_retry (client->event_fd, &status, sizeof(status))
170
 		    != sizeof(status)) {
171
 			jack_error ("cannot send event response to "
172
 				    "engine (%s)", strerror (errno));
173
@@ -1960,7 +1984,7 @@ jack_wake_next_client (jack_client_t* cl
174
 	int pret = 0;
175
 	char c = 0;
176
 
177
-	if (write (client->graph_next_fd, &c, sizeof(c))
178
+	if (write_retry (client->graph_next_fd, &c, sizeof(c))
179
 	    != sizeof(c)) {
180
 		DEBUG ("cannot write byte to fd %d", client->graph_next_fd);
181
 		jack_error ("cannot continue execution of the "
182
@@ -1988,7 +2012,7 @@ jack_wake_next_client (jack_client_t* cl
183
 	}
184
 
185
 	if (pret > 0 && (pfds[0].revents & POLLIN)) {
186
-		if (read (client->graph_wait_fd, &c, sizeof(c))
187
+		if (read_retry (client->graph_wait_fd, &c, sizeof(c))
188
 		    != sizeof(c)) {
189
 			jack_error ("cannot complete execution of the "
190
 				    "processing graph (%s)", strerror (errno));
(-)a/audio/jack/files/patch-libjack_port.c (-26 lines)
Removed Link Here
1
--- libjack/port.c.orig	2019-01-02 01:51:31 UTC
2
+++ libjack/port.c
3
@@ -630,13 +630,22 @@ jack_port_get_buffer (jack_port_t *port, jack_nframes_
4
 size_t
5
 jack_port_type_buffer_size (jack_port_type_info_t* port_type_info, jack_nframes_t nframes)
6
 {
7
+	size_t size;
8
+
9
 	if ( port_type_info->buffer_scale_factor < 0 ) {
10
 		return port_type_info->buffer_size;
11
 	}
12
 
13
-	return port_type_info->buffer_scale_factor
14
+	size = port_type_info->buffer_scale_factor
15
 	       * sizeof(jack_default_audio_sample_t)
16
 	       * nframes;
17
+
18
+#ifdef USE_DYNSIMD
19
+	/* Round up to the next multiple of 16 bytes, align buffers for SIMD. */
20
+	size = (size + 15) & (~ (size_t)0x0f);
21
+#endif  /* USE_DYNSIMD */
22
+
23
+	return size;
24
 }
25
 
26
 int
(-)b/audio/jack/pkg-message (-21 / +7 lines)
Lines 2-31 Link Here
2
{
2
{
3
	message: <<EOD
3
	message: <<EOD
4
======================================================================
4
======================================================================
5
It is recommended to run Jack with real-time priority (-R).
5
It is recommended to run Jack with real-time priority.
6
6
7
The recommended way to start Jack is to add the following
7
As FreeBSD doesn't allow unprivileged users to set real-time priority,
8
lines to /etc/rc.conf:
8
you should do it manually with rtprio(1).
9
9
10
jackd_enable="YES"
10
Configure backend options using jack_control:
11
jackd_user="{your-jack-user}"
12
jackd_rtprio="YES"
13
jackd_args="-R -doss -r{sample-rate} -p1024 -n3 -w16 \
14
            --capture /dev/dsp{N} --playback /dev/dsp{N}"
15
11
16
Where:
12
$ jack_control ds oss
17
- your-jack-user: is the user who is going to use jack; currently
13
$ jack_control eps realtime False
18
                  only one user is supported
14
$ jack_control eps sync True
19
- sample-rate: can be 44100, 48000, etc.
20
- /dev/dsp{N}: your OSS devices, usually /dev/dsp0
21
22
Please note that the port option COOKEDMODE is "on" by default, which
23
makes your system to automatically scale the sample-rate between
24
Jack and audio hardware. One reason COOKEDMODE=on is because
25
Jack's OSS driver doesn't support some sample-rate and hardware
26
combinations when COOKEDMODE=off. To achieve the best sound quality
27
please make sure your hardware natively supports the sample-rate set
28
in jackd_args, and set COOKEDMODE=off.
29
======================================================================
15
======================================================================
30
EOD,
16
EOD,
31
	type: install
17
	type: install
(-)b/audio/jack/pkg-plist (-127 / +53 lines)
Lines 1-175 Link Here
1
%%ALSA%%bin/alsa_in
2
%%ALSA%%bin/alsa_out
3
bin/jack_alias
1
bin/jack_alias
4
bin/jack_bufsize
2
bin/jack_bufsize
5
bin/jack_connect
3
bin/jack_connect
4
bin/jack_control
5
bin/jack_cpu
6
bin/jack_cpu_load
6
bin/jack_disconnect
7
bin/jack_disconnect
7
bin/jack_evmon
8
bin/jack_evmon
8
bin/jack_freewheel
9
bin/jack_freewheel
9
bin/jack_impulse_grabber
10
bin/jack_iodelay
10
bin/jack_iodelay
11
bin/jack_latent_client
11
bin/jack_latent_client
12
bin/jack_load
12
bin/jack_load
13
bin/jack_load_test
14
bin/jack_lsp
13
bin/jack_lsp
15
bin/jack_metro
14
bin/jack_metro
15
bin/jack_midi_dump
16
bin/jack_midi_latency_test
16
bin/jack_midiseq
17
bin/jack_midiseq
17
bin/jack_midisine
18
bin/jack_midisine
18
bin/jack_midi_dump
19
bin/jack_monitor_client
19
bin/jack_monitor_client
20
bin/jack_netsource
20
bin/jack_multiple_metro
21
bin/jack_net_master
22
bin/jack_net_slave
21
bin/jack_property
23
bin/jack_property
22
bin/jack_rec
24
bin/jack_rec
23
bin/jack_samplerate
25
bin/jack_samplerate
24
bin/jack_session_notify
25
bin/jack_server_control
26
bin/jack_server_control
26
bin/jack_simple_session_client
27
bin/jack_session_notify
27
bin/jack_showtime
28
bin/jack_showtime
29
bin/jack_simdtests
28
bin/jack_simple_client
30
bin/jack_simple_client
31
bin/jack_simple_session_client
32
bin/jack_test
33
bin/jack_thru
29
%%READLINE%%bin/jack_transport
34
%%READLINE%%bin/jack_transport
30
bin/jack_transport_client
31
bin/jack_unload
35
bin/jack_unload
32
bin/jack_wait
36
bin/jack_wait
37
bin/jack_zombie
33
bin/jackd
38
bin/jackd
39
%%DBUS%%bin/jackdbus
34
include/jack/control.h
40
include/jack/control.h
35
include/jack/intclient.h
41
include/jack/intclient.h
36
include/jack/jack.h
42
include/jack/jack.h
37
include/jack/jslist.h
43
include/jack/jslist.h
38
include/jack/metadata.h
44
include/jack/metadata.h
39
include/jack/midiport.h
45
include/jack/midiport.h
46
include/jack/net.h
40
include/jack/ringbuffer.h
47
include/jack/ringbuffer.h
41
include/jack/session.h
48
include/jack/session.h
42
include/jack/statistics.h
49
include/jack/statistics.h
50
include/jack/systemdeps.h
43
include/jack/thread.h
51
include/jack/thread.h
44
include/jack/transport.h
52
include/jack/transport.h
45
include/jack/types.h
53
include/jack/types.h
46
include/jack/uuid.h
54
include/jack/uuid.h
47
include/jack/weakjack.h
55
include/jack/weakjack.h
48
include/jack/weakmacros.h
56
include/jack/weakmacros.h
57
lib/jack/audioadapter.so
49
lib/jack/inprocess.so
58
lib/jack/inprocess.so
50
lib/jack/intime.so
59
lib/jack/jack_boomer.so
51
%%ALSA%%lib/jack/jack_alsa.so
52
%%ALSA%%lib/jack/jack_alsa_midi.so
53
lib/jack/jack_dummy.so
60
lib/jack/jack_dummy.so
61
lib/jack/jack_loopback.so
54
lib/jack/jack_net.so
62
lib/jack/jack_net.so
63
lib/jack/jack_netone.so
55
lib/jack/jack_oss.so
64
lib/jack/jack_oss.so
56
%%SNDIO%%lib/jack/jack_sndio.so
65
lib/jack/jack_proxy.so
66
lib/jack/netadapter.so
67
lib/jack/netmanager.so
68
lib/jack/profiler.so
57
lib/libjack.so
69
lib/libjack.so
58
lib/libjack.so.0
70
lib/libjack.so.0
59
lib/libjack.so.0.0.28
71
lib/libjack.so.0.1.0
72
lib/libjacknet.so
73
lib/libjacknet.so.0
74
lib/libjacknet.so.0.1.0
60
lib/libjackserver.so
75
lib/libjackserver.so
61
lib/libjackserver.so.0
76
lib/libjackserver.so.0
62
lib/libjackserver.so.0.0.28
77
lib/libjackserver.so.0.1.0
63
libdata/pkgconfig/jack.pc
78
libdata/pkgconfig/jack.pc
64
man/man1/alsa_in.1.gz
79
%%DBUS%%share/dbus-1/services/org.jackaudio.service
65
man/man1/alsa_out.1.gz
80
share/man/man1/alsa_in.1.gz
66
man/man1/jack_bufsize.1.gz
81
share/man/man1/alsa_out.1.gz
67
man/man1/jack_connect.1.gz
82
share/man/man1/jack_bufsize.1.gz
68
man/man1/jack_disconnect.1.gz
83
share/man/man1/jack_connect.1.gz
69
man/man1/jack_freewheel.1.gz
84
share/man/man1/jack_disconnect.1.gz
70
man/man1/jack_impulse_grabber.1.gz
85
share/man/man1/jack_freewheel.1.gz
71
man/man1/jack_iodelay.1.gz
86
share/man/man1/jack_impulse_grabber.1.gz
72
man/man1/jack_load.1.gz
87
share/man/man1/jack_iodelay.1.gz
73
man/man1/jack_load_test.1.gz
88
share/man/man1/jack_load.1.gz
74
man/man1/jack_lsp.1.gz
89
share/man/man1/jack_lsp.1.gz
75
man/man1/jack_metro.1.gz
90
share/man/man1/jack_metro.1.gz
76
man/man1/jack_monitor_client.1.gz
91
share/man/man1/jack_monitor_client.1.gz
77
man/man1/jack_netsource.1.gz
92
share/man/man1/jack_netsource.1.gz
78
man/man1/jack_property.1.gz
93
share/man/man1/jack_property.1.gz
79
man/man1/jack_samplerate.1.gz
94
share/man/man1/jack_samplerate.1.gz
80
man/man1/jack_showtime.1.gz
95
share/man/man1/jack_showtime.1.gz
81
man/man1/jack_transport.1.gz
96
share/man/man1/jack_simple_client.1.gz
82
man/man1/jack_unload.1.gz
97
share/man/man1/jack_transport.1.gz
83
man/man1/jack_wait.1.gz
98
share/man/man1/jack_unload.1.gz
84
man/man1/jackd.1.gz
99
share/man/man1/jack_wait.1.gz
85
man/man1/jackrec.1.gz
100
share/man/man1/jackd.1.gz
86
man/man1/jackstart.1.gz
101
share/man/man1/jackrec.1.gz
87
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/annotated.html
88
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/classes.html
89
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/control_8h.html
90
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/control_8h_source.html
91
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/deprecated.html
92
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/dir_3e6ff996e0a05d442d13220a8cf7408f.html
93
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/dir_d611c2c1e1e252f8153c91ce21a161f9.html
94
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/doxygen.css
95
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/doxygen.png
96
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/files.html
97
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/fsm.png
98
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/functions.html
99
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/functions_vars.html
100
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/globals.html
101
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/globals_defs.html
102
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/globals_e.html
103
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/globals_enum.html
104
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/globals_eval.html
105
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/globals_func.html
106
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/globals_i.html
107
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/globals_j.html
108
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/globals_m.html
109
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/globals_o.html
110
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/globals_p.html
111
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/globals_t.html
112
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/globals_type.html
113
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/globals_vars.html
114
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/globals_w.html
115
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/group__ClientCallbacks.html
116
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/group__ClientFunctions.html
117
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/group__ClientThreads.html
118
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/group__ControlAPI.html
119
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/group__ErrorOutput.html
120
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/group__JackSessionManagerAPI.html
121
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/group__LatencyFunctions.html
122
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/group__MIDIAPI.html
123
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/group__Metadata.html
124
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/group__NonCallbackAPI.html
125
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/group__PortFunctions.html
126
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/group__PortSearching.html
127
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/group__ServerControl.html
128
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/group__SessionClientFunctions.html
129
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/group__TimeFunctions.html
130
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/group__TransportControl.html
131
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/group__WeakLinkage.html
132
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/index.html
133
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/inprocess_8c.html
134
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/intclient_8h.html
135
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/intclient_8h_source.html
136
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/jack_8h.html
137
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/jack_8h_source.html
138
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/mainpage_8dox.html
139
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/metadata_8h.html
140
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/metadata_8h_source.html
141
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/midiport_8h.html
142
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/midiport_8h_source.html
143
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/modules.html
144
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/pages.html
145
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/porting-guide.html
146
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/porting_8dox.html
147
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/ringbuffer_8h.html
148
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/ringbuffer_8h_source.html
149
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/session_8h.html
150
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/session_8h_source.html
151
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/simple__client_8c.html
152
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/statistics_8h.html
153
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/statistics_8h_source.html
154
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/struct__jack__latency__range.html
155
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/struct__jack__midi__event.html
156
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/struct__jack__session__event.html
157
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/structjack__description__t.html
158
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/structjack__position__t.html
159
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/structjack__property__t.html
160
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/structjack__ringbuffer__data__t.html
161
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/structjack__ringbuffer__t.html
162
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/structjack__session__command__t.html
163
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/structjack__transport__info__t.html
164
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/structport__pair__t.html
165
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/thread_8h.html
166
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/thread_8h_source.html
167
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/transport-design.html
168
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/transport_8dox.html
169
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/transport_8h.html
170
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/transport_8h_source.html
171
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/types_8h.html
172
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/types_8h_source.html
173
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/unionjackctl__parameter__value.html
174
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/weakjack_8h.html
175
%%DOXYGEN%%share/jack-audio-connection-kit/reference/html/weakjack_8h_source.html

Return to bug 251125