Thu Sep 9 22:41:43 2021 UTC ()
jack: support systems without AUDIO_GETFORMAT (NetBSD 8)


(nia)
diff -r1.24 -r1.25 pkgsrc/audio/jack/distinfo
diff -r1.1 -r1.2 pkgsrc/audio/jack/patches/patch-netbsd_sun_JackSunAdapter.cpp
diff -r1.1 -r1.2 pkgsrc/audio/jack/patches/patch-netbsd_sun_JackSunDriver.cpp

cvs diff -r1.24 -r1.25 pkgsrc/audio/jack/distinfo (expand / switch to unified diff)

--- pkgsrc/audio/jack/distinfo 2021/09/09 21:10:18 1.24
+++ pkgsrc/audio/jack/distinfo 2021/09/09 22:41:43 1.25
@@ -1,24 +1,24 @@ @@ -1,24 +1,24 @@
1$NetBSD: distinfo,v 1.24 2021/09/09 21:10:18 nia Exp $ 1$NetBSD: distinfo,v 1.25 2021/09/09 22:41:43 nia Exp $
2 2
3SHA1 (jack2-1.9.19.tar.gz) = 3182304c0a3ecd911775fb46088f0df79ee9015f 3SHA1 (jack2-1.9.19.tar.gz) = 3182304c0a3ecd911775fb46088f0df79ee9015f
4RMD160 (jack2-1.9.19.tar.gz) = da6ed4db02dfc856c477d76a73fe22157b6f7df8 4RMD160 (jack2-1.9.19.tar.gz) = da6ed4db02dfc856c477d76a73fe22157b6f7df8
5SHA512 (jack2-1.9.19.tar.gz) = d8d5fe17e2984959546af3c53f044aa4648860e19ff8ffd54452e87fa6cdfd111f825c57e3df17cb8ed95de8392b6f354b12ded41e3e021a37f07b99a89ba18d 5SHA512 (jack2-1.9.19.tar.gz) = d8d5fe17e2984959546af3c53f044aa4648860e19ff8ffd54452e87fa6cdfd111f825c57e3df17cb8ed95de8392b6f354b12ded41e3e021a37f07b99a89ba18d
6Size (jack2-1.9.19.tar.gz) = 988780 bytes 6Size (jack2-1.9.19.tar.gz) = 988780 bytes
7SHA1 (patch-common_JackAudioAdapterFactory.cpp) = 8292a8c88c673136f52a007133278f9b4403839c 7SHA1 (patch-common_JackAudioAdapterFactory.cpp) = 8292a8c88c673136f52a007133278f9b4403839c
8SHA1 (patch-common_memops.c) = 468476c6067595524f492d37f3b761af48e78585 8SHA1 (patch-common_memops.c) = 468476c6067595524f492d37f3b761af48e78585
9SHA1 (patch-common_wscript) = f68886b688d623a87178eed22e3900109409be69 9SHA1 (patch-common_wscript) = f68886b688d623a87178eed22e3900109409be69
10SHA1 (patch-example-clients_wscript) = 9db0899e797acbc416bfd9e6aba50c70bd5ff0ab 10SHA1 (patch-example-clients_wscript) = 9db0899e797acbc416bfd9e6aba50c70bd5ff0ab
11SHA1 (patch-netbsd_JackAtomic__os.h) = cd9cc4bf9913b3dedfbb8a2ea34077277e17f85d 11SHA1 (patch-netbsd_JackAtomic__os.h) = cd9cc4bf9913b3dedfbb8a2ea34077277e17f85d
12SHA1 (patch-netbsd_JackNetBSDTime.c) = 7cc2504bbd452b703dd062ac5d35f68ffe7e3b0a 12SHA1 (patch-netbsd_JackNetBSDTime.c) = 7cc2504bbd452b703dd062ac5d35f68ffe7e3b0a
13SHA1 (patch-netbsd_JackPlatformPlug__os.h) = f17b0daf4d8a4ef1001b35e6ea1411cfb1b981c2 13SHA1 (patch-netbsd_JackPlatformPlug__os.h) = f17b0daf4d8a4ef1001b35e6ea1411cfb1b981c2
14SHA1 (patch-netbsd_sun_JackSunAdapter.cpp) = e6c02653840ad02fdee9168796d129504ca29f92 14SHA1 (patch-netbsd_sun_JackSunAdapter.cpp) = 03c8fc59afb5a1ecf090eb9e47b3b2d43720da91
15SHA1 (patch-netbsd_sun_JackSunAdapter.h) = 740b36c69d02742eceeb724ba18796664fb1bc2d 15SHA1 (patch-netbsd_sun_JackSunAdapter.h) = 740b36c69d02742eceeb724ba18796664fb1bc2d
16SHA1 (patch-netbsd_sun_JackSunDriver.cpp) = 43a7126b68076f45292df67f59239c9febf014ff 16SHA1 (patch-netbsd_sun_JackSunDriver.cpp) = 78d5bc56a0cbea4bb7f15f0d3c775c69a3ac2a3a
17SHA1 (patch-netbsd_sun_JackSunDriver.h) = 9da5fbec2216081876174057f831da4c54e3029e 17SHA1 (patch-netbsd_sun_JackSunDriver.h) = 9da5fbec2216081876174057f831da4c54e3029e
18SHA1 (patch-posix_JackNetUnixSocket.cpp) = 562242daf7c0f296bfcd03f468518aaf18d995d9 18SHA1 (patch-posix_JackNetUnixSocket.cpp) = 562242daf7c0f296bfcd03f468518aaf18d995d9
19SHA1 (patch-posix_JackNetUnixSocket.h) = ce9a9255dc0dd423562b94b0fcc1012c8ba3a37e 19SHA1 (patch-posix_JackNetUnixSocket.h) = ce9a9255dc0dd423562b94b0fcc1012c8ba3a37e
20SHA1 (patch-posix_JackPosixSemaphore.cpp) = 59425ada11a5cab83159691ae10a23c0d36750ef 20SHA1 (patch-posix_JackPosixSemaphore.cpp) = 59425ada11a5cab83159691ae10a23c0d36750ef
21SHA1 (patch-posix_JackSocket.cpp) = 88ae18c3d2cc31a43355ff9b0c78ab13b83bd314 21SHA1 (patch-posix_JackSocket.cpp) = 88ae18c3d2cc31a43355ff9b0c78ab13b83bd314
22SHA1 (patch-tests_wscript) = e0bf616175a116df489808cda8cb8c70890d4da0 22SHA1 (patch-tests_wscript) = e0bf616175a116df489808cda8cb8c70890d4da0
23SHA1 (patch-tools_wscript) = c990639f5c1a998dd02d12eb345e78b0a91a1c6f 23SHA1 (patch-tools_wscript) = c990639f5c1a998dd02d12eb345e78b0a91a1c6f
24SHA1 (patch-wscript) = 6514e2e7d10f096deb99effa35974e9253599f74 24SHA1 (patch-wscript) = 6514e2e7d10f096deb99effa35974e9253599f74

