Open kai5263499 opened 6 years ago
I'm not the original author, but I contributed to this.
The wrapper should work for all "more or less recent" versions of JACK. In particular, it should work for both JACK 1 and JACK 2 ("jackdmp"). (At least, this is my experience.)
The wrapper was originally for 64-bit Linux only.
On 11th of June, I contributed a patch, which made it work on 32-bit systems (up to this point still Linux-only) as well, which was merged immediately.
On 12th of June, I contributed a patch, which made it work on Windows (both 32-bit and 64-bit) systems as well, which was merged on 16th of June. (It requires a specific build environment involving MSYS and MinGW to build on Windows though.)
So if you use the latest version, you should have support for both Linux and Windows running on either 32-bit and 64-bit processors. This includes architectures like i386 / x86, amd64 / x86-64, arm, aarch64, etc. (For example, I verified that this builds successfully on an ARM machine, even though - in my experience - JACK itself is not really usable on ARM.)
The platform-specific code is in jack.go
:
#cgo linux LDFLAGS: -ljack
#cgo windows,386 LDFLAGS: -llibjack
#cgo windows,amd64 LDFLAGS: -llibjack64
... and in errors.go
:
// #ifdef _WIN32
// #include "errno.h"
// #else
// #include <sys/errno.h>
// #endif
In order to support macOS, you will probably have to modify these sections/files (and probably add a #cgo darwin ...
section underneath the #cgo linux ...
section).
I cannot add support for macOS, as I have no device with this operating system to develop and test.
Also, please try go build ...
in addition to go run ...
. Go programs sometimes behave differently when "run" instead of "built", particularly when making use of CGo.
When I try to run the passthrough example on my macbook I get the following:
Couple of questions here: