summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Update changelogHEADv1.9.22masterdevelopfalkTX2023-02-021-1/+4
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Update copyright yearfalkTX2023-01-301-1/+1
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* macOS: forcely ignore wait failures when closing downfalkTX2023-01-302-4/+21
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Upgrade GitHub Actions (#911)Christian Clauss2023-01-292-16/+16
| | | | | | | | | * Upgrade GitHub Actions * https://github.com/actions/cache/releases * https://github.com/actions/checkout/releases * https://github.com/actions/upload-artifact/releases * Upgrade GitHub Actions
* macOS: killing a thread will abort the semaphore waitfalkTX2023-01-291-8/+16
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Fix typosluz paz2023-01-286-11/+11
|
* Remove usage of 'U' mode bit for opening files in pythonDaan De Meyer2023-01-282-3/+3
| | | | | | | | The 'U' mode bit is removed in python 3.11. It has been deprecated for a long time. The 'U' mode bit has no effect so this change doesn't change any behavior. See https://docs.python.org/3.11/whatsnew/3.11.html#changes-in-the-python-api
* Fix ringbuffer thread safety on ARM. Fix #715 #388 (#886)K2023-01-282-37/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fix ringbuffer thread safety on ARM. fix #715 #388 This patch addresses the thread safety problem of `jack_ringbuffer_t` mentioned in #715 and #388. The overbound read bug caused by this problem is impossible to reproduce on x86 due to its strong memory ordering, but it is a problem on ARM and other weakly ordered architectures. Basically, the main problem is that, on a weakly ordered architecture, it is possible that the pointer increment after `memcpy` becomes visible to the other thread before `memcpy` finishes: memcpy (&(rb->buf[rb->write_ptr]), src, n1); // vvv can be visible to reading thread before memcpy finishes rb->write_ptr = (rb->write_ptr + n1) & rb->size_mask; If this happens, the other thread can read the remaining garbage values in `rb->buf` due to be overwritten by the unfinished `memcpy`. To fix this, an explicit pair of release/acquire memory fences [1] is used to ensure the copy on the other thread *happens after* the `memcpy` finishes so no garbage values can be read. [1]: https://preshing.com/20130922/acquire-and-release-fences/ * remove volatile qualifier on ringbuf r/w pointers The volatile constraints are excess when compiler barriers are present. It generates unnecessary `mov` instructions when pointers aren't going to be updated. * simplify read/write space calculations This optimization is possible because the buffer size is always a power of 2. See [1] for details. [1]: https://github.com/drobilla/zix/pull/1#issuecomment-1212687196 * move acq fences to separate lines
* CI: Update FreeBSD image to 13.1, fix build.Florian Walpen2023-01-261-1/+1
| | | | | In principle, major FreeBSD versions should be ABI compatible. But in this case the python3 binary would only run on 13.1, not 13.0.
* Update link to new-session-manager jackaudio pageFilipe Coelho2022-08-141-1/+1
|
* Fix win32 CI buildsfalkTX2022-07-221-2/+4
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* FreeBSD: Override UpdateLatencies() to fit OSS latencies.Florian Walpen2022-05-302-13/+29
| | | | | | | | | | | | Reduce the base latencies for capture and playback by half a period, and let the update method account for the additional playback latency introduced by OSS buffer management. This fits actual OSS latencies better, so the same settings for the extra input-latency and output-latency parameters should apply to different period lengths. Beware that this change invalidates current input-latency and output-latency values, they have to be measured again.
* CI: Fix FreeBSD build, remove --example-tools option.Florian Walpen2022-05-051-1/+1
|
* Do not ship tools in automated Windows CI buildsfalkTX2022-05-042-6/+2
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Clear CI cache for fresh buildsfalkTX2022-05-041-7/+7
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Bump version and update changelogfalkTX2022-05-043-2/+8
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Remove readline as dependencyfalkTX2022-05-042-12/+5
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* comment out ubuntu-20.04 CI build for nowfalkTX2022-05-041-44/+44
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Remove zita dependenciesfalkTX2022-05-041-5/+0
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* sndfile is no longer a dependencyfalkTX2022-05-042-10/+4
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Remove example-clients and toolsfalkTX2022-05-0454-12960/+4
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Do not install qttools5-dev-tools for win32/64 CI buildsfalkTX2022-04-221-2/+2
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* IRC has moved to Libera Chat a while agofalkTX2022-04-161-1/+1
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Fix typo for packagingfalkTX2022-04-151-1/+1
| | | | Signed-off-by: falkTX <falktx@falktx.com>
* Merge branch 'master' into developv1.9.21falkTX2022-04-150-0/+0
|\ | | | | | | Signed-off-by: falkTX <falktx@falktx.com>
| * Make example-tools off by defaultfalkTX2022-04-132-1/+11
| | | | | | | | Signed-off-by: falkTX <falktx@falktx.com>
* | Update changelogfalkTX2022-04-151-0/+1
| | | | | | | | Signed-off-by: falkTX <falktx@falktx.com>
* | Make JackMachSemaphore more robust, dont use thread_terminatefalkTX2022-04-154-18/+58
| | | | | | | | Fixes #841
* | Fix jack_control for flake8 compatibilityDavid Runge2022-04-131-55/+78
| | | | | | | | | | | | | | | | dbus/jack_control: Remove unused imports for os and traceback.print_exc. Fix indentation, whitespace and line length issues across the entire file. Simplify printing in `print_help()` by calling `print()` only once.
* | Run flake8 on all wscript files and on jack_controlDavid Runge2022-04-131-3/+3
| | | | | | | | | | | | .github/workflows/lint.yml: Ensure that flake8 in CI is run on all wscript files and on jack_control.
* | Bump version to 1.9.21falkTX2022-04-134-13/+7
| | | | | | | | Signed-off-by: falkTX <falktx@falktx.com>
* | Fix ubuntu-20.04 CI testfalkTX2022-04-131-0/+1
| | | | | | | | Signed-off-by: falkTX <falktx@falktx.com>
* | Update changelogfalkTX2022-04-132-2/+4
| | | | | | | | Signed-off-by: falkTX <falktx@falktx.com>
* | jack_control - shell mode and update (#821)nick87720z2022-04-131-121/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * jack_control: move to tools for a while * jack_control: shell mode command This command runs loop, which executes commands from stdin until EOF (Ctrl+D in terminal). Command status is printed to stdout. * jack_control: optimize some functions * jack_control: unused function * jack_control: more informative message about dbus typesig error * jack_control: Fix shell mode I/O * restore jack_control path
* | Fix wscripts syntax (#826)David Runge2022-04-1312-242/+378
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add flake8 configuration .flake8: Add flake8 configuration that limits the line length to 120 chars and outputs to flake8.txt * Add flake8.txt to gitignore .gitignore: Add flake8.txt (flake8 output file) to ignore. * Syntax fixes and cleanup for top-level wscript wscript: Fix syntax of wscript according to pep8 (but do not break long lines). Remove unused imports and move all module level imports to the top of the file. Fix broken build target of IIO driver (source argument to `create_driver_obj()` supplied an uninitialized variable). Break lines at 120 chars. * Fix common/wscript syntax common/wscript: Fix syntax problems, unneeded imports and break lines at 120 chars. * Fix compat/alloca/wscript syntax compat/alloca/wscript: Fix compat/alloca/wscript syntax * Fix compat/wscript syntax compat/wscript: Fix compat/wscript syntax * Fix dbus/wscript syntax dbus/wscript: Fix syntax and break lintes at 120 chars. * Fix example-clients/wscript syntax example-clients/wscript: Fix syntax and remove commented code. * Fix tests/wscript syntax tests/wscript: Fix syntax and commented code. * Fix tools/wscript syntax tools/wscript: Fix tools/wscript syntax. * Add github workflow for linting wscripts .github/workflows/lint.yml: Add github workflow for linting wscripts using findutils and flake8. * Fix project version extraction in CI .github/workflows/build.yml: Adapt the project version extraction in CI to the syntax changes in the top-level wscript.
* | fix JackWeakAPI on Windows (#846)Be2022-04-131-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * JackWeakAPI: fix DLL loading on Windows LoadLibrary takes a LPCWSTR (UTF16). LoadLibraryA is needed to work with ASCII C string literals. * JackWeakAPI: call tryload_libjack if it hasn't been called already On non-Windows tryload_libjack is loaded on startup with __attribute__((constructor)) but with MSVC, Microsoft documentation says to not load libraries in a DLL's initialization function: https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-best-practices * JackWeakAPI: add debugging message for Windows
* | Make sure CI builds do not use LTOfalkTX2022-04-131-0/+8
| | | | | | | | Signed-off-by: falkTX <falktx@falktx.com>
* | Update changelog, fixup for CI buildsfalkTX2022-04-132-8/+14
| | | | | | | | Signed-off-by: falkTX <falktx@falktx.com>
* | Make example-tools off by defaultfalkTX2022-04-132-1/+11
| | | | | | | | Signed-off-by: falkTX <falktx@falktx.com>
* | Missing check for graph manager in JackAPI.Florian Walpen2022-04-071-1/+1
| | | | | | | | | | This seems to be the only place where the result of GetGraphManager() is not checked for null, at least in JackAPI. Found by llvm scan-build.
* | Bad semaphore allocation in midi_latency_test.Florian Walpen2022-04-071-1/+1
| | | | | | | | | | | | | | The code did a pointer-sized heap allocation instead of the actual size of a semaphore struct sem_t. This could result in heap memory corruption when handling the semaphore. Found by llvm scan-build.
* | Fix bad deallocation in JackMidiAsyncQueue.Florian Walpen2022-04-071-1/+1
| | | | | | | | | | The code is only run when other allocations fail, fix it anyway. This was found by llvm scan-build.
* | JackFifo: Apply given init value in allocateAndreas Pape2022-03-291-4/+8
| | | | | | | | | | | | | | When using as sync opbject the given 'value' is meant to already 'unblock' for that amount of Wait calls. Signed-off-by: Andreas Pape <apape@de.adit-jv.com>
* | pkgconfig: Use predefined variables in Libs and CflagsBiswapriyo Nath2022-02-171-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes path relocation in mingw environment. Without this, libdir and includedir are not shown in pkgconfig output. e.g. * Without predefined variables: - pkgconf -cflags jack: No output - pkgconf -libs jack: -ljack64 * With predefined variables: - pkgconf -cflags jack: -IC:/msys64/mingw64/include - pkgconf -libs jack: -LC:/msys64/mingw64/lib -ljack64 Also official documentation suggests to use variables https://people.freedesktop.org/~dbn/pkg-config-guide.html
* | Fix alignas() on non-packed architectures (#839).Florian Walpen2022-02-084-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Unbreak the build with Clang on architectures where JACK uses non-packed data structures, like arm64 or powerpc. The alignment errors are exposed there because: * The non-packed data structures require 8 byte alignment. * alignas() is not allowed to weaken alignment requirements to 4 bytes. * Clang enforces this according to standard, GCC ignores it. Use an additional alignas() specifier to let the compiler choose between minimum alignment (packed) and "natural" alignment (non-packed). This is both standard c++11 and compatible with older GCC, which does not propagate alignment requirements of packed substructures properly.
* | installer: add qwindowsvistastyle.dll for QJackCtlAlexis Murzeau2022-01-272-0/+2
| | | | | | | | This DLL is required to have a proper Qt skin on Windows.
* | FreeBSD: Cleanup unused SNDCTL_AUDIOINFO code.Florian Walpen2022-01-221-5/+0
| | | | | | | | Fixes a scan-build warning about using uninitialized values.
* | Fix build of jack-example-tools man pagesGuido Aulisi2022-01-161-1/+1
| | | | | | | | | | | | Commit e8c0be1ce932bfb99fdd1a50e08fab187efed6ca changed the name of the configuration environment to build the jack-example-tools, but forgot to change it for man pages.
* | API: Export missing symbols to jack library.Florian Walpen2022-01-162-4/+4
|/ | | | | | | | | The function pointers jack_error_callback and jack_info_callback are offered by the jack.h header as non-weak API members, but they were not exported to the jack library, only to the jackserver library. This broke the Jack backend of the OpenAl Soft library when switching from Jack1 to Jack2.
* Update Changelogv1.9.20falkTX2022-01-151-1/+2
| | | | Signed-off-by: falkTX <falktx@falktx.com>