summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Ensure LTO is not enabledci-updated-pawpawfalkTX2022-01-102-2/+6
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* CI: Build with latest PawPaw and LTOfalkTX2022-01-091-7/+8
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Move jack_control to dbus (#831)David Runge2022-01-093-1/+3
| | | | | | | | | | | | | | | | | | * Move jack_control to dbus dir dbus/jack_control: The `jack_control` script is dbus specific and not part of the original jack tools. As the files offered by jack-example-tools are now optionally not built, the script needs to be made available from a location, that is not ignored when omitting the build of jack-example-tools files. * Move installation of jack_control to dbus integration dbus/wscript: Install `jack_control` script if building/installing jackdbus. tools/wscript: Remove (unconditional) installation of `jack_control` script.
* Fix CI windows builds (#830)Filipe Coelho2022-01-081-22/+20
| | | | | | | | | | | | | * Alternative attempt at fixing CI Signed-off-by: falkTX <falktx@falktx.com> * Cleanup Signed-off-by: falkTX <falktx@falktx.com> * Forgot apt-get update Signed-off-by: falkTX <falktx@falktx.com>
* Fix build of jack-example-tools with waf autooptionsDavid Runge2022-01-071-3/+3
| | | | | | | | | | wscript: In 61a708f2c6873881ae36fa2f01b38a15bfc3f681 a regression has been introduced, that always leads to not building the jack-example-tools (even if selected). This has been introduced due to the use of the wrong configuration environment `HAVE_JACK_EXAMPLE_TOOLS`, whereas it should have been `BUILD_JACK_EXAMPLE_TOOLS`.
* Remove unused travis ci integrationDavid Runge2022-01-073-299/+0
| | | | | .{ci/*,travis.yml}: Remove unused travis-ci integration.
* Remove unused scriptDavid Runge2022-01-071-69/+0
| | | | | svnversion_regenerate.sh: Remove unused script.
* Remove use of svnversion_regenerate.shDavid Runge2022-01-073-46/+3
| | | | | | | | | | | | | dbus/jackdbus.c: Rely on the `JACK_VERSION` define instead of `SVN_VERSION` (included from svnversion.h). dbus/wscript: Add the `JACK_VERSION` define based on `JACK_VERSION` configuration. wscript: Remove all code related to the use of `svnversion.h` and `svnversion_regenerate.sh`.
* Add changelog entry for optional example toolsDavid Runge2022-01-071-0/+5
| | | | | | ChangeLog.rst: Add changelog entry for new configure option to allow not to build files provided by jack-example-tools.
* Allow optional build of jack-example-toolsDavid Runge2022-01-073-14/+24
| | | | | | | | | | | | | | | | | | | | | | wscript: Add option `--example-tools` to allow optional build of executables and libraries provided by jack-example-tools (defaults to True). It can be used as `--example-tools=yes|no` or `--no-example-tools` or plain `--example-tools`. Based on the new option, set the configuration environment variable `HAVE_JACK_EXAMPLE_TOOLS` which is used throughout the configuration and build steps to include the `example-clients`, `tools` and `tests` subdirectories. man/wscript: Provide the `HAVE_JACK_EXAMPLE_TOOLS` build environment variable to the `fill_template` script as second argument. Remove unused imports. man/fill_template: Change the behavior of the script to only create all man pages if the second argument to the script is `True` (the jack-example-tools are being built), else only create the man page for jackd.
* Add custom variable to jack pkgconfig to distinguish implementationsDavid Runge2022-01-051-0/+1
| | | | | | | | | | jack.pc.in: Add the custom `jack_implementation=jack2` pkgconfig variable to the generated jack.pc file to be able to distinguish jack implementations. As jack implementations exist with jack1, jack2 and pipewire-jack, it is not (easily) possible to distinguish them by looking at the version alone (particularly the case with jack2 vs. pipewire-jack, as they share the same headers).
* POSIX: Remove unnecessary feature test macro.Florian Walpen2021-12-271-2/+0
| | | | | | | | | | | | | | | | | | | This is a no-op since the line was already commented out, to make it compile on FreeBSD. But it deserves an explanation: The _POSIX_C_SOURCE macro is meant to restrict the C library to a certain POSIX standard, not to enable features. This is inappropriate here because: 1. Jack already uses non-POSIX functions. E.g. JackPosixSemaphore.cpp references gettimeofday(), which is part of the X/Open specs. 2. C++ does not define a POSIX level to be based on. Headers from the C++ standard library may (and do) break when the POSIX feature level is restricted. The canonical way is to only set the feature level through the "--std=gnu++11" compile options.
* FreeBSD: Big driver overhaul for FreeBSD OSS.Florian Walpen2021-12-272-271/+824
| | | | | | | | | | | | | | | Features: * Internal workings more in line with other Jack drivers. * Use poll() for wait and sync instead of blocking I/O. * Allows to use Jack in "async" mode. * Calculate DSP usage correctly. * OSS buffer management to achieve stable latencies. * Latency correction for asymmetric OSS buffer use. * More robust handling of over- and underruns. * Handle format changes forced by the OSS interface. * FreeBSD 24bit samples are always packed. No changes to the driver parameters or the user interface.
* FreeBSD: Specific FreeBSD OSS driver.Florian Walpen2021-12-273-1/+1024
| | | | Start with an unchanged copy of the Solaris OSS driver.
* FreeBSD: Use uptime.h relay include.Florian Walpen2021-12-271-1/+1
|
* FreeBSD: Use driver.h relay include.Florian Walpen2021-12-271-1/+1
|
* FreeBSD: Cleanup tab indents.Florian Walpen2021-12-272-14/+14
|
* It compilesGoran Mekić2021-12-274-5/+5
|
* dbus: use Linux style uptime on FreeBSDGreg V2021-12-272-0/+4
|
* Put the clock_gettime based time impl into posix/Greg V2021-12-272-17/+5
|
* Fix missing CELT use for net driverGreg V2021-12-271-1/+2
|
* Add FreeBSD supportGoran Mekić2021-12-2711-5/+278
|
* Do not use O_RDWR on semaphores on FreeBSDGreg V2021-12-271-2/+4
| | | | This is forbidden (returns EINVAL)
* Start semaphore names with a slash on FreeBSDGreg V2021-12-271-2/+8
|
* ALSA: convert properly S24_LECamille Gonnet2021-10-016-8/+310
|
* Update JackNetUnixSocket.cppihsinme2021-09-271-1/+1
|
* macOS: Pass JackMachSemaphore send right via mach_msg IPC (#788)Peter Bridgman2021-08-147-113/+414
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * macOS: Pass JackMachSemaphore send right via mach_msg IPC Previously, JackMachSemaphore would communicate the send right for the semaphore object from the server to a client via a named service registered via `bootstrap_register`. However, to do this, it would register the semaphore's port as the service port directly. In theory this ought to be fine, however in practice, macOS `launchd`, which provides the `bootstrap_register` interface, does not correctly detect when such a port becomes dead, and incorrectly believes that the service that it provides is forever alive, even past the end of the `jackd` process' (and therefore the semaphore's) existence. This seems to be *specific* to semaphore ports, as `launchd` is expecting a standard IPC port, owned by the task, not the kernel. This prevents `jackd` from later registering another service with the same name, as `launchd` rejects the registration as conflicting with an active service. To get around this, `jackd` previously added a counter to the end of the named service registrations, allowing old services to remain in the system until the end of the session. To prevent things getting out of hand, this was capped at 98 service registrations for a given semaphore name. This led to #784, in which running a client for the 99th time resulted in the semaphore creation failing and the client failing to connect. As `launchd` outlives multiple runs of `jackd`, this situation persisted across restarts of `jackd`, requiring a restart of the user's session (i.e. a reboot) to fix. An initial attempt at fixing this (see #785) tried passing the port rights directly via shared memory, however mach is too clever for us and foils that plan by having port names be looked up in a per-task table (sensible when you think about it). In this commit, we use mach IPC messages to transfer the send right for the semaphore from the server to the client. By registering a standard IPC port with the bootstrap server, the service registrations are correctly torn down when the ports are destroyed. It works something like this: * Server creates IPC port and registers it globally via `bootstrap_register` * Server listens on IPC port for messages * Client looks up IPC port via `bootstrap_look_up` * Client sends it a message * Server replies with a message containing a send right to the semaphore's port * Client is then free to use the semaphore port as before. This resolves #784. * Improve error handling * Add myself to Authors
* Build netsource tool when celt or opus are availablefalkTX2021-08-101-1/+2
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Fix deb pathfalkTX2021-08-021-1/+1
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Fix path to deb packagesfalkTX2021-08-021-1/+1
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Build deb packagesfalkTX2021-08-021-1/+5
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Another syntax fixfalkTX2021-08-021-1/+1
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Fix syntax errorfalkTX2021-08-021-1/+1
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Begin ubuntu-20.04 automated deb packagingfalkTX2021-08-021-0/+41
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* CI: Fix macOS package pathfalkTX2021-08-021-10/+2
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Revert "CI: Use xvfb-run for wineboot too"falkTX2021-07-311-2/+2
| | | | This reverts commit 9a33cc254c49c0c96c4dbe0552caade1583fb1e2.
* CI: Use xvfb-run for wineboot toofalkTX2021-07-311-2/+2
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* CI: Use xvfb-run for wine stufffalkTX2021-07-311-4/+4
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Update windows installers as artifactsfalkTX2021-07-311-0/+8
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* CI: Generate windows installersfalkTX2021-07-314-9/+157
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Allow custom version on macOS generate-pkg scriptfalkTX2021-07-312-9/+13
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* CI: Now try win64 mixed modefalkTX2021-07-311-10/+9
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* CI: Fix win64 build, no mixed just yetfalkTX2021-07-311-8/+19
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Generate macOS packagefalkTX2021-07-311-5/+35
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Fix cache; Generate MSVC lib filesfalkTX2021-07-311-6/+37
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Correct win32 build commandsfalkTX2021-07-311-17/+31
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* CleanupfalkTX2021-07-311-23/+3
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* CI: Add build jack2 stepfalkTX2021-07-311-1/+15
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* First step towards automated buildsfalkTX2021-07-311-0/+156
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* example-clients: Use c++ compiler for jack_simdtestsKhem Raj2021-07-281-2/+7
| | | | | | | | | | It uses c++ sources and runtime therefore its best to use c++ compiler to build it so it can find the correct runtime, cross compiling with clang fails x86_64-yoe-linux-ld: example-clients/simdtests.cpp.28.o: undefined reference to symbol '__cxa_call_unexpected@@CXXABI_1.3' Signed-off-by: Khem Raj <raj.khem@gmail.com>