With the current code, packed structs lead to unaligned memory access,
thus causing SIGBUS on ARM.
Let's disable packing on ARM for now. Since it's only used for mixed
32/64bit jackd installations and we're not facing such a scenario on
ARM, there's little use to worry more atm.
A few internal source files were redeclaring types and macros also
declared in the external jack/types.h and jack/systemdeps.h headers.
Since the external header needs them, delete them from the internal
headers.
As reported by Peter Nelson, waf's check_cfg sets HAVE_OPUS=1 if the
pkg-config check is successful, however, the code requires OPUS custom
headers.
So if a dev package without custom headers is installed, explicitly
reset HAVE_OPUS to 0 to fix the FTBFS.
We recommend using symbolic names like hw:Live but when subdevices are used
regcomp() was failing to parse them. This changeset improves the algorithm
by using less assumptions.
* Don't attempt to use device reservation when card_to_num() mapping
has failed. In case of card_to_num() failures, "Audio-1" device
was reserved on start but not released on stop. This was causing
next start to fail with out of memory error, and since previous
commit, with "A handler is already registered for
/org/freedesktop/ReserveDevice1/Audio-1" error.
* In case of playback device reservation failure, release the
capture device
* Remove unused fReservedCaptureDevice and fReservedPlaybackDevice
data members of the JackAlsaDriver class
rd_acquire() error handling is adjusted to match libdbus error
handling convention:
* Initialize error before calling rd_acquire()
* Free dbus error on rd_acquire() failures
* Always set dbus error on rd_acquire failures, except for
detected programming errors that now cause taboo assert.