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
Parameter order doesnt matter for jackd but does for jackdbus. jackd
sets parameters (via Control API) in the order they were specified at
commandline. Thus, the jackd user is expected to specify parameters in
correct order. This is not good solution for jackdbus though. jackdbus
settings persistence in ~/.config/jack/jack.xml stores parameter in
the order they are defined by the driver. OTOH the D-Bus interface
itself suggests no particular order. For example the user can change
only one parameter via the jack_control tool. Other parameters either
have their default values or the ones that were previously set are
used.
The particular ordering problem this changeset aims to fix is that when
user specifies capture/playback device and device, the first one(s)
is/are ignored. This happens because the device parameter is set after
the capture/playback device parameters. The alsa then uses the string
from the device parameter for both capture and playback devices,
despite the user wish to override one or both of them.
ffado_streaming_set_period_size() is exposed starting r2078 of FFADO.
To avoid a build dependency on ffado-svn in jack, we copy the prototype
declaration.
Since the symbol is defined as weak, no problems arise at runtime.
waf complains about missing features in the builder, so let's add some.
For the sake of completeness, here's an example error message:
Traceback (most recent call last):
File "/home/adi/jack2/.waf-1.6.11-30618c54883417962c38f5d395f83584/waflib/Runner.py", line 162, in start
st=tsk.runnable_status()
File "/home/adi/jack2/.waf-1.6.11-30618c54883417962c38f5d395f83584/waflib/Task.py", line 285, in runnable_status
new_sig=self.signature()
File "/home/adi/jack2/.waf-1.6.11-30618c54883417962c38f5d395f83584/waflib/Task.py", line 274, in signature
self.sig_implicit_deps()
File "/home/adi/jack2/.waf-1.6.11-30618c54883417962c38f5d395f83584/waflib/Task.py", line 372, in sig_implicit_deps
(nodes,names)=self.scan()
File "/home/adi/jack2/.waf-1.6.11-30618c54883417962c38f5d395f83584/waflib/Tools/c_preproc.py", line 594, in scan
raise Errors.WafError('%r is missing a feature such as "c", "cxx" or "includes": '%task.generator)
WafError: bld(uselib_local='clientlib', posted=True, features=[], idx=28, uselib='RT SNDFILE', meths=['process_rule', 'process_source'], prec=defaultdict(<type 'list'>, {}), includes=['../linux', '../posix', '../common/jack', '../common'], source=[/home/adi/jack2/example-clients/capture_client.c], mappings={}, path=/home/adi/jack2/example-clients, _name='jack_rec', target='jack_rec') in /home/adi/jack2/example-clients is missing a feature such as "c", "cxx" or "includes":