cvs diff -r1.1 -r1.2 pkgsrc/audio/jack/patches/patch-netbsd_sun_JackSunAdapter.cpp (expand / switch to unified diff)

--- pkgsrc/audio/jack/patches/patch-netbsd_sun_JackSunAdapter.cpp 2021/09/08 19:19:20 1.1
+++ pkgsrc/audio/jack/patches/patch-netbsd_sun_JackSunAdapter.cpp 2021/09/09 22:41:43 1.2
@@ -1,20 +1,20 @@ @@ -1,20 +1,20 @@
1$NetBSD: patch-netbsd_sun_JackSunAdapter.cpp,v 1.1 2021/09/08 19:19:20 nia Exp $ 1$NetBSD: patch-netbsd_sun_JackSunAdapter.cpp,v 1.2 2021/09/09 22:41:43 nia Exp $
2 2
3Add NetBSD support. 3Add NetBSD support.
4 4
5--- netbsd/sun/JackSunAdapter.cpp.orig 2021-09-08 13:51:19.685213690 +0000 5--- netbsd/sun/JackSunAdapter.cpp.orig 2021-09-09 21:08:54.598607823 +0000
6+++ netbsd/sun/JackSunAdapter.cpp 6+++ netbsd/sun/JackSunAdapter.cpp
7@@ -0,0 +1,478 @@ 7@@ -0,0 +1,490 @@
8+/* 8+/*
9+Copyright (C) 2008 Grame & RTL 2008 9+Copyright (C) 2008 Grame & RTL 2008
10+ 10+
11+This program is free software; you can redistribute it and/or modify 11+This program is free software; you can redistribute it and/or modify
12+it under the terms of the GNU General Public License as published by 12+it under the terms of the GNU General Public License as published by
13+the Free Software Foundation; either version 2 of the License, or 13+the Free Software Foundation; either version 2 of the License, or
14+(at your option) any later version. 14+(at your option) any later version.
15+ 15+
16+This program is distributed in the hope that it will be useful, 16+This program is distributed in the hope that it will be useful,
17+but WITHOUT ANY WARRANTY; without even the implied warranty of 17+but WITHOUT ANY WARRANTY; without even the implied warranty of
18+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19+GNU General Public License for more details. 19+GNU General Public License for more details.
20+ 20+
@@ -176,31 +176,37 @@ Add NetBSD support. @@ -176,31 +176,37 @@ Add NetBSD support.
176+void JackSunAdapter::DisplayDeviceInfo() 176+void JackSunAdapter::DisplayDeviceInfo()
177+{ 177+{
178+} 178+}
179+ 179+
180+int JackSunAdapter::OpenInput() 180+int JackSunAdapter::OpenInput()
181+{ 181+{
182+ struct audio_info info; 182+ struct audio_info info;
183+ 183+
184+ if ((fInFD = open(fCaptureDriverName, O_RDONLY)) < 0) { 184+ if ((fInFD = open(fCaptureDriverName, O_RDONLY)) < 0) {
185+ jack_error("JackSunAdapter::OpenInput failed to open device : %s@%i, errno = %d", __FILE__, __LINE__, errno); 185+ jack_error("JackSunAdapter::OpenInput failed to open device : %s@%i, errno = %d", __FILE__, __LINE__, errno);
186+ return -1; 186+ return -1;
187+ } 187+ }
188+ 188+
 189+#ifdef AUDIO_GETFORMAT
189+ if (fCaptureChannels == 0) { 190+ if (fCaptureChannels == 0) {
190+ if (ioctl(fInFD, AUDIO_GETFORMAT, &info) != -1) { 191+ if (ioctl(fInFD, AUDIO_GETFORMAT, &info) != -1) {
191+ fCaptureChannels = info.record.channels; 192+ fCaptureChannels = info.record.channels;
192+ } 193+ }
193+ } 194+ }
 195+#else
 196+ if (fCaptureChannels == 0) {
 197+ fCaptureChannels = 2;
 198+ }
 199+#endif
194+ 200+
195+ jack_log("JackSunAdapter::OpenInput input fInFD = %d", fInFD); 201+ jack_log("JackSunAdapter::OpenInput input fInFD = %d", fInFD);
196+ 202+
197+ AUDIO_INITINFO(&info); 203+ AUDIO_INITINFO(&info);
198+ info.record.encoding = AUDIO_ENCODING_SLINEAR; 204+ info.record.encoding = AUDIO_ENCODING_SLINEAR;
199+ info.record.precision = fPrecision; 205+ info.record.precision = fPrecision;
200+ info.record.channels = fCaptureChannels; 206+ info.record.channels = fCaptureChannels;
201+ info.record.sample_rate = fAdaptedSampleRate; 207+ info.record.sample_rate = fAdaptedSampleRate;
202+ 208+
203+ if (ioctl(fInFD, AUDIO_SETINFO, &info) == -1) { 209+ if (ioctl(fInFD, AUDIO_SETINFO, &info) == -1) {
204+ jack_error("JackSunAdapter::OpenInput failed to set device parameters : %s@%i, errno = %d", __FILE__, __LINE__, errno); 210+ jack_error("JackSunAdapter::OpenInput failed to set device parameters : %s@%i, errno = %d", __FILE__, __LINE__, errno);
205+ goto error; 211+ goto error;
206+ } 212+ }
@@ -236,31 +242,37 @@ Add NetBSD support. @@ -236,31 +242,37 @@ Add NetBSD support.
236+ ::close(fInFD); 242+ ::close(fInFD);
237+ return -1; 243+ return -1;
238+} 244+}
239+ 245+
240+int JackSunAdapter::OpenOutput() 246+int JackSunAdapter::OpenOutput()
241+{ 247+{
242+ struct audio_info info; 248+ struct audio_info info;
243+ 249+
244+ if ((fOutFD = open(fPlaybackDriverName, O_WRONLY)) < 0) { 250+ if ((fOutFD = open(fPlaybackDriverName, O_WRONLY)) < 0) {
245+ jack_error("JackSunAdapter::OpenOutput failed to open device : %s@%i, errno = %d", __FILE__, __LINE__, errno); 251+ jack_error("JackSunAdapter::OpenOutput failed to open device : %s@%i, errno = %d", __FILE__, __LINE__, errno);
246+ return -1; 252+ return -1;
247+ } 253+ }
248+ 254+
 255+#ifdef AUDIO_GETFORMAT
249+ if (fPlaybackChannels == 0) { 256+ if (fPlaybackChannels == 0) {
250+ if (ioctl(fOutFD, AUDIO_GETFORMAT, &info) == 0) { 257+ if (ioctl(fOutFD, AUDIO_GETFORMAT, &info) == 0) {
251+ fPlaybackChannels = info.play.channels; 258+ fPlaybackChannels = info.play.channels;
252+ } 259+ }
253+ } 260+ }
 261+#else
 262+ if (fPlaybackChannels == 0) {
 263+ fPlaybackChannels = 2;
 264+ }
 265+#endif
254+ 266+
255+ jack_log("JackSunAdapter::OpenOutput input fOutFD = %d", fOutFD); 267+ jack_log("JackSunAdapter::OpenOutput input fOutFD = %d", fOutFD);
256+ 268+
257+ AUDIO_INITINFO(&info); 269+ AUDIO_INITINFO(&info);
258+ info.hiwat = 2; 270+ info.hiwat = 2;
259+ info.play.encoding = AUDIO_ENCODING_SLINEAR; 271+ info.play.encoding = AUDIO_ENCODING_SLINEAR;
260+ info.play.precision = fPrecision; 272+ info.play.precision = fPrecision;
261+ info.play.channels = fPlaybackChannels; 273+ info.play.channels = fPlaybackChannels;
262+ info.play.sample_rate = fAdaptedSampleRate; 274+ info.play.sample_rate = fAdaptedSampleRate;
263+ 275+
264+ if (ioctl(fOutFD, AUDIO_SETINFO, &info) == -1) { 276+ if (ioctl(fOutFD, AUDIO_SETINFO, &info) == -1) {
265+ jack_error("JackSunAdapter::OpenOutput failed to set device parameters : %s@%i, errno = %d", __FILE__, __LINE__, errno); 277+ jack_error("JackSunAdapter::OpenOutput failed to set device parameters : %s@%i, errno = %d", __FILE__, __LINE__, errno);
266+ goto error; 278+ goto error;

cvs diff -r1.1 -r1.2 pkgsrc/audio/jack/patches/patch-netbsd_sun_JackSunDriver.cpp (expand / switch to unified diff)

--- pkgsrc/audio/jack/patches/patch-netbsd_sun_JackSunDriver.cpp 2021/09/08 19:19:20 1.1
+++ pkgsrc/audio/jack/patches/patch-netbsd_sun_JackSunDriver.cpp 2021/09/09 22:41:43 1.2
@@ -1,20 +1,20 @@ @@ -1,20 +1,20 @@
1$NetBSD: patch-netbsd_sun_JackSunDriver.cpp,v 1.1 2021/09/08 19:19:20 nia Exp $ 1$NetBSD: patch-netbsd_sun_JackSunDriver.cpp,v 1.2 2021/09/09 22:41:43 nia Exp $
2 2
3Add NetBSD support. 3Add NetBSD support.
4 4
5--- netbsd/sun/JackSunDriver.cpp.orig 2021-09-08 13:51:19.686819398 +0000 5--- netbsd/sun/JackSunDriver.cpp.orig 2021-09-09 21:08:54.658178887 +0000
6+++ netbsd/sun/JackSunDriver.cpp 6+++ netbsd/sun/JackSunDriver.cpp
7@@ -0,0 +1,557 @@ 7@@ -0,0 +1,569 @@
8+/* 8+/*
9+Copyright (C) 2003-2007 Jussi Laako <jussi@sonarnerd.net> 9+Copyright (C) 2003-2007 Jussi Laako <jussi@sonarnerd.net>
10+Copyright (C) 2008 Grame & RTL 2008 10+Copyright (C) 2008 Grame & RTL 2008
11+ 11+
12+This program is free software; you can redistribute it and/or modify 12+This program is free software; you can redistribute it and/or modify
13+it under the terms of the GNU General Public License as published by 13+it under the terms of the GNU General Public License as published by
14+the Free Software Foundation; either version 2 of the License, or 14+the Free Software Foundation; either version 2 of the License, or
15+(at your option) any later version. 15+(at your option) any later version.
16+ 16+
17+This program is distributed in the hope that it will be useful, 17+This program is distributed in the hope that it will be useful,
18+but WITHOUT ANY WARRANTY; without even the implied warranty of 18+but WITHOUT ANY WARRANTY; without even the implied warranty of
19+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20+GNU General Public License for more details. 20+GNU General Public License for more details.
@@ -104,31 +104,37 @@ Add NetBSD support. @@ -104,31 +104,37 @@ Add NetBSD support.
104+ } 104+ }
105+} 105+}
106+ 106+
107+int JackSunDriver::OpenInput() 107+int JackSunDriver::OpenInput()
108+{ 108+{
109+ struct audio_info info; 109+ struct audio_info info;
110+ int new_buffer_size; 110+ int new_buffer_size;
111+ 111+
112+ if ((fInFD = open(fCaptureDriverName, O_RDONLY)) < 0) { 112+ if ((fInFD = open(fCaptureDriverName, O_RDONLY)) < 0) {
113+ jack_error("JackSunDriver::OpenInput failed to open device : %s@%i, errno = %d", __FILE__, __LINE__, errno); 113+ jack_error("JackSunDriver::OpenInput failed to open device : %s@%i, errno = %d", __FILE__, __LINE__, errno);
114+ return -1; 114+ return -1;
115+ } 115+ }
116+ 116+
 117+#ifdef AUDIO_GETFORMAT
117+ if (fCaptureChannels == 0) { 118+ if (fCaptureChannels == 0) {
118+ if (ioctl(fInFD, AUDIO_GETFORMAT, &info) == 0) { 119+ if (ioctl(fInFD, AUDIO_GETFORMAT, &info) == 0) {
119+ fCaptureChannels = info.record.channels; 120+ fCaptureChannels = info.record.channels;
120+ } 121+ }
121+ } 122+ }
 123+#else
 124+ if (fCaptureChannels == 0) {
 125+ fCaptureChannels = 2;
 126+ }
 127+#endif
122+ 128+
123+ jack_log("JackSunDriver::OpenInput input fInFD = %d", fInFD); 129+ jack_log("JackSunDriver::OpenInput input fInFD = %d", fInFD);
124+ 130+
125+ AUDIO_INITINFO(&info); 131+ AUDIO_INITINFO(&info);
126+ info.record.encoding = AUDIO_ENCODING_SLINEAR; 132+ info.record.encoding = AUDIO_ENCODING_SLINEAR;
127+ info.record.precision = fPrecision; 133+ info.record.precision = fPrecision;
128+ info.record.channels = fCaptureChannels; 134+ info.record.channels = fCaptureChannels;
129+ info.record.sample_rate = fEngineControl->fSampleRate; 135+ info.record.sample_rate = fEngineControl->fSampleRate;
130+ 136+
131+ if (ioctl(fInFD, AUDIO_SETINFO, &info) == -1) { 137+ if (ioctl(fInFD, AUDIO_SETINFO, &info) == -1) {
132+ jack_error("JackSunDriver::OpenInput failed to set device parameters : %s@%i, errno = %d", __FILE__, __LINE__, errno); 138+ jack_error("JackSunDriver::OpenInput failed to set device parameters : %s@%i, errno = %d", __FILE__, __LINE__, errno);
133+ goto error; 139+ goto error;
134+ } 140+ }
@@ -162,31 +168,37 @@ Add NetBSD support. @@ -162,31 +168,37 @@ Add NetBSD support.
162+ return -1; 168+ return -1;
163+} 169+}
164+ 170+
165+int JackSunDriver::OpenOutput() 171+int JackSunDriver::OpenOutput()
166+{ 172+{
167+ struct audio_info info; 173+ struct audio_info info;
168+ int new_buffer_size; 174+ int new_buffer_size;
169+ 175+
170+ if ((fOutFD = open(fPlaybackDriverName, O_WRONLY)) < 0) { 176+ if ((fOutFD = open(fPlaybackDriverName, O_WRONLY)) < 0) {
171+ jack_error("JackSunDriver::OpenOutput failed to open device : %s@%i, errno = %d", __FILE__, __LINE__, errno); 177+ jack_error("JackSunDriver::OpenOutput failed to open device : %s@%i, errno = %d", __FILE__, __LINE__, errno);
172+ return -1; 178+ return -1;
173+ } 179+ }
174+ 180+
 181+#ifdef AUDIO_GETFORMAT
175+ if (fPlaybackChannels == 0) { 182+ if (fPlaybackChannels == 0) {
176+ if (ioctl(fOutFD, AUDIO_GETFORMAT, &info) == 0) { 183+ if (ioctl(fOutFD, AUDIO_GETFORMAT, &info) == 0) {
177+ fPlaybackChannels = info.play.channels; 184+ fPlaybackChannels = info.play.channels;
178+ } 185+ }
179+ } 186+ }
 187+#else
 188+ if (fPlaybackChannels == 0) {
 189+ fPlaybackChannels = 2;
 190+ }
 191+#endif
180+ 192+
181+ jack_log("JackSunDriver::OpenOutput input fOutFD = %d", fOutFD); 193+ jack_log("JackSunDriver::OpenOutput input fOutFD = %d", fOutFD);
182+ 194+
183+ AUDIO_INITINFO(&info); 195+ AUDIO_INITINFO(&info);
184+ info.hiwat = 2; 196+ info.hiwat = 2;
185+ info.play.encoding = AUDIO_ENCODING_SLINEAR; 197+ info.play.encoding = AUDIO_ENCODING_SLINEAR;
186+ info.play.precision = fPrecision; 198+ info.play.precision = fPrecision;
187+ info.play.channels = fPlaybackChannels; 199+ info.play.channels = fPlaybackChannels;
188+ info.play.sample_rate = fEngineControl->fSampleRate; 200+ info.play.sample_rate = fEngineControl->fSampleRate;
189+ 201+
190+ if (ioctl(fOutFD, AUDIO_SETINFO, &info) == -1) { 202+ if (ioctl(fOutFD, AUDIO_SETINFO, &info) == -1) {
191+ jack_error("JackSunDriver::OpenOutput failed to set device parameters : %s@%i, errno = %d", __FILE__, __LINE__, errno); 203+ jack_error("JackSunDriver::OpenOutput failed to set device parameters : %s@%i, errno = %d", __FILE__, __LINE__, errno);
192+ goto error; 204+ goto error;